1 # 1 "sortmap.c" 2 # 1 "<built-in>" 3 # 1 "<command-line>" 4 # 1 "sortmap.c" 5 /* 6 * CDDL HEADER START 7 * 8 * The contents of this file are subject to the terms of the 9 * Common Development and Distribution License (the "License"). 10 * You may not use this file except in compliance with the License. 11 * 12 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13 * or http://www.opensolaris.org/os/licensing. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * 17 * When distributing Covered Code, include this CDDL HEADER in each 18 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19 * If applicable, add the following below this CDDL HEADER, with the 20 * fields enclosed by brackets "[]" replaced with your own identifying 21 * information: Portions Copyright [yyyy] [name of copyright owner] 22 * 23 * CDDL HEADER END 24 */ 25 26 /* 27 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28 * Use is subject to license terms. 29 */ 30 31 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 32 /* All Rights Reserved */ 33 34 35 /* 36 * This module constructs a list of entries from the pkgmap associated 37 * with this package. When finished, this list is sorted in alphabetical 38 * order and an accompanying structure list, mergstat, provides 39 * information about how these new files merge with existing files 40 * already on the system. 41 */ 42 43 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 44 /* 45 * CDDL HEADER START 46 * 47 * The contents of this file are subject to the terms of the 48 * Common Development and Distribution License (the "License"). 49 * You may not use this file except in compliance with the License. 50 * 51 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 52 * or http://www.opensolaris.org/os/licensing. 53 * See the License for the specific language governing permissions 54 * and limitations under the License. 55 * 56 * When distributing Covered Code, include this CDDL HEADER in each 57 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 58 * If applicable, add the following below this CDDL HEADER, with the 59 * fields enclosed by brackets "[]" replaced with your own identifying 60 * information: Portions Copyright [yyyy] [name of copyright owner] 61 * 62 * CDDL HEADER END 63 */ 64 65 /* 66 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 67 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 68 */ 69 70 /* Copyright (c) 1988 AT&T */ 71 /* All Rights Reserved */ 72 73 /* 74 * User-visible pieces of the ANSI C standard I/O package. 75 */ 76 77 78 79 80 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 81 /* 82 * CDDL HEADER START 83 * 84 * The contents of this file are subject to the terms of the 85 * Common Development and Distribution License (the "License"). 86 * You may not use this file except in compliance with the License. 87 * 88 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 89 * or http://www.opensolaris.org/os/licensing. 90 * See the License for the specific language governing permissions 91 * and limitations under the License. 92 * 93 * When distributing Covered Code, include this CDDL HEADER in each 94 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 95 * If applicable, add the following below this CDDL HEADER, with the 96 * fields enclosed by brackets "[]" replaced with your own identifying 97 * information: Portions Copyright [yyyy] [name of copyright owner] 98 * 99 * CDDL HEADER END 100 */ 101 102 /* 103 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 104 * Copyright 2016 Joyent, Inc. 105 * 106 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 107 * Use is subject to license terms. 108 */ 109 110 111 112 113 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1 114 /* 115 * CDDL HEADER START 116 * 117 * The contents of this file are subject to the terms of the 118 * Common Development and Distribution License, Version 1.0 only 119 * (the "License"). You may not use this file except in compliance 120 * with the License. 121 * 122 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 123 * or http://www.opensolaris.org/os/licensing. 124 * See the License for the specific language governing permissions 125 * and limitations under the License. 126 * 127 * When distributing Covered Code, include this CDDL HEADER in each 128 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 129 * If applicable, add the following below this CDDL HEADER, with the 130 * fields enclosed by brackets "[]" replaced with your own identifying 131 * information: Portions Copyright [yyyy] [name of copyright owner] 132 * 133 * CDDL HEADER END 134 */ 135 /* 136 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 137 * Use is subject to license terms. 138 */ 139 /* 140 * Copyright 2015 EveryCity Ltd. All rights reserved. 141 */ 142 143 144 145 146 /* 147 * This file contains definitions designed to enable different compilers 148 * to be used harmoniously on Solaris systems. 149 */ 150 151 152 153 154 155 /* 156 * Allow for version tests for compiler bugs and features. 157 */ 158 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 159 /* 160 * analogous to lint's PRINTFLIKEn 161 */ 162 163 164 165 166 167 /* 168 * Handle the kernel printf routines that can take '%b' too 169 */ 170 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 171 /* 172 * This one's pretty obvious -- the function never returns 173 */ 174 175 176 /* 177 * The function is 'extern inline' and expects GNU C89 behaviour, not C99 178 * behaviour. 179 * 180 * Should only be used on 'extern inline' definitions for GCC. 181 */ 182 183 184 185 186 187 188 /* 189 * The function has control flow such that it may return multiple times (in 190 * the manner of setjmp or vfork) 191 */ 192 193 194 195 196 197 198 /* 199 * This is an appropriate label for functions that do not 200 * modify their arguments, e.g. strlen() 201 */ 202 203 204 /* 205 * This is a stronger form of __pure__. Can be used for functions 206 * that do not modify their arguments and don't depend on global 207 * memory. 208 */ 209 210 211 212 213 /* 214 * This attribute, attached to a variable, means that the variable is meant to 215 * be possibly unused. GCC will not produce a warning for this variable. 216 */ 217 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 218 /* 219 * Shorthand versions for readability 220 */ 221 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 222 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 223 /* 224 * CDDL HEADER START 225 * 226 * The contents of this file are subject to the terms of the 227 * Common Development and Distribution License (the "License"). 228 * You may not use this file except in compliance with the License. 229 * 230 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 231 * or http://www.opensolaris.org/os/licensing. 232 * See the License for the specific language governing permissions 233 * and limitations under the License. 234 * 235 * 236 * When distributing Covered Code, include this CDDL HEADER in each 237 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 238 * If applicable, add the following below this CDDL HEADER, with the 239 * fields enclosed by brackets "[]" replaced with your own identifying 240 * information: Portions Copyright [yyyy] [name of copyright owner] 241 * 242 * CDDL HEADER END 243 */ 244 245 /* 246 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 247 * Use is subject to license terms. 248 * Copyright 2016 Joyent, Inc. 249 */ 250 251 252 253 254 /* 255 * This header file serves to group a set of well known defines and to 256 * set these for each instruction set architecture. These defines may 257 * be divided into two groups; characteristics of the processor and 258 * implementation choices for Solaris on a processor. 259 * 260 * Processor Characteristics: 261 * 262 * _LITTLE_ENDIAN / _BIG_ENDIAN: 263 * The natural byte order of the processor. A pointer to an int points 264 * to the least/most significant byte of that int. 265 * 266 * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: 267 * The processor specific direction of stack growth. A push onto the 268 * stack increases/decreases the stack pointer, so it stores data at 269 * successively higher/lower addresses. (Stackless machines ignored 270 * without regrets). 271 * 272 * _LONG_LONG_HTOL / _LONG_LONG_LTOH: 273 * A pointer to a long long points to the most/least significant long 274 * within that long long. 275 * 276 * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: 277 * The C compiler assigns bit fields from the high/low to the low/high end 278 * of an int (most to least significant vs. least to most significant). 279 * 280 * _IEEE_754: 281 * The processor (or supported implementations of the processor) 282 * supports the ieee-754 floating point standard. No other floating 283 * point standards are supported (or significant). Any other supported 284 * floating point formats are expected to be cased on the ISA processor 285 * symbol. 286 * 287 * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: 288 * The C Compiler implements objects of type `char' as `unsigned' or 289 * `signed' respectively. This is really an implementation choice of 290 * the compiler writer, but it is specified in the ABI and tends to 291 * be uniform across compilers for an instruction set architecture. 292 * Hence, it has the properties of a processor characteristic. 293 * 294 * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / 295 * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / 296 * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT: 297 * The ABI defines alignment requirements of each of the primitive 298 * object types. Some, if not all, may be hardware requirements as 299 * well. The values are expressed in "byte-alignment" units. 300 * 301 * _MAX_ALIGNMENT: 302 * The most stringent alignment requirement as specified by the ABI. 303 * Equal to the maximum of all the above _XXX_ALIGNMENT values. 304 * 305 * _MAX_ALIGNMENT_TYPE: 306 * The name of the C type that has the value descried in _MAX_ALIGNMENT. 307 * 308 * _ALIGNMENT_REQUIRED: 309 * True or false (1 or 0) whether or not the hardware requires the ABI 310 * alignment. 311 * 312 * _LONG_LONG_ALIGNMENT_32 313 * The 32-bit ABI supported by a 64-bit kernel may have different 314 * alignment requirements for primitive object types. The value of this 315 * identifier is expressed in "byte-alignment" units. 316 * 317 * _HAVE_CPUID_INSN 318 * This indicates that the architecture supports the 'cpuid' 319 * instruction as defined by Intel. (Intel allows other vendors 320 * to extend the instruction for their own purposes.) 321 * 322 * 323 * Implementation Choices: 324 * 325 * _ILP32 / _LP64: 326 * This specifies the compiler data type implementation as specified in 327 * the relevant ABI. The choice between these is strongly influenced 328 * by the underlying hardware, but is not absolutely tied to it. 329 * Currently only two data type models are supported: 330 * 331 * _ILP32: 332 * Int/Long/Pointer are 32 bits. This is the historical UNIX 333 * and Solaris implementation. Due to its historical standing, 334 * this is the default case. 335 * 336 * _LP64: 337 * Long/Pointer are 64 bits, Int is 32 bits. This is the chosen 338 * implementation for 64-bit ABIs such as SPARC V9. 339 * 340 * _I32LPx: 341 * A compilation environment where 'int' is 32-bit, and 342 * longs and pointers are simply the same size. 343 * 344 * In all cases, Char is 8 bits and Short is 16 bits. 345 * 346 * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: 347 * This specifies the form of the disk VTOC (or label): 348 * 349 * _SUNOS_VTOC_8: 350 * This is a VTOC form which is upwardly compatible with the 351 * SunOS 4.x disk label and allows 8 partitions per disk. 352 * 353 * _SUNOS_VTOC_16: 354 * In this format the incore vtoc image matches the ondisk 355 * version. It allows 16 slices per disk, and is not 356 * compatible with the SunOS 4.x disk label. 357 * 358 * Note that these are not the only two VTOC forms possible and 359 * additional forms may be added. One possible form would be the 360 * SVr4 VTOC form. The symbol for that is reserved now, although 361 * it is not implemented. 362 * 363 * _SVR4_VTOC_16: 364 * This VTOC form is compatible with the System V Release 4 365 * VTOC (as implemented on the SVr4 Intel and 3b ports) with 366 * 16 partitions per disk. 367 * 368 * 369 * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR 370 * This describes the type of addresses used by system DMA: 371 * 372 * _DMA_USES_PHYSADDR: 373 * This type of DMA, used in the x86 implementation, 374 * requires physical addresses for DMA buffers. The 24-bit 375 * addresses used by some legacy boards is the source of the 376 * "low-memory" (<16MB) requirement for some devices using DMA. 377 * 378 * _DMA_USES_VIRTADDR: 379 * This method of DMA allows the use of virtual addresses for 380 * DMA transfers. 381 * 382 * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT 383 * This indicates the presence/absence of an fdisk table. 384 * 385 * _FIRMWARE_NEEDS_FDISK 386 * The fdisk table is required by system firmware. If present, 387 * it allows a disk to be subdivided into multiple fdisk 388 * partitions, each of which is equivalent to a separate, 389 * virtual disk. This enables the co-existence of multiple 390 * operating systems on a shared hard disk. 391 * 392 * _NO_FDISK_PRESENT 393 * If the fdisk table is absent, it is assumed that the entire 394 * media is allocated for a single operating system. 395 * 396 * _HAVE_TEM_FIRMWARE 397 * Defined if this architecture has the (fallback) option of 398 * using prom_* calls for doing I/O if a suitable kernel driver 399 * is not available to do it. 400 * 401 * _DONT_USE_1275_GENERIC_NAMES 402 * Controls whether or not device tree node names should 403 * comply with the IEEE 1275 "Generic Names" Recommended 404 * Practice. With _DONT_USE_GENERIC_NAMES, device-specific 405 * names identifying the particular device will be used. 406 * 407 * __i386_COMPAT 408 * This indicates whether the i386 ABI is supported as a *non-native* 409 * mode for the platform. When this symbol is defined: 410 * - 32-bit xstat-style system calls are enabled 411 * - 32-bit xmknod-style system calls are enabled 412 * - 32-bit system calls use i386 sizes -and- alignments 413 * 414 * Note that this is NOT defined for the i386 native environment! 415 * 416 * __x86 417 * This is ONLY a synonym for defined(__i386) || defined(__amd64) 418 * which is useful only insofar as these two architectures share 419 * common attributes. Analogous to __sparc. 420 * 421 * _PSM_MODULES 422 * This indicates whether or not the implementation uses PSM 423 * modules for processor support, reading /etc/mach from inside 424 * the kernel to extract a list. 425 * 426 * _RTC_CONFIG 427 * This indicates whether or not the implementation uses /etc/rtc_config 428 * to configure the real-time clock in the kernel. 429 * 430 * _UNIX_KRTLD 431 * This indicates that the implementation uses a dynamically 432 * linked unix + krtld to form the core kernel image at boot 433 * time, or (in the absence of this symbol) a prelinked kernel image. 434 * 435 * _OBP 436 * This indicates the firmware interface is OBP. 437 * 438 * _SOFT_HOSTID 439 * This indicates that the implementation obtains the hostid 440 * from the file /etc/hostid, rather than from hardware. 441 */ 442 443 444 445 446 447 /* 448 * The following set of definitions characterize Solaris on AMD's 449 * 64-bit systems. 450 */ 451 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 452 /* 453 * Define the appropriate "processor characteristics" 454 */ 455 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 456 /* 457 * Define the appropriate "implementation choices". 458 */ 459 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 460 /* 461 * The following set of definitions characterize the Solaris on SPARC systems. 462 * 463 * The symbol __sparc indicates any of the SPARC family of processor 464 * architectures. This includes SPARC V7, SPARC V8 and SPARC V9. 465 * 466 * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined 467 * by Version 8 of the SPARC Architecture Manual. (SPARC V7 is close enough 468 * to SPARC V8 for the former to be subsumed into the latter definition.) 469 * 470 * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined 471 * by Version 9 of the SPARC Architecture Manual. 472 * 473 * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only 474 * relevant when the symbol __sparc is defined. 475 */ 476 /* 477 * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added 478 * to support backwards builds. This workaround should be removed in s10_71. 479 */ 480 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 481 482 483 484 485 486 /* 487 * Values of _POSIX_C_SOURCE 488 * 489 * undefined not a POSIX compilation 490 * 1 POSIX.1-1990 compilation 491 * 2 POSIX.2-1992 compilation 492 * 199309L POSIX.1b-1993 compilation (Real Time) 493 * 199506L POSIX.1c-1995 compilation (POSIX Threads) 494 * 200112L POSIX.1-2001 compilation (Austin Group Revision) 495 * 200809L POSIX.1-2008 compilation 496 */ 497 498 499 500 501 /* 502 * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, 503 * and _STDC_C99 are Sun implementation specific macros created in order to 504 * compress common standards specified feature test macros for easier reading. 505 * These macros should not be used by the application developer as 506 * unexpected results may occur. Instead, the user should reference 507 * standards(5) for correct usage of the standards feature test macros. 508 * 509 * __XOPEN_OR_POSIX Used in cases where a symbol is defined by both 510 * X/Open or POSIX or in the negative, when neither 511 * X/Open or POSIX defines a symbol. 512 * 513 * _STRICT_STDC __STDC__ is specified by the C Standards and defined 514 * by the compiler. For Sun compilers the value of 515 * __STDC__ is either 1, 0, or not defined based on the 516 * compilation mode (see cc(1)). When the value of 517 * __STDC__ is 1 and in the absence of any other feature 518 * test macros, the namespace available to the application 519 * is limited to only those symbols defined by the C 520 * Standard. _STRICT_STDC provides a more readable means 521 * of identifying symbols defined by the standard, or in 522 * the negative, symbols that are extensions to the C 523 * Standard. See additional comments for GNU C differences. 524 * 525 * _STDC_C99 __STDC_VERSION__ is specified by the C standards and 526 * defined by the compiler and indicates the version of 527 * the C standard. A value of 199901L indicates a 528 * compiler that complies with ISO/IEC 9899:1999, other- 529 * wise known as the C99 standard. 530 * 531 * _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__ 532 * is 201112L indicating a compiler that compiles with 533 * ISO/IEXC 9899:2011, otherwise known as the C11 standard. 534 * 535 * _STRICT_SYMBOLS Used in cases where symbol visibility is restricted 536 * by the standards, and the user has not explicitly 537 * relaxed the strictness via __EXTENSIONS__. 538 */ 539 540 541 542 543 544 /* 545 * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC 546 * 99899:2011 specify the following predefined macro name: 547 * 548 * __STDC__ The integer constant 1, intended to indicate a conforming 549 * implementation. 550 * 551 * Furthermore, a strictly conforming program shall use only those features 552 * of the language and library specified in these standards. A conforming 553 * implementation shall accept any strictly conforming program. 554 * 555 * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for 556 * strictly conforming environments and __STDC__ to 0 for environments that 557 * use ANSI C semantics but allow extensions to the C standard. For non-ANSI 558 * C semantics, Sun's C compiler does not define __STDC__. 559 * 560 * The GNU C project interpretation is that __STDC__ should always be defined 561 * to 1 for compilation modes that accept ANSI C syntax regardless of whether 562 * or not extensions to the C standard are used. Violations of conforming 563 * behavior are conditionally flagged as warnings via the use of the 564 * -pedantic option. In addition to defining __STDC__ to 1, the GNU C 565 * compiler also defines __STRICT_ANSI__ as a means of specifying strictly 566 * conforming environments using the -ansi or -std=<standard> options. 567 * 568 * In the absence of any other compiler options, Sun and GNU set the value 569 * of __STDC__ as follows when using the following options: 570 * 571 * Value of __STDC__ __STRICT_ANSI__ 572 * 573 * cc -Xa (default) 0 undefined 574 * cc -Xt (transitional) 0 undefined 575 * cc -Xc (strictly conforming) 1 undefined 576 * cc -Xs (K&R C) undefined undefined 577 * 578 * gcc (default) 1 undefined 579 * gcc -ansi, -std={c89, c99,...) 1 defined 580 * gcc -traditional (K&R) undefined undefined 581 * 582 * The default compilation modes for Sun C compilers versus GNU C compilers 583 * results in a differing value for __STDC__ which results in a more 584 * restricted namespace when using Sun compilers. To allow both GNU and Sun 585 * interpretations to peacefully co-exist, we use the following Sun 586 * implementation _STRICT_STDC_ macro: 587 */ 588 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 589 /* 590 * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011 591 */ 592 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 593 /* 594 * Use strict symbol visibility. 595 */ 596 597 598 599 600 601 /* 602 * Large file interfaces: 603 * 604 * _LARGEFILE_SOURCE 605 * 1 large file-related additions to POSIX 606 * interfaces requested (fseeko, etc.) 607 * _LARGEFILE64_SOURCE 608 * 1 transitional large-file-related interfaces 609 * requested (seek64, stat64, etc.) 610 * 611 * The corresponding announcement macros are respectively: 612 * _LFS_LARGEFILE 613 * _LFS64_LARGEFILE 614 * (These are set in <unistd.h>.) 615 * 616 * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as 617 * well. 618 * 619 * The large file interfaces are made visible regardless of the initial values 620 * of the feature test macros under certain circumstances: 621 * - If no explicit standards-conforming environment is requested (neither 622 * of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of 623 * __STDC__ does not imply standards conformance). 624 * - Extended system interfaces are explicitly requested (__EXTENSIONS__ 625 * is defined). 626 * - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is 627 * defined). (Note that this dependency is an artifact of the current 628 * kernel implementation and may change in future releases.) 629 */ 630 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 631 /* 632 * Large file compilation environment control: 633 * 634 * The setting of _FILE_OFFSET_BITS controls the size of various file-related 635 * types and governs the mapping between file-related source function symbol 636 * names and the corresponding binary entry points. 637 * 638 * In the 32-bit environment, the default value is 32; if not set, set it to 639 * the default here, to simplify tests in other headers. 640 * 641 * In the 64-bit compilation environment, the only value allowed is 64. 642 */ 643 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 644 /* 645 * Use of _XOPEN_SOURCE 646 * 647 * The following X/Open specifications are supported: 648 * 649 * X/Open Portability Guide, Issue 3 (XPG3) 650 * X/Open CAE Specification, Issue 4 (XPG4) 651 * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2) 652 * X/Open CAE Specification, Issue 5 (XPG5) 653 * Open Group Technical Standard, Issue 6 (XPG6), also referred to as 654 * IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. 655 * Open Group Technical Standard, Issue 7 (XPG7), also referred to as 656 * IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. 657 * 658 * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). 659 * XPG5 is also referred to as UNIX 98 or the Single Unix Specification, 660 * Version 2 (SUSv2) 661 * XPG6 is the result of a merge of the X/Open and POSIX specifications 662 * and as such is also referred to as IEEE Std. 1003.1-2001 in 663 * addition to UNIX 03 and SUSv3. 664 * XPG7 is also referred to as UNIX 08 and SUSv4. 665 * 666 * When writing a conforming X/Open application, as per the specification 667 * requirements, the appropriate feature test macros must be defined at 668 * compile time. These are as follows. For more info, see standards(5). 669 * 670 * Feature Test Macro Specification 671 * ------------------------------------------------ ------------- 672 * _XOPEN_SOURCE XPG3 673 * _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 674 * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 675 * _XOPEN_SOURCE = 500 XPG5 676 * _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 677 * _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 678 * 679 * In order to simplify the guards within the headers, the following 680 * implementation private test macros have been created. Applications 681 * must NOT use these private test macros as unexpected results will 682 * occur. 683 * 684 * Note that in general, the use of these private macros is cumulative. 685 * For example, the use of _XPG3 with no other restrictions on the X/Open 686 * namespace will make the symbols visible for XPG3 through XPG6 687 * compilation environments. The use of _XPG4_2 with no other X/Open 688 * namespace restrictions indicates that the symbols were introduced in 689 * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation 690 * environments, but not for XPG3 or XPG4 compilation environments. 691 * 692 * _XPG3 X/Open Portability Guide, Issue 3 (XPG3) 693 * _XPG4 X/Open CAE Specification, Issue 4 (XPG4) 694 * _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) 695 * _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) 696 * _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) 697 * _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) 698 */ 699 700 /* X/Open Portability Guide, Issue 3 */ 701 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 702 /* 703 * _XOPEN_VERSION is defined by the X/Open specifications and is not 704 * normally defined by the application, except in the case of an XPG4 705 * application. On the implementation side, _XOPEN_VERSION defined with 706 * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined 707 * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. 708 * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) 709 * application and with a value of 600 indicates an XPG6 (UNIX 03) 710 * application and with a value of 700 indicates an XPG7 (UNIX 08). 711 * The appropriate version is determined by the use of the 712 * feature test macros described earlier. The value of _XOPEN_VERSION 713 * defaults to 3 otherwise indicating support for XPG3 applications. 714 */ 715 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 716 /* 717 * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly 718 * conforming environments. ISO 9899:1999 says it does. 719 * 720 * The presence of _LONGLONG_TYPE says "long long exists" which is therefore 721 * defined in all but strictly conforming environments that disallow it. 722 */ 723 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 724 /* 725 * The following macro defines a value for the ISO C99 restrict 726 * keyword so that _RESTRICT_KYWD resolves to "restrict" if 727 * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string) 728 * if any other compiler is used. This allows for the use of single 729 * prototype declarations regardless of compiler version. 730 */ 731 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 732 /* 733 * The following macro defines a value for the ISO C11 _Noreturn 734 * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if 735 * an ISO C11 compiler is used and "" (null string) if any other 736 * compiler is used. This allows for the use of single prototype 737 * declarations regardless of compiler version. 738 */ 739 740 741 742 743 744 745 746 /* 747 * The following macro indicates header support for the ANSI C++ 748 * standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882. 749 */ 750 751 752 /* 753 * The following macro indicates header support for the C99 standard, 754 * ISO/IEC 9899:1999, Programming Languages - C. 755 */ 756 757 758 /* 759 * The following macro indicates header support for the C99 standard, 760 * ISO/IEC 9899:2011, Programming Languages - C. 761 */ 762 763 764 /* 765 * The following macro indicates header support for DTrace. The value is an 766 * integer that corresponds to the major version number for DTrace. 767 */ 768 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 769 770 771 772 773 774 /* 775 * Do all of our 'redefine_extname' processing before 776 * declarations of the associated functions are seen. 777 * This is necessary to keep gcc happy. 778 */ 779 780 781 /* large file compilation environment setup */ 782 783 784 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 785 #pragma redefine_extname fopen fopen64 786 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 787 788 789 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 790 #pragma redefine_extname freopen freopen64 791 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 792 793 794 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 795 #pragma redefine_extname tmpfile tmpfile64 796 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 797 798 799 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 800 #pragma redefine_extname fgetpos fgetpos64 801 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 802 803 804 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 805 #pragma redefine_extname fsetpos fsetpos64 806 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 807 808 809 810 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 811 #pragma redefine_extname fseeko fseeko64 812 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 813 814 815 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 816 #pragma redefine_extname ftello ftello64 817 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 818 819 820 821 822 /* In the LP64 compilation environment, all APIs are already large file */ 823 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 824 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1 825 /* 826 * CDDL HEADER START 827 * 828 * The contents of this file are subject to the terms of the 829 * Common Development and Distribution License, Version 1.0 only 830 * (the "License"). You may not use this file except in compliance 831 * with the License. 832 * 833 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 834 * or http://www.opensolaris.org/os/licensing. 835 * See the License for the specific language governing permissions 836 * and limitations under the License. 837 * 838 * When distributing Covered Code, include this CDDL HEADER in each 839 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 840 * If applicable, add the following below this CDDL HEADER, with the 841 * fields enclosed by brackets "[]" replaced with your own identifying 842 * information: Portions Copyright [yyyy] [name of copyright owner] 843 * 844 * CDDL HEADER END 845 */ 846 /* 847 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 848 * Copyright 2014 PALO, Richard. 849 * 850 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 851 * Use is subject to license terms. 852 */ 853 854 /* Copyright (c) 1988 AT&T */ 855 /* All Rights Reserved */ 856 857 /* 858 * An application should not include this header directly. Instead it 859 * should be included only through the inclusion of other Sun headers. 860 * 861 * The contents of this header is limited to identifiers specified in the 862 * C Standard. Any new identifiers specified in future amendments to the 863 * C Standard must be placed in this header. If these new identifiers 864 * are required to also be in the C++ Standard "std" namespace, then for 865 * anything other than macro definitions, corresponding "using" directives 866 * must also be added to <stdio.h>. 867 */ 868 869 /* 870 * User-visible pieces of the ANSI C standard I/O package. 871 */ 872 873 874 875 876 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 877 /* 878 * CDDL HEADER START 879 * 880 * The contents of this file are subject to the terms of the 881 * Common Development and Distribution License (the "License"). 882 * You may not use this file except in compliance with the License. 883 * 884 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 885 * or http://www.opensolaris.org/os/licensing. 886 * See the License for the specific language governing permissions 887 * and limitations under the License. 888 * 889 * When distributing Covered Code, include this CDDL HEADER in each 890 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 891 * If applicable, add the following below this CDDL HEADER, with the 892 * fields enclosed by brackets "[]" replaced with your own identifying 893 * information: Portions Copyright [yyyy] [name of copyright owner] 894 * 895 * CDDL HEADER END 896 */ 897 898 /* 899 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 900 * Copyright 2016 Joyent, Inc. 901 * 902 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 903 * Use is subject to license terms. 904 */ 905 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 906 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 907 /* 908 * This file and its contents are supplied under the terms of the 909 * Common Development and Distribution License ("CDDL"), version 1.0. 910 * You may only use this file in accordance with the terms of version 911 * 1.0 of the CDDL. 912 * 913 * A full copy of the text of the CDDL should have accompanied this 914 * source. A copy of the CDDL is also available via the Internet at 915 * http://www.illumos.org/license/CDDL. 916 */ 917 918 /* 919 * Copyright 2014-2016 PALO, Richard. 920 */ 921 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 922 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 923 /* 924 * CDDL HEADER START 925 * 926 * The contents of this file are subject to the terms of the 927 * Common Development and Distribution License, Version 1.0 only 928 * (the "License"). You may not use this file except in compliance 929 * with the License. 930 * 931 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 932 * or http://www.opensolaris.org/os/licensing. 933 * See the License for the specific language governing permissions 934 * and limitations under the License. 935 * 936 * When distributing Covered Code, include this CDDL HEADER in each 937 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 938 * If applicable, add the following below this CDDL HEADER, with the 939 * fields enclosed by brackets "[]" replaced with your own identifying 940 * information: Portions Copyright [yyyy] [name of copyright owner] 941 * 942 * CDDL HEADER END 943 */ 944 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 945 /* All Rights Reserved */ 946 947 948 /* 949 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 950 * 951 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 952 * Use is subject to license terms. 953 */ 954 955 956 957 958 /* 959 * An application should not include this header directly. Instead it 960 * should be included only through the inclusion of other Sun headers. 961 * 962 * The purpose of this header is to provide the type definitions for 963 * the va_list argument used by a number of printf and printf like 964 * functions. The headers that define these various function prototypes 965 * #include this header directly. These include but are not necessarily 966 * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and 967 * <syslog.h>. The type definitions included in this header are for 968 * the benefit of consumers of va_list. 969 * 970 * Any application that accepts variable argument lists must as documented, 971 * include either <varargs.h> or the preferred <stdarg.h>. Doing so will 972 * pull in the appropriate compiler protocols defined in <sys/va_impl.h> 973 * which is in turn is included by <varargs.h> and <stdarg.h>. See comments 974 * in <sys/va_impl.h> for more detailed information regarding implementation 975 * and compiler specific protocols. 976 */ 977 978 /* 979 * The common definitions exported by this header or compilers using 980 * this header are: 981 * 982 * the identifier __builtin_va_alist for the variable list pseudo parameter 983 * the type __va_alist_type for the variable list pseudo parameter 984 * the type __va_list defining the type of the variable list iterator 985 * 986 * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros 987 * (__GNUC__) and processor macros (e.g. __amd64) are intended to be 988 * defined by the compilation system, not the user of the system. 989 */ 990 991 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 992 /* 993 * CDDL HEADER START 994 * 995 * The contents of this file are subject to the terms of the 996 * Common Development and Distribution License (the "License"). 997 * You may not use this file except in compliance with the License. 998 * 999 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1000 * or http://www.opensolaris.org/os/licensing. 1001 * See the License for the specific language governing permissions 1002 * and limitations under the License. 1003 * 1004 * 1005 * When distributing Covered Code, include this CDDL HEADER in each 1006 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1007 * If applicable, add the following below this CDDL HEADER, with the 1008 * fields enclosed by brackets "[]" replaced with your own identifying 1009 * information: Portions Copyright [yyyy] [name of copyright owner] 1010 * 1011 * CDDL HEADER END 1012 */ 1013 1014 /* 1015 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1016 * Use is subject to license terms. 1017 * Copyright 2016 Joyent, Inc. 1018 */ 1019 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2 1020 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1021 typedef __builtin_va_list __gnuc_va_list; 1022 /* 1023 * XX64 This seems unnecessary .. but is needed because vcmn_err is 1024 * defined with __va_list instead of plain old va_list. 1025 * Perhaps that should be fixed! 1026 */ 1027 typedef __builtin_va_list __va_list; 1028 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1029 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1 1030 /* 1031 * CDDL HEADER START 1032 * 1033 * The contents of this file are subject to the terms of the 1034 * Common Development and Distribution License, Version 1.0 only 1035 * (the "License"). You may not use this file except in compliance 1036 * with the License. 1037 * 1038 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1039 * or http://www.opensolaris.org/os/licensing. 1040 * See the License for the specific language governing permissions 1041 * and limitations under the License. 1042 * 1043 * When distributing Covered Code, include this CDDL HEADER in each 1044 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1045 * If applicable, add the following below this CDDL HEADER, with the 1046 * fields enclosed by brackets "[]" replaced with your own identifying 1047 * information: Portions Copyright [yyyy] [name of copyright owner] 1048 * 1049 * CDDL HEADER END 1050 */ 1051 /* 1052 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1053 * Use is subject to license terms. 1054 */ 1055 1056 1057 1058 1059 #pragma ident "%Z%%M% %I% %E% SMI" 1060 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1061 typedef struct __FILE __FILE; 1062 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1063 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1 1064 /* 1065 * CDDL HEADER START 1066 * 1067 * The contents of this file are subject to the terms of the 1068 * Common Development and Distribution License (the "License"). 1069 * You may not use this file except in compliance with the License. 1070 * 1071 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1072 * or http://www.opensolaris.org/os/licensing. 1073 * See the License for the specific language governing permissions 1074 * and limitations under the License. 1075 * 1076 * When distributing Covered Code, include this CDDL HEADER in each 1077 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1078 * If applicable, add the following below this CDDL HEADER, with the 1079 * fields enclosed by brackets "[]" replaced with your own identifying 1080 * information: Portions Copyright [yyyy] [name of copyright owner] 1081 * 1082 * CDDL HEADER END 1083 */ 1084 1085 /* 1086 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1087 * Use is subject to license terms. 1088 */ 1089 1090 1091 1092 1093 #pragma ident "%Z%%M% %I% %E% SMI" 1094 1095 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 1096 /* 1097 * CDDL HEADER START 1098 * 1099 * The contents of this file are subject to the terms of the 1100 * Common Development and Distribution License (the "License"). 1101 * You may not use this file except in compliance with the License. 1102 * 1103 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1104 * or http://www.opensolaris.org/os/licensing. 1105 * See the License for the specific language governing permissions 1106 * and limitations under the License. 1107 * 1108 * 1109 * When distributing Covered Code, include this CDDL HEADER in each 1110 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1111 * If applicable, add the following below this CDDL HEADER, with the 1112 * fields enclosed by brackets "[]" replaced with your own identifying 1113 * information: Portions Copyright [yyyy] [name of copyright owner] 1114 * 1115 * CDDL HEADER END 1116 */ 1117 1118 /* 1119 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1120 * Use is subject to license terms. 1121 * Copyright 2016 Joyent, Inc. 1122 */ 1123 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2 1124 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1125 struct __FILE /* needs to be binary-compatible with old versions */ 1126 { 1127 1128 1129 1130 1131 int _cnt; /* number of available characters in buffer */ 1132 unsigned char *_ptr; /* next character from/to here in buffer */ 1133 1134 unsigned char *_base; /* the buffer */ 1135 unsigned char _flag; /* the state of the stream */ 1136 unsigned char _magic; /* Old home of the file descriptor */ 1137 /* Only fileno(3C) can retrieve the value now */ 1138 unsigned __orientation:2; /* the orientation of the stream */ 1139 unsigned __ionolock:1; /* turn off implicit locking */ 1140 unsigned __seekable:1; /* is file seekable? */ 1141 unsigned __extendedfd:1; /* enable extended FILE */ 1142 unsigned __xf_nocheck:1; /* no extended FILE runtime check */ 1143 unsigned __filler:10; 1144 }; 1145 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1146 1147 /* 1148 * If feature test macros are set that enable interfaces that use types 1149 * defined in <sys/types.h>, get those types by doing the include. 1150 * 1151 * Note that in asking for the interfaces associated with this feature test 1152 * macro one also asks for definitions of the POSIX types. 1153 */ 1154 1155 1156 1157 1158 1159 1160 /* 1161 * The following typedefs are adopted from ones in <sys/types.h> (with leading 1162 * underscores added to avoid polluting the ANSI C name space). See the 1163 * commentary there for further explanation. 1164 */ 1165 1166 typedef long long __longlong_t; 1167 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1168 typedef __FILE FILE; 1169 1170 1171 1172 1173 1174 1175 1176 typedef unsigned int size_t; /* (historical version) */ 1177 1178 1179 1180 1181 1182 1183 typedef __longlong_t fpos_t; 1184 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1185 /* 1186 * The value of _NFILE is defined in the Processor Specific ABI. The value 1187 * is chosen for historical reasons rather than for truly processor related 1188 * attribute. Note that the SPARC Processor Specific ABI uses the common 1189 * UNIX historical value of 20 so it is allowed to fall through. 1190 */ 1191 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1192 extern __FILE __iob[60]; 1193 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1194 extern int remove(const char *); 1195 extern int rename(const char *, const char *); 1196 extern FILE *tmpfile(void); 1197 extern char *tmpnam(char *); 1198 extern int fclose(FILE *); 1199 extern int fflush(FILE *); 1200 extern FILE *fopen(const char *, const char *); 1201 extern FILE *freopen(const char *, 1202 const char *, FILE *); 1203 extern void setbuf(FILE *, char *); 1204 extern int setvbuf(FILE *, char *, int, 1205 size_t); 1206 /* PRINTFLIKE2 */ 1207 extern int fprintf(FILE *, const char *, ...); 1208 /* SCANFLIKE2 */ 1209 extern int fscanf(FILE *, const char *, ...); 1210 /* PRINTFLIKE1 */ 1211 extern int printf(const char *, ...); 1212 /* SCANFLIKE1 */ 1213 extern int scanf(const char *, ...); 1214 /* PRINTFLIKE2 */ 1215 extern int sprintf(char *, const char *, ...); 1216 /* SCANFLIKE2 */ 1217 extern int sscanf(const char *, 1218 const char *, ...); 1219 extern int vfprintf(FILE *, const char *, 1220 __va_list); 1221 extern int vprintf(const char *, __va_list); 1222 extern int vsprintf(char *, const char *, 1223 __va_list); 1224 extern int fgetc(FILE *); 1225 extern char *fgets(char *, int, FILE *); 1226 extern int fputc(int, FILE *); 1227 extern int fputs(const char *, FILE *); 1228 1229 1230 extern int getc(FILE *); 1231 extern int putc(int, FILE *); 1232 1233 1234 1235 extern int getchar(void); 1236 extern int putchar(int); 1237 1238 1239 /* 1240 * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11 1241 * environment has been requested, we remove it. 1242 */ 1243 1244 extern char *gets(char *); 1245 1246 extern int puts(const char *); 1247 extern int ungetc(int, FILE *); 1248 extern size_t fread(void *, size_t, size_t, 1249 FILE *); 1250 extern size_t fwrite(const void *, size_t, size_t, 1251 FILE *); 1252 1253 extern int fgetpos(FILE *, fpos_t *); 1254 extern int fsetpos(FILE *, const fpos_t *); 1255 1256 extern int fseek(FILE *, long, int); 1257 extern long ftell(FILE *); 1258 extern void rewind(FILE *); 1259 1260 1261 extern void clearerr(FILE *); 1262 extern int feof(FILE *); 1263 extern int ferror(FILE *); 1264 1265 extern void perror(const char *); 1266 1267 1268 extern int __filbuf(FILE *); 1269 extern int __flsbuf(int, FILE *); 1270 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1271 1272 /* 1273 * If feature test macros are set that enable interfaces that use types 1274 * defined in <sys/types.h>, get those types by doing the include. 1275 * 1276 * Note that in asking for the interfaces associated with this feature test 1277 * macro one also asks for definitions of the POSIX types. 1278 */ 1279 1280 /* 1281 * Allow global visibility for symbols defined in 1282 * C++ "std" namespace in <iso/stdio_iso.h>. 1283 */ 1284 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1285 /* 1286 * This header needs to be included here because it relies on the global 1287 * visibility of FILE and size_t in the C++ environment. 1288 */ 1289 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1 1290 /* 1291 * CDDL HEADER START 1292 * 1293 * The contents of this file are subject to the terms of the 1294 * Common Development and Distribution License, Version 1.0 only 1295 * (the "License"). You may not use this file except in compliance 1296 * with the License. 1297 * 1298 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1299 * or http://www.opensolaris.org/os/licensing. 1300 * See the License for the specific language governing permissions 1301 * and limitations under the License. 1302 * 1303 * When distributing Covered Code, include this CDDL HEADER in each 1304 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1305 * If applicable, add the following below this CDDL HEADER, with the 1306 * fields enclosed by brackets "[]" replaced with your own identifying 1307 * information: Portions Copyright [yyyy] [name of copyright owner] 1308 * 1309 * CDDL HEADER END 1310 */ 1311 /* 1312 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1313 * 1314 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1315 * Use is subject to license terms. 1316 */ 1317 1318 /* 1319 * An application should not include this header directly. Instead it 1320 * should be included only through the inclusion of other Sun headers. 1321 * 1322 * The contents of this header is limited to identifiers specified in 1323 * the C99 standard and in conflict with the C++ implementation of the 1324 * standard header. The C++ standard may adopt the C99 standard at 1325 * which point it is expected that the symbols included here will 1326 * become part of the C++ std namespace. 1327 */ 1328 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1329 /* 1330 * The following have been added as a result of the ISO/IEC 9899:1999 1331 * standard. For a strictly conforming C application, visibility is 1332 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 1333 * For non-strictly conforming C applications, there are no restrictions 1334 * on the C namespace. 1335 */ 1336 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1337 extern int vfscanf(FILE *, const char *, __va_list); 1338 extern int vscanf(const char *, __va_list); 1339 extern int vsscanf(const char *, const char *, 1340 __va_list); 1341 1342 1343 1344 1345 extern int snprintf(char *, size_t, const char *, 1346 ...); 1347 extern int vsnprintf(char *, size_t, const char *, 1348 __va_list); 1349 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1350 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1351 typedef __longlong_t off_t; 1352 1353 1354 1355 1356 1357 typedef __longlong_t off64_t; 1358 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1359 typedef __longlong_t fpos64_t; 1360 1361 1362 1363 /* 1364 * XPG4 requires that va_list be defined in <stdio.h> "as described in 1365 * <stdarg.h>". ANSI-C and POSIX require that the namespace of <stdio.h> 1366 * not be polluted with this name. 1367 */ 1368 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1369 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1370 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1371 extern unsigned char _sibuf[], _sobuf[]; 1372 1373 1374 /* large file compilation environment setup */ 1375 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1376 extern unsigned char *_bufendtab[]; 1377 extern FILE *_lastbuf; 1378 1379 1380 /* In the LP64 compilation environment, all APIs are already large file */ 1381 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1382 typedef int ssize_t; /* (historical version) */ 1383 1384 1385 1386 1387 1388 1389 extern char *tmpnam_r(char *); 1390 1391 1392 1393 1394 extern int fcloseall(void); 1395 extern void setbuffer(FILE *, char *, size_t); 1396 extern int setlinebuf(FILE *); 1397 /* PRINTFLIKE2 */ 1398 extern int asprintf(char **, const char *, ...); 1399 /* PRINTFLIKE2 */ 1400 extern int vasprintf(char **, const char *, __va_list); 1401 1402 1403 1404 1405 /* || defined(_XPG7) */ 1406 extern ssize_t getdelim(char **, size_t *, 1407 int, FILE *); 1408 extern ssize_t getline(char **, size_t *, 1409 FILE *); 1410 1411 1412 /* 1413 * The following are known to POSIX and XOPEN, but not to ANSI-C. 1414 */ 1415 1416 1417 1418 extern FILE *fdopen(int, const char *); 1419 extern char *ctermid(char *); 1420 extern int fileno(FILE *); 1421 1422 1423 1424 /* 1425 * The following are known to POSIX.1c, but not to ANSI-C or XOPEN. 1426 */ 1427 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1428 /* 1429 * The following are known to XOPEN, but not to ANSI-C or POSIX. 1430 */ 1431 1432 1433 extern FILE *popen(const char *, const char *); 1434 extern char *tempnam(const char *, const char *); 1435 extern int pclose(FILE *); 1436 1437 extern int getsubopt(char **, char *const *, char **); 1438 1439 1440 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1441 1442 extern char *cuserid(char *); 1443 extern int getopt(int, char *const *, const char *); 1444 extern char *optarg; 1445 extern int optind, opterr, optopt; 1446 extern int getw(FILE *); 1447 extern int putw(int, FILE *); 1448 1449 1450 1451 1452 /* 1453 * The following are defined as part of the Large File Summit interfaces. 1454 */ 1455 1456 extern int fseeko(FILE *, off_t, int); 1457 extern off_t ftello(FILE *); 1458 1459 1460 /* 1461 * The following are defined as part of the transitional Large File Summit 1462 * interfaces. 1463 */ 1464 1465 1466 extern FILE *fopen64(const char *, const char *); 1467 extern FILE *freopen64(const char *, const char *, FILE *); 1468 extern FILE *tmpfile64(void); 1469 extern int fgetpos64(FILE *, fpos64_t *); 1470 extern int fsetpos64(FILE *, const fpos64_t *); 1471 extern int fseeko64(FILE *, off64_t, int); 1472 extern off64_t ftello64(FILE *); 1473 1474 1475 /* 1476 * XPG7 symbols 1477 */ 1478 1479 extern FILE *fmemopen(void *, size_t, 1480 const char *); 1481 extern FILE *open_memstream(char **, size_t *); 1482 # 40 "sortmap.c" 2 1483 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1 1484 /* 1485 * CDDL HEADER START 1486 * 1487 * The contents of this file are subject to the terms of the 1488 * Common Development and Distribution License (the "License"). 1489 * You may not use this file except in compliance with the License. 1490 * 1491 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1492 * or http://www.opensolaris.org/os/licensing. 1493 * See the License for the specific language governing permissions 1494 * and limitations under the License. 1495 * 1496 * When distributing Covered Code, include this CDDL HEADER in each 1497 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1498 * If applicable, add the following below this CDDL HEADER, with the 1499 * fields enclosed by brackets "[]" replaced with your own identifying 1500 * information: Portions Copyright [yyyy] [name of copyright owner] 1501 * 1502 * CDDL HEADER END 1503 */ 1504 1505 /* 1506 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1507 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 1508 */ 1509 1510 /* Copyright (c) 1988 AT&T */ 1511 /* All Rights Reserved */ 1512 1513 1514 1515 1516 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1 1517 /* 1518 * CDDL HEADER START 1519 * 1520 * The contents of this file are subject to the terms of the 1521 * Common Development and Distribution License, Version 1.0 only 1522 * (the "License"). You may not use this file except in compliance 1523 * with the License. 1524 * 1525 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1526 * or http://www.opensolaris.org/os/licensing. 1527 * See the License for the specific language governing permissions 1528 * and limitations under the License. 1529 * 1530 * When distributing Covered Code, include this CDDL HEADER in each 1531 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1532 * If applicable, add the following below this CDDL HEADER, with the 1533 * fields enclosed by brackets "[]" replaced with your own identifying 1534 * information: Portions Copyright [yyyy] [name of copyright owner] 1535 * 1536 * CDDL HEADER END 1537 */ 1538 /* Copyright (c) 1988 AT&T */ 1539 /* All Rights Reserved */ 1540 1541 1542 /* 1543 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1544 * Copyright 2014 PALO, Richard. 1545 * 1546 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1547 * Use is subject to license terms. 1548 */ 1549 1550 /* 1551 * An application should not include this header directly. Instead it 1552 * should be included only through the inclusion of other Sun headers. 1553 * 1554 * The contents of this header is limited to identifiers specified in the 1555 * C Standard. Any new identifiers specified in future amendments to the 1556 * C Standard must be placed in this header. If these new identifiers 1557 * are required to also be in the C++ Standard "std" namespace, then for 1558 * anything other than macro definitions, corresponding "using" directives 1559 * must also be added to <string.h>. 1560 */ 1561 1562 1563 1564 1565 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1566 /* 1567 * CDDL HEADER START 1568 * 1569 * The contents of this file are subject to the terms of the 1570 * Common Development and Distribution License (the "License"). 1571 * You may not use this file except in compliance with the License. 1572 * 1573 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1574 * or http://www.opensolaris.org/os/licensing. 1575 * See the License for the specific language governing permissions 1576 * and limitations under the License. 1577 * 1578 * When distributing Covered Code, include this CDDL HEADER in each 1579 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1580 * If applicable, add the following below this CDDL HEADER, with the 1581 * fields enclosed by brackets "[]" replaced with your own identifying 1582 * information: Portions Copyright [yyyy] [name of copyright owner] 1583 * 1584 * CDDL HEADER END 1585 */ 1586 1587 /* 1588 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1589 * Copyright 2016 Joyent, Inc. 1590 * 1591 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1592 * Use is subject to license terms. 1593 */ 1594 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 1595 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 1596 /* 1597 * This file and its contents are supplied under the terms of the 1598 * Common Development and Distribution License ("CDDL"), version 1.0. 1599 * You may only use this file in accordance with the terms of version 1600 * 1.0 of the CDDL. 1601 * 1602 * A full copy of the text of the CDDL should have accompanied this 1603 * source. A copy of the CDDL is also available via the Internet at 1604 * http://www.illumos.org/license/CDDL. 1605 */ 1606 1607 /* 1608 * Copyright 2014-2016 PALO, Richard. 1609 */ 1610 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 1611 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1612 extern int memcmp(const void *, const void *, size_t); 1613 extern void *memcpy(void *, const void *, size_t); 1614 extern void *memmove(void *, const void *, size_t); 1615 extern void *memset(void *, int, size_t); 1616 extern char *strcat(char *, const char *); 1617 extern int strcmp(const char *, const char *); 1618 extern char *strcpy(char *, const char *); 1619 extern int strcoll(const char *, const char *); 1620 extern size_t strcspn(const char *, const char *); 1621 extern char *strerror(int); 1622 extern size_t strlen(const char *); 1623 extern char *strncat(char *, const char *, size_t); 1624 extern int strncmp(const char *, const char *, size_t); 1625 extern char *strncpy(char *, const char *, size_t); 1626 extern size_t strspn(const char *, const char *); 1627 extern char *strtok(char *, const char *); 1628 extern size_t strxfrm(char *, const char *, size_t); 1629 1630 /* 1631 * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the 1632 * function signatures for the following functions be replaced by 1633 * two declarations, both of which have the same behavior. 1634 */ 1635 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1636 extern void *memchr(const void *, int, size_t); 1637 extern char *strchr(const char *, int); 1638 extern char *strpbrk(const char *, const char *); 1639 extern char *strrchr(const char *, int); 1640 extern char *strstr(const char *, const char *); 1641 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2 1642 1643 /* 1644 * Allow global visibility for symbols defined in 1645 * C++ "std" namespace in <iso/string_iso.h>. 1646 */ 1647 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1648 extern int strerror_r(int, char *, size_t); 1649 1650 1651 1652 1653 1654 extern char *strtok_r(char *, const char *, 1655 char **); 1656 1657 1658 1659 1660 extern void *memccpy(void *, const void *, 1661 int, size_t); 1662 1663 1664 1665 1666 extern char *stpcpy(char *, const char *); 1667 extern char *stpncpy(char *, const char *, size_t); 1668 extern char *strndup(const char *, size_t); 1669 extern size_t strnlen(const char *, size_t); 1670 extern char *strsignal(int); 1671 1672 1673 1674 typedef struct _locale *locale_t; 1675 1676 1677 extern int strcoll_l(const char *, const char *, locale_t); 1678 extern size_t strxfrm_l(char *, const char *, 1679 size_t, locale_t); 1680 extern int strcasecmp_l(const char *, const char *, locale_t); 1681 extern int strncasecmp_l(const char *, const char *, size_t, locale_t); 1682 extern char *strerror_l(int, locale_t); 1683 1684 1685 1686 1687 1688 /* Note that some of these are also declared in strings.h for XPG4_2+ */ 1689 extern void explicit_bzero(void *, size_t); 1690 extern int uucopy(const void *, void *, size_t); 1691 extern int uucopystr(const void *, void *, size_t); 1692 extern int ffs(int); 1693 extern int ffsl(long); 1694 extern int ffsll(long long); 1695 extern int fls(int); 1696 extern int flsl(long); 1697 extern int flsll(long long); 1698 extern void *memmem(const void *, size_t, const void *, size_t); 1699 extern char *strcasestr(const char *, const char *); 1700 extern char *strnstr(const char *, const char *, size_t); 1701 extern size_t strlcpy(char *, const char *, size_t); 1702 extern size_t strlcat(char *, const char *, size_t); 1703 extern char *strsep(char **stringp, const char *delim); 1704 extern char *strchrnul(const char *, int); 1705 extern char *strcasestr_l(const char *, const char *, locale_t); 1706 extern int strcasecmp(const char *, const char *); 1707 extern int strncasecmp(const char *, const char *, size_t); 1708 1709 1710 1711 1712 1713 extern char *strdup(const char *); 1714 1715 1716 1717 1718 1719 1720 /* 1721 * gcc provides this inlining facility but Studio C does not. 1722 * We should use it exclusively once Studio C also provides it. 1723 */ 1724 extern void *__builtin_alloca(size_t); 1725 # 41 "sortmap.c" 2 1726 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 1727 /* 1728 * CDDL HEADER START 1729 * 1730 * The contents of this file are subject to the terms of the 1731 * Common Development and Distribution License (the "License"). 1732 * You may not use this file except in compliance with the License. 1733 * 1734 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1735 * or http://www.opensolaris.org/os/licensing. 1736 * See the License for the specific language governing permissions 1737 * and limitations under the License. 1738 * 1739 * When distributing Covered Code, include this CDDL HEADER in each 1740 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1741 * If applicable, add the following below this CDDL HEADER, with the 1742 * fields enclosed by brackets "[]" replaced with your own identifying 1743 * information: Portions Copyright [yyyy] [name of copyright owner] 1744 * 1745 * CDDL HEADER END 1746 */ 1747 1748 /* 1749 * Copyright (c) 2013 Gary Mills 1750 * 1751 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1752 * Use is subject to license terms. 1753 */ 1754 1755 /* Copyright (c) 1988 AT&T */ 1756 /* All Rights Reserved */ 1757 1758 1759 1760 1761 1762 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1763 /* 1764 * CDDL HEADER START 1765 * 1766 * The contents of this file are subject to the terms of the 1767 * Common Development and Distribution License (the "License"). 1768 * You may not use this file except in compliance with the License. 1769 * 1770 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1771 * or http://www.opensolaris.org/os/licensing. 1772 * See the License for the specific language governing permissions 1773 * and limitations under the License. 1774 * 1775 * When distributing Covered Code, include this CDDL HEADER in each 1776 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1777 * If applicable, add the following below this CDDL HEADER, with the 1778 * fields enclosed by brackets "[]" replaced with your own identifying 1779 * information: Portions Copyright [yyyy] [name of copyright owner] 1780 * 1781 * CDDL HEADER END 1782 */ 1783 1784 /* 1785 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1786 * Copyright 2016 Joyent, Inc. 1787 * 1788 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1789 * Use is subject to license terms. 1790 */ 1791 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 1792 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 1793 /* 1794 * CDDL HEADER START 1795 * 1796 * The contents of this file are subject to the terms of the 1797 * Common Development and Distribution License (the "License"). 1798 * You may not use this file except in compliance with the License. 1799 * 1800 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1801 * or http://www.opensolaris.org/os/licensing. 1802 * See the License for the specific language governing permissions 1803 * and limitations under the License. 1804 * 1805 * 1806 * When distributing Covered Code, include this CDDL HEADER in each 1807 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1808 * If applicable, add the following below this CDDL HEADER, with the 1809 * fields enclosed by brackets "[]" replaced with your own identifying 1810 * information: Portions Copyright [yyyy] [name of copyright owner] 1811 * 1812 * CDDL HEADER END 1813 */ 1814 1815 /* 1816 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1817 * Use is subject to license terms. 1818 * Copyright 2016 Joyent, Inc. 1819 */ 1820 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 1821 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1 1822 /* 1823 * CDDL HEADER START 1824 * 1825 * The contents of this file are subject to the terms of the 1826 * Common Development and Distribution License, Version 1.0 only 1827 * (the "License"). You may not use this file except in compliance 1828 * 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 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 1845 * Use is subject to license terms. 1846 */ 1847 1848 /* Copyright (c) 1988 AT&T */ 1849 /* All Rights Reserved */ 1850 1851 1852 /* 1853 * An application should not include this header directly. Instead it 1854 * should be included only through the inclusion of other Sun headers. 1855 * 1856 * The contents of this header is limited to identifiers specified in the 1857 * C Standard. Any new identifiers specified in future amendments to the 1858 * C Standard must be placed in this header. If these new identifiers 1859 * are required to also be in the C++ Standard "std" namespace, then for 1860 * anything other than macro definitions, corresponding "using" directives 1861 * must also be added to <limits.h>. 1862 */ 1863 1864 1865 1866 1867 #pragma ident "%Z%%M% %I% %E% SMI" 1868 1869 1870 1871 1872 1873 /* 1874 * Sizes of integral types 1875 */ 1876 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1877 /* min value of a "long int" */ 1878 1879 1880 1881 1882 1883 /* min value of a long long */ 1884 1885 /* max value of a long long */ 1886 1887 /* max value of "unsigned long long */ 1888 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 1889 1890 /* 1891 * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C 1892 * committee's working draft for the revision of the current ISO C standard, 1893 * ISO/IEC 9899:1990 Programming language - C. These are not currently 1894 * required by any standard but constitute a useful, general purpose set 1895 * of type definitions and limits which is namespace clean with respect to 1896 * all standards. 1897 */ 1898 1899 1900 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 1901 /* 1902 * CDDL HEADER START 1903 * 1904 * The contents of this file are subject to the terms of the 1905 * Common Development and Distribution License, Version 1.0 only 1906 * (the "License"). You may not use this file except in compliance 1907 * with the License. 1908 * 1909 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1910 * or http://www.opensolaris.org/os/licensing. 1911 * See the License for the specific language governing permissions 1912 * and limitations under the License. 1913 * 1914 * When distributing Covered Code, include this CDDL HEADER in each 1915 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1916 * If applicable, add the following below this CDDL HEADER, with the 1917 * fields enclosed by brackets "[]" replaced with your own identifying 1918 * information: Portions Copyright [yyyy] [name of copyright owner] 1919 * 1920 * CDDL HEADER END 1921 */ 1922 /* 1923 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1924 * 1925 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1926 * Use is subject to license terms. 1927 */ 1928 1929 1930 1931 1932 /* 1933 * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation 1934 * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999 1935 * Programming language - C. 1936 * 1937 * Programs/Modules should not directly include this file. Access to the 1938 * types defined in this file should be through the inclusion of one of the 1939 * following files: 1940 * 1941 * <limits.h> This nested inclusion is disabled for strictly 1942 * ANSI-C conforming compilations. The *_MIN 1943 * definitions are not visible to POSIX or XPG 1944 * conforming applications (due to what may be 1945 * a bug in the specification - this is under 1946 * investigation) 1947 * 1948 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 1949 * components of <inttypes.h>. 1950 * 1951 * <inttypes.h> For use by applications. 1952 * 1953 * See these files for more details. 1954 */ 1955 1956 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1957 /* 1958 * CDDL HEADER START 1959 * 1960 * The contents of this file are subject to the terms of the 1961 * Common Development and Distribution License (the "License"). 1962 * You may not use this file except in compliance with the License. 1963 * 1964 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1965 * or http://www.opensolaris.org/os/licensing. 1966 * See the License for the specific language governing permissions 1967 * and limitations under the License. 1968 * 1969 * When distributing Covered Code, include this CDDL HEADER in each 1970 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1971 * If applicable, add the following below this CDDL HEADER, with the 1972 * fields enclosed by brackets "[]" replaced with your own identifying 1973 * information: Portions Copyright [yyyy] [name of copyright owner] 1974 * 1975 * CDDL HEADER END 1976 */ 1977 1978 /* 1979 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1980 * Copyright 2016 Joyent, Inc. 1981 * 1982 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1983 * Use is subject to license terms. 1984 */ 1985 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2 1986 1987 1988 1989 1990 1991 /* 1992 * Limits 1993 * 1994 * The following define the limits for the types defined in <sys/int_types.h>. 1995 * 1996 * INTMAX_MIN (minimum value of the largest supported signed integer type), 1997 * INTMAX_MAX (maximum value of the largest supported signed integer type), 1998 * and UINTMAX_MAX (maximum value of the largest supported unsigned integer 1999 * type) can be set to implementation defined limits. 2000 * 2001 * NOTE : A programmer can test to see whether an implementation supports 2002 * a particular size of integer by testing if the macro that gives the 2003 * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX 2004 * tests false, the implementation does not support unsigned 64 bit integers. 2005 * 2006 * The type of these macros is intentionally unspecified. 2007 * 2008 * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs 2009 * where the ABI specifies "char" as unsigned when the translation mode is 2010 * not ANSI-C. 2011 */ 2012 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2013 /* 2014 * The following 2 macros are provided for testing whether the types 2015 * intptr_t and uintptr_t (integers large enough to hold a void *) are 2016 * defined in this header. They are needed in case the architecture can't 2017 * represent a pointer in any standard integral type. 2018 */ 2019 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2020 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */ 2021 2022 2023 2024 2025 2026 2027 /* 2028 * Maximum value of a "size_t". SIZE_MAX was previously defined 2029 * in <limits.h>, however, the standards specify it be defined 2030 * in <stdint.h>. The <stdint.h> headers includes this header as 2031 * does <limits.h>. The value of SIZE_MAX should not deviate 2032 * from the value of ULONG_MAX defined <sys/types.h>. 2033 */ 2034 2035 2036 2037 2038 2039 2040 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */ 2041 2042 2043 2044 2045 /* 2046 * Maximum limit of wchar_t. The WCHAR_* macros are also 2047 * defined in <iso/wchar_iso.h>, but inclusion of that header 2048 * will break ISO/IEC C namespace. 2049 */ 2050 2051 2052 2053 2054 /* Maximum limit of wint_t */ 2055 2056 2057 2058 2059 /* 2060 * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that 2061 * when including <limits.h> that the suffix _MAX is reserved but not the 2062 * suffix _MIN. However, until that issue is resolved.... 2063 */ 2064 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2065 /* Minimum value of a pointer-holding signed integer type */ 2066 2067 2068 2069 2070 2071 2072 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */ 2073 2074 2075 2076 2077 2078 2079 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */ 2080 2081 2082 2083 2084 /* 2085 * Minimum limit of wchar_t. The WCHAR_* macros are also 2086 * defined in <iso/wchar_iso.h>, but inclusion of that header 2087 * will break ISO/IEC C namespace. 2088 */ 2089 2090 2091 2092 2093 /* Minimum limit of wint_t */ 2094 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 2095 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2096 /* 2097 * ARG_MAX is calculated as follows: 2098 * NCARGS - space for other stuff on initial stack 2099 * like aux vectors, saved registers, etc.. 2100 */ 2101 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2102 /* 2103 * POSIX conformant definitions - An implementation may define 2104 * other symbols which reflect the actual implementation. Alternate 2105 * definitions may not be as restrictive as the POSIX definitions. 2106 */ 2107 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2108 /* POSIX.1c conformant */ 2109 2110 2111 2112 2113 2114 /* UNIX 03 conformant */ 2115 2116 2117 2118 2119 2120 /* 2121 * POSIX.2 and XPG4-XSH4 conformant definitions 2122 */ 2123 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2124 /* UNIX 03 conformant */ 2125 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2126 /* 2127 * For dual definitions for PASS_MAX and sysconf.c 2128 */ 2129 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2130 /* NLS printf() and scanf() */ 2131 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2132 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */ 2133 2134 2135 2136 /* of a double */ 2137 2138 2139 /* of a "float" */ 2140 2141 2142 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */ 2143 2144 2145 /* of a double */ 2146 2147 /* of a float */ 2148 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2149 /* 2150 * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the 2151 * related text states: 2152 * 2153 * A definition of one of the values from Table 2-5 shall be omitted from the 2154 * <limits.h> on specific implementations where the corresponding value is 2155 * equal to or greater than the stated minimum, but where the value can vary 2156 * depending on the file to which it is applied. The actual value supported for 2157 * a specific pathname shall be provided by the pathconf() (5.7.1) function. 2158 * 2159 * This is clear that any machine supporting multiple file system types 2160 * and/or a network can not include this define, regardless of protection 2161 * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags. 2162 * 2163 * #define NAME_MAX 14 2164 */ 2165 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2166 typedef long clock_t; 2167 2168 2169 extern long _sysconf(int); /* System Private interface to sysconf() */ 2170 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2171 /* Increased for illumos */ 2172 # 42 "sortmap.c" 2 2173 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 2174 /* 2175 * CDDL HEADER START 2176 * 2177 * The contents of this file are subject to the terms of the 2178 * Common Development and Distribution License (the "License"). 2179 * You may not use this file except in compliance with the License. 2180 * 2181 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2182 * or http://www.opensolaris.org/os/licensing. 2183 * See the License for the specific language governing permissions 2184 * and limitations under the License. 2185 * 2186 * When distributing Covered Code, include this CDDL HEADER in each 2187 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2188 * If applicable, add the following below this CDDL HEADER, with the 2189 * fields enclosed by brackets "[]" replaced with your own identifying 2190 * information: Portions Copyright [yyyy] [name of copyright owner] 2191 * 2192 * CDDL HEADER END 2193 */ 2194 2195 /* 2196 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2197 * Copyright (c) 2013 Gary Mills 2198 * 2199 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 2200 */ 2201 2202 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 2203 2204 /* Copyright (c) 1988 AT&T */ 2205 /* All Rights Reserved */ 2206 2207 2208 2209 2210 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1 2211 /* 2212 * CDDL HEADER START 2213 * 2214 * The contents of this file are subject to the terms of the 2215 * Common Development and Distribution License, Version 1.0 only 2216 * (the "License"). You may not use this file except in compliance 2217 * with the License. 2218 * 2219 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2220 * or http://www.opensolaris.org/os/licensing. 2221 * See the License for the specific language governing permissions 2222 * and limitations under the License. 2223 * 2224 * When distributing Covered Code, include this CDDL HEADER in each 2225 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2226 * If applicable, add the following below this CDDL HEADER, with the 2227 * fields enclosed by brackets "[]" replaced with your own identifying 2228 * information: Portions Copyright [yyyy] [name of copyright owner] 2229 * 2230 * CDDL HEADER END 2231 */ 2232 /* 2233 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2234 * Copyright 2014 PALO, Richard. 2235 * 2236 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2237 * Use is subject to license terms. 2238 */ 2239 2240 /* Copyright (c) 1988 AT&T */ 2241 /* All Rights Reserved */ 2242 2243 2244 /* 2245 * An application should not include this header directly. Instead it 2246 * should be included only through the inclusion of other Sun headers. 2247 * 2248 * The contents of this header is limited to identifiers specified in the 2249 * C Standard. Any new identifiers specified in future amendments to the 2250 * C Standard must be placed in this header. If these new identifiers 2251 * are required to also be in the C++ Standard "std" namespace, then for 2252 * anything other than macro definitions, corresponding "using" directives 2253 * must also be added to <locale.h>. 2254 */ 2255 2256 2257 2258 2259 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2260 /* 2261 * CDDL HEADER START 2262 * 2263 * The contents of this file are subject to the terms of the 2264 * Common Development and Distribution License (the "License"). 2265 * You may not use this file except in compliance with the License. 2266 * 2267 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2268 * or http://www.opensolaris.org/os/licensing. 2269 * See the License for the specific language governing permissions 2270 * and limitations under the License. 2271 * 2272 * When distributing Covered Code, include this CDDL HEADER in each 2273 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2274 * If applicable, add the following below this CDDL HEADER, with the 2275 * fields enclosed by brackets "[]" replaced with your own identifying 2276 * information: Portions Copyright [yyyy] [name of copyright owner] 2277 * 2278 * CDDL HEADER END 2279 */ 2280 2281 /* 2282 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2283 * Copyright 2016 Joyent, Inc. 2284 * 2285 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2286 * Use is subject to license terms. 2287 */ 2288 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 2289 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 2290 /* 2291 * This file and its contents are supplied under the terms of the 2292 * Common Development and Distribution License ("CDDL"), version 1.0. 2293 * You may only use this file in accordance with the terms of version 2294 * 1.0 of the CDDL. 2295 * 2296 * A full copy of the text of the CDDL should have accompanied this 2297 * source. A copy of the CDDL is also available via the Internet at 2298 * http://www.illumos.org/license/CDDL. 2299 */ 2300 2301 /* 2302 * Copyright 2014-2016 PALO, Richard. 2303 */ 2304 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 2305 2306 2307 2308 2309 2310 unsigned char __mb_cur_max(void); 2311 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2312 typedef struct { 2313 int quot; 2314 int rem; 2315 } div_t; 2316 2317 typedef struct { 2318 long quot; 2319 long rem; 2320 } ldiv_t; 2321 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2322 /* 2323 * wchar_t is a built-in type in standard C++ and as such is not 2324 * defined here when using standard C++. However, the GNU compiler 2325 * fixincludes utility nonetheless creates its own version of this 2326 * header for use by gcc and g++. In that version it adds a redundant 2327 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 2328 * header we need to include the following magic comment: 2329 * 2330 * we must use the C++ compiler's type 2331 * 2332 * The above comment should not be removed or changed until GNU 2333 * gcc/fixinc/inclhack.def is updated to bypass this header. 2334 */ 2335 2336 2337 2338 2339 2340 2341 typedef long wchar_t; 2342 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2343 extern void abort(void) __attribute__((__noreturn__)); 2344 extern int abs(int); 2345 extern int atexit(void (*)(void)); 2346 extern double atof(const char *); 2347 extern int atoi(const char *); 2348 extern long int atol(const char *); 2349 extern void *bsearch(const void *, const void *, size_t, size_t, 2350 int (*)(const void *, const void *)); 2351 2352 2353 2354 2355 2356 2357 extern void *calloc(size_t, size_t); 2358 extern div_t div(int, int); 2359 extern void exit(int) 2360 __attribute__((__noreturn__)); 2361 extern void free(void *); 2362 extern char *getenv(const char *); 2363 extern long int labs(long); 2364 extern ldiv_t ldiv(long, long); 2365 extern void *malloc(size_t); 2366 extern int mblen(const char *, size_t); 2367 extern size_t mbstowcs(wchar_t *, const char *, 2368 size_t); 2369 extern int mbtowc(wchar_t *, const char *, size_t); 2370 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); 2371 2372 2373 2374 2375 2376 extern int rand(void); 2377 extern void *realloc(void *, size_t); 2378 extern void srand(unsigned int); 2379 extern double strtod(const char *, char **); 2380 extern long int strtol(const char *, char **, int); 2381 extern unsigned long int strtoul(const char *, 2382 char **, int); 2383 extern int system(const char *); 2384 extern int wctomb(char *, wchar_t); 2385 extern size_t wcstombs(char *, const wchar_t *, 2386 size_t); 2387 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2388 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1 2389 /* 2390 * CDDL HEADER START 2391 * 2392 * The contents of this file are subject to the terms of the 2393 * Common Development and Distribution License, Version 1.0 only 2394 * (the "License"). You may not use this file except in compliance 2395 * with the License. 2396 * 2397 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2398 * or http://www.opensolaris.org/os/licensing. 2399 * See the License for the specific language governing permissions 2400 * and limitations under the License. 2401 * 2402 * When distributing Covered Code, include this CDDL HEADER in each 2403 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2404 * If applicable, add the following below this CDDL HEADER, with the 2405 * fields enclosed by brackets "[]" replaced with your own identifying 2406 * information: Portions Copyright [yyyy] [name of copyright owner] 2407 * 2408 * CDDL HEADER END 2409 */ 2410 /* 2411 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2412 * 2413 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2414 * Use is subject to license terms. 2415 */ 2416 2417 /* 2418 * An application should not include this header directly. Instead it 2419 * should be included only through the inclusion of other Sun headers. 2420 * 2421 * The contents of this header is limited to identifiers specified in 2422 * the C99 standard and in conflict with the C++ implementation of the 2423 * standard header. The C++ standard may adopt the C99 standard at 2424 * which point it is expected that the symbols included here will 2425 * become part of the C++ std namespace. 2426 */ 2427 2428 2429 2430 2431 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2432 /* 2433 * CDDL HEADER START 2434 * 2435 * The contents of this file are subject to the terms of the 2436 * Common Development and Distribution License (the "License"). 2437 * You may not use this file except in compliance with the License. 2438 * 2439 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2440 * or http://www.opensolaris.org/os/licensing. 2441 * See the License for the specific language governing permissions 2442 * and limitations under the License. 2443 * 2444 * When distributing Covered Code, include this CDDL HEADER in each 2445 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2446 * If applicable, add the following below this CDDL HEADER, with the 2447 * fields enclosed by brackets "[]" replaced with your own identifying 2448 * information: Portions Copyright [yyyy] [name of copyright owner] 2449 * 2450 * CDDL HEADER END 2451 */ 2452 2453 /* 2454 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2455 * Copyright 2016 Joyent, Inc. 2456 * 2457 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2458 * Use is subject to license terms. 2459 */ 2460 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2 2461 2462 2463 2464 2465 2466 /* 2467 * The following have been added as a result of the ISO/IEC 9899:1999 2468 * standard. For a strictly conforming C application, visibility is 2469 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 2470 * For non-strictly conforming C applications, there are no restrictions 2471 * on the C namespace. 2472 */ 2473 2474 2475 typedef struct { 2476 long long quot; 2477 long long rem; 2478 } lldiv_t; 2479 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2480 extern void _Exit(int); 2481 extern float strtof(const char *, char **); 2482 extern long double strtold(const char *, char **); 2483 2484 2485 extern long long atoll(const char *); 2486 extern long long llabs(long long); 2487 extern lldiv_t lldiv(long long, long long); 2488 extern long long strtoll(const char *, char **, 2489 int); 2490 extern unsigned long long strtoull(const char *, 2491 char **, int); 2492 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2493 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1 2494 /* 2495 * This file and its contents are supplied under the terms of the 2496 * Common Development and Distribution License ("CDDL"), version 1.0. 2497 * You may only use this file in accordance with the terms of version 2498 * 1.0 of the CDDL. 2499 * 2500 * A full copy of the text of the CDDL should have accompanied this 2501 * source. A copy of the CDDL is also available via the Internet at 2502 * http://www.illumos.org/license/CDDL. 2503 */ 2504 2505 /* 2506 * Copyright 2016 Joyent, Inc. 2507 */ 2508 2509 /* 2510 * An application should not include this header directly. Instead it 2511 * should be included only through the inclusion of other illumos headers. 2512 * 2513 * The contents of this header is limited to identifiers specified in 2514 * the C11 standard and in conflict with the C++ implementation of the 2515 * standard header. The C++ standard may adopt the C11 standard at 2516 * which point it is expected that the symbols included here will 2517 * become part of the C++ std namespace. 2518 */ 2519 2520 2521 2522 2523 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2524 /* 2525 * CDDL HEADER START 2526 * 2527 * The contents of this file are subject to the terms of the 2528 * Common Development and Distribution License (the "License"). 2529 * You may not use this file except in compliance with the License. 2530 * 2531 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2532 * or http://www.opensolaris.org/os/licensing. 2533 * See the License for the specific language governing permissions 2534 * and limitations under the License. 2535 * 2536 * When distributing Covered Code, include this CDDL HEADER in each 2537 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2538 * If applicable, add the following below this CDDL HEADER, with the 2539 * fields enclosed by brackets "[]" replaced with your own identifying 2540 * information: Portions Copyright [yyyy] [name of copyright owner] 2541 * 2542 * CDDL HEADER END 2543 */ 2544 2545 /* 2546 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2547 * Copyright 2016 Joyent, Inc. 2548 * 2549 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2550 * Use is subject to license terms. 2551 */ 2552 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2 2553 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2554 /* 2555 * The following have been added as a result of the ISO/IEC 9899:2011 2556 * standard. For a strictly conforming C application, visibility is 2557 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 2558 * For non-strictly conforming C applications, there are no restrictions 2559 * on the C namespace. 2560 */ 2561 2562 /* 2563 * Work around fix-includes and other bad actors with using multiple headers. 2564 */ 2565 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2566 extern void *aligned_alloc(size_t, size_t); 2567 extern int at_quick_exit(void (*)(void)); 2568 extern void quick_exit(int); 2569 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2570 2571 2572 2573 2574 2575 /* 2576 * Allow global visibility for symbols defined in 2577 * C++ "std" namespace in <iso/stdlib_iso.h>. 2578 */ 2579 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2580 /* 2581 * Allow global visibility for symbols defined in 2582 * C++ "std" namespace in <iso/stdlib_c11.h>. 2583 */ 2584 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2585 typedef unsigned int uid_t; /* UID type */ 2586 2587 2588 /* large file compilation environment setup */ 2589 2590 2591 2592 2593 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2594 #pragma redefine_extname mkstemp mkstemp64 2595 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2596 2597 2598 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2599 #pragma redefine_extname mkstemps mkstemps64 2600 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2601 2602 2603 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2604 #pragma redefine_extname mkostemp mkostemp64 2605 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2606 2607 2608 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2609 #pragma redefine_extname mkostemps mkostemps64 2610 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2611 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2612 /* In the LP64 compilation environment, all APIs are already large file */ 2613 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2614 extern int rand_r(unsigned int *); 2615 2616 2617 extern void _exithandle(void); 2618 2619 2620 2621 2622 extern double drand48(void); 2623 extern double erand48(unsigned short *); 2624 extern long jrand48(unsigned short *); 2625 extern void lcong48(unsigned short *); 2626 extern long lrand48(void); 2627 extern long mrand48(void); 2628 extern long nrand48(unsigned short *); 2629 extern unsigned short *seed48(unsigned short *); 2630 extern void srand48(long); 2631 extern int putenv(char *); 2632 extern void setkey(const char *); 2633 2634 2635 /* 2636 * swab() has historically been in <stdlib.h> as delivered from AT&T 2637 * and continues to be visible in the default compilation environment. 2638 * As of Issue 4 of the X/Open Portability Guides, swab() was declared 2639 * in <unistd.h>. As a result, with respect to X/Open namespace the 2640 * swab() declaration in this header is only visible for the XPG3 2641 * environment. 2642 */ 2643 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2644 extern void swab(const char *, char *, ssize_t); 2645 2646 2647 2648 2649 2650 extern int mkstemp(char *); 2651 2652 extern int mkstemps(char *, int); 2653 2654 2655 2656 2657 2658 extern int mkstemp64(char *); 2659 2660 extern int mkstemps64(char *, int); 2661 2662 2663 2664 2665 extern char *mkdtemp(char *); 2666 2667 2668 2669 extern int mkostemp(char *, int); 2670 extern int mkostemps(char *, int, int); 2671 2672 2673 extern int mkostemp64(char *, int); 2674 extern int mkostemps64(char *, int, int); 2675 2676 2677 2678 2679 2680 2681 extern long a64l(const char *); 2682 extern char *ecvt(double, int, int *, int *); 2683 extern char *fcvt(double, int, int *, int *); 2684 extern char *gcvt(double, int, char *); 2685 extern int getsubopt(char **, char *const *, char **); 2686 extern int grantpt(int); 2687 extern char *initstate(unsigned, char *, size_t); 2688 extern char *l64a(long); 2689 extern char *mktemp(char *); 2690 extern char *ptsname(int); 2691 extern long random(void); 2692 extern char *realpath(const char *, char *); 2693 extern char *setstate(const char *); 2694 extern void srandom(unsigned); 2695 extern int unlockpt(int); 2696 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 2697 2698 extern int ttyslot(void); 2699 extern void *valloc(size_t); 2700 2701 2702 2703 2704 2705 2706 extern int posix_memalign(void **, size_t, size_t); 2707 extern int posix_openpt(int); 2708 extern int setenv(const char *, const char *, int); 2709 extern int unsetenv(const char *); 2710 2711 2712 2713 2714 extern char *canonicalize_file_name(const char *); 2715 extern int clearenv(void); 2716 extern void closefrom(int); 2717 extern int daemon(int, int); 2718 extern int dup2(int, int); 2719 extern int dup3(int, int, int); 2720 extern int fdwalk(int (*)(void *, int), void *); 2721 extern char *qecvt(long double, int, int *, int *); 2722 extern char *qfcvt(long double, int, int *, int *); 2723 extern char *qgcvt(long double, int, char *); 2724 extern char *getcwd(char *, size_t); 2725 extern const char *getexecname(void); 2726 2727 2728 2729 2730 2731 2732 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2733 #pragma redefine_extname getlogin getloginx 2734 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2735 2736 2737 2738 2739 2740 2741 extern char *getlogin(void); 2742 2743 2744 extern int getopt(int, char *const *, const char *); 2745 extern char *optarg; 2746 extern int optind, opterr, optopt; 2747 extern char *getpass(const char *); 2748 extern char *getpassphrase(const char *); 2749 extern int getpw(uid_t, char *); 2750 extern int isatty(int); 2751 extern void *memalign(size_t, size_t); 2752 extern char *ttyname(int); 2753 extern char *mkdtemp(char *); 2754 extern const char *getprogname(void); 2755 extern void setprogname(const char *); 2756 2757 2758 extern char *lltostr(long long, char *); 2759 extern char *ulltostr(unsigned long long, char *); 2760 2761 2762 2763 2764 /* OpenBSD compatibility functions */ 2765 2766 2767 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1 2768 /* 2769 * CDDL HEADER START 2770 * 2771 * The contents of this file are subject to the terms of the 2772 * Common Development and Distribution License, Version 1.0 only 2773 * (the "License"). You may not use this file except in compliance 2774 * with the License. 2775 * 2776 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2777 * or http://www.opensolaris.org/os/licensing. 2778 * See the License for the specific language governing permissions 2779 * and limitations under the License. 2780 * 2781 * When distributing Covered Code, include this CDDL HEADER in each 2782 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2783 * If applicable, add the following below this CDDL HEADER, with the 2784 * fields enclosed by brackets "[]" replaced with your own identifying 2785 * information: Portions Copyright [yyyy] [name of copyright owner] 2786 * 2787 * CDDL HEADER END 2788 */ 2789 /* 2790 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2791 * 2792 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2793 * Use is subject to license terms. 2794 */ 2795 2796 2797 2798 2799 /* 2800 * This file, <inttypes.h>, is specified by the ISO C standard, 2801 * standard, ISO/IEC 9899:1999 Programming language - C and is 2802 * also defined by SUSv3. 2803 * 2804 * ISO International Organization for Standardization. 2805 * SUSv3 Single Unix Specification, Version 3 2806 */ 2807 2808 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2809 /* 2810 * CDDL HEADER START 2811 * 2812 * The contents of this file are subject to the terms of the 2813 * Common Development and Distribution License (the "License"). 2814 * You may not use this file except in compliance with the License. 2815 * 2816 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2817 * or http://www.opensolaris.org/os/licensing. 2818 * See the License for the specific language governing permissions 2819 * and limitations under the License. 2820 * 2821 * When distributing Covered Code, include this CDDL HEADER in each 2822 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2823 * If applicable, add the following below this CDDL HEADER, with the 2824 * fields enclosed by brackets "[]" replaced with your own identifying 2825 * information: Portions Copyright [yyyy] [name of copyright owner] 2826 * 2827 * CDDL HEADER END 2828 */ 2829 2830 /* 2831 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2832 * Copyright 2016 Joyent, Inc. 2833 * 2834 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2835 * Use is subject to license terms. 2836 */ 2837 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 2838 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1 2839 /* 2840 * CDDL HEADER START 2841 * 2842 * The contents of this file are subject to the terms of the 2843 * Common Development and Distribution License, Version 1.0 only 2844 * (the "License"). You may not use this file except in compliance 2845 * with the License. 2846 * 2847 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2848 * or http://www.opensolaris.org/os/licensing. 2849 * See the License for the specific language governing permissions 2850 * and limitations under the License. 2851 * 2852 * When distributing Covered Code, include this CDDL HEADER in each 2853 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2854 * If applicable, add the following below this CDDL HEADER, with the 2855 * fields enclosed by brackets "[]" replaced with your own identifying 2856 * information: Portions Copyright [yyyy] [name of copyright owner] 2857 * 2858 * CDDL HEADER END 2859 */ 2860 /* 2861 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 2862 * Use is subject to license terms. 2863 */ 2864 2865 2866 2867 2868 #pragma ident "%Z%%M% %I% %E% SMI" 2869 2870 /* 2871 * This header, <sys/inttypes.h>, contains (through nested inclusion) the 2872 * vast majority of the facilities specified for <inttypes.h> as defined 2873 * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 2874 * 2875 * Kernel/Driver developers are encouraged to include this file to access 2876 * the fixed size types, limits and utility macros. Application developers 2877 * should use the standard defined header <inttypes.h>. 2878 */ 2879 2880 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2881 /* 2882 * CDDL HEADER START 2883 * 2884 * The contents of this file are subject to the terms of the 2885 * Common Development and Distribution License (the "License"). 2886 * You may not use this file except in compliance with the License. 2887 * 2888 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2889 * or http://www.opensolaris.org/os/licensing. 2890 * See the License for the specific language governing permissions 2891 * and limitations under the License. 2892 * 2893 * When distributing Covered Code, include this CDDL HEADER in each 2894 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2895 * If applicable, add the following below this CDDL HEADER, with the 2896 * fields enclosed by brackets "[]" replaced with your own identifying 2897 * information: Portions Copyright [yyyy] [name of copyright owner] 2898 * 2899 * CDDL HEADER END 2900 */ 2901 2902 /* 2903 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2904 * Copyright 2016 Joyent, Inc. 2905 * 2906 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2907 * Use is subject to license terms. 2908 */ 2909 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2910 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 2911 /* 2912 * CDDL HEADER START 2913 * 2914 * The contents of this file are subject to the terms of the 2915 * Common Development and Distribution License, Version 1.0 only 2916 * (the "License"). You may not use this file except in compliance 2917 * with the License. 2918 * 2919 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2920 * or http://www.opensolaris.org/os/licensing. 2921 * See the License for the specific language governing permissions 2922 * and limitations under the License. 2923 * 2924 * When distributing Covered Code, include this CDDL HEADER in each 2925 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2926 * If applicable, add the following below this CDDL HEADER, with the 2927 * fields enclosed by brackets "[]" replaced with your own identifying 2928 * information: Portions Copyright [yyyy] [name of copyright owner] 2929 * 2930 * CDDL HEADER END 2931 */ 2932 /* 2933 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2934 * 2935 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2936 * Use is subject to license terms. 2937 */ 2938 2939 2940 2941 2942 /* 2943 * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation 2944 * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999 2945 * Programming language - C. 2946 * 2947 * Programs/Modules should not directly include this file. Access to the 2948 * types defined in this file should be through the inclusion of one of the 2949 * following files: 2950 * 2951 * <sys/types.h> Provides only the "_t" types defined in this 2952 * file which is a subset of the contents of 2953 * <inttypes.h>. (This can be appropriate for 2954 * all programs/modules except those claiming 2955 * ANSI-C conformance.) 2956 * 2957 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 2958 * components of <inttypes.h>. 2959 * 2960 * <inttypes.h> For use by applications. 2961 * 2962 * See these files for more details. 2963 */ 2964 2965 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2966 /* 2967 * CDDL HEADER START 2968 * 2969 * The contents of this file are subject to the terms of the 2970 * Common Development and Distribution License (the "License"). 2971 * You may not use this file except in compliance with the License. 2972 * 2973 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2974 * or http://www.opensolaris.org/os/licensing. 2975 * See the License for the specific language governing permissions 2976 * and limitations under the License. 2977 * 2978 * When distributing Covered Code, include this CDDL HEADER in each 2979 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2980 * If applicable, add the following below this CDDL HEADER, with the 2981 * fields enclosed by brackets "[]" replaced with your own identifying 2982 * information: Portions Copyright [yyyy] [name of copyright owner] 2983 * 2984 * CDDL HEADER END 2985 */ 2986 2987 /* 2988 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2989 * Copyright 2016 Joyent, Inc. 2990 * 2991 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2992 * Use is subject to license terms. 2993 */ 2994 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2 2995 2996 2997 2998 2999 3000 /* 3001 * Basic / Extended integer types 3002 * 3003 * The following defines the basic fixed-size integer types. 3004 * 3005 * Implementations are free to typedef them to Standard C integer types or 3006 * extensions that they support. If an implementation does not support one 3007 * of the particular integer data types below, then it should not define the 3008 * typedefs and macros corresponding to that data type. Note that int8_t 3009 * is not defined in -Xs mode on ISAs for which the ABI specifies "char" 3010 * as an unsigned entity because there is no way to define an eight bit 3011 * signed integral. 3012 */ 3013 3014 typedef char int8_t; 3015 3016 3017 3018 typedef short int16_t; 3019 typedef int int32_t; 3020 3021 3022 3023 3024 3025 3026 typedef long long int64_t; 3027 3028 3029 3030 typedef unsigned char uint8_t; 3031 typedef unsigned short uint16_t; 3032 typedef unsigned int uint32_t; 3033 3034 3035 3036 3037 typedef unsigned long long uint64_t; 3038 3039 3040 3041 /* 3042 * intmax_t and uintmax_t are to be the longest (in number of bits) signed 3043 * and unsigned integer types supported by the implementation. 3044 */ 3045 3046 typedef int64_t intmax_t; 3047 typedef uint64_t uintmax_t; 3048 3049 3050 3051 3052 3053 /* 3054 * intptr_t and uintptr_t are signed and unsigned integer types large enough 3055 * to hold any data pointer; that is, data pointers can be assigned into or 3056 * from these integer types without losing precision. 3057 */ 3058 3059 3060 3061 3062 typedef int intptr_t; 3063 typedef unsigned int uintptr_t; 3064 3065 3066 /* 3067 * The following define the fastest integer types that can hold the 3068 * specified number of bits. 3069 */ 3070 3071 typedef char int_fast8_t; 3072 3073 3074 3075 typedef int int_fast16_t; 3076 typedef int int_fast32_t; 3077 3078 3079 3080 3081 typedef long long int_fast64_t; 3082 3083 3084 3085 typedef unsigned char uint_fast8_t; 3086 typedef unsigned int uint_fast16_t; 3087 typedef unsigned int uint_fast32_t; 3088 3089 3090 3091 3092 typedef unsigned long long uint_fast64_t; 3093 3094 3095 3096 /* 3097 * The following define the smallest integer types that can hold the 3098 * specified number of bits. 3099 */ 3100 3101 typedef char int_least8_t; 3102 3103 3104 3105 typedef short int_least16_t; 3106 typedef int int_least32_t; 3107 3108 3109 3110 3111 typedef long long int_least64_t; 3112 3113 3114 3115 /* 3116 * If these are changed, please update char16_t and char32_t in head/uchar.h. 3117 */ 3118 typedef unsigned char uint_least8_t; 3119 typedef unsigned short uint_least16_t; 3120 typedef unsigned int uint_least32_t; 3121 3122 3123 3124 3125 typedef unsigned long long uint_least64_t; 3126 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3127 3128 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 3129 /* 3130 * CDDL HEADER START 3131 * 3132 * The contents of this file are subject to the terms of the 3133 * Common Development and Distribution License, Version 1.0 only 3134 * (the "License"). You may not use this file except in compliance 3135 * with the License. 3136 * 3137 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3138 * or http://www.opensolaris.org/os/licensing. 3139 * See the License for the specific language governing permissions 3140 * and limitations under the License. 3141 * 3142 * When distributing Covered Code, include this CDDL HEADER in each 3143 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3144 * If applicable, add the following below this CDDL HEADER, with the 3145 * fields enclosed by brackets "[]" replaced with your own identifying 3146 * information: Portions Copyright [yyyy] [name of copyright owner] 3147 * 3148 * CDDL HEADER END 3149 */ 3150 /* 3151 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3152 * 3153 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3154 * Use is subject to license terms. 3155 */ 3156 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3157 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 3158 /* 3159 * CDDL HEADER START 3160 * 3161 * The contents of this file are subject to the terms of the 3162 * Common Development and Distribution License, Version 1.0 only 3163 * (the "License"). You may not use this file except in compliance 3164 * with the License. 3165 * 3166 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3167 * or http://www.opensolaris.org/os/licensing. 3168 * See the License for the specific language governing permissions 3169 * and limitations under the License. 3170 * 3171 * When distributing Covered Code, include this CDDL HEADER in each 3172 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3173 * If applicable, add the following below this CDDL HEADER, with the 3174 * fields enclosed by brackets "[]" replaced with your own identifying 3175 * information: Portions Copyright [yyyy] [name of copyright owner] 3176 * 3177 * CDDL HEADER END 3178 */ 3179 /* 3180 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3181 * 3182 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3183 * Use is subject to license terms. 3184 */ 3185 3186 3187 3188 3189 /* 3190 * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation 3191 * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working 3192 * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990 3193 * Programming language - C. 3194 * 3195 * Programs/Modules should not directly include this file. Access to the 3196 * types defined in this file should be through the inclusion of one of the 3197 * following files: 3198 * 3199 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3200 * components of <inttypes.h>. 3201 * 3202 * <inttypes.h> For use by applications. 3203 * 3204 * See these files for more details. 3205 * 3206 * Use at your own risk. This file will track the evolution of the revision 3207 * of the current ISO C standard. As of February 1996, the committee is 3208 * squarely behind the fixed sized types. 3209 */ 3210 3211 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3212 /* 3213 * CDDL HEADER START 3214 * 3215 * The contents of this file are subject to the terms of the 3216 * Common Development and Distribution License (the "License"). 3217 * You may not use this file except in compliance with the License. 3218 * 3219 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3220 * or http://www.opensolaris.org/os/licensing. 3221 * See the License for the specific language governing permissions 3222 * and limitations under the License. 3223 * 3224 * When distributing Covered Code, include this CDDL HEADER in each 3225 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3226 * If applicable, add the following below this CDDL HEADER, with the 3227 * fields enclosed by brackets "[]" replaced with your own identifying 3228 * information: Portions Copyright [yyyy] [name of copyright owner] 3229 * 3230 * CDDL HEADER END 3231 */ 3232 3233 /* 3234 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3235 * Copyright 2016 Joyent, Inc. 3236 * 3237 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3238 * Use is subject to license terms. 3239 */ 3240 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2 3241 3242 3243 3244 3245 3246 /* 3247 * Constants 3248 * 3249 * The following macros create constants of the types defined in 3250 * <sys/int_types.h>. The intent is that: 3251 * Constants defined using these macros have a specific size and 3252 * signedness. The suffix used for int64_t and uint64_t (ll and ull) 3253 * are for examples only. Implementations are permitted to use other 3254 * suffixes. 3255 * 3256 * The "CSTYLED" comments are flags to an internal code style analysis tool 3257 * telling it to silently accept the line which follows. This internal 3258 * standard requires a space between arguments, but the historical, 3259 * non-ANSI-C ``method'' of concatenation can't tolerate those spaces. 3260 */ 3261 /* CSTYLED */ 3262 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 3263 /* CSTYLED */ 3264 3265 3266 3267 3268 /* CSTYLED */ 3269 3270 /* CSTYLED */ 3271 3272 /* CSTYLED */ 3273 3274 3275 3276 3277 3278 3279 /* CSTYLED */ 3280 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 3281 /* CSTYLED */ 3282 3283 /* CSTYLED */ 3284 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3285 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1 3286 /* 3287 * CDDL HEADER START 3288 * 3289 * The contents of this file are subject to the terms of the 3290 * Common Development and Distribution License, Version 1.0 only 3291 * (the "License"). You may not use this file except in compliance 3292 * with the License. 3293 * 3294 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3295 * or http://www.opensolaris.org/os/licensing. 3296 * See the License for the specific language governing permissions 3297 * and limitations under the License. 3298 * 3299 * When distributing Covered Code, include this CDDL HEADER in each 3300 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3301 * If applicable, add the following below this CDDL HEADER, with the 3302 * fields enclosed by brackets "[]" replaced with your own identifying 3303 * information: Portions Copyright [yyyy] [name of copyright owner] 3304 * 3305 * CDDL HEADER END 3306 */ 3307 /* 3308 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3309 * 3310 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3311 * Use is subject to license terms. 3312 */ 3313 3314 3315 3316 3317 /* 3318 * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation 3319 * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999 3320 * Programming language - C. 3321 * 3322 * ISO International Organization for Standardization. 3323 * 3324 * Programs/Modules should not directly include this file. Access to the 3325 * types defined in this file should be through the inclusion of one of the 3326 * following files: 3327 * 3328 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3329 * components of <inttypes.h>. 3330 * 3331 * <inttypes.h> For use by applications. 3332 * 3333 * See these files for more details. 3334 */ 3335 3336 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3337 /* 3338 * CDDL HEADER START 3339 * 3340 * The contents of this file are subject to the terms of the 3341 * Common Development and Distribution License (the "License"). 3342 * You may not use this file except in compliance with the License. 3343 * 3344 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3345 * or http://www.opensolaris.org/os/licensing. 3346 * See the License for the specific language governing permissions 3347 * and limitations under the License. 3348 * 3349 * When distributing Covered Code, include this CDDL HEADER in each 3350 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3351 * If applicable, add the following below this CDDL HEADER, with the 3352 * fields enclosed by brackets "[]" replaced with your own identifying 3353 * information: Portions Copyright [yyyy] [name of copyright owner] 3354 * 3355 * CDDL HEADER END 3356 */ 3357 3358 /* 3359 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3360 * Copyright 2016 Joyent, Inc. 3361 * 3362 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3363 * Use is subject to license terms. 3364 */ 3365 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2 3366 3367 3368 3369 3370 3371 /* 3372 * Formatted I/O 3373 * 3374 * The following macros can be used even when an implementation has not 3375 * extended the printf/scanf family of functions. 3376 * 3377 * The form of the names of the macros is either "PRI" for printf specifiers 3378 * or "SCN" for scanf specifiers, followed by the conversion specifier letter 3379 * followed by the datatype size. For example, PRId32 is the macro for 3380 * the printf d conversion specifier with the flags for 32 bit datatype. 3381 * 3382 * An example using one of these macros: 3383 * 3384 * uint64_t u; 3385 * printf("u = %016" PRIx64 "\n", u); 3386 * 3387 * For the purpose of example, the definitions of the printf/scanf macros 3388 * below have the values appropriate for a machine with 8 bit shorts, 16 3389 * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation 3390 * mode, and 64 bit long longs. 3391 */ 3392 3393 /* 3394 * fprintf macros for signed integers 3395 */ 3396 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3397 /* 3398 * fprintf macros for unsigned integers 3399 */ 3400 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3401 /* 3402 * fprintf macros for pointers 3403 */ 3404 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3405 /* 3406 * fscanf macros for signed integers 3407 */ 3408 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3409 /* 3410 * fscanf macros for unsigned integers 3411 */ 3412 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3413 /* 3414 * The following macros define I/O formats for intmax_t and uintmax_t. 3415 */ 3416 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3417 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 3418 3419 3420 3421 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1 3422 /* 3423 * CDDL HEADER START 3424 * 3425 * The contents of this file are subject to the terms of the 3426 * Common Development and Distribution License, Version 1.0 only 3427 * (the "License"). You may not use this file except in compliance 3428 * with the License. 3429 * 3430 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3431 * or http://www.opensolaris.org/os/licensing. 3432 * See the License for the specific language governing permissions 3433 * and limitations under the License. 3434 * 3435 * When distributing Covered Code, include this CDDL HEADER in each 3436 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3437 * If applicable, add the following below this CDDL HEADER, with the 3438 * fields enclosed by brackets "[]" replaced with your own identifying 3439 * information: Portions Copyright [yyyy] [name of copyright owner] 3440 * 3441 * CDDL HEADER END 3442 */ 3443 /* 3444 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 3445 * Use is subject to license terms. 3446 */ 3447 3448 3449 3450 3451 #pragma ident "%Z%%M% %I% %E% SMI" 3452 3453 /* 3454 * This header is included by <stdint.h> which was introduced by 3455 * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 3456 * The header is a subset of the <inttypes.h> header. 3457 */ 3458 3459 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 3460 /* 3461 * CDDL HEADER START 3462 * 3463 * The contents of this file are subject to the terms of the 3464 * Common Development and Distribution License, Version 1.0 only 3465 * (the "License"). You may not use this file except in compliance 3466 * with the License. 3467 * 3468 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3469 * or http://www.opensolaris.org/os/licensing. 3470 * See the License for the specific language governing permissions 3471 * and limitations under the License. 3472 * 3473 * When distributing Covered Code, include this CDDL HEADER in each 3474 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3475 * If applicable, add the following below this CDDL HEADER, with the 3476 * fields enclosed by brackets "[]" replaced with your own identifying 3477 * information: Portions Copyright [yyyy] [name of copyright owner] 3478 * 3479 * CDDL HEADER END 3480 */ 3481 /* 3482 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3483 * 3484 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3485 * Use is subject to license terms. 3486 */ 3487 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3488 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 3489 /* 3490 * CDDL HEADER START 3491 * 3492 * The contents of this file are subject to the terms of the 3493 * Common Development and Distribution License, Version 1.0 only 3494 * (the "License"). You may not use this file except in compliance 3495 * with the License. 3496 * 3497 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3498 * or http://www.opensolaris.org/os/licensing. 3499 * See the License for the specific language governing permissions 3500 * and limitations under the License. 3501 * 3502 * When distributing Covered Code, include this CDDL HEADER in each 3503 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3504 * If applicable, add the following below this CDDL HEADER, with the 3505 * fields enclosed by brackets "[]" replaced with your own identifying 3506 * information: Portions Copyright [yyyy] [name of copyright owner] 3507 * 3508 * CDDL HEADER END 3509 */ 3510 /* 3511 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3512 * 3513 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3514 * Use is subject to license terms. 3515 */ 3516 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3517 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 3518 /* 3519 * CDDL HEADER START 3520 * 3521 * The contents of this file are subject to the terms of the 3522 * Common Development and Distribution License, Version 1.0 only 3523 * (the "License"). You may not use this file except in compliance 3524 * with the License. 3525 * 3526 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3527 * or http://www.opensolaris.org/os/licensing. 3528 * See the License for the specific language governing permissions 3529 * and limitations under the License. 3530 * 3531 * When distributing Covered Code, include this CDDL HEADER in each 3532 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3533 * If applicable, add the following below this CDDL HEADER, with the 3534 * fields enclosed by brackets "[]" replaced with your own identifying 3535 * information: Portions Copyright [yyyy] [name of copyright owner] 3536 * 3537 * CDDL HEADER END 3538 */ 3539 /* 3540 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3541 * 3542 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3543 * Use is subject to license terms. 3544 */ 3545 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3546 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 3547 3548 3549 3550 3551 3552 3553 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */ 3554 3555 /* 3556 * wchar_t is a built-in type in standard C++ and as such is not 3557 * defined here when using standard C++. However, the GNU compiler 3558 * fixincludes utility nonetheless creates its own version of this 3559 * header for use by gcc and g++. In that version it adds a redundant 3560 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 3561 * header we need to include the following magic comment: 3562 * 3563 * we must use the C++ compiler's type 3564 * 3565 * The above comment should not be removed or changed until GNU 3566 * gcc/fixinc/inclhack.def is updated to bypass this header. 3567 */ 3568 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3569 typedef struct { 3570 intmax_t quot; 3571 intmax_t rem; 3572 } imaxdiv_t; 3573 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3574 extern intmax_t imaxabs(intmax_t); 3575 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 3576 extern intmax_t strtoimax(const char *, char **, 3577 int); 3578 extern uintmax_t strtoumax(const char *, char **, 3579 int); 3580 extern intmax_t wcstoimax(const wchar_t *, 3581 wchar_t **, int); 3582 extern uintmax_t wcstoumax(const wchar_t *, 3583 wchar_t **, int); 3584 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 3585 extern uint32_t arc4random(void); 3586 extern void arc4random_buf(void *, size_t); 3587 extern uint32_t arc4random_uniform(uint32_t); 3588 extern void freezero(void *, size_t); 3589 extern void *recallocarray(void *, size_t, size_t, size_t); 3590 # 43 "sortmap.c" 2 3591 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1 3592 /* 3593 * CDDL HEADER START 3594 * 3595 * The contents of this file are subject to the terms of the 3596 * Common Development and Distribution License (the "License"). 3597 * You may not use this file except in compliance with the License. 3598 * 3599 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3600 * or http://www.opensolaris.org/os/licensing. 3601 * See the License for the specific language governing permissions 3602 * and limitations under the License. 3603 * 3604 * When distributing Covered Code, include this CDDL HEADER in each 3605 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3606 * If applicable, add the following below this CDDL HEADER, with the 3607 * fields enclosed by brackets "[]" replaced with your own identifying 3608 * information: Portions Copyright [yyyy] [name of copyright owner] 3609 * 3610 * CDDL HEADER END 3611 */ 3612 3613 /* 3614 * Copyright 2014 PALO, Richard. 3615 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3616 * Copyright (c) 2013 Gary Mills 3617 * 3618 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 3619 */ 3620 3621 /* Copyright (c) 1988 AT&T */ 3622 /* All Rights Reserved */ 3623 3624 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 3625 3626 3627 3628 3629 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3630 /* 3631 * CDDL HEADER START 3632 * 3633 * The contents of this file are subject to the terms of the 3634 * Common Development and Distribution License (the "License"). 3635 * You may not use this file except in compliance with the License. 3636 * 3637 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3638 * or http://www.opensolaris.org/os/licensing. 3639 * See the License for the specific language governing permissions 3640 * and limitations under the License. 3641 * 3642 * When distributing Covered Code, include this CDDL HEADER in each 3643 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3644 * If applicable, add the following below this CDDL HEADER, with the 3645 * fields enclosed by brackets "[]" replaced with your own identifying 3646 * information: Portions Copyright [yyyy] [name of copyright owner] 3647 * 3648 * CDDL HEADER END 3649 */ 3650 3651 /* 3652 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3653 * Copyright 2016 Joyent, Inc. 3654 * 3655 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3656 * Use is subject to license terms. 3657 */ 3658 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3659 3660 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3661 /* 3662 * This file and its contents are supplied under the terms of the 3663 * Common Development and Distribution License ("CDDL"), version 1.0. 3664 * You may only use this file in accordance with the terms of version 3665 * 1.0 of the CDDL. 3666 * 3667 * A full copy of the text of the CDDL should have accompanied this 3668 * source. A copy of the CDDL is also available via the Internet at 3669 * http://www.illumos.org/license/CDDL. 3670 */ 3671 3672 /* 3673 * Copyright 2014-2016 PALO, Richard. 3674 */ 3675 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3676 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3677 /* 3678 * CDDL HEADER START 3679 * 3680 * The contents of this file are subject to the terms of the 3681 * Common Development and Distribution License (the "License"). 3682 * You may not use this file except in compliance with the License. 3683 * 3684 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3685 * or http://www.opensolaris.org/os/licensing. 3686 * See the License for the specific language governing permissions 3687 * and limitations under the License. 3688 * 3689 * When distributing Covered Code, include this CDDL HEADER in each 3690 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3691 * If applicable, add the following below this CDDL HEADER, with the 3692 * fields enclosed by brackets "[]" replaced with your own identifying 3693 * information: Portions Copyright [yyyy] [name of copyright owner] 3694 * 3695 * CDDL HEADER END 3696 */ 3697 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 3698 /* All Rights Reserved */ 3699 3700 3701 /* 3702 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3703 * Use is subject to license terms. 3704 * 3705 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 3706 * Copyright 2016 Joyent, Inc. 3707 */ 3708 3709 3710 3711 3712 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3713 /* 3714 * CDDL HEADER START 3715 * 3716 * The contents of this file are subject to the terms of the 3717 * Common Development and Distribution License (the "License"). 3718 * You may not use this file except in compliance with the License. 3719 * 3720 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3721 * or http://www.opensolaris.org/os/licensing. 3722 * See the License for the specific language governing permissions 3723 * and limitations under the License. 3724 * 3725 * When distributing Covered Code, include this CDDL HEADER in each 3726 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3727 * If applicable, add the following below this CDDL HEADER, with the 3728 * fields enclosed by brackets "[]" replaced with your own identifying 3729 * information: Portions Copyright [yyyy] [name of copyright owner] 3730 * 3731 * CDDL HEADER END 3732 */ 3733 3734 /* 3735 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3736 * Copyright 2016 Joyent, Inc. 3737 * 3738 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3739 * Use is subject to license terms. 3740 */ 3741 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3742 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3743 /* 3744 * CDDL HEADER START 3745 * 3746 * The contents of this file are subject to the terms of the 3747 * Common Development and Distribution License (the "License"). 3748 * You may not use this file except in compliance with the License. 3749 * 3750 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3751 * or http://www.opensolaris.org/os/licensing. 3752 * See the License for the specific language governing permissions 3753 * and limitations under the License. 3754 * 3755 * 3756 * When distributing Covered Code, include this CDDL HEADER in each 3757 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3758 * If applicable, add the following below this CDDL HEADER, with the 3759 * fields enclosed by brackets "[]" replaced with your own identifying 3760 * information: Portions Copyright [yyyy] [name of copyright owner] 3761 * 3762 * CDDL HEADER END 3763 */ 3764 3765 /* 3766 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3767 * Use is subject to license terms. 3768 * Copyright 2016 Joyent, Inc. 3769 */ 3770 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3771 3772 /* 3773 * Machine dependent definitions moved to <sys/machtypes.h>. 3774 */ 3775 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1 3776 /* 3777 * CDDL HEADER START 3778 * 3779 * The contents of this file are subject to the terms of the 3780 * Common Development and Distribution License, Version 1.0 only 3781 * (the "License"). You may not use this file except in compliance 3782 * with the License. 3783 * 3784 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3785 * or http://www.opensolaris.org/os/licensing. 3786 * See the License for the specific language governing permissions 3787 * and limitations under the License. 3788 * 3789 * When distributing Covered Code, include this CDDL HEADER in each 3790 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3791 * If applicable, add the following below this CDDL HEADER, with the 3792 * fields enclosed by brackets "[]" replaced with your own identifying 3793 * information: Portions Copyright [yyyy] [name of copyright owner] 3794 * 3795 * CDDL HEADER END 3796 */ 3797 /* 3798 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3799 * Use is subject to license terms. 3800 */ 3801 3802 3803 3804 3805 #pragma ident "%Z%%M% %I% %E% SMI" 3806 3807 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3808 /* 3809 * CDDL HEADER START 3810 * 3811 * The contents of this file are subject to the terms of the 3812 * Common Development and Distribution License (the "License"). 3813 * You may not use this file except in compliance with the License. 3814 * 3815 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3816 * or http://www.opensolaris.org/os/licensing. 3817 * See the License for the specific language governing permissions 3818 * and limitations under the License. 3819 * 3820 * When distributing Covered Code, include this CDDL HEADER in each 3821 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3822 * If applicable, add the following below this CDDL HEADER, with the 3823 * fields enclosed by brackets "[]" replaced with your own identifying 3824 * information: Portions Copyright [yyyy] [name of copyright owner] 3825 * 3826 * CDDL HEADER END 3827 */ 3828 3829 /* 3830 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3831 * Copyright 2016 Joyent, Inc. 3832 * 3833 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3834 * Use is subject to license terms. 3835 */ 3836 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 3837 3838 3839 3840 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1 3841 /* 3842 * CDDL HEADER START 3843 * 3844 * The contents of this file are subject to the terms of the 3845 * Common Development and Distribution License (the "License"). 3846 * You may not use this file except in compliance with the License. 3847 * 3848 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3849 * or http://www.opensolaris.org/os/licensing. 3850 * See the License for the specific language governing permissions 3851 * and limitations under the License. 3852 * 3853 * When distributing Covered Code, include this CDDL HEADER in each 3854 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3855 * If applicable, add the following below this CDDL HEADER, with the 3856 * fields enclosed by brackets "[]" replaced with your own identifying 3857 * information: Portions Copyright [yyyy] [name of copyright owner] 3858 * 3859 * CDDL HEADER END 3860 */ 3861 /* 3862 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 3863 * Use is subject to license terms. 3864 */ 3865 3866 3867 3868 3869 #pragma ident "%Z%%M% %I% %E% SMI" 3870 3871 3872 3873 3874 3875 /* 3876 * Machine dependent types: 3877 * 3878 * intel ia32 Version 3879 */ 3880 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 3881 typedef struct _label_t { long val[6]; } label_t; 3882 3883 3884 3885 typedef unsigned char lock_t; /* lock work for busy wait */ 3886 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 3887 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3888 3889 /* 3890 * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C 3891 * committee's working draft for the revision of the current ISO C standard, 3892 * ISO/IEC 9899:1990 Programming language - C. These are not currently 3893 * required by any standard but constitute a useful, general purpose set 3894 * of type definitions which is namespace clean with respect to all standards. 3895 */ 3896 3897 3898 3899 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 3900 /* 3901 * CDDL HEADER START 3902 * 3903 * The contents of this file are subject to the terms of the 3904 * Common Development and Distribution License, Version 1.0 only 3905 * (the "License"). You may not use this file except in compliance 3906 * with the License. 3907 * 3908 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3909 * or http://www.opensolaris.org/os/licensing. 3910 * See the License for the specific language governing permissions 3911 * and limitations under the License. 3912 * 3913 * When distributing Covered Code, include this CDDL HEADER in each 3914 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3915 * If applicable, add the following below this CDDL HEADER, with the 3916 * fields enclosed by brackets "[]" replaced with your own identifying 3917 * information: Portions Copyright [yyyy] [name of copyright owner] 3918 * 3919 * CDDL HEADER END 3920 */ 3921 /* 3922 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3923 * 3924 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3925 * Use is subject to license terms. 3926 */ 3927 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3928 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3929 /* 3930 * Strictly conforming ANSI C environments prior to the 1999 3931 * revision of the C Standard (ISO/IEC 9899:1999) do not have 3932 * the long long data type. 3933 */ 3934 3935 typedef long long longlong_t; 3936 typedef unsigned long long u_longlong_t; 3937 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3938 /* 3939 * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had 3940 * to use them instead of int32_t and uint32_t because DEC had 3941 * shipped 64-bit wide. 3942 */ 3943 3944 3945 3946 3947 typedef long t_scalar_t; /* historical versions */ 3948 typedef unsigned long t_uscalar_t; 3949 3950 3951 /* 3952 * POSIX Extensions 3953 */ 3954 typedef unsigned char uchar_t; 3955 typedef unsigned short ushort_t; 3956 typedef unsigned int uint_t; 3957 typedef unsigned long ulong_t; 3958 3959 typedef char *caddr_t; /* ?<core address> type */ 3960 typedef long daddr_t; /* <disk address> type */ 3961 typedef short cnt_t; /* ?<count> type */ 3962 3963 3964 3965 3966 3967 3968 typedef int ptrdiff_t; /* (historical version) */ 3969 3970 3971 3972 /* 3973 * VM-related types 3974 */ 3975 typedef ulong_t pfn_t; /* page frame number */ 3976 typedef ulong_t pgcnt_t; /* number of pages */ 3977 typedef long spgcnt_t; /* signed number of pages */ 3978 3979 typedef uchar_t use_t; /* use count for swap. */ 3980 typedef short sysid_t; 3981 typedef short index_t; 3982 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */ 3983 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */ 3984 3985 /* 3986 * The size of off_t and related types depends on the setting of 3987 * _FILE_OFFSET_BITS. (Note that other system headers define other types 3988 * related to those defined here.) 3989 * 3990 * If _LARGEFILE64_SOURCE is defined, variants of these types that are 3991 * explicitly 64 bits wide become available. 3992 */ 3993 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3994 typedef u_longlong_t ino_t; /* expanded inode type */ 3995 typedef longlong_t blkcnt_t; /* count of file blocks */ 3996 typedef u_longlong_t fsblkcnt_t; /* count of file system blocks */ 3997 typedef u_longlong_t fsfilcnt_t; /* count of files */ 3998 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3999 typedef u_longlong_t ino64_t; /* expanded inode type */ 4000 typedef longlong_t blkcnt64_t; /* count of file blocks */ 4001 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */ 4002 typedef u_longlong_t fsfilcnt64_t; /* count of files */ 4003 4004 4005 4006 4007 4008 4009 typedef long blksize_t; /* used for block sizes */ 4010 4011 4012 4013 4014 4015 typedef enum { B_FALSE, B_TRUE } boolean_t; 4016 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4017 /* 4018 * The {u,}pad64_t types can be used in structures such that those structures 4019 * may be accessed by code produced by compilation environments which don't 4020 * support a 64 bit integral datatype. The intention is not to allow 4021 * use of these fields in such environments, but to maintain the alignment 4022 * and offsets of the structure. 4023 * 4024 * Similar comments for {u,}pad128_t. 4025 * 4026 * Note that these types do NOT generate any stronger alignment constraints 4027 * than those available in the underlying ABI. See <sys/isa_defs.h> 4028 */ 4029 4030 typedef int64_t pad64_t; 4031 typedef uint64_t upad64_t; 4032 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4033 typedef union { 4034 long double _q; 4035 int32_t _l[4]; 4036 } pad128_t; 4037 4038 typedef union { 4039 long double _q; 4040 uint32_t _l[4]; 4041 } upad128_t; 4042 4043 typedef longlong_t offset_t; 4044 typedef u_longlong_t u_offset_t; 4045 typedef u_longlong_t len_t; 4046 typedef u_longlong_t diskaddr_t; 4047 4048 4049 4050 4051 /* 4052 * Definitions remaining from previous partial support for 64-bit file 4053 * offsets. This partial support for devices greater than 2gb requires 4054 * compiler support for long long. 4055 */ 4056 4057 typedef union { 4058 offset_t _f; /* Full 64 bit offset value */ 4059 struct { 4060 int32_t _l; /* lower 32 bits of offset value */ 4061 int32_t _u; /* upper 32 bits of offset value */ 4062 } _p; 4063 } lloff_t; 4064 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4065 typedef union { 4066 longlong_t _f; /* Full 64 bit disk address value */ 4067 struct { 4068 int32_t _l; /* lower 32 bits of disk address value */ 4069 int32_t _u; /* upper 32 bits of disk address value */ 4070 } _p; 4071 } lldaddr_t; 4072 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4073 typedef uint_t k_fltset_t; /* kernel fault set type */ 4074 4075 /* 4076 * The following type is for various kinds of identifiers. The 4077 * actual type must be the same for all since some system calls 4078 * (such as sigsend) take arguments that may be any of these 4079 * types. The enumeration type idtype_t defined in sys/procset.h 4080 * is used to indicate what type of id is being specified -- 4081 * a process id, process group id, session id, scheduling class id, 4082 * user id, group id, project id, task id or zone id. 4083 */ 4084 4085 4086 4087 typedef long id_t; /* (historical version) */ 4088 4089 4090 typedef id_t lgrp_id_t; /* lgroup ID */ 4091 4092 /* 4093 * Type useconds_t is an unsigned integral type capable of storing 4094 * values at least in the range of zero to 1,000,000. 4095 */ 4096 typedef uint_t useconds_t; /* Time, in microseconds */ 4097 4098 4099 4100 typedef long suseconds_t; /* signed # of microseconds */ 4101 4102 4103 /* 4104 * Typedefs for dev_t components. 4105 */ 4106 4107 4108 4109 4110 typedef ulong_t major_t; /* (historical version) */ 4111 typedef ulong_t minor_t; /* (historical version) */ 4112 4113 4114 /* 4115 * The data type of a thread priority. 4116 */ 4117 typedef short pri_t; 4118 4119 /* 4120 * The data type for a CPU flags field. (Can be extended to larger unsigned 4121 * types, if needed, limited by ability to update atomically.) 4122 */ 4123 typedef ushort_t cpu_flag_t; 4124 4125 /* 4126 * For compatibility reasons the following typedefs (prefixed o_) 4127 * can't grow regardless of the EFT definition. Although, 4128 * applications should not explicitly use these typedefs 4129 * they may be included via a system header definition. 4130 * WARNING: These typedefs may be removed in a future 4131 * release. 4132 * ex. the definitions in s5inode.h (now obsoleted) 4133 * remained small to preserve compatibility 4134 * in the S5 file system type. 4135 */ 4136 typedef ushort_t o_mode_t; /* old file attribute type */ 4137 typedef short o_dev_t; /* old device type */ 4138 typedef ushort_t o_uid_t; /* old UID type */ 4139 typedef o_uid_t o_gid_t; /* old GID type */ 4140 typedef short o_nlink_t; /* old file link type */ 4141 typedef short o_pid_t; /* old process id type */ 4142 typedef ushort_t o_ino_t; /* old inode type */ 4143 4144 4145 /* 4146 * POSIX and XOPEN Declarations 4147 */ 4148 typedef int key_t; /* IPC key type */ 4149 4150 4151 4152 typedef ulong_t mode_t; /* (historical version) */ 4153 4154 4155 4156 4157 4158 4159 4160 typedef uid_t gid_t; /* GID type */ 4161 4162 typedef uint32_t datalink_id_t; 4163 typedef uint32_t vrid_t; 4164 4165 typedef id_t taskid_t; 4166 typedef id_t projid_t; 4167 typedef id_t poolid_t; 4168 typedef id_t zoneid_t; 4169 typedef id_t ctid_t; 4170 4171 /* 4172 * POSIX definitions are same as defined in thread.h and synch.h. 4173 * Any changes made to here should be reflected in corresponding 4174 * files as described in comments. 4175 */ 4176 typedef uint_t pthread_t; /* = thread_t in thread.h */ 4177 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */ 4178 4179 /* "Magic numbers" tagging synchronization object types */ 4180 4181 4182 4183 4184 4185 typedef struct _pthread_mutex { /* = mutex_t in synch.h */ 4186 struct { 4187 uint16_t __pthread_mutex_flag1; 4188 uint8_t __pthread_mutex_flag2; 4189 uint8_t __pthread_mutex_ceiling; 4190 uint16_t __pthread_mutex_type; 4191 uint16_t __pthread_mutex_magic; 4192 } __pthread_mutex_flags; 4193 union { 4194 struct { 4195 uint8_t __pthread_mutex_pad[8]; 4196 } __pthread_mutex_lock64; 4197 struct { 4198 uint32_t __pthread_ownerpid; 4199 uint32_t __pthread_lockword; 4200 } __pthread_mutex_lock32; 4201 upad64_t __pthread_mutex_owner64; 4202 } __pthread_mutex_lock; 4203 upad64_t __pthread_mutex_data; 4204 } pthread_mutex_t; 4205 4206 typedef struct _pthread_cond { /* = cond_t in synch.h */ 4207 struct { 4208 uint8_t __pthread_cond_flag[4]; 4209 uint16_t __pthread_cond_type; 4210 uint16_t __pthread_cond_magic; 4211 } __pthread_cond_flags; 4212 upad64_t __pthread_cond_data; 4213 } pthread_cond_t; 4214 4215 /* 4216 * UNIX 98 Extension 4217 */ 4218 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */ 4219 int32_t __pthread_rwlock_readers; 4220 uint16_t __pthread_rwlock_type; 4221 uint16_t __pthread_rwlock_magic; 4222 pthread_mutex_t __pthread_rwlock_mutex; 4223 pthread_cond_t __pthread_rwlock_readercv; 4224 pthread_cond_t __pthread_rwlock_writercv; 4225 } pthread_rwlock_t; 4226 4227 /* 4228 * SUSV3 4229 */ 4230 typedef struct { 4231 uint32_t __pthread_barrier_count; 4232 uint32_t __pthread_barrier_current; 4233 upad64_t __pthread_barrier_cycle; 4234 upad64_t __pthread_barrier_reserved; 4235 pthread_mutex_t __pthread_barrier_lock; 4236 pthread_cond_t __pthread_barrier_cond; 4237 } pthread_barrier_t; 4238 4239 typedef pthread_mutex_t pthread_spinlock_t; 4240 4241 /* 4242 * attributes for threads, dynamically allocated by library 4243 */ 4244 typedef struct _pthread_attr { 4245 void *__pthread_attrp; 4246 } pthread_attr_t; 4247 4248 /* 4249 * attributes for mutex, dynamically allocated by library 4250 */ 4251 typedef struct _pthread_mutexattr { 4252 void *__pthread_mutexattrp; 4253 } pthread_mutexattr_t; 4254 4255 /* 4256 * attributes for cond, dynamically allocated by library 4257 */ 4258 typedef struct _pthread_condattr { 4259 void *__pthread_condattrp; 4260 } pthread_condattr_t; 4261 4262 /* 4263 * pthread_once 4264 */ 4265 typedef struct _once { 4266 upad64_t __pthread_once_pad[4]; 4267 } pthread_once_t; 4268 4269 /* 4270 * UNIX 98 Extensions 4271 * attributes for rwlock, dynamically allocated by library 4272 */ 4273 typedef struct _pthread_rwlockattr { 4274 void *__pthread_rwlockattrp; 4275 } pthread_rwlockattr_t; 4276 4277 /* 4278 * SUSV3 4279 * attributes for pthread_barrier_t, dynamically allocated by library 4280 */ 4281 typedef struct { 4282 void *__pthread_barrierattrp; 4283 } pthread_barrierattr_t; 4284 4285 typedef ulong_t dev_t; /* expanded device type */ 4286 4287 4288 4289 4290 4291 typedef ulong_t nlink_t; /* (historical version) */ 4292 typedef long pid_t; /* (historical version) */ 4293 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4294 typedef long time_t; /* time of day in seconds */ 4295 # 547 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4296 typedef int clockid_t; /* clock identifier type */ 4297 4298 4299 4300 4301 typedef int timer_t; /* timer identifier type */ 4302 4303 4304 4305 4306 /* BEGIN CSTYLED */ 4307 typedef unsigned char unchar; 4308 typedef unsigned short ushort; 4309 typedef unsigned int uint; 4310 typedef unsigned long ulong; 4311 /* END CSTYLED */ 4312 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4313 /* 4314 * The following is the value of type id_t to use to indicate the 4315 * caller's current id. See procset.h for the type idtype_t 4316 * which defines which kind of id is being specified. 4317 */ 4318 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4319 /* 4320 * The following value of type pfn_t is used to indicate 4321 * invalid page frame number. 4322 */ 4323 4324 4325 4326 /* BEGIN CSTYLED */ 4327 typedef unsigned char u_char; 4328 typedef unsigned short u_short; 4329 typedef unsigned int u_int; 4330 typedef unsigned long u_long; 4331 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */ 4332 typedef quad_t quad; /* used by UFS */ 4333 /* END CSTYLED */ 4334 4335 /* 4336 * Nested include for BSD/sockets source compatibility. 4337 * (The select macros used to be defined here). 4338 */ 4339 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 4340 /* 4341 * CDDL HEADER START 4342 * 4343 * The contents of this file are subject to the terms of the 4344 * Common Development and Distribution License (the "License"). 4345 * You may not use this file except in compliance with the License. 4346 * 4347 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4348 * or http://www.opensolaris.org/os/licensing. 4349 * See the License for the specific language governing permissions 4350 * and limitations under the License. 4351 * 4352 * When distributing Covered Code, include this CDDL HEADER in each 4353 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4354 * If applicable, add the following below this CDDL HEADER, with the 4355 * fields enclosed by brackets "[]" replaced with your own identifying 4356 * information: Portions Copyright [yyyy] [name of copyright owner] 4357 * 4358 * CDDL HEADER END 4359 */ 4360 4361 /* 4362 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4363 * 4364 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4365 * 4366 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 4367 * Use is subject to license terms. 4368 */ 4369 4370 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4371 /* All Rights Reserved */ 4372 4373 /* 4374 * University Copyright- Copyright (c) 1982, 1986, 1988 4375 * The Regents of the University of California 4376 * All Rights Reserved 4377 * 4378 * University Acknowledgment- Portions of this document are derived from 4379 * software developed by the University of California, Berkeley, and its 4380 * contributors. 4381 */ 4382 4383 4384 4385 4386 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4387 /* 4388 * CDDL HEADER START 4389 * 4390 * The contents of this file are subject to the terms of the 4391 * Common Development and Distribution License (the "License"). 4392 * You may not use this file except in compliance with the License. 4393 * 4394 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4395 * or http://www.opensolaris.org/os/licensing. 4396 * See the License for the specific language governing permissions 4397 * and limitations under the License. 4398 * 4399 * When distributing Covered Code, include this CDDL HEADER in each 4400 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4401 * If applicable, add the following below this CDDL HEADER, with the 4402 * fields enclosed by brackets "[]" replaced with your own identifying 4403 * information: Portions Copyright [yyyy] [name of copyright owner] 4404 * 4405 * CDDL HEADER END 4406 */ 4407 4408 /* 4409 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4410 * Copyright 2016 Joyent, Inc. 4411 * 4412 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4413 * Use is subject to license terms. 4414 */ 4415 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 4416 4417 4418 4419 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 4420 /* 4421 * CDDL HEADER START 4422 * 4423 * The contents of this file are subject to the terms of the 4424 * Common Development and Distribution License, Version 1.0 only 4425 * (the "License"). You may not use this file except in compliance 4426 * with the License. 4427 * 4428 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4429 * or http://www.opensolaris.org/os/licensing. 4430 * See the License for the specific language governing permissions 4431 * and limitations under the License. 4432 * 4433 * When distributing Covered Code, include this CDDL HEADER in each 4434 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4435 * If applicable, add the following below this CDDL HEADER, with the 4436 * fields enclosed by brackets "[]" replaced with your own identifying 4437 * information: Portions Copyright [yyyy] [name of copyright owner] 4438 * 4439 * CDDL HEADER END 4440 */ 4441 /* 4442 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 4443 * Use is subject to license terms. 4444 */ 4445 4446 /* 4447 * Implementation-private. This header should not be included 4448 * directly by an application. The application should instead 4449 * include <time.h> which includes this header conditionally 4450 * depending on which feature test macros are defined. By default, 4451 * this header is included by <time.h>. X/Open and POSIX 4452 * standards requirements result in this header being included 4453 * by <time.h> only under a restricted set of conditions. 4454 */ 4455 4456 4457 4458 4459 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4460 /* 4461 * CDDL HEADER START 4462 * 4463 * The contents of this file are subject to the terms of the 4464 * Common Development and Distribution License (the "License"). 4465 * You may not use this file except in compliance with the License. 4466 * 4467 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4468 * or http://www.opensolaris.org/os/licensing. 4469 * See the License for the specific language governing permissions 4470 * and limitations under the License. 4471 * 4472 * When distributing Covered Code, include this CDDL HEADER in each 4473 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4474 * If applicable, add the following below this CDDL HEADER, with the 4475 * fields enclosed by brackets "[]" replaced with your own identifying 4476 * information: Portions Copyright [yyyy] [name of copyright owner] 4477 * 4478 * CDDL HEADER END 4479 */ 4480 4481 /* 4482 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4483 * Copyright 2016 Joyent, Inc. 4484 * 4485 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4486 * Use is subject to license terms. 4487 */ 4488 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2 4489 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 4490 /* 4491 * Time expressed in seconds and nanoseconds 4492 */ 4493 4494 typedef struct timespec { /* definition per POSIX.4 */ 4495 time_t tv_sec; /* seconds */ 4496 long tv_nsec; /* and nanoseconds */ 4497 } timespec_t; 4498 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 4499 typedef struct timespec timestruc_t; /* definition per SVr4 */ 4500 4501 /* 4502 * The following has been left in for backward compatibility. Portable 4503 * applications should not use the structure name timestruc. 4504 */ 4505 4506 4507 4508 4509 4510 /* 4511 * Timer specification 4512 */ 4513 typedef struct itimerspec { /* definition per POSIX.4 */ 4514 struct timespec it_interval; /* timer period */ 4515 struct timespec it_value; /* timer expiration */ 4516 } itimerspec_t; 4517 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 4518 4519 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 4520 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4521 /* All Rights Reserved */ 4522 4523 4524 /* 4525 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 4526 * All rights reserved. The Berkeley software License Agreement 4527 * specifies the terms and conditions for redistribution. 4528 */ 4529 4530 /* 4531 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4532 * 4533 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4534 * Use is subject to license terms. 4535 * 4536 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4537 */ 4538 4539 /* 4540 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 4541 */ 4542 4543 4544 4545 4546 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4547 /* 4548 * CDDL HEADER START 4549 * 4550 * The contents of this file are subject to the terms of the 4551 * Common Development and Distribution License (the "License"). 4552 * You may not use this file except in compliance with the License. 4553 * 4554 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4555 * or http://www.opensolaris.org/os/licensing. 4556 * See the License for the specific language governing permissions 4557 * and limitations under the License. 4558 * 4559 * When distributing Covered Code, include this CDDL HEADER in each 4560 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4561 * If applicable, add the following below this CDDL HEADER, with the 4562 * fields enclosed by brackets "[]" replaced with your own identifying 4563 * information: Portions Copyright [yyyy] [name of copyright owner] 4564 * 4565 * CDDL HEADER END 4566 */ 4567 4568 /* 4569 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4570 * Copyright 2016 Joyent, Inc. 4571 * 4572 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4573 * Use is subject to license terms. 4574 */ 4575 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4576 4577 /* 4578 * Structure returned by gettimeofday(2) system call, 4579 * and used in other calls. 4580 */ 4581 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4582 struct timeval { 4583 time_t tv_sec; /* seconds */ 4584 suseconds_t tv_usec; /* and microseconds */ 4585 }; 4586 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4587 struct timezone { 4588 int tz_minuteswest; /* minutes west of Greenwich */ 4589 int tz_dsttime; /* type of dst correction */ 4590 }; 4591 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4592 /* 4593 * Needed for longlong_t type. Placement of this due to <sys/types.h> 4594 * including <sys/select.h> which relies on the presense of the itimerval 4595 * structure. 4596 */ 4597 4598 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 4599 /* 4600 * CDDL HEADER START 4601 * 4602 * The contents of this file are subject to the terms of the 4603 * Common Development and Distribution License (the "License"). 4604 * You may not use this file except in compliance with the License. 4605 * 4606 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4607 * or http://www.opensolaris.org/os/licensing. 4608 * See the License for the specific language governing permissions 4609 * and limitations under the License. 4610 * 4611 * When distributing Covered Code, include this CDDL HEADER in each 4612 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4613 * If applicable, add the following below this CDDL HEADER, with the 4614 * fields enclosed by brackets "[]" replaced with your own identifying 4615 * information: Portions Copyright [yyyy] [name of copyright owner] 4616 * 4617 * CDDL HEADER END 4618 */ 4619 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4620 /* All Rights Reserved */ 4621 4622 4623 /* 4624 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4625 * Use is subject to license terms. 4626 * 4627 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4628 * Copyright 2016 Joyent, Inc. 4629 */ 4630 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4631 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4632 /* 4633 * Operations on timevals. 4634 */ 4635 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4636 /* 4637 * Names of the interval timers, and structure 4638 * defining a timer setting. 4639 */ 4640 4641 4642 4643 /* time and when system is running on */ 4644 /* behalf of the process. */ 4645 4646 /* time profiling of multithreaded */ 4647 /* programs. */ 4648 4649 4650 struct itimerval { 4651 struct timeval it_interval; /* timer interval */ 4652 struct timeval it_value; /* current value */ 4653 }; 4654 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4655 /* 4656 * Definitions for commonly used resolutions. 4657 */ 4658 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4659 /* 4660 * Time expressed as a 64-bit nanosecond counter. 4661 */ 4662 typedef longlong_t hrtime_t; 4663 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4664 int adjtime(struct timeval *, struct timeval *); 4665 4666 4667 4668 4669 int futimesat(int, const char *, const struct timeval *); 4670 4671 4672 4673 4674 4675 int getitimer(int, struct itimerval *); 4676 int utimes(const char *, const struct timeval *); 4677 4678 4679 4680 4681 int setitimer(int, struct itimerval *, 4682 struct itimerval *); 4683 4684 4685 4686 4687 /* 4688 * gettimeofday() and settimeofday() were included in SVr4 due to their 4689 * common use in BSD based applications. They were to be included exactly 4690 * as in BSD, with two parameters. However, AT&T/USL noted that the second 4691 * parameter was unused and deleted it, thereby making a routine included 4692 * for compatibility, incompatible. 4693 * 4694 * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two 4695 * parameters. 4696 * 4697 * This has caused general disagreement in the application community as to 4698 * the syntax of these routines. Solaris defaults to the XSH4.2 definition. 4699 * The flag _SVID_GETTOD may be used to force the SVID version. 4700 */ 4701 4702 4703 4704 4705 4706 int settimeofday(struct timeval *, void *); 4707 4708 hrtime_t gethrtime(void); 4709 hrtime_t gethrvtime(void); 4710 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4711 int gettimeofday(struct timeval *, void *); 4712 4713 4714 4715 4716 /* 4717 * The inclusion of <time.h> is historical and was added for 4718 * backward compatibility in delta 1.2 when a number of definitions 4719 * were moved out of <sys/time.h>. More recently, the timespec and 4720 * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*, 4721 * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>, 4722 * which is now included by <time.h>. This change was due to POSIX 4723 * 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and 4724 * non-X/Open applications, including this header will still make 4725 * visible these definitions. 4726 */ 4727 4728 4729 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 4730 /* 4731 * CDDL HEADER START 4732 * 4733 * The contents of this file are subject to the terms of the 4734 * Common Development and Distribution License (the "License"). 4735 * You may not use this file except in compliance with the License. 4736 * 4737 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4738 * or http://www.opensolaris.org/os/licensing. 4739 * See the License for the specific language governing permissions 4740 * and limitations under the License. 4741 * 4742 * When distributing Covered Code, include this CDDL HEADER in each 4743 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4744 * If applicable, add the following below this CDDL HEADER, with the 4745 * fields enclosed by brackets "[]" replaced with your own identifying 4746 * information: Portions Copyright [yyyy] [name of copyright owner] 4747 * 4748 * CDDL HEADER END 4749 */ 4750 /* Copyright (c) 1988 AT&T */ 4751 /* All Rights Reserved */ 4752 4753 4754 /* 4755 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4756 * 4757 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 4758 * Use is subject to license terms. 4759 */ 4760 /* 4761 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 4762 * Copyright 2016 Joyent, Inc. 4763 */ 4764 4765 4766 4767 4768 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4769 /* 4770 * CDDL HEADER START 4771 * 4772 * The contents of this file are subject to the terms of the 4773 * Common Development and Distribution License (the "License"). 4774 * You may not use this file except in compliance with the License. 4775 * 4776 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4777 * or http://www.opensolaris.org/os/licensing. 4778 * See the License for the specific language governing permissions 4779 * and limitations under the License. 4780 * 4781 * When distributing Covered Code, include this CDDL HEADER in each 4782 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4783 * If applicable, add the following below this CDDL HEADER, with the 4784 * fields enclosed by brackets "[]" replaced with your own identifying 4785 * information: Portions Copyright [yyyy] [name of copyright owner] 4786 * 4787 * CDDL HEADER END 4788 */ 4789 4790 /* 4791 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4792 * Copyright 2016 Joyent, Inc. 4793 * 4794 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4795 * Use is subject to license terms. 4796 */ 4797 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4798 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1 4799 /* 4800 * CDDL HEADER START 4801 * 4802 * The contents of this file are subject to the terms of the 4803 * Common Development and Distribution License, Version 1.0 only 4804 * (the "License"). You may not use this file except in compliance 4805 * with the License. 4806 * 4807 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4808 * or http://www.opensolaris.org/os/licensing. 4809 * See the License for the specific language governing permissions 4810 * and limitations under the License. 4811 * 4812 * When distributing Covered Code, include this CDDL HEADER in each 4813 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4814 * If applicable, add the following below this CDDL HEADER, with the 4815 * fields enclosed by brackets "[]" replaced with your own identifying 4816 * information: Portions Copyright [yyyy] [name of copyright owner] 4817 * 4818 * CDDL HEADER END 4819 */ 4820 /* Copyright (c) 1988 AT&T */ 4821 /* All Rights Reserved */ 4822 4823 /* 4824 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4825 * Copyright 2014 PALO, Richard. 4826 * 4827 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 4828 * Use is subject to license terms. 4829 */ 4830 4831 /* 4832 * An application should not include this header directly. Instead it 4833 * should be included only through the inclusion of other Sun headers. 4834 * 4835 * The contents of this header is limited to identifiers specified in the 4836 * C Standard. Any new identifiers specified in future amendments to the 4837 * C Standard must be placed in this header. If these new identifiers 4838 * are required to also be in the C++ Standard "std" namespace, then for 4839 * anything other than macro definitions, corresponding "using" directives 4840 * must also be added to <time.h.h>. 4841 */ 4842 4843 4844 4845 4846 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4847 /* 4848 * CDDL HEADER START 4849 * 4850 * The contents of this file are subject to the terms of the 4851 * Common Development and Distribution License (the "License"). 4852 * You may not use this file except in compliance with the License. 4853 * 4854 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4855 * or http://www.opensolaris.org/os/licensing. 4856 * See the License for the specific language governing permissions 4857 * and limitations under the License. 4858 * 4859 * When distributing Covered Code, include this CDDL HEADER in each 4860 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4861 * If applicable, add the following below this CDDL HEADER, with the 4862 * fields enclosed by brackets "[]" replaced with your own identifying 4863 * information: Portions Copyright [yyyy] [name of copyright owner] 4864 * 4865 * CDDL HEADER END 4866 */ 4867 4868 /* 4869 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4870 * Copyright 2016 Joyent, Inc. 4871 * 4872 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4873 * Use is subject to license terms. 4874 */ 4875 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 4876 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 4877 /* 4878 * This file and its contents are supplied under the terms of the 4879 * Common Development and Distribution License ("CDDL"), version 1.0. 4880 * You may only use this file in accordance with the terms of version 4881 * 1.0 of the CDDL. 4882 * 4883 * A full copy of the text of the CDDL should have accompanied this 4884 * source. A copy of the CDDL is also available via the Internet at 4885 * http://www.illumos.org/license/CDDL. 4886 */ 4887 4888 /* 4889 * Copyright 2014-2016 PALO, Richard. 4890 */ 4891 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 4892 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 4893 struct tm { /* see ctime(3) */ 4894 int tm_sec; 4895 int tm_min; 4896 int tm_hour; 4897 int tm_mday; 4898 int tm_mon; 4899 int tm_year; 4900 int tm_wday; 4901 int tm_yday; 4902 int tm_isdst; 4903 }; 4904 4905 4906 extern char *asctime(const struct tm *); 4907 extern clock_t clock(void); 4908 extern char *ctime(const time_t *); 4909 extern double difftime(time_t, time_t); 4910 extern struct tm *gmtime(const time_t *); 4911 extern struct tm *localtime(const time_t *); 4912 extern time_t mktime(struct tm *); 4913 extern time_t time(time_t *); 4914 extern size_t strftime(char *, size_t, const char *, 4915 const struct tm *); 4916 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4917 /* 4918 * C11 requires sys/time_impl.h for the definition of the struct timespec. 4919 */ 4920 4921 4922 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 4923 /* 4924 * CDDL HEADER START 4925 * 4926 * The contents of this file are subject to the terms of the 4927 * Common Development and Distribution License (the "License"). 4928 * You may not use this file except in compliance with the License. 4929 * 4930 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4931 * or http://www.opensolaris.org/os/licensing. 4932 * See the License for the specific language governing permissions 4933 * and limitations under the License. 4934 * 4935 * When distributing Covered Code, include this CDDL HEADER in each 4936 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4937 * If applicable, add the following below this CDDL HEADER, with the 4938 * fields enclosed by brackets "[]" replaced with your own identifying 4939 * information: Portions Copyright [yyyy] [name of copyright owner] 4940 * 4941 * CDDL HEADER END 4942 */ 4943 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4944 /* All Rights Reserved */ 4945 4946 4947 /* 4948 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4949 * Use is subject to license terms. 4950 * 4951 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4952 * Copyright 2016 Joyent, Inc. 4953 */ 4954 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4955 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 4956 /* 4957 * CDDL HEADER START 4958 * 4959 * The contents of this file are subject to the terms of the 4960 * Common Development and Distribution License, Version 1.0 only 4961 * (the "License"). You may not use this file except in compliance 4962 * with the License. 4963 * 4964 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4965 * or http://www.opensolaris.org/os/licensing. 4966 * See the License for the specific language governing permissions 4967 * and limitations under the License. 4968 * 4969 * When distributing Covered Code, include this CDDL HEADER in each 4970 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4971 * If applicable, add the following below this CDDL HEADER, with the 4972 * fields enclosed by brackets "[]" replaced with your own identifying 4973 * information: Portions Copyright [yyyy] [name of copyright owner] 4974 * 4975 * CDDL HEADER END 4976 */ 4977 /* 4978 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 4979 * Use is subject to license terms. 4980 */ 4981 4982 /* 4983 * Implementation-private. This header should not be included 4984 * directly by an application. The application should instead 4985 * include <time.h> which includes this header conditionally 4986 * depending on which feature test macros are defined. By default, 4987 * this header is included by <time.h>. X/Open and POSIX 4988 * standards requirements result in this header being included 4989 * by <time.h> only under a restricted set of conditions. 4990 */ 4991 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4992 4993 4994 /* 4995 * Allow global visibility for symbols defined in 4996 * C++ "std" namespace in <iso/time_iso.h>. 4997 */ 4998 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 4999 extern struct tm *gmtime_r(const time_t *, 5000 struct tm *); 5001 extern struct tm *localtime_r(const time_t *, 5002 struct tm *); 5003 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5004 extern char *strptime(const char *, const char *, 5005 struct tm *); 5006 5007 5008 5009 5010 5011 /* 5012 * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the 5013 * definition of the sigevent structure. Both require the inclusion 5014 * of <signal.h> and <time.h> when using the timer_create() function. 5015 * However, X/Open also specifies that the sigevent structure be defined 5016 * in <time.h> as described in the header <signal.h>. This prevents 5017 * compiler warnings for applications that only include <time.h> and not 5018 * also <signal.h>. The sigval union and the sigevent structure is 5019 * therefore defined both here and in <sys/siginfo.h> which gets included 5020 * via inclusion of <signal.h>. 5021 */ 5022 5023 5024 union sigval { 5025 int sival_int; /* integer value */ 5026 void *sival_ptr; /* pointer value */ 5027 }; 5028 5029 5030 5031 5032 struct sigevent { 5033 int sigev_notify; /* notification mode */ 5034 int sigev_signo; /* signal number */ 5035 union sigval sigev_value; /* signal value */ 5036 void (*sigev_notify_function)(union sigval); 5037 pthread_attr_t *sigev_notify_attributes; 5038 int __sigev_pad2; 5039 }; 5040 5041 5042 extern int clock_getres(clockid_t, struct timespec *); 5043 extern int clock_gettime(clockid_t, struct timespec *); 5044 extern int clock_settime(clockid_t, const struct timespec *); 5045 extern int timer_create(clockid_t, struct sigevent *, 5046 timer_t *); 5047 extern int timer_delete(timer_t); 5048 extern int timer_getoverrun(timer_t); 5049 extern int timer_gettime(timer_t, struct itimerspec *); 5050 extern int timer_settime(timer_t, int, const struct itimerspec *, 5051 struct itimerspec *); 5052 5053 extern int nanosleep(const struct timespec *, struct timespec *); 5054 extern int clock_nanosleep(clockid_t, int, 5055 const struct timespec *, struct timespec *); 5056 5057 5058 5059 5060 5061 5062 extern void tzset(void); 5063 extern char *tzname[2]; 5064 5065 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */ 5066 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5067 extern long timezone; 5068 extern int daylight; 5069 5070 5071 5072 5073 5074 5075 extern time_t timegm(struct tm *); 5076 extern int cftime(char *, char *, const time_t *); 5077 extern int ascftime(char *, const char *, const struct tm *); 5078 extern long altzone; 5079 5080 5081 5082 5083 extern struct tm *getdate(const char *); 5084 5085 5086 5087 5088 5089 extern int getdate_err; 5090 5091 5092 5093 /* 5094 * ctime_r() & asctime_r() prototypes are defined here. 5095 */ 5096 5097 /* 5098 * Previous releases of Solaris, starting at 2.3, provided definitions of 5099 * various functions as specified in POSIX.1c, Draft 6. For some of these 5100 * functions, the final POSIX 1003.1c standard had a different number of 5101 * arguments and return values. 5102 * 5103 * The following segment of this header provides support for the standard 5104 * interfaces while supporting applications written under earlier 5105 * releases. The application defines appropriate values of the feature 5106 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 5107 * whether it was written to expect the Draft 6 or standard versions of 5108 * these interfaces, before including this header. This header then 5109 * provides a mapping from the source version of the interface to an 5110 * appropriate binary interface. Such mappings permit an application 5111 * to be built from libraries and objects which have mixed expectations 5112 * of the definitions of these functions. 5113 * 5114 * For applications using the Draft 6 definitions, the binary symbol is the 5115 * same as the source symbol, and no explicit mapping is needed. For the 5116 * standard interface, the function func() is mapped to the binary symbol 5117 * _posix_func(). The preferred mechanism for the remapping is a compiler 5118 * #pragma. If the compiler does not provide such a #pragma, the header file 5119 * defines a static function func() which calls the _posix_func() version; 5120 * this has to be done instead of #define since POSIX specifies that an 5121 * application can #undef the symbol and still be bound to the correct 5122 * implementation. Unfortunately, the statics confuse lint so we fallback to 5123 * #define in that case. 5124 * 5125 * NOTE: Support for the Draft 6 definitions is provided for compatibility 5126 * only. New applications/libraries should use the standard definitions. 5127 */ 5128 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5129 extern char *asctime_r(const struct tm *, char *, int); 5130 extern char *ctime_r(const time_t *, char *, int); 5131 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5132 extern size_t strftime_l(char *, size_t, 5133 const char *, const struct tm *, locale_t); 5134 5135 5136 5137 5138 5139 /* 5140 * Note, the C11 standard requires that all the various base values that are 5141 * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one. 5142 */ 5143 5144 5145 extern int timespec_get(struct timespec *, int); 5146 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 5147 5148 5149 /* 5150 * The inclusion of <sys/select.h> is needed for the FD_CLR, 5151 * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the 5152 * select() prototype defined in the XOpen specifications 5153 * beginning with XSH4v2. Placement required after definition 5154 * for itimerval. 5155 */ 5156 5157 5158 5159 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 5160 /* 5161 * CDDL HEADER START 5162 * 5163 * The contents of this file are subject to the terms of the 5164 * Common Development and Distribution License (the "License"). 5165 * You may not use this file except in compliance with the License. 5166 * 5167 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5168 * or http://www.opensolaris.org/os/licensing. 5169 * See the License for the specific language governing permissions 5170 * and limitations under the License. 5171 * 5172 * When distributing Covered Code, include this CDDL HEADER in each 5173 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5174 * If applicable, add the following below this CDDL HEADER, with the 5175 * fields enclosed by brackets "[]" replaced with your own identifying 5176 * information: Portions Copyright [yyyy] [name of copyright owner] 5177 * 5178 * CDDL HEADER END 5179 */ 5180 5181 /* 5182 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5183 * 5184 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5185 * 5186 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 5187 * Use is subject to license terms. 5188 */ 5189 5190 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5191 /* All Rights Reserved */ 5192 5193 /* 5194 * University Copyright- Copyright (c) 1982, 1986, 1988 5195 * The Regents of the University of California 5196 * All Rights Reserved 5197 * 5198 * University Acknowledgment- Portions of this document are derived from 5199 * software developed by the University of California, Berkeley, and its 5200 * contributors. 5201 */ 5202 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 5203 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 5204 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5205 /* 5206 * The sigset_t type is defined in <sys/signal.h> and duplicated 5207 * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6 5208 * now allows the visibility of signal.h in this header, however 5209 * an order of inclusion problem occurs as a result of inclusion 5210 * of <sys/select.h> in <signal.h> under certain conditions. 5211 * Rather than include <sys/signal.h> here, we've duplicated 5212 * the sigset_t type instead. This type is required for the XPG6 5213 * introduced pselect() function also declared in this header. 5214 */ 5215 5216 5217 typedef struct { /* signal set type */ 5218 unsigned int __sigbits[4]; 5219 } sigset_t; 5220 5221 5222 5223 5224 /* 5225 * Select uses bit masks of file descriptors in longs. 5226 * These macros manipulate such bit fields. 5227 * FD_SETSIZE may be defined by the user, but the default here 5228 * should be >= NOFILE (param.h). 5229 */ 5230 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5231 typedef long fd_mask; 5232 5233 typedef long fds_mask; 5234 5235 /* 5236 * The value of _NBBY needs to be consistant with the value 5237 * of NBBY in <sys/param.h>. 5238 */ 5239 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5240 typedef struct fd_set { 5241 5242 5243 5244 long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))]; 5245 } fd_set; 5246 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5247 extern int select(int, fd_set *, fd_set *, 5248 fd_set *, struct timeval *); 5249 5250 5251 extern int pselect(int, fd_set *, fd_set *, 5252 fd_set *, const struct timespec *, 5253 const sigset_t *); 5254 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 5255 5256 5257 5258 /* 5259 * _VOID was defined to be either void or char but this is not 5260 * required because previous SunOS compilers have accepted the void 5261 * type. However, because many system header and source files use the 5262 * void keyword, the volatile keyword, and ANSI C function prototypes, 5263 * non-ANSI compilers cannot compile the system anyway. The _VOID macro 5264 * should therefore not be used and remains for source compatibility 5265 * only. 5266 */ 5267 /* CSTYLED */ 5268 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 5269 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 5270 /* 5271 * CDDL HEADER START 5272 * 5273 * The contents of this file are subject to the terms of the 5274 * Common Development and Distribution License (the "License"). 5275 * You may not use this file except in compliance with the License. 5276 * 5277 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5278 * or http://www.opensolaris.org/os/licensing. 5279 * See the License for the specific language governing permissions 5280 * and limitations under the License. 5281 * 5282 * When distributing Covered Code, include this CDDL HEADER in each 5283 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5284 * If applicable, add the following below this CDDL HEADER, with the 5285 * fields enclosed by brackets "[]" replaced with your own identifying 5286 * information: Portions Copyright [yyyy] [name of copyright owner] 5287 * 5288 * CDDL HEADER END 5289 */ 5290 5291 /* 5292 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 5293 * All Rights Reserved 5294 * 5295 */ 5296 5297 /* 5298 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5299 * Use is subject to license terms. 5300 */ 5301 5302 /* 5303 * WARNING: This is an implementation-specific header, 5304 * its contents are not guaranteed. Applications 5305 * should include <unistd.h> and not this header. 5306 */ 5307 5308 5309 5310 5311 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5312 /* 5313 * CDDL HEADER START 5314 * 5315 * The contents of this file are subject to the terms of the 5316 * Common Development and Distribution License (the "License"). 5317 * You may not use this file except in compliance with the License. 5318 * 5319 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5320 * or http://www.opensolaris.org/os/licensing. 5321 * See the License for the specific language governing permissions 5322 * and limitations under the License. 5323 * 5324 * When distributing Covered Code, include this CDDL HEADER in each 5325 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5326 * If applicable, add the following below this CDDL HEADER, with the 5327 * fields enclosed by brackets "[]" replaced with your own identifying 5328 * information: Portions Copyright [yyyy] [name of copyright owner] 5329 * 5330 * CDDL HEADER END 5331 */ 5332 5333 /* 5334 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5335 * Copyright 2016 Joyent, Inc. 5336 * 5337 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5338 * Use is subject to license terms. 5339 */ 5340 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2 5341 5342 5343 5344 5345 5346 /* command names for confstr */ 5347 5348 5349 5350 /* 5351 * command names for large file configuration information 5352 */ 5353 /* large file compilation environment configuration */ 5354 5355 5356 5357 5358 /* transitional large file interface configuration */ 5359 5360 5361 5362 5363 5364 /* UNIX 98 */ 5365 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5366 /* UNIX 03 */ 5367 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5368 /* command names for POSIX sysconf */ 5369 5370 /* POSIX.1 names */ 5371 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5372 /* SVR4 names */ 5373 5374 5375 5376 5377 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */ 5378 5379 5380 5381 5382 /* POSIX.4 names */ 5383 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5384 /* XPG4 names */ 5385 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5386 /* additional XSH4/XCU4 command names for sysconf */ 5387 5388 5389 5390 /* additional XPG4v2 (UNIX 95) command names */ 5391 5392 5393 5394 5395 5396 /* defined for XTI (XNS Issue 5) */ 5397 5398 5399 5400 5401 5402 5403 5404 /* 5405 * Hardware specific items 5406 * Note that not all items are supported on all architectures 5407 */ 5408 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5409 /* 5410 * POSIX.1c (pthreads) names. These values are defined above 5411 * the sub-500 range. See psarc case 1995/257. 5412 */ 5413 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5414 /* UNIX 98 */ 5415 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5416 /* UNIX 03 */ 5417 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5418 /* command names for POSIX pathconf */ 5419 5420 /* POSIX.1 names */ 5421 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5422 /* POSIX.4 names */ 5423 5424 5425 5426 /* UNIX 03 names */ 5427 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5428 /* UNIX 08 names */ 5429 5430 5431 /* 5432 * Large File Summit names 5433 * 5434 * This value matches the MIPS ABI choice, but leaves a large gap in the 5435 * value space. 5436 */ 5437 5438 5439 /* 5440 * Extended attributes 5441 */ 5442 5443 5444 5445 /* 5446 * If you add a _PC define above 101, you must change _PC_LAST (and truss). 5447 */ 5448 5449 5450 /* 5451 * Case sensitivity values (related to _PC_CASE_BEHAVIOR) 5452 */ 5453 5454 5455 5456 /* 5457 * The value of 0 is returned when 5458 * ACL's are not supported 5459 */ 5460 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5461 /* 5462 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications 5463 * should not rely on this value, it has been aligned with the current 5464 * standard to avoid confusion if used. 5465 */ 5466 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5467 /* UNIX 03 names */ 5468 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 5469 5470 5471 5472 5473 5474 /* Symbolic constants for the "access" routine: */ 5475 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5476 /* Symbolic constants for the "lseek" routine: */ 5477 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5478 /* Path names: */ 5479 5480 5481 5482 5483 /* 5484 * compile-time symbolic constants, 5485 * Support does not mean the feature is enabled. 5486 * Use pathconf/sysconf to obtain actual configuration value. 5487 */ 5488 5489 /* Values unchanged in UNIX 03 */ 5490 5491 5492 5493 5494 5495 /* 5496 * POSIX.1b compile-time symbolic constants. 5497 */ 5498 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5499 /* 5500 * POSIX.1c compile-time symbolic constants. 5501 */ 5502 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5503 /* New in UNIX 03 */ 5504 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5505 /* 5506 * Support for the POSIX.1 mutex protocol attribute. For realtime applications 5507 * which need mutexes to support priority inheritance/ceiling. 5508 */ 5509 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5510 /* 5511 * Large File Summit-related announcement macros. The system supports both 5512 * the additional and transitional Large File Summit interfaces. (The final 5513 * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.) 5514 */ 5515 5516 5517 5518 5519 5520 /* large file compilation environment setup */ 5521 5522 5523 5524 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5525 #pragma redefine_extname ftruncate ftruncate64 5526 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5527 5528 5529 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5530 #pragma redefine_extname lseek lseek64 5531 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5532 5533 5534 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5535 #pragma redefine_extname pread pread64 5536 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5537 5538 5539 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5540 #pragma redefine_extname pwrite pwrite64 5541 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5542 5543 5544 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5545 #pragma redefine_extname truncate truncate64 5546 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5547 5548 5549 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5550 #pragma redefine_extname lockf lockf64 5551 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5552 5553 5554 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5555 #pragma redefine_extname tell tell64 5556 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5557 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5558 /* In the LP64 compilation environment, the APIs are already large file */ 5559 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5560 extern int access(const char *, int); 5561 5562 extern int acct(const char *); 5563 5564 extern unsigned alarm(unsigned); 5565 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5566 5567 5568 extern int brk(void *); 5569 5570 extern int chdir(const char *); 5571 extern int chown(const char *, uid_t, gid_t); 5572 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5573 5574 5575 extern int chroot(const char *); 5576 5577 extern int close(int); 5578 5579 5580 5581 5582 5583 5584 extern char *ctermid(char *); 5585 5586 5587 extern char *ctermid_r(char *); 5588 5589 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5590 5591 extern char *cuserid(char *); 5592 5593 extern int dup(int); 5594 extern int dup2(int, int); 5595 extern int dup3(int, int, int); 5596 5597 5598 5599 5600 extern void endusershell(void); 5601 5602 extern int execl(const char *, const char *, ...); 5603 extern int execle(const char *, const char *, ...); 5604 extern int execlp(const char *, const char *, ...); 5605 extern int execv(const char *, char *const *); 5606 extern int execve(const char *, char *const *, char *const *); 5607 extern int execvp(const char *, char *const *); 5608 extern void _exit(int) 5609 __attribute__((__noreturn__)); 5610 /* 5611 * The following fattach prototype is duplicated in <stropts.h>. The 5612 * duplication is necessitated by XPG4.2 which requires the prototype 5613 * be defined in <stropts.h>. 5614 */ 5615 5616 extern int fattach(int, const char *); 5617 5618 5619 extern int fchdir(int); 5620 extern int fchown(int, uid_t, gid_t); 5621 5622 5623 extern int fchroot(int); 5624 5625 5626 5627 extern int fdatasync(int); 5628 5629 /* 5630 * The following fdetach prototype is duplicated in <stropts.h>. The 5631 * duplication is necessitated by XPG4.2 which requires the prototype 5632 * be defined in <stropts.h>. 5633 */ 5634 5635 extern int fdetach(const char *); 5636 5637 extern pid_t fork(void); 5638 5639 extern pid_t fork1(void); 5640 extern pid_t forkall(void); 5641 5642 extern long fpathconf(int, int); 5643 5644 5645 extern int fsync(int); 5646 5647 5648 5649 5650 extern int ftruncate(int, off_t); 5651 5652 extern char *getcwd(char *, size_t); 5653 5654 5655 extern int getdtablesize(void); 5656 5657 extern gid_t getegid(void); 5658 extern uid_t geteuid(void); 5659 extern gid_t getgid(void); 5660 extern int getgroups(int, gid_t *); 5661 5662 extern long gethostid(void); 5663 5664 5665 5666 5667 extern int gethostname(char *, int); 5668 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5669 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5670 5671 extern int getpagesize(void); 5672 5673 extern pid_t getpgid(pid_t); 5674 5675 extern pid_t getpid(void); 5676 extern pid_t getppid(void); 5677 extern pid_t getpgrp(void); 5678 5679 5680 char *gettxt(const char *, const char *); 5681 5682 5683 extern pid_t getsid(pid_t); 5684 5685 extern uid_t getuid(void); 5686 5687 extern char *getusershell(void); 5688 5689 /* 5690 * The following ioctl prototype is duplicated in <stropts.h>. The 5691 * duplication is necessitated by XPG4.2 which requires the prototype 5692 * be defined in <stropts.h>. 5693 */ 5694 5695 extern int ioctl(int, int, ...); 5696 extern int isaexec(const char *, char *const *, char *const *); 5697 extern int issetugid(void); 5698 5699 extern int isatty(int); 5700 5701 extern int lchown(const char *, uid_t, gid_t); 5702 5703 extern int link(const char *, const char *); 5704 5705 extern offset_t llseek(int, offset_t, int); 5706 5707 5708 5709 5710 extern int lockf(int, int, off_t); 5711 5712 extern off_t lseek(int, off_t, int); 5713 5714 5715 extern int nice(int); 5716 5717 5718 extern int mincore(caddr_t, size_t, char *); 5719 5720 extern long pathconf(const char *, int); 5721 extern int pause(void); 5722 extern int pipe(int *); 5723 extern int pipe2(int *, int); 5724 5725 5726 5727 extern ssize_t pread(int, void *, size_t, off_t); 5728 5729 5730 extern void profil(unsigned short *, size_t, unsigned long, unsigned int); 5731 5732 /* 5733 * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The 5734 * declarations are identical. A change to either one may also require 5735 * appropriate namespace updates in order to avoid redeclaration 5736 * warnings in the case where both prototypes are exposed via inclusion 5737 * of both <pthread.h> and <unistd.h>. 5738 */ 5739 5740 5741 5742 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void)); 5743 5744 5745 5746 extern int ptrace(int, pid_t, int, int); 5747 5748 5749 5750 5751 extern ssize_t pwrite(int, const void *, size_t, off_t); 5752 5753 5754 /* per RFC 3542; This is also defined in netdb.h */ 5755 extern int rcmd_af(char **, unsigned short, const char *, const char *, 5756 const char *, int *, int); 5757 5758 extern ssize_t read(int, void *, size_t); 5759 5760 5761 extern ssize_t readlink(const char *, char *, 5762 size_t); 5763 5764 5765 5766 5767 5768 5769 extern int rename(const char *, const char *); 5770 5771 5772 5773 5774 5775 5776 5777 extern int resolvepath(const char *, char *, size_t); 5778 /* per RFC 3542; This is also defined in netdb.h */ 5779 extern int rexec_af(char **, unsigned short, const char *, const char *, 5780 const char *, int *, int); 5781 5782 extern int rmdir(const char *); 5783 5784 /* per RFC 3542; This is also defined in netdb.h */ 5785 extern int rresvport_af(int *, int); 5786 5787 5788 5789 5790 extern void *sbrk(intptr_t); 5791 5792 5793 extern int setegid(gid_t); 5794 extern int seteuid(uid_t); 5795 5796 extern int setgid(gid_t); 5797 5798 extern int setgroups(int, const gid_t *); 5799 extern int sethostname(char *, int); 5800 5801 extern int setpgid(pid_t, pid_t); 5802 5803 extern pid_t setpgrp(void); 5804 extern int setregid(gid_t, gid_t); 5805 extern int setreuid(uid_t, uid_t); 5806 5807 extern pid_t setsid(void); 5808 extern int setuid(uid_t); 5809 5810 extern void setusershell(void); 5811 5812 extern unsigned sleep(unsigned); 5813 5814 extern int stime(const time_t *); 5815 5816 5817 5818 5819 5820 5821 extern int symlink(const char *, const char *); 5822 extern void sync(void); 5823 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5824 extern long sysconf(int); 5825 extern pid_t tcgetpgrp(int); 5826 extern int tcsetpgrp(int, pid_t); 5827 5828 5829 5830 extern off_t tell(int); 5831 5832 5833 5834 5835 extern int truncate(const char *, off_t); 5836 5837 extern char *ttyname(int); 5838 5839 extern useconds_t ualarm(useconds_t, useconds_t); 5840 5841 extern int unlink(const char *); 5842 5843 extern char *getwd(char *); 5844 extern int usleep(useconds_t); 5845 extern pid_t vfork(void) __attribute__((__returns_twice__)); 5846 #pragma unknown_control_flow(vfork) 5847 5848 5849 extern void vhangup(void); 5850 5851 extern ssize_t write(int, const void *, size_t); 5852 5853 extern void yield(void); 5854 5855 5856 5857 5858 /* || defined(_XPG7) */ 5859 extern int faccessat(int, const char *, int, int); 5860 extern int fchownat(int, const char *, uid_t, gid_t, int); 5861 extern int linkat(int, const char *, int, const char *, int); 5862 extern ssize_t readlinkat(int, const char *, 5863 char *, size_t); 5864 extern int renameat(int, const char *, int, const char *); 5865 extern int symlinkat(const char *, int, const char *); 5866 extern int unlinkat(int, const char *, int); 5867 5868 5869 extern int get_nprocs(void); 5870 extern int get_nprocs_conf(void); 5871 5872 5873 /* transitional large file interface versions */ 5874 5875 5876 extern int ftruncate64(int, off64_t); 5877 extern off64_t lseek64(int, off64_t, int); 5878 extern ssize_t pread64(int, void *, size_t, off64_t); 5879 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 5880 extern off64_t tell64(int); 5881 extern int truncate64(const char *, off64_t); 5882 extern int lockf64(int, int, off64_t); 5883 5884 5885 /* 5886 * getlogin_r() & ttyname_r() prototypes are defined here. 5887 */ 5888 5889 /* 5890 * Previous releases of Solaris, starting at 2.3, provided definitions of 5891 * various functions as specified in POSIX.1c, Draft 6. For some of these 5892 * functions, the final POSIX 1003.1c standard had a different number of 5893 * arguments and return values. 5894 * 5895 * The following segment of this header provides support for the standard 5896 * interfaces while supporting applications written under earlier 5897 * releases. The application defines appropriate values of the feature 5898 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 5899 * whether it was written to expect the Draft 6 or standard versions of 5900 * these interfaces, before including this header. This header then 5901 * provides a mapping from the source version of the interface to an 5902 * appropriate binary interface. Such mappings permit an application 5903 * to be built from libraries and objects which have mixed expectations 5904 * of the definitions of these functions. 5905 * 5906 * For applications using the Draft 6 definitions, the binary symbol is the 5907 * same as the source symbol, and no explicit mapping is needed. For the 5908 * standard interface, the function func() is mapped to the binary symbol 5909 * _posix_func(). The preferred mechanism for the remapping is a compiler 5910 * #pragma. If the compiler does not provide such a #pragma, the header file 5911 * defines a static function func() which calls the _posix_func() version; 5912 * this has to be done instead of #define since POSIX specifies that an 5913 * application can #undef the symbol and still be bound to the correct 5914 * implementation. Unfortunately, the statics confuse lint so we fallback to 5915 * #define in that case. 5916 * 5917 * NOTE: Support for the Draft 6 definitions is provided for compatibility 5918 * only. New applications/libraries should use the standard definitions. 5919 */ 5920 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5921 5922 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5923 #pragma redefine_extname getlogin_r getloginx_r 5924 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5925 5926 5927 5928 5929 5930 5931 extern char *getlogin_r(char *, int); 5932 5933 extern char *ttyname_r(int, char *, int); 5934 5935 5936 5937 5938 5939 5940 extern int getentropy(void *, size_t); 5941 # 44 "sortmap.c" 2 5942 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 5943 /* 5944 * CDDL HEADER START 5945 * 5946 * The contents of this file are subject to the terms of the 5947 * Common Development and Distribution License (the "License"). 5948 * You may not use this file except in compliance with the License. 5949 * 5950 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5951 * or http://www.opensolaris.org/os/licensing. 5952 * See the License for the specific language governing permissions 5953 * and limitations under the License. 5954 * 5955 * When distributing Covered Code, include this CDDL HEADER in each 5956 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5957 * If applicable, add the following below this CDDL HEADER, with the 5958 * fields enclosed by brackets "[]" replaced with your own identifying 5959 * information: Portions Copyright [yyyy] [name of copyright owner] 5960 * 5961 * CDDL HEADER END 5962 */ 5963 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5964 /* All Rights Reserved */ 5965 5966 5967 /* 5968 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5969 * Use is subject to license terms. 5970 * 5971 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5972 * Copyright 2016 Joyent, Inc. 5973 */ 5974 # 45 "sortmap.c" 2 5975 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 5976 /* 5977 * CDDL HEADER START 5978 * 5979 * The contents of this file are subject to the terms of the 5980 * Common Development and Distribution License (the "License"). 5981 * You may not use this file except in compliance with the License. 5982 * 5983 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5984 * or http://www.opensolaris.org/os/licensing. 5985 * See the License for the specific language governing permissions 5986 * and limitations under the License. 5987 * 5988 * When distributing Covered Code, include this CDDL HEADER in each 5989 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5990 * If applicable, add the following below this CDDL HEADER, with the 5991 * fields enclosed by brackets "[]" replaced with your own identifying 5992 * information: Portions Copyright [yyyy] [name of copyright owner] 5993 * 5994 * CDDL HEADER END 5995 */ 5996 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5997 /* All Rights Reserved */ 5998 5999 /* 6000 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6001 * Use is subject to license terms. 6002 */ 6003 6004 6005 6006 6007 #pragma ident "%Z%%M% %I% %E% SMI" 6008 6009 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 6010 /* 6011 * CDDL HEADER START 6012 * 6013 * The contents of this file are subject to the terms of the 6014 * Common Development and Distribution License (the "License"). 6015 * You may not use this file except in compliance with the License. 6016 * 6017 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6018 * or http://www.opensolaris.org/os/licensing. 6019 * See the License for the specific language governing permissions 6020 * and limitations under the License. 6021 * 6022 * When distributing Covered Code, include this CDDL HEADER in each 6023 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6024 * If applicable, add the following below this CDDL HEADER, with the 6025 * fields enclosed by brackets "[]" replaced with your own identifying 6026 * information: Portions Copyright [yyyy] [name of copyright owner] 6027 * 6028 * CDDL HEADER END 6029 */ 6030 /* Copyright (c) 1988 AT&T */ 6031 /* All Rights Reserved */ 6032 6033 6034 /* 6035 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6036 * 6037 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6038 * Use is subject to license terms. 6039 */ 6040 /* 6041 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 6042 * Copyright 2016 Joyent, Inc. 6043 */ 6044 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 2 6045 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 6046 extern char *errstr; 6047 6048 struct ainfo { 6049 char *local; 6050 mode_t mode; 6051 char owner[64 +1]; 6052 char group[64 +1]; 6053 major_t major; 6054 minor_t minor; 6055 }; 6056 6057 struct cinfo { 6058 long cksum; 6059 fsblkcnt_t size; 6060 time_t modtime; 6061 }; 6062 6063 struct pinfo { 6064 char status; 6065 char pkg[64 +1]; 6066 char editflag; 6067 char aclass[64 +1]; 6068 struct pinfo 6069 *next; 6070 }; 6071 6072 struct cfent { 6073 short volno; 6074 char ftype; 6075 char pkg_class[64 +1]; 6076 int pkg_class_idx; 6077 char *path; 6078 struct ainfo ainfo; 6079 struct cinfo cinfo; 6080 short npkgs; 6081 struct pinfo 6082 *pinfo; 6083 }; 6084 6085 /* averify() & cverify() error codes */ 6086 # 46 "sortmap.c" 2 6087 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkglocs.h" 1 6088 /* 6089 * CDDL HEADER START 6090 * 6091 * The contents of this file are subject to the terms of the 6092 * Common Development and Distribution License, Version 1.0 only 6093 * (the "License"). You may not use this file except in compliance 6094 * with the License. 6095 * 6096 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6097 * or http://www.opensolaris.org/os/licensing. 6098 * See the License for the specific language governing permissions 6099 * and limitations under the License. 6100 * 6101 * When distributing Covered Code, include this CDDL HEADER in each 6102 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6103 * If applicable, add the following below this CDDL HEADER, with the 6104 * fields enclosed by brackets "[]" replaced with your own identifying 6105 * information: Portions Copyright [yyyy] [name of copyright owner] 6106 * 6107 * CDDL HEADER END 6108 */ 6109 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6110 /* All Rights Reserved */ 6111 # 47 "sortmap.c" 2 6112 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1 6113 /* 6114 * CDDL HEADER START 6115 * 6116 * The contents of this file are subject to the terms of the 6117 * Common Development and Distribution License, Version 1.0 only 6118 * (the "License"). You may not use this file except in compliance 6119 * with the License. 6120 * 6121 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6122 * or http://www.opensolaris.org/os/licensing. 6123 * See the License for the specific language governing permissions 6124 * and limitations under the License. 6125 * 6126 * When distributing Covered Code, include this CDDL HEADER in each 6127 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6128 * If applicable, add the following below this CDDL HEADER, with the 6129 * fields enclosed by brackets "[]" replaced with your own identifying 6130 * information: Portions Copyright [yyyy] [name of copyright owner] 6131 * 6132 * CDDL HEADER END 6133 */ 6134 /* 6135 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 6136 * Use is subject to license terms. 6137 */ 6138 6139 /* 6140 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6141 * 6142 * Portions of this file developed by Garrett D'Amore are licensed 6143 * under the terms of the Common Development and Distribution License (CDDL) 6144 * version 1.0 only. The use of subsequent versions of the License are 6145 * is specifically prohibited unless those terms are not in conflict with 6146 * version 1.0 of the License. You can find this license on-line at 6147 * http://www.illumos.org/license/CDDL 6148 */ 6149 6150 6151 6152 6153 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1 6154 /* 6155 * CDDL HEADER START 6156 * 6157 * The contents of this file are subject to the terms of the 6158 * Common Development and Distribution License, Version 1.0 only 6159 * (the "License"). You may not use this file except in compliance 6160 * with the License. 6161 * 6162 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6163 * or http://www.opensolaris.org/os/licensing. 6164 * See the License for the specific language governing permissions 6165 * and limitations under the License. 6166 * 6167 * When distributing Covered Code, include this CDDL HEADER in each 6168 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6169 * If applicable, add the following below this CDDL HEADER, with the 6170 * fields enclosed by brackets "[]" replaced with your own identifying 6171 * information: Portions Copyright [yyyy] [name of copyright owner] 6172 * 6173 * CDDL HEADER END 6174 */ 6175 /* 6176 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6177 * Copyright 2014 PALO, Richard. 6178 * 6179 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 6180 * Use is subject to license terms. 6181 */ 6182 6183 /* Copyright (c) 1988 AT&T */ 6184 /* All Rights Reserved */ 6185 6186 6187 /* 6188 * An application should not include this header directly. Instead it 6189 * should be included only through the inclusion of other Sun headers. 6190 * 6191 * The contents of this header is limited to identifiers specified in the 6192 * C Standard. Any new identifiers specified in future amendments to the 6193 * C Standard must be placed in this header. If these new identifiers 6194 * are required to also be in the C++ Standard "std" namespace, then for 6195 * anything other than macro definitions, corresponding "using" directives 6196 * must also be added to <locale.h>. 6197 */ 6198 6199 6200 6201 6202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6203 /* 6204 * CDDL HEADER START 6205 * 6206 * The contents of this file are subject to the terms of the 6207 * Common Development and Distribution License (the "License"). 6208 * You may not use this file except in compliance with the License. 6209 * 6210 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6211 * or http://www.opensolaris.org/os/licensing. 6212 * See the License for the specific language governing permissions 6213 * and limitations under the License. 6214 * 6215 * When distributing Covered Code, include this CDDL HEADER in each 6216 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6217 * If applicable, add the following below this CDDL HEADER, with the 6218 * fields enclosed by brackets "[]" replaced with your own identifying 6219 * information: Portions Copyright [yyyy] [name of copyright owner] 6220 * 6221 * CDDL HEADER END 6222 */ 6223 6224 /* 6225 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 6226 * Copyright 2016 Joyent, Inc. 6227 * 6228 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6229 * Use is subject to license terms. 6230 */ 6231 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 6232 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 6233 /* 6234 * This file and its contents are supplied under the terms of the 6235 * Common Development and Distribution License ("CDDL"), version 1.0. 6236 * You may only use this file in accordance with the terms of version 6237 * 1.0 of the CDDL. 6238 * 6239 * A full copy of the text of the CDDL should have accompanied this 6240 * source. A copy of the CDDL is also available via the Internet at 6241 * http://www.illumos.org/license/CDDL. 6242 */ 6243 6244 /* 6245 * Copyright 2014-2016 PALO, Richard. 6246 */ 6247 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 6248 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 6249 struct lconv { 6250 char *decimal_point; 6251 char *thousands_sep; 6252 char *grouping; 6253 char *int_curr_symbol; 6254 char *currency_symbol; 6255 char *mon_decimal_point; 6256 char *mon_thousands_sep; 6257 char *mon_grouping; 6258 char *positive_sign; 6259 char *negative_sign; 6260 char int_frac_digits; 6261 char frac_digits; 6262 char p_cs_precedes; 6263 char p_sep_by_space; 6264 char n_cs_precedes; 6265 char n_sep_by_space; 6266 char p_sign_posn; 6267 char n_sign_posn; 6268 6269 /* 6270 * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999 6271 * standard. Namespace and binary compatibility dictate that visibility 6272 * of these new members be limited. Visibility is limited to a strictly 6273 * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined. 6274 */ 6275 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 6276 }; 6277 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 6278 extern char *setlocale(int, const char *); 6279 extern struct lconv *localeconv(void); 6280 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 6281 6282 6283 6284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 6285 /* 6286 * CDDL HEADER START 6287 * 6288 * The contents of this file are subject to the terms of the 6289 * Common Development and Distribution License (the "License"). 6290 * You may not use this file except in compliance with the License. 6291 * 6292 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6293 * or http://www.opensolaris.org/os/licensing. 6294 * See the License for the specific language governing permissions 6295 * and limitations under the License. 6296 * 6297 * When distributing Covered Code, include this CDDL HEADER in each 6298 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6299 * If applicable, add the following below this CDDL HEADER, with the 6300 * fields enclosed by brackets "[]" replaced with your own identifying 6301 * information: Portions Copyright [yyyy] [name of copyright owner] 6302 * 6303 * CDDL HEADER END 6304 */ 6305 /* 6306 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6307 * 6308 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6309 * Use is subject to license terms. 6310 */ 6311 6312 6313 6314 6315 6316 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 6317 /* 6318 * CDDL HEADER START 6319 * 6320 * The contents of this file are subject to the terms of the 6321 * Common Development and Distribution License (the "License"). 6322 * You may not use this file except in compliance with the License. 6323 * 6324 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6325 * or http://www.opensolaris.org/os/licensing. 6326 * See the License for the specific language governing permissions 6327 * and limitations under the License. 6328 * 6329 * 6330 * When distributing Covered Code, include this CDDL HEADER in each 6331 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6332 * If applicable, add the following below this CDDL HEADER, with the 6333 * fields enclosed by brackets "[]" replaced with your own identifying 6334 * information: Portions Copyright [yyyy] [name of copyright owner] 6335 * 6336 * CDDL HEADER END 6337 */ 6338 6339 /* 6340 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6341 * Use is subject to license terms. 6342 * Copyright 2016 Joyent, Inc. 6343 */ 6344 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2 6345 6346 6347 6348 6349 6350 /* 6351 * wchar_t is a built-in type in standard C++ and as such is not 6352 * defined here when using standard C++. However, the GNU compiler 6353 * fixincludes utility nonetheless creates its own version of this 6354 * header for use by gcc and g++. In that version it adds a redundant 6355 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 6356 * header we need to include the following magic comment: 6357 * 6358 * we must use the C++ compiler's type 6359 * 6360 * The above comment should not be removed or changed until GNU 6361 * gcc/fixinc/inclhack.def is updated to bypass this header. 6362 */ 6363 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 6364 extern char *dcgettext(const char *, const char *, const int); 6365 extern char *dgettext(const char *, const char *); 6366 extern char *gettext(const char *); 6367 extern char *textdomain(const char *); 6368 extern char *bindtextdomain(const char *, const char *); 6369 6370 /* 6371 * LI18NUX 2000 Globalization Specification Version 1.0 6372 * with Amendment 2 6373 */ 6374 extern char *dcngettext(const char *, const char *, 6375 const char *, unsigned long int, int); 6376 extern char *dngettext(const char *, const char *, 6377 const char *, unsigned long int); 6378 extern char *ngettext(const char *, const char *, unsigned long int); 6379 extern char *bind_textdomain_codeset(const char *, const char *); 6380 6381 /* Word handling functions --- requires dynamic linking */ 6382 /* Warning: these are experimental and subject to change. */ 6383 extern int wdinit(void); 6384 extern int wdchkind(wchar_t); 6385 extern int wdbindf(wchar_t, wchar_t, int); 6386 extern wchar_t *wddelim(wchar_t, wchar_t, int); 6387 extern wchar_t mcfiller(void); 6388 extern int mcwrap(void); 6389 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 6390 6391 6392 /* 6393 * Allow global visibility for symbols defined in 6394 * C++ "std" namespace in <iso/locale_iso.h>. 6395 */ 6396 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 6397 /* 6398 * These were added in POSIX 2008 as part of the newlocale() specification. 6399 */ 6400 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 6401 extern locale_t duplocale(locale_t); 6402 extern void freelocale(locale_t); 6403 extern locale_t newlocale(int, const char *, locale_t); 6404 extern locale_t uselocale(locale_t); 6405 6406 6407 extern locale_t __global_locale(void); 6408 # 48 "sortmap.c" 2 6409 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 6410 /* 6411 * CDDL HEADER START 6412 * 6413 * The contents of this file are subject to the terms of the 6414 * Common Development and Distribution License (the "License"). 6415 * You may not use this file except in compliance with the License. 6416 * 6417 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6418 * or http://www.opensolaris.org/os/licensing. 6419 * See the License for the specific language governing permissions 6420 * and limitations under the License. 6421 * 6422 * When distributing Covered Code, include this CDDL HEADER in each 6423 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6424 * If applicable, add the following below this CDDL HEADER, with the 6425 * fields enclosed by brackets "[]" replaced with your own identifying 6426 * information: Portions Copyright [yyyy] [name of copyright owner] 6427 * 6428 * CDDL HEADER END 6429 */ 6430 /* 6431 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6432 * 6433 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6434 * Use is subject to license terms. 6435 */ 6436 # 49 "sortmap.c" 2 6437 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 6438 /* 6439 * CDDL HEADER START 6440 * 6441 * The contents of this file are subject to the terms of the 6442 * Common Development and Distribution License (the "License"). 6443 * You may not use this file except in compliance with the License. 6444 * 6445 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6446 * or http://www.opensolaris.org/os/licensing. 6447 * See the License for the specific language governing permissions 6448 * and limitations under the License. 6449 * 6450 * When distributing Covered Code, include this CDDL HEADER in each 6451 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6452 * If applicable, add the following below this CDDL HEADER, with the 6453 * fields enclosed by brackets "[]" replaced with your own identifying 6454 * information: Portions Copyright [yyyy] [name of copyright owner] 6455 * 6456 * CDDL HEADER END 6457 */ 6458 6459 /* 6460 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 6461 * Use is subject to license terms. 6462 */ 6463 6464 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6465 /* All Rights Reserved */ 6466 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 6467 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6468 /* 6469 * CDDL HEADER START 6470 * 6471 * The contents of this file are subject to the terms of the 6472 * Common Development and Distribution License (the "License"). 6473 * You may not use this file except in compliance with the License. 6474 * 6475 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6476 * or http://www.opensolaris.org/os/licensing. 6477 * See the License for the specific language governing permissions 6478 * and limitations under the License. 6479 * 6480 * When distributing Covered Code, include this CDDL HEADER in each 6481 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6482 * If applicable, add the following below this CDDL HEADER, with the 6483 * fields enclosed by brackets "[]" replaced with your own identifying 6484 * information: Portions Copyright [yyyy] [name of copyright owner] 6485 * 6486 * CDDL HEADER END 6487 */ 6488 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6489 /* All Rights Reserved */ 6490 6491 6492 /* 6493 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6494 * Use is subject to license terms. 6495 * 6496 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6497 * Copyright 2016 Joyent, Inc. 6498 */ 6499 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 6500 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 6501 /* 6502 * CDDL HEADER START 6503 * 6504 * The contents of this file are subject to the terms of the 6505 * Common Development and Distribution License (the "License"). 6506 * You may not use this file except in compliance with the License. 6507 * 6508 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6509 * or http://www.opensolaris.org/os/licensing. 6510 * See the License for the specific language governing permissions 6511 * and limitations under the License. 6512 * 6513 * When distributing Covered Code, include this CDDL HEADER in each 6514 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6515 * If applicable, add the following below this CDDL HEADER, with the 6516 * fields enclosed by brackets "[]" replaced with your own identifying 6517 * information: Portions Copyright [yyyy] [name of copyright owner] 6518 * 6519 * CDDL HEADER END 6520 */ 6521 6522 /* 6523 * Copyright (c) 2013 Gary Mills 6524 * 6525 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6526 * Use is subject to license terms. 6527 */ 6528 6529 /* Copyright (c) 1988 AT&T */ 6530 /* All Rights Reserved */ 6531 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 6532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 6533 /* 6534 * CDDL HEADER START 6535 * 6536 * The contents of this file are subject to the terms of the 6537 * Common Development and Distribution License (the "License"). 6538 * You may not use this file except in compliance with the License. 6539 * 6540 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6541 * or http://www.opensolaris.org/os/licensing. 6542 * See the License for the specific language governing permissions 6543 * and limitations under the License. 6544 * 6545 * When distributing Covered Code, include this CDDL HEADER in each 6546 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6547 * If applicable, add the following below this CDDL HEADER, with the 6548 * fields enclosed by brackets "[]" replaced with your own identifying 6549 * information: Portions Copyright [yyyy] [name of copyright owner] 6550 * 6551 * CDDL HEADER END 6552 */ 6553 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6554 /* All Rights Reserved */ 6555 6556 /* 6557 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6558 * Use is subject to license terms. 6559 */ 6560 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 6561 6562 /* Settings for procedure scripts */ 6563 6564 6565 6566 6567 6568 6569 /* Settings for class action scripts */ 6570 6571 6572 6573 6574 6575 /* Settings for non-privileged scripts */ 6576 # 64 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 6577 /* Settings for admin "rscriptalt" option */ 6578 # 80 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 6579 /* Additional cfent/cfextra codes. */ 6580 6581 6582 6583 /* This holds admin file data. */ 6584 struct admin { 6585 char *mail; 6586 char *instance; 6587 char *partial; 6588 char *runlevel; 6589 char *idepend; 6590 char *rdepend; 6591 char *space; 6592 char *setuid; 6593 char *conflict; 6594 char *action; 6595 char *networktimeout; 6596 char *networkretries; 6597 char *authentication; 6598 char *keystore; 6599 char *proxy; 6600 char *basedir; 6601 char *rscriptalt; 6602 }; 6603 6604 /* 6605 * This table details the status of all filesystems available to the target 6606 * host. 6607 */ 6608 struct fstable { 6609 char *name; /* name of filesystem, (mount point) */ 6610 int namlen; /* The length of the name (mountpoint) */ 6611 fsblkcnt_t bsize; /* fundamental file system block size */ 6612 fsblkcnt_t frsize; /* file system fragment size */ 6613 fsblkcnt_t bfree; /* total # of free blocks */ 6614 fsblkcnt_t bused; /* total # of used blocks */ 6615 fsblkcnt_t ffree; /* total # of free file nodes */ 6616 fsblkcnt_t fused; /* total # of used file nodes */ 6617 char *fstype; /* type of filesystem - nfs, lo, ... */ 6618 char *remote_name; /* client's mounted filesystem */ 6619 unsigned writeable:1; /* access permission */ 6620 unsigned write_tested:1; /* access permission fully tested */ 6621 unsigned remote:1; /* on a remote filesystem */ 6622 unsigned mounted:1; /* actually mounted right now */ 6623 unsigned srvr_map:1; /* use server_map() */ 6624 unsigned cl_mounted:1; /* mounted in client space */ 6625 unsigned mnt_failed:1; /* attempt to loopback mount failed */ 6626 unsigned served:1; /* filesystem comes from a server */ 6627 }; 6628 # 50 "sortmap.c" 2 6629 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1 6630 /* 6631 * CDDL HEADER START 6632 * 6633 * The contents of this file are subject to the terms of the 6634 * Common Development and Distribution License (the "License"). 6635 * You may not use this file except in compliance with the License. 6636 * 6637 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6638 * or http://www.opensolaris.org/os/licensing. 6639 * See the License for the specific language governing permissions 6640 * and limitations under the License. 6641 * 6642 * When distributing Covered Code, include this CDDL HEADER in each 6643 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6644 * If applicable, add the following below this CDDL HEADER, with the 6645 * fields enclosed by brackets "[]" replaced with your own identifying 6646 * information: Portions Copyright [yyyy] [name of copyright owner] 6647 * 6648 * CDDL HEADER END 6649 */ 6650 6651 /* 6652 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6653 * Use is subject to license terms. 6654 */ 6655 6656 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6657 /* All Rights Reserved */ 6658 # 38 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 6659 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6660 /* 6661 * CDDL HEADER START 6662 * 6663 * The contents of this file are subject to the terms of the 6664 * Common Development and Distribution License (the "License"). 6665 * You may not use this file except in compliance with the License. 6666 * 6667 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6668 * or http://www.opensolaris.org/os/licensing. 6669 * See the License for the specific language governing permissions 6670 * and limitations under the License. 6671 * 6672 * When distributing Covered Code, include this CDDL HEADER in each 6673 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6674 * If applicable, add the following below this CDDL HEADER, with the 6675 * fields enclosed by brackets "[]" replaced with your own identifying 6676 * information: Portions Copyright [yyyy] [name of copyright owner] 6677 * 6678 * CDDL HEADER END 6679 */ 6680 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6681 /* All Rights Reserved */ 6682 6683 6684 /* 6685 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6686 * Use is subject to license terms. 6687 * 6688 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6689 * Copyright 2016 Joyent, Inc. 6690 */ 6691 # 39 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6692 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 6693 /* 6694 * CDDL HEADER START 6695 * 6696 * The contents of this file are subject to the terms of the 6697 * Common Development and Distribution License (the "License"). 6698 * You may not use this file except in compliance with the License. 6699 * 6700 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6701 * or http://www.opensolaris.org/os/licensing. 6702 * See the License for the specific language governing permissions 6703 * and limitations under the License. 6704 * 6705 * When distributing Covered Code, include this CDDL HEADER in each 6706 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6707 * If applicable, add the following below this CDDL HEADER, with the 6708 * fields enclosed by brackets "[]" replaced with your own identifying 6709 * information: Portions Copyright [yyyy] [name of copyright owner] 6710 * 6711 * CDDL HEADER END 6712 */ 6713 6714 /* 6715 * Copyright (c) 2013 Gary Mills 6716 * 6717 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6718 * Use is subject to license terms. 6719 */ 6720 6721 /* Copyright (c) 1988 AT&T */ 6722 /* All Rights Reserved */ 6723 # 40 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6724 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 6725 /* 6726 * CDDL HEADER START 6727 * 6728 * The contents of this file are subject to the terms of the 6729 * Common Development and Distribution License (the "License"). 6730 * You may not use this file except in compliance with the License. 6731 * 6732 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6733 * or http://www.opensolaris.org/os/licensing. 6734 * See the License for the specific language governing permissions 6735 * and limitations under the License. 6736 * 6737 * When distributing Covered Code, include this CDDL HEADER in each 6738 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6739 * If applicable, add the following below this CDDL HEADER, with the 6740 * fields enclosed by brackets "[]" replaced with your own identifying 6741 * information: Portions Copyright [yyyy] [name of copyright owner] 6742 * 6743 * CDDL HEADER END 6744 */ 6745 6746 /* 6747 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6748 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 6749 */ 6750 6751 /* Copyright (c) 1988 AT&T */ 6752 /* All Rights Reserved */ 6753 6754 /* 6755 * User-visible pieces of the ANSI C standard I/O package. 6756 */ 6757 # 41 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6758 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 1 6759 /* 6760 * CDDL HEADER START 6761 * 6762 * The contents of this file are subject to the terms of the 6763 * Common Development and Distribution License, Version 1.0 only 6764 * (the "License"). You may not use this file except in compliance 6765 * with the License. 6766 * 6767 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6768 * or http://www.opensolaris.org/os/licensing. 6769 * See the License for the specific language governing permissions 6770 * and limitations under the License. 6771 * 6772 * When distributing Covered Code, include this CDDL HEADER in each 6773 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6774 * If applicable, add the following below this CDDL HEADER, with the 6775 * fields enclosed by brackets "[]" replaced with your own identifying 6776 * information: Portions Copyright [yyyy] [name of copyright owner] 6777 * 6778 * CDDL HEADER END 6779 */ 6780 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6781 /* All Rights Reserved */ 6782 6783 6784 6785 6786 6787 #pragma ident "%Z%%M% %I% %E% SMI" 6788 6789 6790 6791 6792 6793 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6794 /* 6795 * CDDL HEADER START 6796 * 6797 * The contents of this file are subject to the terms of the 6798 * Common Development and Distribution License (the "License"). 6799 * You may not use this file except in compliance with the License. 6800 * 6801 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6802 * or http://www.opensolaris.org/os/licensing. 6803 * See the License for the specific language governing permissions 6804 * and limitations under the License. 6805 * 6806 * When distributing Covered Code, include this CDDL HEADER in each 6807 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6808 * If applicable, add the following below this CDDL HEADER, with the 6809 * fields enclosed by brackets "[]" replaced with your own identifying 6810 * information: Portions Copyright [yyyy] [name of copyright owner] 6811 * 6812 * CDDL HEADER END 6813 */ 6814 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6815 /* All Rights Reserved */ 6816 6817 6818 /* 6819 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6820 * Use is subject to license terms. 6821 * 6822 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6823 * Copyright 2016 Joyent, Inc. 6824 */ 6825 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 2 6826 6827 struct pkgdev { 6828 int rdonly; 6829 int mntflg; 6830 longlong_t capacity; /* number of 512-blocks on device */ 6831 char *name; 6832 char *dirname; 6833 char *pathname; 6834 char *mount; 6835 char *fstyp; 6836 char *cdevice; 6837 char *bdevice; 6838 char *norewind; 6839 }; 6840 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6841 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 6842 /* 6843 * CDDL HEADER START 6844 * 6845 * The contents of this file are subject to the terms of the 6846 * Common Development and Distribution License (the "License"). 6847 * You may not use this file except in compliance with the License. 6848 * 6849 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6850 * or http://www.opensolaris.org/os/licensing. 6851 * See the License for the specific language governing permissions 6852 * and limitations under the License. 6853 * 6854 * When distributing Covered Code, include this CDDL HEADER in each 6855 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6856 * If applicable, add the following below this CDDL HEADER, with the 6857 * fields enclosed by brackets "[]" replaced with your own identifying 6858 * information: Portions Copyright [yyyy] [name of copyright owner] 6859 * 6860 * CDDL HEADER END 6861 */ 6862 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6863 /* All Rights Reserved */ 6864 6865 /* 6866 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6867 * Use is subject to license terms. 6868 */ 6869 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6870 # 1 "/usr/include/openssl/bio.h" 1 3 4 6871 /* crypto/bio/bio.h */ 6872 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 6873 * All rights reserved. 6874 * 6875 * This package is an SSL implementation written 6876 * by Eric Young (eay@cryptsoft.com). 6877 * The implementation was written so as to conform with Netscapes SSL. 6878 * 6879 * This library is free for commercial and non-commercial use as long as 6880 * the following conditions are aheared to. The following conditions 6881 * apply to all code found in this distribution, be it the RC4, RSA, 6882 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 6883 * included with this distribution is covered by the same copyright terms 6884 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 6885 * 6886 * Copyright remains Eric Young's, and as such any Copyright notices in 6887 * the code are not to be removed. 6888 * If this package is used in a product, Eric Young should be given attribution 6889 * as the author of the parts of the library used. 6890 * This can be in the form of a textual message at program startup or 6891 * in documentation (online or textual) provided with the package. 6892 * 6893 * Redistribution and use in source and binary forms, with or without 6894 * modification, are permitted provided that the following conditions 6895 * are met: 6896 * 1. Redistributions of source code must retain the copyright 6897 * notice, this list of conditions and the following disclaimer. 6898 * 2. Redistributions in binary form must reproduce the above copyright 6899 * notice, this list of conditions and the following disclaimer in the 6900 * documentation and/or other materials provided with the distribution. 6901 * 3. All advertising materials mentioning features or use of this software 6902 * must display the following acknowledgement: 6903 * "This product includes cryptographic software written by 6904 * Eric Young (eay@cryptsoft.com)" 6905 * The word 'cryptographic' can be left out if the rouines from the library 6906 * being used are not cryptographic related :-). 6907 * 4. If you include any Windows specific code (or a derivative thereof) from 6908 * the apps directory (application code) you must include an acknowledgement: 6909 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 6910 * 6911 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 6912 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6913 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 6914 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 6915 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 6916 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 6917 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 6918 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 6919 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 6920 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 6921 * SUCH DAMAGE. 6922 * 6923 * The licence and distribution terms for any publically available version or 6924 * derivative of this code cannot be changed. i.e. this code cannot simply be 6925 * copied and put under another distribution licence 6926 * [including the GNU Public Licence.] 6927 */ 6928 6929 6930 6931 6932 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 6933 /* e_os2.h */ 6934 /* ==================================================================== 6935 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 6936 * 6937 * Redistribution and use in source and binary forms, with or without 6938 * modification, are permitted provided that the following conditions 6939 * are met: 6940 * 6941 * 1. Redistributions of source code must retain the above copyright 6942 * notice, this list of conditions and the following disclaimer. 6943 * 6944 * 2. Redistributions in binary form must reproduce the above copyright 6945 * notice, this list of conditions and the following disclaimer in 6946 * the documentation and/or other materials provided with the 6947 * distribution. 6948 * 6949 * 3. All advertising materials mentioning features or use of this 6950 * software must display the following acknowledgment: 6951 * "This product includes software developed by the OpenSSL Project 6952 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 6953 * 6954 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 6955 * endorse or promote products derived from this software without 6956 * prior written permission. For written permission, please contact 6957 * openssl-core@openssl.org. 6958 * 6959 * 5. Products derived from this software may not be called "OpenSSL" 6960 * nor may "OpenSSL" appear in their names without prior written 6961 * permission of the OpenSSL Project. 6962 * 6963 * 6. Redistributions of any form whatsoever must retain the following 6964 * acknowledgment: 6965 * "This product includes software developed by the OpenSSL Project 6966 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 6967 * 6968 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 6969 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6970 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 6971 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 6972 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 6973 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 6974 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 6975 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 6976 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 6977 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6978 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 6979 * OF THE POSSIBILITY OF SUCH DAMAGE. 6980 * ==================================================================== 6981 * 6982 * This product includes cryptographic software written by Eric Young 6983 * (eay@cryptsoft.com). This product includes software written by Tim 6984 * Hudson (tjh@cryptsoft.com). 6985 * 6986 */ 6987 6988 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 6989 /* opensslconf.h */ 6990 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 6991 6992 6993 6994 6995 /* OpenSSL was configured with the following options: */ 6996 # 108 "/usr/include/openssl/opensslconf.h" 3 4 6997 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 6998 asks for it. This is a transient feature that is provided for those 6999 who haven't had the time to do the appropriate changes in their 7000 applications. */ 7001 # 204 "/usr/include/openssl/opensslconf.h" 3 4 7002 /* crypto/opensslconf.h.in */ 7003 7004 /* Generate 80386 code? */ 7005 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 7006 # 65 "/usr/include/openssl/e_os2.h" 3 4 7007 /****************************************************************************** 7008 * Detect operating systems. This probably needs completing. 7009 * The result is that at least one OPENSSL_SYS_os macro should be defined. 7010 * However, if none is defined, Unix is assumed. 7011 **/ 7012 7013 7014 7015 /* ---------------------- Macintosh, before MacOS X ----------------------- */ 7016 7017 7018 7019 7020 7021 /* ---------------------- NetWare ----------------------------------------- */ 7022 7023 7024 7025 7026 7027 /* --------------------- Microsoft operating systems ---------------------- */ 7028 7029 /* 7030 * Note that MSDOS actually denotes 32-bit environments running on top of 7031 * MS-DOS, such as DJGPP one. 7032 */ 7033 7034 7035 7036 7037 7038 /* 7039 * For 32 bit environment, there seems to be the CygWin environment and then 7040 * all the others that try to do the same thing Microsoft does... 7041 */ 7042 # 129 "/usr/include/openssl/e_os2.h" 3 4 7043 /* Anything that tries to look like Microsoft is "Windows" */ 7044 # 138 "/usr/include/openssl/e_os2.h" 3 4 7045 /* 7046 * DLL settings. This part is a bit tough, because it's up to the 7047 * application implementor how he or she will link the application, so it 7048 * requires some macro to be used. 7049 */ 7050 # 152 "/usr/include/openssl/e_os2.h" 3 4 7051 /* ------------------------------- OpenVMS -------------------------------- */ 7052 # 166 "/usr/include/openssl/e_os2.h" 3 4 7053 /* -------------------------------- OS/2 ---------------------------------- */ 7054 7055 7056 7057 7058 7059 /* -------------------------------- Unix ---------------------------------- */ 7060 # 207 "/usr/include/openssl/e_os2.h" 3 4 7061 /* -------------------------------- VOS ----------------------------------- */ 7062 # 218 "/usr/include/openssl/e_os2.h" 3 4 7063 /* ------------------------------ VxWorks --------------------------------- */ 7064 7065 7066 7067 7068 /* -------------------------------- BeOS ---------------------------------- */ 7069 # 234 "/usr/include/openssl/e_os2.h" 3 4 7070 /** 7071 * That's it for OS-specific stuff 7072 *****************************************************************************/ 7073 7074 /* Specials for I/O an exit */ 7075 # 247 "/usr/include/openssl/e_os2.h" 3 4 7076 /*- 7077 * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare 7078 * certain global symbols that, with some compilers under VMS, have to be 7079 * defined and declared explicitely with globaldef and globalref. 7080 * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare 7081 * DLL exports and imports for compilers under Win32. These are a little 7082 * more complicated to use. Basically, for any library that exports some 7083 * global variables, the following code must be present in the header file 7084 * that declares them, before OPENSSL_EXTERN is used: 7085 * 7086 * #ifdef SOME_BUILD_FLAG_MACRO 7087 * # undef OPENSSL_EXTERN 7088 * # define OPENSSL_EXTERN OPENSSL_EXPORT 7089 * #endif 7090 * 7091 * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL 7092 * have some generally sensible values, and for OPENSSL_EXTERN to have the 7093 * value OPENSSL_IMPORT. 7094 */ 7095 # 282 "/usr/include/openssl/e_os2.h" 3 4 7096 /*- 7097 * Macros to allow global variables to be reached through function calls when 7098 * required (if a shared library version requires it, for example. 7099 * The way it's done allows definitions like this: 7100 * 7101 * // in foobar.c 7102 * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) 7103 * // in foobar.h 7104 * OPENSSL_DECLARE_GLOBAL(int,foobar); 7105 * #define foobar OPENSSL_GLOBAL_REF(foobar) 7106 */ 7107 # 63 "/usr/include/openssl/bio.h" 2 3 4 7108 7109 7110 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 7111 /* 7112 * CDDL HEADER START 7113 * 7114 * The contents of this file are subject to the terms of the 7115 * Common Development and Distribution License (the "License"). 7116 * You may not use this file except in compliance with the License. 7117 * 7118 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7119 * or http://www.opensolaris.org/os/licensing. 7120 * See the License for the specific language governing permissions 7121 * and limitations under the License. 7122 * 7123 * When distributing Covered Code, include this CDDL HEADER in each 7124 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7125 * If applicable, add the following below this CDDL HEADER, with the 7126 * fields enclosed by brackets "[]" replaced with your own identifying 7127 * information: Portions Copyright [yyyy] [name of copyright owner] 7128 * 7129 * CDDL HEADER END 7130 */ 7131 7132 /* 7133 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7134 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7135 */ 7136 7137 /* Copyright (c) 1988 AT&T */ 7138 /* All Rights Reserved */ 7139 7140 /* 7141 * User-visible pieces of the ANSI C standard I/O package. 7142 */ 7143 # 66 "/usr/include/openssl/bio.h" 2 3 4 7144 7145 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1 3 4 7146 /* 7147 * CDDL HEADER START 7148 * 7149 * The contents of this file are subject to the terms of the 7150 * Common Development and Distribution License, Version 1.0 only 7151 * (the "License"). You may not use this file except in compliance 7152 * with the License. 7153 * 7154 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7155 * or http://www.opensolaris.org/os/licensing. 7156 * See the License for the specific language governing permissions 7157 * and limitations under the License. 7158 * 7159 * When distributing Covered Code, include this CDDL HEADER in each 7160 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7161 * If applicable, add the following below this CDDL HEADER, with the 7162 * fields enclosed by brackets "[]" replaced with your own identifying 7163 * information: Portions Copyright [yyyy] [name of copyright owner] 7164 * 7165 * CDDL HEADER END 7166 */ 7167 /* Copyright (c) 1988 AT&T */ 7168 /* All Rights Reserved */ 7169 7170 /* 7171 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7172 * 7173 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7174 * Use is subject to license terms. 7175 */ 7176 7177 7178 7179 7180 /* 7181 * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999 7182 * variable argument definitions. For legacy support, it also defines 7183 * the pre-standard variable argument definitions. 7184 * 7185 * The varargs definitions within this header are defined in terms of 7186 * implementation definitions. These implementation definitions reside 7187 * in <sys/va_list.h>. This organization enables protected use of 7188 * the implementation by other standard headers without introducing 7189 * names into the users' namespace. 7190 */ 7191 7192 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1 3 4 7193 /* 7194 * CDDL HEADER START 7195 * 7196 * The contents of this file are subject to the terms of the 7197 * Common Development and Distribution License, Version 1.0 only 7198 * (the "License"). You may not use this file except in compliance 7199 * with the License. 7200 * 7201 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7202 * or http://www.opensolaris.org/os/licensing. 7203 * See the License for the specific language governing permissions 7204 * and limitations under the License. 7205 * 7206 * When distributing Covered Code, include this CDDL HEADER in each 7207 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7208 * If applicable, add the following below this CDDL HEADER, with the 7209 * fields enclosed by brackets "[]" replaced with your own identifying 7210 * information: Portions Copyright [yyyy] [name of copyright owner] 7211 * 7212 * CDDL HEADER END 7213 */ 7214 /* Copyright (c) 1988 AT&T */ 7215 /* All Rights Reserved */ 7216 7217 7218 /* 7219 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7220 * Use is subject to license terms. 7221 */ 7222 7223 /* 7224 * An application should not include this header directly. Instead it 7225 * should be included only through the inclusion of other Sun headers. 7226 * 7227 * The contents of this header is limited to identifiers specified in the 7228 * C Standard. Any new identifiers specified in future amendments to the 7229 * C Standard must be placed in this header. If these new identifiers 7230 * are required to also be in the C++ Standard "std" namespace, then for 7231 * anything other than macro definitions, corresponding "using" directives 7232 * must also be added to <stdarg.h>. 7233 */ 7234 7235 7236 7237 7238 #pragma ident "%Z%%M% %I% %E% SMI" 7239 7240 /* 7241 * This header defines the ISO C 1989 and ISO C++ 1998 variable 7242 * argument definitions. 7243 * 7244 * The varargs definitions within this header are defined in terms of 7245 * implementation definitions. These implementation definitions reside 7246 * in <sys/va_impl.h>. This organization enables protected use of 7247 * the implementation by other standard headers without introducing 7248 * names into the users' namespace. 7249 */ 7250 7251 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1 3 4 7252 /* 7253 * CDDL HEADER START 7254 * 7255 * The contents of this file are subject to the terms of the 7256 * Common Development and Distribution License, Version 1.0 only 7257 * (the "License"). You may not use this file except in compliance 7258 * with the License. 7259 * 7260 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7261 * or http://www.opensolaris.org/os/licensing. 7262 * See the License for the specific language governing permissions 7263 * and limitations under the License. 7264 * 7265 * When distributing Covered Code, include this CDDL HEADER in each 7266 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7267 * If applicable, add the following below this CDDL HEADER, with the 7268 * fields enclosed by brackets "[]" replaced with your own identifying 7269 * information: Portions Copyright [yyyy] [name of copyright owner] 7270 * 7271 * CDDL HEADER END 7272 */ 7273 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7274 /* All Rights Reserved */ 7275 7276 7277 /* 7278 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7279 * 7280 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7281 * Use is subject to license terms. 7282 */ 7283 7284 7285 7286 7287 /* 7288 * An application should not include this header directly. Instead it 7289 * should be included only through the inclusion of other Sun headers, 7290 * specifically <stdarg.h> and <varargs.h>. 7291 * 7292 * This header serves two purposes. 7293 * 7294 * First, it provides a common set of definitions that implementations 7295 * of the various standards for variable argument lists may use. These 7296 * various standards are implemented in <varargs.h>, <stdarg.h>, 7297 * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>. 7298 * 7299 * Second, it provides varying implementations of the common definitions, 7300 * depending upon the compiler. 7301 */ 7302 7303 /* 7304 * The common definitions exported by this header or compilers using 7305 * this header are: 7306 * 7307 * the macro __va_start(list, name) starting the list iteration 7308 * the macro __va_arg(list, type) getting the current arg and iterating 7309 * the macro __va_copy(to, from) to bookmark the list iteration 7310 * the macro __va_end(list) to end the iteration 7311 * 7312 * In addition, the following are exported via inclusion of <sys/va_list.h>: 7313 * 7314 * the identifier __builtin_va_alist for the variable list pseudo parameter 7315 * the type __va_alist_type for the variable list pseudo parameter 7316 * the type __va_list defining the type of the variable list iterator 7317 */ 7318 7319 /* 7320 * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and 7321 * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor 7322 * macros (e.g. __sparc) to determine the protocol appropriate to the 7323 * current compilation. It is intended that the compilation system 7324 * define the feature, processor, and compiler macros, not the user of 7325 * the system. 7326 */ 7327 7328 /* 7329 * Many compilation systems depend upon the use of special functions 7330 * built into the the compilation system to handle variable argument 7331 * lists. These built-in symbols may include one or more of the 7332 * following: 7333 * 7334 * __builtin_va_alist 7335 * __builtin_va_start 7336 * __builtin_va_arg_incr 7337 * __builtin_stdarg_start 7338 * __builtin_va_end 7339 * __builtin_va_arg 7340 * __builtin_va_copy 7341 */ 7342 7343 /* 7344 * The following are defined in <sys/va_list.h>: 7345 * 7346 * __va_alist_type 7347 * __va_void() 7348 * __va_ptr_base 7349 * ISA definitions via inclusion of <sys/isa_defs.h> 7350 * 7351 * Inclusion of this header also makes visible the symbols in <sys/va_list.h>. 7352 * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h> 7353 * via inclusion of <iso/stdarg_iso.h>. 7354 */ 7355 7356 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 3 4 7357 /* 7358 * CDDL HEADER START 7359 * 7360 * The contents of this file are subject to the terms of the 7361 * Common Development and Distribution License, Version 1.0 only 7362 * (the "License"). You may not use this file except in compliance 7363 * with the License. 7364 * 7365 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7366 * or http://www.opensolaris.org/os/licensing. 7367 * See the License for the specific language governing permissions 7368 * and limitations under the License. 7369 * 7370 * When distributing Covered Code, include this CDDL HEADER in each 7371 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7372 * If applicable, add the following below this CDDL HEADER, with the 7373 * fields enclosed by brackets "[]" replaced with your own identifying 7374 * information: Portions Copyright [yyyy] [name of copyright owner] 7375 * 7376 * CDDL HEADER END 7377 */ 7378 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7379 /* All Rights Reserved */ 7380 7381 7382 /* 7383 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7384 * 7385 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7386 * Use is subject to license terms. 7387 */ 7388 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2 3 4 7389 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2 3 4 7390 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 3 4 7391 typedef __va_list va_list; 7392 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 7393 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1 3 4 7394 /* 7395 * CDDL HEADER START 7396 * 7397 * The contents of this file are subject to the terms of the 7398 * Common Development and Distribution License, Version 1.0 only 7399 * (the "License"). You may not use this file except in compliance 7400 * with the License. 7401 * 7402 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7403 * or http://www.opensolaris.org/os/licensing. 7404 * See the License for the specific language governing permissions 7405 * and limitations under the License. 7406 * 7407 * When distributing Covered Code, include this CDDL HEADER in each 7408 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7409 * If applicable, add the following below this CDDL HEADER, with the 7410 * fields enclosed by brackets "[]" replaced with your own identifying 7411 * information: Portions Copyright [yyyy] [name of copyright owner] 7412 * 7413 * CDDL HEADER END 7414 */ 7415 /* Copyright (c) 1988 AT&T */ 7416 /* All Rights Reserved */ 7417 7418 7419 /* 7420 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7421 * Use is subject to license terms. 7422 */ 7423 7424 7425 7426 7427 #pragma ident "%Z%%M% %I% %E% SMI" 7428 7429 /* 7430 * An application should not include this header directly. Instead it 7431 * should be included only through the inclusion of other Sun headers. 7432 * 7433 * This header defines the va_copy variable argument macro, which is 7434 * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++ 7435 * 1998. Because this macro is a long-standing Solaris extension, it 7436 * is also permitted in other contexts. 7437 * 7438 * The varargs definitions within this header are defined in terms of 7439 * implementation definitions. These implementation definitions reside 7440 * in <sys/va_list.h>. This organization enables protected use of 7441 * the implementation by other standard headers without introducing 7442 * names into the users' namespace. 7443 */ 7444 7445 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 7446 /* 7447 * CDDL HEADER START 7448 * 7449 * The contents of this file are subject to the terms of the 7450 * Common Development and Distribution License (the "License"). 7451 * You may not use this file except in compliance with the License. 7452 * 7453 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7454 * or http://www.opensolaris.org/os/licensing. 7455 * See the License for the specific language governing permissions 7456 * and limitations under the License. 7457 * 7458 * When distributing Covered Code, include this CDDL HEADER in each 7459 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7460 * If applicable, add the following below this CDDL HEADER, with the 7461 * fields enclosed by brackets "[]" replaced with your own identifying 7462 * information: Portions Copyright [yyyy] [name of copyright owner] 7463 * 7464 * CDDL HEADER END 7465 */ 7466 7467 /* 7468 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 7469 * Copyright 2016 Joyent, Inc. 7470 * 7471 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7472 * Use is subject to license terms. 7473 */ 7474 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2 3 4 7475 7476 7477 7478 7479 7480 /* 7481 * va_copy was initially a Solaris extension to provide a portable 7482 * way to perform a variable argument list ``bookmarking'' function. 7483 * It is now specified in the ISO/IEC 9899:1999 standard. 7484 */ 7485 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 7486 7487 /* 7488 * Allow global visibility for symbols defined in 7489 * C++ "std" namespace in <iso/stdarg_iso.h>. 7490 */ 7491 # 68 "/usr/include/openssl/bio.h" 2 3 4 7492 7493 # 1 "/usr/include/openssl/crypto.h" 1 3 4 7494 /* crypto/crypto.h */ 7495 /* ==================================================================== 7496 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 7497 * 7498 * Redistribution and use in source and binary forms, with or without 7499 * modification, are permitted provided that the following conditions 7500 * are met: 7501 * 7502 * 1. Redistributions of source code must retain the above copyright 7503 * notice, this list of conditions and the following disclaimer. 7504 * 7505 * 2. Redistributions in binary form must reproduce the above copyright 7506 * notice, this list of conditions and the following disclaimer in 7507 * the documentation and/or other materials provided with the 7508 * distribution. 7509 * 7510 * 3. All advertising materials mentioning features or use of this 7511 * software must display the following acknowledgment: 7512 * "This product includes software developed by the OpenSSL Project 7513 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7514 * 7515 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7516 * endorse or promote products derived from this software without 7517 * prior written permission. For written permission, please contact 7518 * openssl-core@openssl.org. 7519 * 7520 * 5. Products derived from this software may not be called "OpenSSL" 7521 * nor may "OpenSSL" appear in their names without prior written 7522 * permission of the OpenSSL Project. 7523 * 7524 * 6. Redistributions of any form whatsoever must retain the following 7525 * acknowledgment: 7526 * "This product includes software developed by the OpenSSL Project 7527 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7528 * 7529 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7530 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7531 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7532 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7533 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7534 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7535 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7536 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7537 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7538 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7539 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7540 * OF THE POSSIBILITY OF SUCH DAMAGE. 7541 * ==================================================================== 7542 * 7543 * This product includes cryptographic software written by Eric Young 7544 * (eay@cryptsoft.com). This product includes software written by Tim 7545 * Hudson (tjh@cryptsoft.com). 7546 * 7547 */ 7548 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7549 * All rights reserved. 7550 * 7551 * This package is an SSL implementation written 7552 * by Eric Young (eay@cryptsoft.com). 7553 * The implementation was written so as to conform with Netscapes SSL. 7554 * 7555 * This library is free for commercial and non-commercial use as long as 7556 * the following conditions are aheared to. The following conditions 7557 * apply to all code found in this distribution, be it the RC4, RSA, 7558 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7559 * included with this distribution is covered by the same copyright terms 7560 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7561 * 7562 * Copyright remains Eric Young's, and as such any Copyright notices in 7563 * the code are not to be removed. 7564 * If this package is used in a product, Eric Young should be given attribution 7565 * as the author of the parts of the library used. 7566 * This can be in the form of a textual message at program startup or 7567 * in documentation (online or textual) provided with the package. 7568 * 7569 * Redistribution and use in source and binary forms, with or without 7570 * modification, are permitted provided that the following conditions 7571 * are met: 7572 * 1. Redistributions of source code must retain the copyright 7573 * notice, this list of conditions and the following disclaimer. 7574 * 2. Redistributions in binary form must reproduce the above copyright 7575 * notice, this list of conditions and the following disclaimer in the 7576 * documentation and/or other materials provided with the distribution. 7577 * 3. All advertising materials mentioning features or use of this software 7578 * must display the following acknowledgement: 7579 * "This product includes cryptographic software written by 7580 * Eric Young (eay@cryptsoft.com)" 7581 * The word 'cryptographic' can be left out if the rouines from the library 7582 * being used are not cryptographic related :-). 7583 * 4. If you include any Windows specific code (or a derivative thereof) from 7584 * the apps directory (application code) you must include an acknowledgement: 7585 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7586 * 7587 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7588 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7589 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7590 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7591 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7592 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7593 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7594 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7595 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7596 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7597 * SUCH DAMAGE. 7598 * 7599 * The licence and distribution terms for any publically available version or 7600 * derivative of this code cannot be changed. i.e. this code cannot simply be 7601 * copied and put under another distribution licence 7602 * [including the GNU Public Licence.] 7603 */ 7604 /* ==================================================================== 7605 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 7606 * ECDH support in OpenSSL originally developed by 7607 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 7608 */ 7609 7610 7611 7612 7613 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 3 4 7614 /* 7615 * CDDL HEADER START 7616 * 7617 * The contents of this file are subject to the terms of the 7618 * Common Development and Distribution License (the "License"). 7619 * You may not use this file except in compliance with the License. 7620 * 7621 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7622 * or http://www.opensolaris.org/os/licensing. 7623 * See the License for the specific language governing permissions 7624 * and limitations under the License. 7625 * 7626 * When distributing Covered Code, include this CDDL HEADER in each 7627 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7628 * If applicable, add the following below this CDDL HEADER, with the 7629 * fields enclosed by brackets "[]" replaced with your own identifying 7630 * information: Portions Copyright [yyyy] [name of copyright owner] 7631 * 7632 * CDDL HEADER END 7633 */ 7634 7635 /* 7636 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7637 * Copyright (c) 2013 Gary Mills 7638 * 7639 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7640 */ 7641 7642 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 7643 7644 /* Copyright (c) 1988 AT&T */ 7645 /* All Rights Reserved */ 7646 # 121 "/usr/include/openssl/crypto.h" 2 3 4 7647 7648 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 7649 /* e_os2.h */ 7650 /* ==================================================================== 7651 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 7652 * 7653 * Redistribution and use in source and binary forms, with or without 7654 * modification, are permitted provided that the following conditions 7655 * are met: 7656 * 7657 * 1. Redistributions of source code must retain the above copyright 7658 * notice, this list of conditions and the following disclaimer. 7659 * 7660 * 2. Redistributions in binary form must reproduce the above copyright 7661 * notice, this list of conditions and the following disclaimer in 7662 * the documentation and/or other materials provided with the 7663 * distribution. 7664 * 7665 * 3. All advertising materials mentioning features or use of this 7666 * software must display the following acknowledgment: 7667 * "This product includes software developed by the OpenSSL Project 7668 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7669 * 7670 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7671 * endorse or promote products derived from this software without 7672 * prior written permission. For written permission, please contact 7673 * openssl-core@openssl.org. 7674 * 7675 * 5. Products derived from this software may not be called "OpenSSL" 7676 * nor may "OpenSSL" appear in their names without prior written 7677 * permission of the OpenSSL Project. 7678 * 7679 * 6. Redistributions of any form whatsoever must retain the following 7680 * acknowledgment: 7681 * "This product includes software developed by the OpenSSL Project 7682 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7683 * 7684 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7685 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7686 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7687 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7688 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7689 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7690 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7691 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7692 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7693 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7694 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7695 * OF THE POSSIBILITY OF SUCH DAMAGE. 7696 * ==================================================================== 7697 * 7698 * This product includes cryptographic software written by Eric Young 7699 * (eay@cryptsoft.com). This product includes software written by Tim 7700 * Hudson (tjh@cryptsoft.com). 7701 * 7702 */ 7703 7704 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 7705 /* opensslconf.h */ 7706 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 7707 7708 7709 7710 7711 /* OpenSSL was configured with the following options: */ 7712 # 108 "/usr/include/openssl/opensslconf.h" 3 4 7713 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 7714 asks for it. This is a transient feature that is provided for those 7715 who haven't had the time to do the appropriate changes in their 7716 applications. */ 7717 # 204 "/usr/include/openssl/opensslconf.h" 3 4 7718 /* crypto/opensslconf.h.in */ 7719 7720 /* Generate 80386 code? */ 7721 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 7722 # 123 "/usr/include/openssl/crypto.h" 2 3 4 7723 7724 7725 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 7726 /* 7727 * CDDL HEADER START 7728 * 7729 * The contents of this file are subject to the terms of the 7730 * Common Development and Distribution License (the "License"). 7731 * You may not use this file except in compliance with the License. 7732 * 7733 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7734 * or http://www.opensolaris.org/os/licensing. 7735 * See the License for the specific language governing permissions 7736 * and limitations under the License. 7737 * 7738 * When distributing Covered Code, include this CDDL HEADER in each 7739 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7740 * If applicable, add the following below this CDDL HEADER, with the 7741 * fields enclosed by brackets "[]" replaced with your own identifying 7742 * information: Portions Copyright [yyyy] [name of copyright owner] 7743 * 7744 * CDDL HEADER END 7745 */ 7746 7747 /* 7748 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7749 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7750 */ 7751 7752 /* Copyright (c) 1988 AT&T */ 7753 /* All Rights Reserved */ 7754 7755 /* 7756 * User-visible pieces of the ANSI C standard I/O package. 7757 */ 7758 # 126 "/usr/include/openssl/crypto.h" 2 3 4 7759 7760 7761 # 1 "/usr/include/openssl/stack.h" 1 3 4 7762 /* crypto/stack/stack.h */ 7763 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7764 * All rights reserved. 7765 * 7766 * This package is an SSL implementation written 7767 * by Eric Young (eay@cryptsoft.com). 7768 * The implementation was written so as to conform with Netscapes SSL. 7769 * 7770 * This library is free for commercial and non-commercial use as long as 7771 * the following conditions are aheared to. The following conditions 7772 * apply to all code found in this distribution, be it the RC4, RSA, 7773 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7774 * included with this distribution is covered by the same copyright terms 7775 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7776 * 7777 * Copyright remains Eric Young's, and as such any Copyright notices in 7778 * the code are not to be removed. 7779 * If this package is used in a product, Eric Young should be given attribution 7780 * as the author of the parts of the library used. 7781 * This can be in the form of a textual message at program startup or 7782 * in documentation (online or textual) provided with the package. 7783 * 7784 * Redistribution and use in source and binary forms, with or without 7785 * modification, are permitted provided that the following conditions 7786 * are met: 7787 * 1. Redistributions of source code must retain the copyright 7788 * notice, this list of conditions and the following disclaimer. 7789 * 2. Redistributions in binary form must reproduce the above copyright 7790 * notice, this list of conditions and the following disclaimer in the 7791 * documentation and/or other materials provided with the distribution. 7792 * 3. All advertising materials mentioning features or use of this software 7793 * must display the following acknowledgement: 7794 * "This product includes cryptographic software written by 7795 * Eric Young (eay@cryptsoft.com)" 7796 * The word 'cryptographic' can be left out if the rouines from the library 7797 * being used are not cryptographic related :-). 7798 * 4. If you include any Windows specific code (or a derivative thereof) from 7799 * the apps directory (application code) you must include an acknowledgement: 7800 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7801 * 7802 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7803 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7804 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7805 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7806 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7807 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7808 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7809 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7810 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7811 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7812 * SUCH DAMAGE. 7813 * 7814 * The licence and distribution terms for any publically available version or 7815 * derivative of this code cannot be changed. i.e. this code cannot simply be 7816 * copied and put under another distribution licence 7817 * [including the GNU Public Licence.] 7818 */ 7819 # 66 "/usr/include/openssl/stack.h" 3 4 7820 typedef struct stack_st { 7821 int num; 7822 char **data; 7823 int sorted; 7824 int num_alloc; 7825 int (*comp) (const void *, const void *); 7826 } _STACK; /* Use STACK_OF(...) instead */ 7827 7828 7829 7830 7831 int sk_num(const _STACK *); 7832 void *sk_value(const _STACK *, int); 7833 7834 void *sk_set(_STACK *, int, void *); 7835 7836 _STACK *sk_new(int (*cmp) (const void *, const void *)); 7837 _STACK *sk_new_null(void); 7838 void sk_free(_STACK *); 7839 void sk_pop_free(_STACK *st, void (*func) (void *)); 7840 _STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); 7841 int sk_insert(_STACK *sk, void *data, int where); 7842 void *sk_delete(_STACK *st, int loc); 7843 void *sk_delete_ptr(_STACK *st, void *p); 7844 int sk_find(_STACK *st, void *data); 7845 int sk_find_ex(_STACK *st, void *data); 7846 int sk_push(_STACK *st, void *data); 7847 int sk_unshift(_STACK *st, void *data); 7848 void *sk_shift(_STACK *st); 7849 void *sk_pop(_STACK *st); 7850 void sk_zero(_STACK *st); 7851 int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) 7852 (const void *, const void *); 7853 _STACK *sk_dup(_STACK *st); 7854 void sk_sort(_STACK *st); 7855 int sk_is_sorted(const _STACK *st); 7856 # 129 "/usr/include/openssl/crypto.h" 2 3 4 7857 # 1 "/usr/include/openssl/safestack.h" 1 3 4 7858 /* ==================================================================== 7859 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 7860 * 7861 * Redistribution and use in source and binary forms, with or without 7862 * modification, are permitted provided that the following conditions 7863 * are met: 7864 * 7865 * 1. Redistributions of source code must retain the above copyright 7866 * notice, this list of conditions and the following disclaimer. 7867 * 7868 * 2. Redistributions in binary form must reproduce the above copyright 7869 * notice, this list of conditions and the following disclaimer in 7870 * the documentation and/or other materials provided with the 7871 * distribution. 7872 * 7873 * 3. All advertising materials mentioning features or use of this 7874 * software must display the following acknowledgment: 7875 * "This product includes software developed by the OpenSSL Project 7876 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7877 * 7878 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7879 * endorse or promote products derived from this software without 7880 * prior written permission. For written permission, please contact 7881 * openssl-core@openssl.org. 7882 * 7883 * 5. Products derived from this software may not be called "OpenSSL" 7884 * nor may "OpenSSL" appear in their names without prior written 7885 * permission of the OpenSSL Project. 7886 * 7887 * 6. Redistributions of any form whatsoever must retain the following 7888 * acknowledgment: 7889 * "This product includes software developed by the OpenSSL Project 7890 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7891 * 7892 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7893 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7894 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7895 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7896 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7897 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7898 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7899 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7900 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7901 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7902 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7903 * OF THE POSSIBILITY OF SUCH DAMAGE. 7904 * ==================================================================== 7905 * 7906 * This product includes cryptographic software written by Eric Young 7907 * (eay@cryptsoft.com). This product includes software written by Tim 7908 * Hudson (tjh@cryptsoft.com). 7909 * 7910 */ 7911 7912 7913 7914 7915 # 1 "/usr/include/openssl/stack.h" 1 3 4 7916 /* crypto/stack/stack.h */ 7917 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7918 * All rights reserved. 7919 * 7920 * This package is an SSL implementation written 7921 * by Eric Young (eay@cryptsoft.com). 7922 * The implementation was written so as to conform with Netscapes SSL. 7923 * 7924 * This library is free for commercial and non-commercial use as long as 7925 * the following conditions are aheared to. The following conditions 7926 * apply to all code found in this distribution, be it the RC4, RSA, 7927 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7928 * included with this distribution is covered by the same copyright terms 7929 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7930 * 7931 * Copyright remains Eric Young's, and as such any Copyright notices in 7932 * the code are not to be removed. 7933 * If this package is used in a product, Eric Young should be given attribution 7934 * as the author of the parts of the library used. 7935 * This can be in the form of a textual message at program startup or 7936 * in documentation (online or textual) provided with the package. 7937 * 7938 * Redistribution and use in source and binary forms, with or without 7939 * modification, are permitted provided that the following conditions 7940 * are met: 7941 * 1. Redistributions of source code must retain the copyright 7942 * notice, this list of conditions and the following disclaimer. 7943 * 2. Redistributions in binary form must reproduce the above copyright 7944 * notice, this list of conditions and the following disclaimer in the 7945 * documentation and/or other materials provided with the distribution. 7946 * 3. All advertising materials mentioning features or use of this software 7947 * must display the following acknowledgement: 7948 * "This product includes cryptographic software written by 7949 * Eric Young (eay@cryptsoft.com)" 7950 * The word 'cryptographic' can be left out if the rouines from the library 7951 * being used are not cryptographic related :-). 7952 * 4. If you include any Windows specific code (or a derivative thereof) from 7953 * the apps directory (application code) you must include an acknowledgement: 7954 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7955 * 7956 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7957 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7958 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7959 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7960 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7961 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7962 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7963 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7964 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7965 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7966 * SUCH DAMAGE. 7967 * 7968 * The licence and distribution terms for any publically available version or 7969 * derivative of this code cannot be changed. i.e. this code cannot simply be 7970 * copied and put under another distribution licence 7971 * [including the GNU Public Licence.] 7972 */ 7973 # 59 "/usr/include/openssl/safestack.h" 2 3 4 7974 # 69 "/usr/include/openssl/safestack.h" 3 4 7975 /* 7976 * In C++ we get problems because an explicit cast is needed from (void *) we 7977 * use CHECKED_STACK_OF to ensure the correct type is passed in the macros 7978 * below. 7979 */ 7980 # 102 "/usr/include/openssl/safestack.h" 3 4 7981 /* nada (obsolete in new safestack approach)*/ 7982 7983 7984 /*- 7985 * Strings are special: normally an lhash entry will point to a single 7986 * (somewhat) mutable object. In the case of strings: 7987 * 7988 * a) Instead of a single char, there is an array of chars, NUL-terminated. 7989 * b) The string may have be immutable. 7990 * 7991 * So, they need their own declarations. Especially important for 7992 * type-checking tools, such as Deputy. 7993 * 7994 * In practice, however, it appears to be hard to have a const 7995 * string. For now, I'm settling for dealing with the fact it is a 7996 * string at all. 7997 */ 7998 typedef char *OPENSSL_STRING; 7999 8000 typedef const char *OPENSSL_CSTRING; 8001 8002 /* 8003 * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but 8004 * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned 8005 * above, instead of a single char each entry is a NUL-terminated array of 8006 * chars. So, we have to implement STRING specially for STACK_OF. This is 8007 * dealt with in the autogenerated macros below. 8008 */ 8009 8010 struct stack_st_OPENSSL_STRING { _STACK stack; }; 8011 8012 /* 8013 * Similarly, we sometimes use a block of characters, NOT nul-terminated. 8014 * These should also be distinguished from "normal" stacks. 8015 */ 8016 typedef void *OPENSSL_BLOCK; 8017 struct stack_st_OPENSSL_BLOCK { _STACK stack; }; 8018 8019 /* 8020 * SKM_sk_... stack macros are internal to safestack.h: never use them 8021 * directly, use sk_<type>_... instead 8022 */ 8023 # 211 "/usr/include/openssl/safestack.h" 3 4 8024 /* 8025 * This block of defines is updated by util/mkstack.pl, please do not touch! 8026 */ 8027 # 130 "/usr/include/openssl/crypto.h" 2 3 4 8028 # 1 "/usr/include/openssl/opensslv.h" 1 3 4 8029 8030 8031 8032 8033 8034 8035 8036 /*- 8037 * Numeric release version identifier: 8038 * MNNFFPPS: major minor fix patch status 8039 * The status nibble has one of the values 0 for development, 1 to e for betas 8040 * 1 to 14, and f for release. The patch level is exactly that. 8041 * For example: 8042 * 0.9.3-dev 0x00903000 8043 * 0.9.3-beta1 0x00903001 8044 * 0.9.3-beta2-dev 0x00903002 8045 * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) 8046 * 0.9.3 0x0090300f 8047 * 0.9.3a 0x0090301f 8048 * 0.9.4 0x0090400f 8049 * 1.2.3z 0x102031af 8050 * 8051 * For continuity reasons (because 0.9.5 is already out, and is coded 8052 * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level 8053 * part is slightly different, by setting the highest bit. This means 8054 * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start 8055 * with 0x0090600S... 8056 * 8057 * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) 8058 * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for 8059 * major minor fix final patch/beta) 8060 */ 8061 # 41 "/usr/include/openssl/opensslv.h" 3 4 8062 /*- 8063 * The macros below are to be used for shared library (.so, .dll, ...) 8064 * versioning. That kind of versioning works a bit differently between 8065 * operating systems. The most usual scheme is to set a major and a minor 8066 * number, and have the runtime loader check that the major number is equal 8067 * to what it was at application link time, while the minor number has to 8068 * be greater or equal to what it was at application link time. With this 8069 * scheme, the version number is usually part of the file name, like this: 8070 * 8071 * libcrypto.so.0.9 8072 * 8073 * Some unixen also make a softlink with the major verson number only: 8074 * 8075 * libcrypto.so.0 8076 * 8077 * On Tru64 and IRIX 6.x it works a little bit differently. There, the 8078 * shared library version is stored in the file, and is actually a series 8079 * of versions, separated by colons. The rightmost version present in the 8080 * library when linking an application is stored in the application to be 8081 * matched at run time. When the application is run, a check is done to 8082 * see if the library version stored in the application matches any of the 8083 * versions in the version string of the library itself. 8084 * This version string can be constructed in any way, depending on what 8085 * kind of matching is desired. However, to implement the same scheme as 8086 * the one used in the other unixen, all compatible versions, from lowest 8087 * to highest, should be part of the string. Consecutive builds would 8088 * give the following versions strings: 8089 * 8090 * 3.0 8091 * 3.0:3.1 8092 * 3.0:3.1:3.2 8093 * 4.0 8094 * 4.0:4.1 8095 * 8096 * Notice how version 4 is completely incompatible with version, and 8097 * therefore give the breach you can see. 8098 * 8099 * There may be other schemes as well that I haven't yet discovered. 8100 * 8101 * So, here's the way it works here: first of all, the library version 8102 * number doesn't need at all to match the overall OpenSSL version. 8103 * However, it's nice and more understandable if it actually does. 8104 * The current library version is stored in the macro SHLIB_VERSION_NUMBER, 8105 * which is just a piece of text in the format "M.m.e" (Major, minor, edit). 8106 * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, 8107 * we need to keep a history of version numbers, which is done in the 8108 * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and 8109 * should only keep the versions that are binary compatible with the current. 8110 */ 8111 # 131 "/usr/include/openssl/crypto.h" 2 3 4 8112 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 8113 /* ==================================================================== 8114 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 8115 * 8116 * Redistribution and use in source and binary forms, with or without 8117 * modification, are permitted provided that the following conditions 8118 * are met: 8119 * 8120 * 1. Redistributions of source code must retain the above copyright 8121 * notice, this list of conditions and the following disclaimer. 8122 * 8123 * 2. Redistributions in binary form must reproduce the above copyright 8124 * notice, this list of conditions and the following disclaimer in 8125 * the documentation and/or other materials provided with the 8126 * distribution. 8127 * 8128 * 3. All advertising materials mentioning features or use of this 8129 * software must display the following acknowledgment: 8130 * "This product includes software developed by the OpenSSL Project 8131 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8132 * 8133 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8134 * endorse or promote products derived from this software without 8135 * prior written permission. For written permission, please contact 8136 * openssl-core@openssl.org. 8137 * 8138 * 5. Products derived from this software may not be called "OpenSSL" 8139 * nor may "OpenSSL" appear in their names without prior written 8140 * permission of the OpenSSL Project. 8141 * 8142 * 6. Redistributions of any form whatsoever must retain the following 8143 * acknowledgment: 8144 * "This product includes software developed by the OpenSSL Project 8145 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8146 * 8147 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8148 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8149 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8150 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8151 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8152 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8153 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8154 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8155 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8156 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8157 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8158 * OF THE POSSIBILITY OF SUCH DAMAGE. 8159 * ==================================================================== 8160 * 8161 * This product includes cryptographic software written by Eric Young 8162 * (eay@cryptsoft.com). This product includes software written by Tim 8163 * Hudson (tjh@cryptsoft.com). 8164 * 8165 */ 8166 # 62 "/usr/include/openssl/ossl_typ.h" 3 4 8167 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8168 /* e_os2.h */ 8169 /* ==================================================================== 8170 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8171 * 8172 * Redistribution and use in source and binary forms, with or without 8173 * modification, are permitted provided that the following conditions 8174 * are met: 8175 * 8176 * 1. Redistributions of source code must retain the above copyright 8177 * notice, this list of conditions and the following disclaimer. 8178 * 8179 * 2. Redistributions in binary form must reproduce the above copyright 8180 * notice, this list of conditions and the following disclaimer in 8181 * the documentation and/or other materials provided with the 8182 * distribution. 8183 * 8184 * 3. All advertising materials mentioning features or use of this 8185 * software must display the following acknowledgment: 8186 * "This product includes software developed by the OpenSSL Project 8187 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8188 * 8189 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8190 * endorse or promote products derived from this software without 8191 * prior written permission. For written permission, please contact 8192 * openssl-core@openssl.org. 8193 * 8194 * 5. Products derived from this software may not be called "OpenSSL" 8195 * nor may "OpenSSL" appear in their names without prior written 8196 * permission of the OpenSSL Project. 8197 * 8198 * 6. Redistributions of any form whatsoever must retain the following 8199 * acknowledgment: 8200 * "This product includes software developed by the OpenSSL Project 8201 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8202 * 8203 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8204 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8205 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8206 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8207 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8208 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8209 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8210 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8211 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8212 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8213 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8214 * OF THE POSSIBILITY OF SUCH DAMAGE. 8215 * ==================================================================== 8216 * 8217 * This product includes cryptographic software written by Eric Young 8218 * (eay@cryptsoft.com). This product includes software written by Tim 8219 * Hudson (tjh@cryptsoft.com). 8220 * 8221 */ 8222 8223 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8224 /* opensslconf.h */ 8225 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8226 8227 8228 8229 8230 /* OpenSSL was configured with the following options: */ 8231 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8232 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8233 asks for it. This is a transient feature that is provided for those 8234 who haven't had the time to do the appropriate changes in their 8235 applications. */ 8236 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8237 /* crypto/opensslconf.h.in */ 8238 8239 /* Generate 80386 code? */ 8240 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8241 # 63 "/usr/include/openssl/ossl_typ.h" 2 3 4 8242 # 83 "/usr/include/openssl/ossl_typ.h" 3 4 8243 typedef struct asn1_string_st ASN1_INTEGER; 8244 typedef struct asn1_string_st ASN1_ENUMERATED; 8245 typedef struct asn1_string_st ASN1_BIT_STRING; 8246 typedef struct asn1_string_st ASN1_OCTET_STRING; 8247 typedef struct asn1_string_st ASN1_PRINTABLESTRING; 8248 typedef struct asn1_string_st ASN1_T61STRING; 8249 typedef struct asn1_string_st ASN1_IA5STRING; 8250 typedef struct asn1_string_st ASN1_GENERALSTRING; 8251 typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 8252 typedef struct asn1_string_st ASN1_BMPSTRING; 8253 typedef struct asn1_string_st ASN1_UTCTIME; 8254 typedef struct asn1_string_st ASN1_TIME; 8255 typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 8256 typedef struct asn1_string_st ASN1_VISIBLESTRING; 8257 typedef struct asn1_string_st ASN1_UTF8STRING; 8258 typedef struct asn1_string_st ASN1_STRING; 8259 typedef int ASN1_BOOLEAN; 8260 typedef int ASN1_NULL; 8261 8262 8263 typedef struct asn1_object_st ASN1_OBJECT; 8264 8265 typedef struct ASN1_ITEM_st ASN1_ITEM; 8266 typedef struct asn1_pctx_st ASN1_PCTX; 8267 # 120 "/usr/include/openssl/ossl_typ.h" 3 4 8268 typedef struct bignum_st BIGNUM; 8269 typedef struct bignum_ctx BN_CTX; 8270 typedef struct bn_blinding_st BN_BLINDING; 8271 typedef struct bn_mont_ctx_st BN_MONT_CTX; 8272 typedef struct bn_recp_ctx_st BN_RECP_CTX; 8273 typedef struct bn_gencb_st BN_GENCB; 8274 8275 typedef struct buf_mem_st BUF_MEM; 8276 8277 typedef struct evp_cipher_st EVP_CIPHER; 8278 typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 8279 typedef struct env_md_st EVP_MD; 8280 typedef struct env_md_ctx_st EVP_MD_CTX; 8281 typedef struct evp_pkey_st EVP_PKEY; 8282 8283 typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 8284 8285 typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 8286 typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 8287 8288 typedef struct dh_st DH; 8289 typedef struct dh_method DH_METHOD; 8290 8291 typedef struct dsa_st DSA; 8292 typedef struct dsa_method DSA_METHOD; 8293 8294 typedef struct rsa_st RSA; 8295 typedef struct rsa_meth_st RSA_METHOD; 8296 8297 typedef struct rand_meth_st RAND_METHOD; 8298 8299 typedef struct ecdh_method ECDH_METHOD; 8300 typedef struct ecdsa_method ECDSA_METHOD; 8301 8302 typedef struct x509_st X509; 8303 typedef struct X509_algor_st X509_ALGOR; 8304 typedef struct X509_crl_st X509_CRL; 8305 typedef struct x509_crl_method_st X509_CRL_METHOD; 8306 typedef struct x509_revoked_st X509_REVOKED; 8307 typedef struct X509_name_st X509_NAME; 8308 typedef struct X509_pubkey_st X509_PUBKEY; 8309 typedef struct x509_store_st X509_STORE; 8310 typedef struct x509_store_ctx_st X509_STORE_CTX; 8311 8312 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 8313 8314 typedef struct v3_ext_ctx X509V3_CTX; 8315 typedef struct conf_st CONF; 8316 8317 typedef struct store_st STORE; 8318 typedef struct store_method_st STORE_METHOD; 8319 8320 typedef struct ui_st UI; 8321 typedef struct ui_method_st UI_METHOD; 8322 8323 typedef struct st_ERR_FNS ERR_FNS; 8324 8325 typedef struct engine_st ENGINE; 8326 typedef struct ssl_st SSL; 8327 typedef struct ssl_ctx_st SSL_CTX; 8328 8329 typedef struct comp_method_st COMP_METHOD; 8330 8331 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 8332 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 8333 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 8334 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 8335 8336 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 8337 typedef struct DIST_POINT_st DIST_POINT; 8338 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 8339 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 8340 8341 /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ 8342 8343 8344 8345 typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 8346 /* Callback types for crypto.h */ 8347 typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 8348 int idx, long argl, void *argp); 8349 typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 8350 int idx, long argl, void *argp); 8351 typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, 8352 void *from_d, int idx, long argl, void *argp); 8353 8354 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 8355 typedef struct ocsp_response_st OCSP_RESPONSE; 8356 typedef struct ocsp_responder_id_st OCSP_RESPID; 8357 # 132 "/usr/include/openssl/crypto.h" 2 3 4 8358 8359 8360 8361 8362 8363 /* 8364 * Resolve problems on some operating systems with symbol names that clash 8365 * one way or another 8366 */ 8367 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 8368 /* ==================================================================== 8369 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 8370 * 8371 * Redistribution and use in source and binary forms, with or without 8372 * modification, are permitted provided that the following conditions 8373 * are met: 8374 * 8375 * 1. Redistributions of source code must retain the above copyright 8376 * notice, this list of conditions and the following disclaimer. 8377 * 8378 * 2. Redistributions in binary form must reproduce the above copyright 8379 * notice, this list of conditions and the following disclaimer in 8380 * the documentation and/or other materials provided with the 8381 * distribution. 8382 * 8383 * 3. All advertising materials mentioning features or use of this 8384 * software must display the following acknowledgment: 8385 * "This product includes software developed by the OpenSSL Project 8386 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8387 * 8388 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8389 * endorse or promote products derived from this software without 8390 * prior written permission. For written permission, please contact 8391 * openssl-core@openssl.org. 8392 * 8393 * 5. Products derived from this software may not be called "OpenSSL" 8394 * nor may "OpenSSL" appear in their names without prior written 8395 * permission of the OpenSSL Project. 8396 * 8397 * 6. Redistributions of any form whatsoever must retain the following 8398 * acknowledgment: 8399 * "This product includes software developed by the OpenSSL Project 8400 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8401 * 8402 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8403 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8404 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8405 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8406 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8407 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8408 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8409 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8410 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8411 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8412 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8413 * OF THE POSSIBILITY OF SUCH DAMAGE. 8414 * ==================================================================== 8415 * 8416 * This product includes cryptographic software written by Eric Young 8417 * (eay@cryptsoft.com). This product includes software written by Tim 8418 * Hudson (tjh@cryptsoft.com). 8419 * 8420 */ 8421 8422 8423 8424 8425 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8426 /* e_os2.h */ 8427 /* ==================================================================== 8428 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8429 * 8430 * Redistribution and use in source and binary forms, with or without 8431 * modification, are permitted provided that the following conditions 8432 * are met: 8433 * 8434 * 1. Redistributions of source code must retain the above copyright 8435 * notice, this list of conditions and the following disclaimer. 8436 * 8437 * 2. Redistributions in binary form must reproduce the above copyright 8438 * notice, this list of conditions and the following disclaimer in 8439 * the documentation and/or other materials provided with the 8440 * distribution. 8441 * 8442 * 3. All advertising materials mentioning features or use of this 8443 * software must display the following acknowledgment: 8444 * "This product includes software developed by the OpenSSL Project 8445 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8446 * 8447 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8448 * endorse or promote products derived from this software without 8449 * prior written permission. For written permission, please contact 8450 * openssl-core@openssl.org. 8451 * 8452 * 5. Products derived from this software may not be called "OpenSSL" 8453 * nor may "OpenSSL" appear in their names without prior written 8454 * permission of the OpenSSL Project. 8455 * 8456 * 6. Redistributions of any form whatsoever must retain the following 8457 * acknowledgment: 8458 * "This product includes software developed by the OpenSSL Project 8459 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8460 * 8461 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8462 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8463 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8464 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8465 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8466 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8467 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8468 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8469 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8470 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8471 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8472 * OF THE POSSIBILITY OF SUCH DAMAGE. 8473 * ==================================================================== 8474 * 8475 * This product includes cryptographic software written by Eric Young 8476 * (eay@cryptsoft.com). This product includes software written by Tim 8477 * Hudson (tjh@cryptsoft.com). 8478 * 8479 */ 8480 8481 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8482 /* opensslconf.h */ 8483 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8484 8485 8486 8487 8488 /* OpenSSL was configured with the following options: */ 8489 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8490 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8491 asks for it. This is a transient feature that is provided for those 8492 who haven't had the time to do the appropriate changes in their 8493 applications. */ 8494 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8495 /* crypto/opensslconf.h.in */ 8496 8497 /* Generate 80386 code? */ 8498 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8499 # 59 "/usr/include/openssl/symhacks.h" 2 3 4 8500 8501 /* 8502 * Hacks to solve the problem with linkers incapable of handling very long 8503 * symbol names. In the case of VMS, the limit is 31 characters on VMS for 8504 * VAX. 8505 */ 8506 /* 8507 * Note that this affects util/libeay.num and util/ssleay.num... you may 8508 * change those manually, but that's not recommended, as those files are 8509 * controlled centrally and updated on Unix, and the central definition may 8510 * disagree with yours, which in turn may come with shareable library 8511 * incompatibilities. 8512 */ 8513 # 481 "/usr/include/openssl/symhacks.h" 3 4 8514 /* Case insensitive linking causes problems.... */ 8515 # 142 "/usr/include/openssl/crypto.h" 2 3 4 8516 8517 8518 8519 8520 8521 /* Backward compatibility to SSLeay */ 8522 /* 8523 * This is more to be used to check the correct DLL is being used in the MS 8524 * world. 8525 */ 8526 8527 8528 /* #define SSLEAY_OPTIONS 1 no longer supported */ 8529 8530 8531 8532 8533 8534 /* Already declared in ossl_typ.h */ 8535 # 174 "/usr/include/openssl/crypto.h" 3 4 8536 /* A generic structure to pass assorted data in a expandable way */ 8537 typedef struct openssl_item_st { 8538 int code; 8539 void *value; /* Not used for flag attributes */ 8540 size_t value_size; /* Max size of value for output, length for 8541 * input */ 8542 size_t *value_length; /* Returned length of value for output */ 8543 } OPENSSL_ITEM; 8544 8545 /* 8546 * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock 8547 * names in cryptlib.c 8548 */ 8549 # 256 "/usr/include/openssl/crypto.h" 3 4 8550 /* 8551 * Some applications as well as some parts of OpenSSL need to allocate and 8552 * deallocate locks in a dynamic fashion. The following typedef makes this 8553 * possible in a type-safe manner. 8554 */ 8555 /* struct CRYPTO_dynlock_value has to be defined by the application. */ 8556 typedef struct { 8557 int references; 8558 struct CRYPTO_dynlock_value *data; 8559 } CRYPTO_dynlock; 8560 8561 /* 8562 * The following can be used to detect memory leaks in the SSLeay library. It 8563 * used, it turns on malloc checking 8564 */ 8565 8566 8567 8568 8569 8570 8571 /* 8572 * The following are bit values to turn on or off options connected to the 8573 * malloc checking functionality 8574 */ 8575 8576 /* Adds time to the memory checking information */ 8577 8578 /* Adds thread number to the memory checking information */ 8579 8580 8581 8582 8583 /* predec of the BIO type */ 8584 typedef struct bio_st BIO_dummy; 8585 8586 struct crypto_ex_data_st { 8587 struct stack_st_void *sk; 8588 /* gcc is screwing up this data structure :-( */ 8589 int dummy; 8590 }; 8591 struct stack_st_void { _STACK stack; }; 8592 8593 /* 8594 * This stuff is basically class callback functions The current classes are 8595 * SSL_CTX, SSL, SSL_SESSION, and a few more 8596 */ 8597 8598 typedef struct crypto_ex_data_func_st { 8599 long argl; /* Arbitary long */ 8600 void *argp; /* Arbitary void * */ 8601 CRYPTO_EX_new *new_func; 8602 CRYPTO_EX_free *free_func; 8603 CRYPTO_EX_dup *dup_func; 8604 } CRYPTO_EX_DATA_FUNCS; 8605 8606 struct stack_st_CRYPTO_EX_DATA_FUNCS { _STACK stack; }; 8607 8608 /* 8609 * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA 8610 * entry. 8611 */ 8612 # 336 "/usr/include/openssl/crypto.h" 3 4 8613 /* 8614 * Dynamically assigned indexes start from this value (don't use directly, 8615 * use via CRYPTO_ex_data_new_class). 8616 */ 8617 8618 8619 /* 8620 * This is the default callbacks, but we can have others as well: this is 8621 * needed in Win32 where the application malloc and the library malloc may 8622 * not be the same. 8623 */ 8624 # 356 "/usr/include/openssl/crypto.h" 3 4 8625 /* 8626 * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG 8627 * is defined) 8628 */ 8629 # 369 "/usr/include/openssl/crypto.h" 3 4 8630 int CRYPTO_mem_ctrl(int mode); 8631 int CRYPTO_is_mem_check_on(void); 8632 8633 /* for applications */ 8634 8635 8636 8637 /* for library-internal use */ 8638 # 396 "/usr/include/openssl/crypto.h" 3 4 8639 const char *SSLeay_version(int type); 8640 unsigned long SSLeay(void); 8641 8642 int OPENSSL_issetugid(void); 8643 8644 /* An opaque type representing an implementation of "ex_data" support */ 8645 typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; 8646 /* Return an opaque pointer to the current "ex_data" implementation */ 8647 const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); 8648 /* Sets the "ex_data" implementation to be used (if it's not too late) */ 8649 int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); 8650 /* Get a new "ex_data" class, and return the corresponding "class_index" */ 8651 int CRYPTO_ex_data_new_class(void); 8652 /* Within a given class, get/register a new index */ 8653 int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, 8654 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, 8655 CRYPTO_EX_free *free_func); 8656 /* 8657 * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a 8658 * given class (invokes whatever per-class callbacks are applicable) 8659 */ 8660 int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 8661 int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, 8662 CRYPTO_EX_DATA *from); 8663 void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 8664 /* 8665 * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular 8666 * index (relative to the class type involved) 8667 */ 8668 int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); 8669 void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); 8670 /* 8671 * This function cleans up all "ex_data" state. It mustn't be called under 8672 * potential race-conditions. 8673 */ 8674 void CRYPTO_cleanup_all_ex_data(void); 8675 8676 int CRYPTO_get_new_lockid(char *name); 8677 8678 int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ 8679 void CRYPTO_lock(int mode, int type, const char *file, int line); 8680 void CRYPTO_set_locking_callback(void (*func) (int mode, int type, 8681 const char *file, int line)); 8682 void (*CRYPTO_get_locking_callback(void)) (int mode, int type, 8683 const char *file, int line); 8684 void CRYPTO_set_add_lock_callback(int (*func) 8685 (int *num, int mount, int type, 8686 const char *file, int line)); 8687 int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, 8688 const char *file, int line); 8689 8690 /* Don't use this structure directly. */ 8691 typedef struct crypto_threadid_st { 8692 void *ptr; 8693 unsigned long val; 8694 } CRYPTO_THREADID; 8695 /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ 8696 void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); 8697 void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); 8698 int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); 8699 void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); 8700 void CRYPTO_THREADID_current(CRYPTO_THREADID *id); 8701 int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); 8702 void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); 8703 unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); 8704 8705 void CRYPTO_set_id_callback(unsigned long (*func) (void)); 8706 unsigned long (*CRYPTO_get_id_callback(void)) (void); 8707 unsigned long CRYPTO_thread_id(void); 8708 8709 8710 const char *CRYPTO_get_lock_name(int type); 8711 int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, 8712 int line); 8713 8714 int CRYPTO_get_new_dynlockid(void); 8715 void CRYPTO_destroy_dynlockid(int i); 8716 struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); 8717 void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value 8718 *(*dyn_create_function) (const char 8719 *file, 8720 int line)); 8721 void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) 8722 (int mode, 8723 struct CRYPTO_dynlock_value *l, 8724 const char *file, int line)); 8725 void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) 8726 (struct CRYPTO_dynlock_value *l, 8727 const char *file, int line)); 8728 struct CRYPTO_dynlock_value 8729 *(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); 8730 void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, 8731 struct CRYPTO_dynlock_value 8732 *l, const char *file, 8733 int line); 8734 void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value 8735 *l, const char *file, 8736 int line); 8737 8738 /* 8739 * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call 8740 * the latter last if you need different functions 8741 */ 8742 int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), 8743 void (*f) (void *)); 8744 int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), 8745 void (*free_func) (void *)); 8746 int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), 8747 void *(*r) (void *, size_t, const char *, 8748 int), void (*f) (void *)); 8749 int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), 8750 void (*free_func) (void *)); 8751 int CRYPTO_set_mem_debug_functions(void (*m) 8752 (void *, int, const char *, int, int), 8753 void (*r) (void *, void *, int, 8754 const char *, int, int), 8755 void (*f) (void *, int), void (*so) (long), 8756 long (*go) (void)); 8757 void CRYPTO_get_mem_functions(void *(**m) (size_t), 8758 void *(**r) (void *, size_t), 8759 void (**f) (void *)); 8760 void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), 8761 void (**f) (void *)); 8762 void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), 8763 void *(**r) (void *, size_t, const char *, 8764 int), void (**f) (void *)); 8765 void CRYPTO_get_locked_mem_ex_functions(void 8766 *(**m) (size_t, const char *, int), 8767 void (**f) (void *)); 8768 void CRYPTO_get_mem_debug_functions(void (**m) 8769 (void *, int, const char *, int, int), 8770 void (**r) (void *, void *, int, 8771 const char *, int, int), 8772 void (**f) (void *, int), 8773 void (**so) (long), long (**go) (void)); 8774 8775 void *CRYPTO_malloc_locked(int num, const char *file, int line); 8776 void CRYPTO_free_locked(void *ptr); 8777 void *CRYPTO_malloc(int num, const char *file, int line); 8778 char *CRYPTO_strdup(const char *str, const char *file, int line); 8779 void CRYPTO_free(void *ptr); 8780 void *CRYPTO_realloc(void *addr, int num, const char *file, int line); 8781 void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, 8782 int line); 8783 void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); 8784 8785 void OPENSSL_cleanse(void *ptr, size_t len); 8786 8787 void CRYPTO_set_mem_debug_options(long bits); 8788 long CRYPTO_get_mem_debug_options(void); 8789 8790 8791 8792 int CRYPTO_push_info_(const char *info, const char *file, int line); 8793 int CRYPTO_pop_info(void); 8794 int CRYPTO_remove_all_info(void); 8795 8796 /* 8797 * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; 8798 * used as default in CRYPTO_MDEBUG compilations): 8799 */ 8800 /*- 8801 * The last argument has the following significance: 8802 * 8803 * 0: called before the actual memory allocation has taken place 8804 * 1: called after the actual memory allocation has taken place 8805 */ 8806 void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, 8807 int before_p); 8808 void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, 8809 int line, int before_p); 8810 void CRYPTO_dbg_free(void *addr, int before_p); 8811 /*- 8812 * Tell the debugging code about options. By default, the following values 8813 * apply: 8814 * 8815 * 0: Clear all options. 8816 * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. 8817 * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. 8818 * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 8819 */ 8820 void CRYPTO_dbg_set_options(long bits); 8821 long CRYPTO_dbg_get_options(void); 8822 8823 8824 void CRYPTO_mem_leaks_fp(FILE *); 8825 8826 void CRYPTO_mem_leaks(struct bio_st *bio); 8827 /* unsigned long order, char *file, int line, int num_bytes, char *addr */ 8828 typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, 8829 void *); 8830 void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); 8831 8832 /* die if we have to */ 8833 void OpenSSLDie(const char *file, int line, const char *assertion); 8834 8835 8836 unsigned long *OPENSSL_ia32cap_loc(void); 8837 8838 int OPENSSL_isservice(void); 8839 8840 int FIPS_mode(void); 8841 int FIPS_mode_set(int r); 8842 8843 void OPENSSL_init(void); 8844 # 624 "/usr/include/openssl/crypto.h" 3 4 8845 /* 8846 * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. 8847 * It takes an amount of time dependent on |len|, but independent of the 8848 * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements 8849 * into a defined order as the return value when a != b is undefined, other 8850 * than to be non-zero. 8851 */ 8852 int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); 8853 8854 /* BEGIN ERROR CODES */ 8855 /* 8856 * The following lines are auto generated by the script mkerr.pl. Any changes 8857 * made after this point may be overwritten when the script is next run. 8858 */ 8859 void ERR_load_CRYPTO_strings(void); 8860 8861 /* Error codes for the CRYPTO functions. */ 8862 8863 /* Function codes. */ 8864 # 654 "/usr/include/openssl/crypto.h" 3 4 8865 /* Reason codes. */ 8866 # 70 "/usr/include/openssl/bio.h" 2 3 4 8867 # 83 "/usr/include/openssl/bio.h" 3 4 8868 /* These are the 'types' of BIOs */ 8869 # 116 "/usr/include/openssl/bio.h" 3 4 8870 /* 8871 * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. 8872 * BIO_set_fp(in,stdin,BIO_NOCLOSE); 8873 */ 8874 8875 8876 8877 /* 8878 * These are used in the following macros and are passed to BIO_ctrl() 8879 */ 8880 # 139 "/usr/include/openssl/bio.h" 3 4 8881 /* callback is int cb(BIO *bio,state,ret); */ 8882 8883 8884 8885 8886 8887 /* dgram BIO stuff */ 8888 # 157 "/usr/include/openssl/bio.h" 3 4 8889 /* #ifdef IP_MTU_DISCOVER */ 8890 8891 /* #endif */ 8892 # 196 "/usr/include/openssl/bio.h" 3 4 8893 /* modifiers */ 8894 # 208 "/usr/include/openssl/bio.h" 3 4 8895 /* 8896 * "UPLINK" flag denotes file descriptors provided by application. It 8897 * defaults to 0, as most platforms don't require UPLINK interface. 8898 */ 8899 8900 8901 8902 /* Used in BIO_gethostbyname() */ 8903 8904 8905 8906 8907 8908 8909 /* Mostly used in the SSL BIO */ 8910 /*- 8911 * Not used anymore 8912 * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 8913 * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 8914 * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 8915 */ 8916 8917 8918 8919 /* 8920 * This is used with memory BIOs: it means we shouldn't free up or change the 8921 * data in any way. 8922 */ 8923 8924 8925 typedef struct bio_st BIO; 8926 8927 void BIO_set_flags(BIO *b, int flags); 8928 int BIO_test_flags(const BIO *b, int flags); 8929 void BIO_clear_flags(BIO *b, int flags); 8930 # 252 "/usr/include/openssl/bio.h" 3 4 8931 /* These are normally used internally in BIOs */ 8932 8933 8934 8935 8936 8937 /* These should be used by the application to tell why we should retry */ 8938 8939 8940 8941 8942 8943 8944 /* 8945 * The next three are used in conjunction with the BIO_should_io_special() 8946 * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int 8947 * *reason); will walk the BIO stack and return the 'reason' for the special 8948 * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return 8949 * the code. 8950 */ 8951 /* 8952 * Returned from the SSL bio when the certificate retrieval code had an error 8953 */ 8954 8955 /* Returned from the connect BIO when a connect would have blocked */ 8956 8957 /* Returned from the accept BIO when an accept would have blocked */ 8958 8959 8960 /* These are passed by the BIO callback */ 8961 8962 8963 8964 8965 8966 8967 8968 /* 8969 * The callback is called before and after the underling operation, The 8970 * BIO_CB_RETURN flag indicates if it is after the call 8971 */ 8972 8973 8974 8975 8976 8977 long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, 8978 int, long, long); 8979 void BIO_set_callback(BIO *b, 8980 long (*callback) (struct bio_st *, int, const char *, 8981 int, long, long)); 8982 char *BIO_get_callback_arg(const BIO *b); 8983 void BIO_set_callback_arg(BIO *b, char *arg); 8984 8985 const char *BIO_method_name(const BIO *b); 8986 int BIO_method_type(const BIO *b); 8987 8988 typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, 8989 long); 8990 8991 typedef struct bio_method_st { 8992 int type; 8993 const char *name; 8994 int (*bwrite) (BIO *, const char *, int); 8995 int (*bread) (BIO *, char *, int); 8996 int (*bputs) (BIO *, const char *); 8997 int (*bgets) (BIO *, char *, int); 8998 long (*ctrl) (BIO *, int, long, void *); 8999 int (*create) (BIO *); 9000 int (*destroy) (BIO *); 9001 long (*callback_ctrl) (BIO *, int, bio_info_cb *); 9002 } BIO_METHOD; 9003 9004 struct bio_st { 9005 BIO_METHOD *method; 9006 /* bio, mode, argp, argi, argl, ret */ 9007 long (*callback) (struct bio_st *, int, const char *, int, long, long); 9008 char *cb_arg; /* first argument for the callback */ 9009 int init; 9010 int shutdown; 9011 int flags; /* extra storage */ 9012 int retry_reason; 9013 int num; 9014 void *ptr; 9015 struct bio_st *next_bio; /* used by filter BIOs */ 9016 struct bio_st *prev_bio; /* used by filter BIOs */ 9017 int references; 9018 unsigned long num_read; 9019 unsigned long num_write; 9020 CRYPTO_EX_DATA ex_data; 9021 }; 9022 9023 struct stack_st_BIO { _STACK stack; }; 9024 9025 typedef struct bio_f_buffer_ctx_struct { 9026 /*- 9027 * Buffers are setup like this: 9028 * 9029 * <---------------------- size -----------------------> 9030 * +---------------------------------------------------+ 9031 * | consumed | remaining | free space | 9032 * +---------------------------------------------------+ 9033 * <-- off --><------- len -------> 9034 */ 9035 /*- BIO *bio; *//* 9036 * this is now in the BIO struct 9037 */ 9038 int ibuf_size; /* how big is the input buffer */ 9039 int obuf_size; /* how big is the output buffer */ 9040 char *ibuf; /* the char array */ 9041 int ibuf_len; /* how many bytes are in it */ 9042 int ibuf_off; /* write/read offset */ 9043 char *obuf; /* the char array */ 9044 int obuf_len; /* how many bytes are in it */ 9045 int obuf_off; /* write/read offset */ 9046 } BIO_F_BUFFER_CTX; 9047 9048 /* Prefix and suffix callback in ASN1 BIO */ 9049 typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, 9050 void *parg); 9051 # 398 "/usr/include/openssl/bio.h" 3 4 9052 /* connect BIO stuff */ 9053 # 407 "/usr/include/openssl/bio.h" 3 4 9054 /* 9055 * #define BIO_CONN_get_param_hostname BIO_ctrl 9056 */ 9057 # 474 "/usr/include/openssl/bio.h" 3 4 9058 /* BIO_s_connect() and BIO_s_socks4a_connect() */ 9059 # 486 "/usr/include/openssl/bio.h" 3 4 9060 /* BIO_s_accept() */ 9061 9062 9063 /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ 9064 # 499 "/usr/include/openssl/bio.h" 3 4 9065 /* BIO_s_accept() and BIO_s_connect() */ 9066 9067 9068 9069 9070 /* BIO_s_proxy_client() */ 9071 9072 9073 /* BIO_set_nbio(b,n) */ 9074 9075 /* BIO *BIO_get_filter_bio(BIO *bio); */ 9076 # 519 "/usr/include/openssl/bio.h" 3 4 9077 /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ 9078 9079 9080 9081 /* BIO_s_file() */ 9082 9083 9084 9085 /* BIO_s_fd() and BIO_s_file() */ 9086 9087 9088 9089 /* 9090 * name is cast to lose const, but might be better to route through a 9091 * function so we can do it safely 9092 */ 9093 # 552 "/usr/include/openssl/bio.h" 3 4 9094 /* 9095 * WARNING WARNING, this ups the reference count on the read bio of the SSL 9096 * structure. This is because the ssl read BIO is now pointed to by the 9097 * next_bio field in the bio. So when you free the BIO, make sure you are 9098 * doing a BIO_free_all() to catch the underlying BIO. 9099 */ 9100 # 568 "/usr/include/openssl/bio.h" 3 4 9101 /* defined in evp.h */ 9102 /* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ 9103 9104 9105 9106 9107 9108 9109 9110 /* For the BIO_f_buffer() type */ 9111 9112 9113 9114 9115 9116 9117 /* Don't use the next one unless you know what you are doing :-) */ 9118 # 593 "/usr/include/openssl/bio.h" 3 4 9119 /* ...pending macros have inappropriate return type */ 9120 size_t BIO_ctrl_pending(BIO *b); 9121 size_t BIO_ctrl_wpending(BIO *b); 9122 9123 9124 9125 9126 9127 /* For the BIO_f_buffer() type */ 9128 9129 9130 /* For BIO_s_bio() */ 9131 9132 9133 9134 9135 9136 /* macros with inappropriate type -- but ...pending macros use int too: */ 9137 9138 9139 size_t BIO_ctrl_get_write_guarantee(BIO *b); 9140 size_t BIO_ctrl_get_read_request(BIO *b); 9141 int BIO_ctrl_reset_read_request(BIO *b); 9142 9143 /* ctrl macros for dgram */ 9144 # 633 "/usr/include/openssl/bio.h" 3 4 9145 /* These two aren't currently implemented */ 9146 /* int BIO_get_ex_num(BIO *bio); */ 9147 /* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ 9148 int BIO_set_ex_data(BIO *bio, int idx, void *data); 9149 void *BIO_get_ex_data(BIO *bio, int idx); 9150 int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 9151 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 9152 unsigned long BIO_number_read(BIO *bio); 9153 unsigned long BIO_number_written(BIO *bio); 9154 9155 /* For BIO_f_asn1() */ 9156 int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, 9157 asn1_ps_func *prefix_free); 9158 int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, 9159 asn1_ps_func **pprefix_free); 9160 int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, 9161 asn1_ps_func *suffix_free); 9162 int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, 9163 asn1_ps_func **psuffix_free); 9164 9165 9166 BIO_METHOD *BIO_s_file(void); 9167 BIO *BIO_new_file(const char *filename, const char *mode); 9168 BIO *BIO_new_fp(FILE *stream, int close_flag); 9169 9170 9171 BIO *BIO_new(BIO_METHOD *type); 9172 int BIO_set(BIO *a, BIO_METHOD *type); 9173 int BIO_free(BIO *a); 9174 void BIO_vfree(BIO *a); 9175 int BIO_read(BIO *b, void *data, int len); 9176 int BIO_gets(BIO *bp, char *buf, int size); 9177 int BIO_write(BIO *b, const void *data, int len); 9178 int BIO_puts(BIO *bp, const char *buf); 9179 int BIO_indent(BIO *b, int indent, int max); 9180 long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); 9181 long BIO_callback_ctrl(BIO *b, int cmd, 9182 void (*fp) (struct bio_st *, int, const char *, int, 9183 long, long)); 9184 char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); 9185 long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); 9186 BIO *BIO_push(BIO *b, BIO *append); 9187 BIO *BIO_pop(BIO *b); 9188 void BIO_free_all(BIO *a); 9189 BIO *BIO_find_type(BIO *b, int bio_type); 9190 BIO *BIO_next(BIO *b); 9191 BIO *BIO_get_retry_BIO(BIO *bio, int *reason); 9192 int BIO_get_retry_reason(BIO *bio); 9193 BIO *BIO_dup_chain(BIO *in); 9194 9195 int BIO_nread0(BIO *bio, char **buf); 9196 int BIO_nread(BIO *bio, char **buf, int num); 9197 int BIO_nwrite0(BIO *bio, char **buf); 9198 int BIO_nwrite(BIO *bio, char **buf, int num); 9199 9200 long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, 9201 long argl, long ret); 9202 9203 BIO_METHOD *BIO_s_mem(void); 9204 BIO *BIO_new_mem_buf(const void *buf, int len); 9205 BIO_METHOD *BIO_s_socket(void); 9206 BIO_METHOD *BIO_s_connect(void); 9207 BIO_METHOD *BIO_s_accept(void); 9208 BIO_METHOD *BIO_s_fd(void); 9209 9210 BIO_METHOD *BIO_s_log(void); 9211 9212 BIO_METHOD *BIO_s_bio(void); 9213 BIO_METHOD *BIO_s_null(void); 9214 BIO_METHOD *BIO_f_null(void); 9215 BIO_METHOD *BIO_f_buffer(void); 9216 9217 9218 9219 BIO_METHOD *BIO_f_nbio_test(void); 9220 9221 BIO_METHOD *BIO_s_datagram(void); 9222 9223 9224 9225 9226 9227 /* BIO_METHOD *BIO_f_ber(void); */ 9228 9229 int BIO_sock_should_retry(int i); 9230 int BIO_sock_non_fatal_error(int error); 9231 int BIO_dgram_non_fatal_error(int error); 9232 9233 int BIO_fd_should_retry(int i); 9234 int BIO_fd_non_fatal_error(int error); 9235 int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), 9236 void *u, const char *s, int len); 9237 int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), 9238 void *u, const char *s, int len, int indent); 9239 int BIO_dump(BIO *b, const char *bytes, int len); 9240 int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); 9241 9242 int BIO_dump_fp(FILE *fp, const char *s, int len); 9243 int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); 9244 9245 int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, 9246 int datalen); 9247 9248 struct hostent *BIO_gethostbyname(const char *name); 9249 /*- 9250 * We might want a thread-safe interface too: 9251 * struct hostent *BIO_gethostbyname_r(const char *name, 9252 * struct hostent *result, void *buffer, size_t buflen); 9253 * or something similar (caller allocates a struct hostent, 9254 * pointed to by "result", and additional buffer space for the various 9255 * substructures; if the buffer does not suffice, NULL is returned 9256 * and an appropriate error code is set). 9257 */ 9258 int BIO_sock_error(int sock); 9259 int BIO_socket_ioctl(int fd, long type, void *arg); 9260 int BIO_socket_nbio(int fd, int mode); 9261 int BIO_get_port(const char *str, unsigned short *port_ptr); 9262 int BIO_get_host_ip(const char *str, unsigned char *ip); 9263 int BIO_get_accept_socket(char *host_port, int mode); 9264 int BIO_accept(int sock, char **ip_port); 9265 int BIO_sock_init(void); 9266 void BIO_sock_cleanup(void); 9267 int BIO_set_tcp_ndelay(int sock, int turn_on); 9268 9269 BIO *BIO_new_socket(int sock, int close_flag); 9270 BIO *BIO_new_dgram(int fd, int close_flag); 9271 # 771 "/usr/include/openssl/bio.h" 3 4 9272 BIO *BIO_new_fd(int fd, int close_flag); 9273 BIO *BIO_new_connect(const char *host_port); 9274 BIO *BIO_new_accept(const char *host_port); 9275 9276 int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, 9277 BIO **bio2, size_t writebuf2); 9278 /* 9279 * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. 9280 * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default 9281 * value. 9282 */ 9283 9284 void BIO_copy_next_retry(BIO *b); 9285 9286 /* 9287 * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); 9288 */ 9289 9290 9291 9292 9293 9294 9295 int BIO_printf(BIO *bio, const char *format, ...) 9296 __attribute__((__format__(__printf__, 2, 3))); 9297 int BIO_vprintf(BIO *bio, const char *format, va_list args) 9298 __attribute__((__format__(__printf__, 2, 0))); 9299 int BIO_snprintf(char *buf, size_t n, const char *format, ...) 9300 __attribute__((__format__(__printf__, 3, 4))); 9301 int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) 9302 __attribute__((__format__(__printf__, 3, 0))); 9303 9304 9305 /* BEGIN ERROR CODES */ 9306 /* 9307 * The following lines are auto generated by the script mkerr.pl. Any changes 9308 * made after this point may be overwritten when the script is next run. 9309 */ 9310 void ERR_load_BIO_strings(void); 9311 9312 /* Error codes for the BIO functions. */ 9313 9314 /* Function codes. */ 9315 # 849 "/usr/include/openssl/bio.h" 3 4 9316 /* Reason codes. */ 9317 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 9318 # 1 "/usr/include/openssl/x509.h" 1 3 4 9319 /* crypto/x509/x509.h */ 9320 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9321 * All rights reserved. 9322 * 9323 * This package is an SSL implementation written 9324 * by Eric Young (eay@cryptsoft.com). 9325 * The implementation was written so as to conform with Netscapes SSL. 9326 * 9327 * This library is free for commercial and non-commercial use as long as 9328 * the following conditions are aheared to. The following conditions 9329 * apply to all code found in this distribution, be it the RC4, RSA, 9330 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9331 * included with this distribution is covered by the same copyright terms 9332 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9333 * 9334 * Copyright remains Eric Young's, and as such any Copyright notices in 9335 * the code are not to be removed. 9336 * If this package is used in a product, Eric Young should be given attribution 9337 * as the author of the parts of the library used. 9338 * This can be in the form of a textual message at program startup or 9339 * in documentation (online or textual) provided with the package. 9340 * 9341 * Redistribution and use in source and binary forms, with or without 9342 * modification, are permitted provided that the following conditions 9343 * are met: 9344 * 1. Redistributions of source code must retain the copyright 9345 * notice, this list of conditions and the following disclaimer. 9346 * 2. Redistributions in binary form must reproduce the above copyright 9347 * notice, this list of conditions and the following disclaimer in the 9348 * documentation and/or other materials provided with the distribution. 9349 * 3. All advertising materials mentioning features or use of this software 9350 * must display the following acknowledgement: 9351 * "This product includes cryptographic software written by 9352 * Eric Young (eay@cryptsoft.com)" 9353 * The word 'cryptographic' can be left out if the rouines from the library 9354 * being used are not cryptographic related :-). 9355 * 4. If you include any Windows specific code (or a derivative thereof) from 9356 * the apps directory (application code) you must include an acknowledgement: 9357 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9358 * 9359 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9360 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9361 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9362 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9363 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9364 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9365 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9366 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9367 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9368 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9369 * SUCH DAMAGE. 9370 * 9371 * The licence and distribution terms for any publically available version or 9372 * derivative of this code cannot be changed. i.e. this code cannot simply be 9373 * copied and put under another distribution licence 9374 * [including the GNU Public Licence.] 9375 */ 9376 /* ==================================================================== 9377 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 9378 * ECDH support in OpenSSL originally developed by 9379 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 9380 */ 9381 9382 9383 9384 9385 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 9386 /* e_os2.h */ 9387 /* ==================================================================== 9388 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 9389 * 9390 * Redistribution and use in source and binary forms, with or without 9391 * modification, are permitted provided that the following conditions 9392 * are met: 9393 * 9394 * 1. Redistributions of source code must retain the above copyright 9395 * notice, this list of conditions and the following disclaimer. 9396 * 9397 * 2. Redistributions in binary form must reproduce the above copyright 9398 * notice, this list of conditions and the following disclaimer in 9399 * the documentation and/or other materials provided with the 9400 * distribution. 9401 * 9402 * 3. All advertising materials mentioning features or use of this 9403 * software must display the following acknowledgment: 9404 * "This product includes software developed by the OpenSSL Project 9405 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9406 * 9407 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9408 * endorse or promote products derived from this software without 9409 * prior written permission. For written permission, please contact 9410 * openssl-core@openssl.org. 9411 * 9412 * 5. Products derived from this software may not be called "OpenSSL" 9413 * nor may "OpenSSL" appear in their names without prior written 9414 * permission of the OpenSSL Project. 9415 * 9416 * 6. Redistributions of any form whatsoever must retain the following 9417 * acknowledgment: 9418 * "This product includes software developed by the OpenSSL Project 9419 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9420 * 9421 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9422 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9423 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9424 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9425 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9426 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9427 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9428 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9429 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9430 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9431 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9432 * OF THE POSSIBILITY OF SUCH DAMAGE. 9433 * ==================================================================== 9434 * 9435 * This product includes cryptographic software written by Eric Young 9436 * (eay@cryptsoft.com). This product includes software written by Tim 9437 * Hudson (tjh@cryptsoft.com). 9438 * 9439 */ 9440 9441 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 9442 /* opensslconf.h */ 9443 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 9444 9445 9446 9447 9448 /* OpenSSL was configured with the following options: */ 9449 # 108 "/usr/include/openssl/opensslconf.h" 3 4 9450 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 9451 asks for it. This is a transient feature that is provided for those 9452 who haven't had the time to do the appropriate changes in their 9453 applications. */ 9454 # 204 "/usr/include/openssl/opensslconf.h" 3 4 9455 /* crypto/opensslconf.h.in */ 9456 9457 /* Generate 80386 code? */ 9458 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 9459 # 68 "/usr/include/openssl/x509.h" 2 3 4 9460 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 9461 /* ==================================================================== 9462 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 9463 * 9464 * Redistribution and use in source and binary forms, with or without 9465 * modification, are permitted provided that the following conditions 9466 * are met: 9467 * 9468 * 1. Redistributions of source code must retain the above copyright 9469 * notice, this list of conditions and the following disclaimer. 9470 * 9471 * 2. Redistributions in binary form must reproduce the above copyright 9472 * notice, this list of conditions and the following disclaimer in 9473 * the documentation and/or other materials provided with the 9474 * distribution. 9475 * 9476 * 3. All advertising materials mentioning features or use of this 9477 * software must display the following acknowledgment: 9478 * "This product includes software developed by the OpenSSL Project 9479 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9480 * 9481 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9482 * endorse or promote products derived from this software without 9483 * prior written permission. For written permission, please contact 9484 * openssl-core@openssl.org. 9485 * 9486 * 5. Products derived from this software may not be called "OpenSSL" 9487 * nor may "OpenSSL" appear in their names without prior written 9488 * permission of the OpenSSL Project. 9489 * 9490 * 6. Redistributions of any form whatsoever must retain the following 9491 * acknowledgment: 9492 * "This product includes software developed by the OpenSSL Project 9493 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9494 * 9495 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9496 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9497 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9498 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9499 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9500 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9501 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9502 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9503 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9504 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9505 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9506 * OF THE POSSIBILITY OF SUCH DAMAGE. 9507 * ==================================================================== 9508 * 9509 * This product includes cryptographic software written by Eric Young 9510 * (eay@cryptsoft.com). This product includes software written by Tim 9511 * Hudson (tjh@cryptsoft.com). 9512 * 9513 */ 9514 # 69 "/usr/include/openssl/x509.h" 2 3 4 9515 9516 # 1 "/usr/include/openssl/buffer.h" 1 3 4 9517 /* crypto/buffer/buffer.h */ 9518 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9519 * All rights reserved. 9520 * 9521 * This package is an SSL implementation written 9522 * by Eric Young (eay@cryptsoft.com). 9523 * The implementation was written so as to conform with Netscapes SSL. 9524 * 9525 * This library is free for commercial and non-commercial use as long as 9526 * the following conditions are aheared to. The following conditions 9527 * apply to all code found in this distribution, be it the RC4, RSA, 9528 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9529 * included with this distribution is covered by the same copyright terms 9530 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9531 * 9532 * Copyright remains Eric Young's, and as such any Copyright notices in 9533 * the code are not to be removed. 9534 * If this package is used in a product, Eric Young should be given attribution 9535 * as the author of the parts of the library used. 9536 * This can be in the form of a textual message at program startup or 9537 * in documentation (online or textual) provided with the package. 9538 * 9539 * Redistribution and use in source and binary forms, with or without 9540 * modification, are permitted provided that the following conditions 9541 * are met: 9542 * 1. Redistributions of source code must retain the copyright 9543 * notice, this list of conditions and the following disclaimer. 9544 * 2. Redistributions in binary form must reproduce the above copyright 9545 * notice, this list of conditions and the following disclaimer in the 9546 * documentation and/or other materials provided with the distribution. 9547 * 3. All advertising materials mentioning features or use of this software 9548 * must display the following acknowledgement: 9549 * "This product includes cryptographic software written by 9550 * Eric Young (eay@cryptsoft.com)" 9551 * The word 'cryptographic' can be left out if the rouines from the library 9552 * being used are not cryptographic related :-). 9553 * 4. If you include any Windows specific code (or a derivative thereof) from 9554 * the apps directory (application code) you must include an acknowledgement: 9555 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9556 * 9557 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9558 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9559 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9560 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9561 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9562 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9563 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9564 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9565 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9566 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9567 * SUCH DAMAGE. 9568 * 9569 * The licence and distribution terms for any publically available version or 9570 * derivative of this code cannot be changed. i.e. this code cannot simply be 9571 * copied and put under another distribution licence 9572 * [including the GNU Public Licence.] 9573 */ 9574 9575 9576 9577 9578 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 9579 /* ==================================================================== 9580 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 9581 * 9582 * Redistribution and use in source and binary forms, with or without 9583 * modification, are permitted provided that the following conditions 9584 * are met: 9585 * 9586 * 1. Redistributions of source code must retain the above copyright 9587 * notice, this list of conditions and the following disclaimer. 9588 * 9589 * 2. Redistributions in binary form must reproduce the above copyright 9590 * notice, this list of conditions and the following disclaimer in 9591 * the documentation and/or other materials provided with the 9592 * distribution. 9593 * 9594 * 3. All advertising materials mentioning features or use of this 9595 * software must display the following acknowledgment: 9596 * "This product includes software developed by the OpenSSL Project 9597 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9598 * 9599 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9600 * endorse or promote products derived from this software without 9601 * prior written permission. For written permission, please contact 9602 * openssl-core@openssl.org. 9603 * 9604 * 5. Products derived from this software may not be called "OpenSSL" 9605 * nor may "OpenSSL" appear in their names without prior written 9606 * permission of the OpenSSL Project. 9607 * 9608 * 6. Redistributions of any form whatsoever must retain the following 9609 * acknowledgment: 9610 * "This product includes software developed by the OpenSSL Project 9611 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9612 * 9613 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9614 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9615 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9616 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9617 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9618 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9619 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9620 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9621 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9622 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9623 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9624 * OF THE POSSIBILITY OF SUCH DAMAGE. 9625 * ==================================================================== 9626 * 9627 * This product includes cryptographic software written by Eric Young 9628 * (eay@cryptsoft.com). This product includes software written by Tim 9629 * Hudson (tjh@cryptsoft.com). 9630 * 9631 */ 9632 # 63 "/usr/include/openssl/buffer.h" 2 3 4 9633 9634 9635 9636 9637 9638 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 9639 /* 9640 * CDDL HEADER START 9641 * 9642 * The contents of this file are subject to the terms of the 9643 * Common Development and Distribution License, Version 1.0 only 9644 * (the "License"). You may not use this file except in compliance 9645 * with the License. 9646 * 9647 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9648 * or http://www.opensolaris.org/os/licensing. 9649 * See the License for the specific language governing permissions 9650 * and limitations under the License. 9651 * 9652 * When distributing Covered Code, include this CDDL HEADER in each 9653 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9654 * If applicable, add the following below this CDDL HEADER, with the 9655 * fields enclosed by brackets "[]" replaced with your own identifying 9656 * information: Portions Copyright [yyyy] [name of copyright owner] 9657 * 9658 * CDDL HEADER END 9659 */ 9660 /* Copyright (c) 1988 AT&T */ 9661 /* All Rights Reserved */ 9662 9663 9664 /* 9665 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 9666 * Use is subject to license terms. 9667 */ 9668 9669 9670 9671 9672 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 9673 /* 9674 * CDDL HEADER START 9675 * 9676 * The contents of this file are subject to the terms of the 9677 * Common Development and Distribution License (the "License"). 9678 * You may not use this file except in compliance with the License. 9679 * 9680 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9681 * or http://www.opensolaris.org/os/licensing. 9682 * See the License for the specific language governing permissions 9683 * and limitations under the License. 9684 * 9685 * 9686 * When distributing Covered Code, include this CDDL HEADER in each 9687 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9688 * If applicable, add the following below this CDDL HEADER, with the 9689 * fields enclosed by brackets "[]" replaced with your own identifying 9690 * information: Portions Copyright [yyyy] [name of copyright owner] 9691 * 9692 * CDDL HEADER END 9693 */ 9694 9695 /* 9696 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 9697 * Use is subject to license terms. 9698 * Copyright 2016 Joyent, Inc. 9699 */ 9700 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9701 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 1 3 4 9702 /* 9703 * CDDL HEADER START 9704 * 9705 * The contents of this file are subject to the terms of the 9706 * Common Development and Distribution License, Version 1.0 only 9707 * (the "License"). You may not use this file except in compliance 9708 * with the License. 9709 * 9710 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9711 * or http://www.opensolaris.org/os/licensing. 9712 * See the License for the specific language governing permissions 9713 * and limitations under the License. 9714 * 9715 * When distributing Covered Code, include this CDDL HEADER in each 9716 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9717 * If applicable, add the following below this CDDL HEADER, with the 9718 * fields enclosed by brackets "[]" replaced with your own identifying 9719 * information: Portions Copyright [yyyy] [name of copyright owner] 9720 * 9721 * CDDL HEADER END 9722 */ 9723 /* Copyright (c) 1988 AT&T */ 9724 /* All Rights Reserved */ 9725 9726 9727 /* 9728 * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved. 9729 * Use is subject to license terms. 9730 */ 9731 9732 /* 9733 * Copyright 2014 PALO, Richard. 9734 * Copyright 2016 Joyent, Inc. 9735 */ 9736 9737 /* 9738 * An application should not include this header directly. Instead it 9739 * should be included only through the inclusion of other Sun headers. 9740 * 9741 * The contents of this header is limited to identifiers specified in the 9742 * C Standard. Any new identifiers specified in future amendments to the 9743 * C Standard must be placed in this header. If these new identifiers 9744 * are required to also be in the C++ Standard "std" namespace, then for 9745 * anything other than macro definitions, corresponding "using" directives 9746 * must also be added to <stddef.h.h>. 9747 */ 9748 9749 9750 9751 9752 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 9753 /* 9754 * CDDL HEADER START 9755 * 9756 * The contents of this file are subject to the terms of the 9757 * Common Development and Distribution License (the "License"). 9758 * You may not use this file except in compliance with the License. 9759 * 9760 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9761 * or http://www.opensolaris.org/os/licensing. 9762 * See the License for the specific language governing permissions 9763 * and limitations under the License. 9764 * 9765 * 9766 * When distributing Covered Code, include this CDDL HEADER in each 9767 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9768 * If applicable, add the following below this CDDL HEADER, with the 9769 * fields enclosed by brackets "[]" replaced with your own identifying 9770 * information: Portions Copyright [yyyy] [name of copyright owner] 9771 * 9772 * CDDL HEADER END 9773 */ 9774 9775 /* 9776 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 9777 * Use is subject to license terms. 9778 * Copyright 2016 Joyent, Inc. 9779 */ 9780 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9781 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 9782 /* 9783 * CDDL HEADER START 9784 * 9785 * The contents of this file are subject to the terms of the 9786 * Common Development and Distribution License (the "License"). 9787 * You may not use this file except in compliance with the License. 9788 * 9789 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9790 * or http://www.opensolaris.org/os/licensing. 9791 * See the License for the specific language governing permissions 9792 * and limitations under the License. 9793 * 9794 * When distributing Covered Code, include this CDDL HEADER in each 9795 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9796 * If applicable, add the following below this CDDL HEADER, with the 9797 * fields enclosed by brackets "[]" replaced with your own identifying 9798 * information: Portions Copyright [yyyy] [name of copyright owner] 9799 * 9800 * CDDL HEADER END 9801 */ 9802 9803 /* 9804 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 9805 * Copyright 2016 Joyent, Inc. 9806 * 9807 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 9808 * Use is subject to license terms. 9809 */ 9810 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9811 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3 4 9812 /* 9813 * This file and its contents are supplied under the terms of the 9814 * Common Development and Distribution License ("CDDL"), version 1.0. 9815 * You may only use this file in accordance with the terms of version 9816 * 1.0 of the CDDL. 9817 * 9818 * A full copy of the text of the CDDL should have accompanied this 9819 * source. A copy of the CDDL is also available via the Internet at 9820 * http://www.illumos.org/license/CDDL. 9821 */ 9822 9823 /* 9824 * Copyright 2014-2016 PALO, Richard. 9825 */ 9826 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9827 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 3 4 9828 typedef long max_align_t; 9829 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9830 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1 3 4 9831 /* 9832 * This file and its contents are supplied under the terms of the 9833 * Common Development and Distribution License ("CDDL"), version 1.0. 9834 * You may only use this file in accordance with the terms of version 9835 * 1.0 of the CDDL. 9836 * 9837 * A full copy of the text of the CDDL should have accompanied this 9838 * source. A copy of the CDDL is also available via the Internet at 9839 * http://www.illumos.org/license/CDDL. 9840 */ 9841 9842 /* 9843 * Copyright 2017 Toomas Soome <tsoome@me.com> 9844 */ 9845 9846 9847 9848 9849 /* 9850 * Commonly used macros and definitions. 9851 */ 9852 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 3 4 9853 /* 9854 * We must not expose container_of() to userland, but we want it 9855 * to be available for early boot and for the kernel. 9856 */ 9857 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9858 9859 /* 9860 * Allow global visibility for symbols defined in 9861 * C++ "std" namespace in <iso/stddef_iso.h>. 9862 */ 9863 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 3 4 9864 /* 9865 * wchar_t is a built-in type in standard C++ and as such is not 9866 * defined here when using standard C++. However, the GNU compiler 9867 * fixincludes utility nonetheless creates its own version of this 9868 * header for use by gcc and g++. In that version it adds a redundant 9869 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 9870 * header we need to include the following magic comment: 9871 * 9872 * we must use the C++ compiler's type 9873 * 9874 * The above comment should not be removed or changed until GNU 9875 * gcc/fixinc/inclhack.def is updated to bypass this header. 9876 */ 9877 # 69 "/usr/include/openssl/buffer.h" 2 3 4 9878 9879 9880 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3 4 9881 /* 9882 * CDDL HEADER START 9883 * 9884 * The contents of this file are subject to the terms of the 9885 * Common Development and Distribution License (the "License"). 9886 * You may not use this file except in compliance with the License. 9887 * 9888 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9889 * or http://www.opensolaris.org/os/licensing. 9890 * See the License for the specific language governing permissions 9891 * and limitations under the License. 9892 * 9893 * When distributing Covered Code, include this CDDL HEADER in each 9894 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9895 * If applicable, add the following below this CDDL HEADER, with the 9896 * fields enclosed by brackets "[]" replaced with your own identifying 9897 * information: Portions Copyright [yyyy] [name of copyright owner] 9898 * 9899 * CDDL HEADER END 9900 */ 9901 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 9902 /* All Rights Reserved */ 9903 9904 9905 /* 9906 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 9907 * Use is subject to license terms. 9908 * 9909 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 9910 * Copyright 2016 Joyent, Inc. 9911 */ 9912 # 72 "/usr/include/openssl/buffer.h" 2 3 4 9913 9914 9915 /* Already declared in ossl_typ.h */ 9916 /* typedef struct buf_mem_st BUF_MEM; */ 9917 9918 struct buf_mem_st { 9919 size_t length; /* current number of bytes */ 9920 char *data; 9921 size_t max; /* size of buffer */ 9922 }; 9923 9924 BUF_MEM *BUF_MEM_new(void); 9925 void BUF_MEM_free(BUF_MEM *a); 9926 int BUF_MEM_grow(BUF_MEM *str, size_t len); 9927 int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 9928 size_t BUF_strnlen(const char *str, size_t maxlen); 9929 char *BUF_strdup(const char *str); 9930 9931 /* 9932 * Like strndup, but in addition, explicitly guarantees to never read past the 9933 * first |siz| bytes of |str|. 9934 */ 9935 char *BUF_strndup(const char *str, size_t siz); 9936 9937 void *BUF_memdup(const void *data, size_t siz); 9938 void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 9939 9940 /* safe string functions */ 9941 size_t BUF_strlcpy(char *dst, const char *src, size_t siz); 9942 size_t BUF_strlcat(char *dst, const char *src, size_t siz); 9943 9944 /* BEGIN ERROR CODES */ 9945 /* 9946 * The following lines are auto generated by the script mkerr.pl. Any changes 9947 * made after this point may be overwritten when the script is next run. 9948 */ 9949 void ERR_load_BUF_strings(void); 9950 9951 /* Error codes for the BUF functions. */ 9952 9953 /* Function codes. */ 9954 9955 9956 9957 9958 9959 9960 9961 /* Reason codes. */ 9962 # 71 "/usr/include/openssl/x509.h" 2 3 4 9963 9964 9965 # 1 "/usr/include/openssl/evp.h" 1 3 4 9966 /* crypto/evp/evp.h */ 9967 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9968 * All rights reserved. 9969 * 9970 * This package is an SSL implementation written 9971 * by Eric Young (eay@cryptsoft.com). 9972 * The implementation was written so as to conform with Netscapes SSL. 9973 * 9974 * This library is free for commercial and non-commercial use as long as 9975 * the following conditions are aheared to. The following conditions 9976 * apply to all code found in this distribution, be it the RC4, RSA, 9977 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9978 * included with this distribution is covered by the same copyright terms 9979 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9980 * 9981 * Copyright remains Eric Young's, and as such any Copyright notices in 9982 * the code are not to be removed. 9983 * If this package is used in a product, Eric Young should be given attribution 9984 * as the author of the parts of the library used. 9985 * This can be in the form of a textual message at program startup or 9986 * in documentation (online or textual) provided with the package. 9987 * 9988 * Redistribution and use in source and binary forms, with or without 9989 * modification, are permitted provided that the following conditions 9990 * are met: 9991 * 1. Redistributions of source code must retain the copyright 9992 * notice, this list of conditions and the following disclaimer. 9993 * 2. Redistributions in binary form must reproduce the above copyright 9994 * notice, this list of conditions and the following disclaimer in the 9995 * documentation and/or other materials provided with the distribution. 9996 * 3. All advertising materials mentioning features or use of this software 9997 * must display the following acknowledgement: 9998 * "This product includes cryptographic software written by 9999 * Eric Young (eay@cryptsoft.com)" 10000 * The word 'cryptographic' can be left out if the rouines from the library 10001 * being used are not cryptographic related :-). 10002 * 4. If you include any Windows specific code (or a derivative thereof) from 10003 * the apps directory (application code) you must include an acknowledgement: 10004 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10005 * 10006 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10007 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10008 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10009 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10010 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10011 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10012 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10013 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10014 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10015 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10016 * SUCH DAMAGE. 10017 * 10018 * The licence and distribution terms for any publically available version or 10019 * derivative of this code cannot be changed. i.e. this code cannot simply be 10020 * copied and put under another distribution licence 10021 * [including the GNU Public Licence.] 10022 */ 10023 # 66 "/usr/include/openssl/evp.h" 3 4 10024 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 10025 /* opensslconf.h */ 10026 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 10027 10028 10029 10030 10031 /* OpenSSL was configured with the following options: */ 10032 # 108 "/usr/include/openssl/opensslconf.h" 3 4 10033 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 10034 asks for it. This is a transient feature that is provided for those 10035 who haven't had the time to do the appropriate changes in their 10036 applications. */ 10037 # 204 "/usr/include/openssl/opensslconf.h" 3 4 10038 /* crypto/opensslconf.h.in */ 10039 10040 /* Generate 80386 code? */ 10041 # 67 "/usr/include/openssl/evp.h" 2 3 4 10042 10043 10044 10045 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 10046 /* ==================================================================== 10047 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 10048 * 10049 * Redistribution and use in source and binary forms, with or without 10050 * modification, are permitted provided that the following conditions 10051 * are met: 10052 * 10053 * 1. Redistributions of source code must retain the above copyright 10054 * notice, this list of conditions and the following disclaimer. 10055 * 10056 * 2. Redistributions in binary form must reproduce the above copyright 10057 * notice, this list of conditions and the following disclaimer in 10058 * the documentation and/or other materials provided with the 10059 * distribution. 10060 * 10061 * 3. All advertising materials mentioning features or use of this 10062 * software must display the following acknowledgment: 10063 * "This product includes software developed by the OpenSSL Project 10064 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10065 * 10066 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10067 * endorse or promote products derived from this software without 10068 * prior written permission. For written permission, please contact 10069 * openssl-core@openssl.org. 10070 * 10071 * 5. Products derived from this software may not be called "OpenSSL" 10072 * nor may "OpenSSL" appear in their names without prior written 10073 * permission of the OpenSSL Project. 10074 * 10075 * 6. Redistributions of any form whatsoever must retain the following 10076 * acknowledgment: 10077 * "This product includes software developed by the OpenSSL Project 10078 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10079 * 10080 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10081 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10082 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10083 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10084 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10085 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10086 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10087 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10088 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10089 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10090 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10091 * OF THE POSSIBILITY OF SUCH DAMAGE. 10092 * ==================================================================== 10093 * 10094 * This product includes cryptographic software written by Eric Young 10095 * (eay@cryptsoft.com). This product includes software written by Tim 10096 * Hudson (tjh@cryptsoft.com). 10097 * 10098 */ 10099 # 71 "/usr/include/openssl/evp.h" 2 3 4 10100 10101 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 10102 /* ==================================================================== 10103 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10104 * 10105 * Redistribution and use in source and binary forms, with or without 10106 * modification, are permitted provided that the following conditions 10107 * are met: 10108 * 10109 * 1. Redistributions of source code must retain the above copyright 10110 * notice, this list of conditions and the following disclaimer. 10111 * 10112 * 2. Redistributions in binary form must reproduce the above copyright 10113 * notice, this list of conditions and the following disclaimer in 10114 * the documentation and/or other materials provided with the 10115 * distribution. 10116 * 10117 * 3. All advertising materials mentioning features or use of this 10118 * software must display the following acknowledgment: 10119 * "This product includes software developed by the OpenSSL Project 10120 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10121 * 10122 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10123 * endorse or promote products derived from this software without 10124 * prior written permission. For written permission, please contact 10125 * openssl-core@openssl.org. 10126 * 10127 * 5. Products derived from this software may not be called "OpenSSL" 10128 * nor may "OpenSSL" appear in their names without prior written 10129 * permission of the OpenSSL Project. 10130 * 10131 * 6. Redistributions of any form whatsoever must retain the following 10132 * acknowledgment: 10133 * "This product includes software developed by the OpenSSL Project 10134 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10135 * 10136 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10137 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10138 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10139 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10140 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10141 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10142 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10143 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10144 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10145 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10146 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10147 * OF THE POSSIBILITY OF SUCH DAMAGE. 10148 * ==================================================================== 10149 * 10150 * This product includes cryptographic software written by Eric Young 10151 * (eay@cryptsoft.com). This product includes software written by Tim 10152 * Hudson (tjh@cryptsoft.com). 10153 * 10154 */ 10155 # 73 "/usr/include/openssl/evp.h" 2 3 4 10156 10157 10158 # 1 "/usr/include/openssl/bio.h" 1 3 4 10159 /* crypto/bio/bio.h */ 10160 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10161 * All rights reserved. 10162 * 10163 * This package is an SSL implementation written 10164 * by Eric Young (eay@cryptsoft.com). 10165 * The implementation was written so as to conform with Netscapes SSL. 10166 * 10167 * This library is free for commercial and non-commercial use as long as 10168 * the following conditions are aheared to. The following conditions 10169 * apply to all code found in this distribution, be it the RC4, RSA, 10170 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10171 * included with this distribution is covered by the same copyright terms 10172 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10173 * 10174 * Copyright remains Eric Young's, and as such any Copyright notices in 10175 * the code are not to be removed. 10176 * If this package is used in a product, Eric Young should be given attribution 10177 * as the author of the parts of the library used. 10178 * This can be in the form of a textual message at program startup or 10179 * in documentation (online or textual) provided with the package. 10180 * 10181 * Redistribution and use in source and binary forms, with or without 10182 * modification, are permitted provided that the following conditions 10183 * are met: 10184 * 1. Redistributions of source code must retain the copyright 10185 * notice, this list of conditions and the following disclaimer. 10186 * 2. Redistributions in binary form must reproduce the above copyright 10187 * notice, this list of conditions and the following disclaimer in the 10188 * documentation and/or other materials provided with the distribution. 10189 * 3. All advertising materials mentioning features or use of this software 10190 * must display the following acknowledgement: 10191 * "This product includes cryptographic software written by 10192 * Eric Young (eay@cryptsoft.com)" 10193 * The word 'cryptographic' can be left out if the rouines from the library 10194 * being used are not cryptographic related :-). 10195 * 4. If you include any Windows specific code (or a derivative thereof) from 10196 * the apps directory (application code) you must include an acknowledgement: 10197 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10198 * 10199 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10200 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10201 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10202 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10203 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10204 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10205 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10206 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10207 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10208 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10209 * SUCH DAMAGE. 10210 * 10211 * The licence and distribution terms for any publically available version or 10212 * derivative of this code cannot be changed. i.e. this code cannot simply be 10213 * copied and put under another distribution licence 10214 * [including the GNU Public Licence.] 10215 */ 10216 # 76 "/usr/include/openssl/evp.h" 2 3 4 10217 10218 10219 /*- 10220 #define EVP_RC2_KEY_SIZE 16 10221 #define EVP_RC4_KEY_SIZE 16 10222 #define EVP_BLOWFISH_KEY_SIZE 16 10223 #define EVP_CAST5_KEY_SIZE 16 10224 #define EVP_RC5_32_12_16_KEY_SIZE 16 10225 */ 10226 10227 10228 10229 10230 10231 10232 /* Default PKCS#5 iteration count */ 10233 10234 10235 # 1 "/usr/include/openssl/objects.h" 1 3 4 10236 /* crypto/objects/objects.h */ 10237 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10238 * All rights reserved. 10239 * 10240 * This package is an SSL implementation written 10241 * by Eric Young (eay@cryptsoft.com). 10242 * The implementation was written so as to conform with Netscapes SSL. 10243 * 10244 * This library is free for commercial and non-commercial use as long as 10245 * the following conditions are aheared to. The following conditions 10246 * apply to all code found in this distribution, be it the RC4, RSA, 10247 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10248 * included with this distribution is covered by the same copyright terms 10249 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10250 * 10251 * Copyright remains Eric Young's, and as such any Copyright notices in 10252 * the code are not to be removed. 10253 * If this package is used in a product, Eric Young should be given attribution 10254 * as the author of the parts of the library used. 10255 * This can be in the form of a textual message at program startup or 10256 * in documentation (online or textual) provided with the package. 10257 * 10258 * Redistribution and use in source and binary forms, with or without 10259 * modification, are permitted provided that the following conditions 10260 * are met: 10261 * 1. Redistributions of source code must retain the copyright 10262 * notice, this list of conditions and the following disclaimer. 10263 * 2. Redistributions in binary form must reproduce the above copyright 10264 * notice, this list of conditions and the following disclaimer in the 10265 * documentation and/or other materials provided with the distribution. 10266 * 3. All advertising materials mentioning features or use of this software 10267 * must display the following acknowledgement: 10268 * "This product includes cryptographic software written by 10269 * Eric Young (eay@cryptsoft.com)" 10270 * The word 'cryptographic' can be left out if the rouines from the library 10271 * being used are not cryptographic related :-). 10272 * 4. If you include any Windows specific code (or a derivative thereof) from 10273 * the apps directory (application code) you must include an acknowledgement: 10274 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10275 * 10276 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10277 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10278 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10279 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10280 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10281 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10282 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10283 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10284 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10285 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10286 * SUCH DAMAGE. 10287 * 10288 * The licence and distribution terms for any publically available version or 10289 * derivative of this code cannot be changed. i.e. this code cannot simply be 10290 * copied and put under another distribution licence 10291 * [including the GNU Public Licence.] 10292 */ 10293 10294 10295 10296 10297 10298 10299 10300 # 1 "/usr/include/openssl/obj_mac.h" 1 3 4 10301 /* crypto/objects/obj_mac.h */ 10302 10303 /* 10304 * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following 10305 * command: perl objects.pl objects.txt obj_mac.num obj_mac.h 10306 */ 10307 10308 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 10309 * All rights reserved. 10310 * 10311 * This package is an SSL implementation written 10312 * by Eric Young (eay@cryptsoft.com). 10313 * The implementation was written so as to conform with Netscapes SSL. 10314 * 10315 * This library is free for commercial and non-commercial use as long as 10316 * the following conditions are aheared to. The following conditions 10317 * apply to all code found in this distribution, be it the RC4, RSA, 10318 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10319 * included with this distribution is covered by the same copyright terms 10320 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10321 * 10322 * Copyright remains Eric Young's, and as such any Copyright notices in 10323 * the code are not to be removed. 10324 * If this package is used in a product, Eric Young should be given attribution 10325 * as the author of the parts of the library used. 10326 * This can be in the form of a textual message at program startup or 10327 * in documentation (online or textual) provided with the package. 10328 * 10329 * Redistribution and use in source and binary forms, with or without 10330 * modification, are permitted provided that the following conditions 10331 * are met: 10332 * 1. Redistributions of source code must retain the copyright 10333 * notice, this list of conditions and the following disclaimer. 10334 * 2. Redistributions in binary form must reproduce the above copyright 10335 * notice, this list of conditions and the following disclaimer in the 10336 * documentation and/or other materials provided with the distribution. 10337 * 3. All advertising materials mentioning features or use of this software 10338 * must display the following acknowledgement: 10339 * "This product includes cryptographic software written by 10340 * Eric Young (eay@cryptsoft.com)" 10341 * The word 'cryptographic' can be left out if the rouines from the library 10342 * being used are not cryptographic related :-). 10343 * 4. If you include any Windows specific code (or a derivative thereof) from 10344 * the apps directory (application code) you must include an acknowledgement: 10345 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10346 * 10347 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10348 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10349 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10350 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10351 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10352 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10353 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10354 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10355 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10356 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10357 * SUCH DAMAGE. 10358 * 10359 * The licence and distribution terms for any publically available version or 10360 * derivative of this code cannot be changed. i.e. this code cannot simply be 10361 * copied and put under another distribution licence 10362 * [including the GNU Public Licence.] 10363 */ 10364 # 66 "/usr/include/openssl/objects.h" 2 3 4 10365 # 964 "/usr/include/openssl/objects.h" 3 4 10366 # 1 "/usr/include/openssl/bio.h" 1 3 4 10367 /* crypto/bio/bio.h */ 10368 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10369 * All rights reserved. 10370 * 10371 * This package is an SSL implementation written 10372 * by Eric Young (eay@cryptsoft.com). 10373 * The implementation was written so as to conform with Netscapes SSL. 10374 * 10375 * This library is free for commercial and non-commercial use as long as 10376 * the following conditions are aheared to. The following conditions 10377 * apply to all code found in this distribution, be it the RC4, RSA, 10378 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10379 * included with this distribution is covered by the same copyright terms 10380 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10381 * 10382 * Copyright remains Eric Young's, and as such any Copyright notices in 10383 * the code are not to be removed. 10384 * If this package is used in a product, Eric Young should be given attribution 10385 * as the author of the parts of the library used. 10386 * This can be in the form of a textual message at program startup or 10387 * in documentation (online or textual) provided with the package. 10388 * 10389 * Redistribution and use in source and binary forms, with or without 10390 * modification, are permitted provided that the following conditions 10391 * are met: 10392 * 1. Redistributions of source code must retain the copyright 10393 * notice, this list of conditions and the following disclaimer. 10394 * 2. Redistributions in binary form must reproduce the above copyright 10395 * notice, this list of conditions and the following disclaimer in the 10396 * documentation and/or other materials provided with the distribution. 10397 * 3. All advertising materials mentioning features or use of this software 10398 * must display the following acknowledgement: 10399 * "This product includes cryptographic software written by 10400 * Eric Young (eay@cryptsoft.com)" 10401 * The word 'cryptographic' can be left out if the rouines from the library 10402 * being used are not cryptographic related :-). 10403 * 4. If you include any Windows specific code (or a derivative thereof) from 10404 * the apps directory (application code) you must include an acknowledgement: 10405 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10406 * 10407 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10408 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10409 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10410 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10411 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10412 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10413 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10414 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10415 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10416 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10417 * SUCH DAMAGE. 10418 * 10419 * The licence and distribution terms for any publically available version or 10420 * derivative of this code cannot be changed. i.e. this code cannot simply be 10421 * copied and put under another distribution licence 10422 * [including the GNU Public Licence.] 10423 */ 10424 # 965 "/usr/include/openssl/objects.h" 2 3 4 10425 # 1 "/usr/include/openssl/asn1.h" 1 3 4 10426 /* crypto/asn1/asn1.h */ 10427 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10428 * All rights reserved. 10429 * 10430 * This package is an SSL implementation written 10431 * by Eric Young (eay@cryptsoft.com). 10432 * The implementation was written so as to conform with Netscapes SSL. 10433 * 10434 * This library is free for commercial and non-commercial use as long as 10435 * the following conditions are aheared to. The following conditions 10436 * apply to all code found in this distribution, be it the RC4, RSA, 10437 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10438 * included with this distribution is covered by the same copyright terms 10439 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10440 * 10441 * Copyright remains Eric Young's, and as such any Copyright notices in 10442 * the code are not to be removed. 10443 * If this package is used in a product, Eric Young should be given attribution 10444 * as the author of the parts of the library used. 10445 * This can be in the form of a textual message at program startup or 10446 * in documentation (online or textual) provided with the package. 10447 * 10448 * Redistribution and use in source and binary forms, with or without 10449 * modification, are permitted provided that the following conditions 10450 * are met: 10451 * 1. Redistributions of source code must retain the copyright 10452 * notice, this list of conditions and the following disclaimer. 10453 * 2. Redistributions in binary form must reproduce the above copyright 10454 * notice, this list of conditions and the following disclaimer in the 10455 * documentation and/or other materials provided with the distribution. 10456 * 3. All advertising materials mentioning features or use of this software 10457 * must display the following acknowledgement: 10458 * "This product includes cryptographic software written by 10459 * Eric Young (eay@cryptsoft.com)" 10460 * The word 'cryptographic' can be left out if the rouines from the library 10461 * being used are not cryptographic related :-). 10462 * 4. If you include any Windows specific code (or a derivative thereof) from 10463 * the apps directory (application code) you must include an acknowledgement: 10464 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10465 * 10466 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10467 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10468 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10469 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10470 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10471 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10472 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10473 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10474 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10475 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10476 * SUCH DAMAGE. 10477 * 10478 * The licence and distribution terms for any publically available version or 10479 * derivative of this code cannot be changed. i.e. this code cannot simply be 10480 * copied and put under another distribution licence 10481 * [including the GNU Public Licence.] 10482 */ 10483 10484 10485 10486 10487 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 3 4 10488 /* 10489 * CDDL HEADER START 10490 * 10491 * The contents of this file are subject to the terms of the 10492 * Common Development and Distribution License (the "License"). 10493 * You may not use this file except in compliance with the License. 10494 * 10495 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10496 * or http://www.opensolaris.org/os/licensing. 10497 * See the License for the specific language governing permissions 10498 * and limitations under the License. 10499 * 10500 * When distributing Covered Code, include this CDDL HEADER in each 10501 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10502 * If applicable, add the following below this CDDL HEADER, with the 10503 * fields enclosed by brackets "[]" replaced with your own identifying 10504 * information: Portions Copyright [yyyy] [name of copyright owner] 10505 * 10506 * CDDL HEADER END 10507 */ 10508 /* Copyright (c) 1988 AT&T */ 10509 /* All Rights Reserved */ 10510 10511 10512 /* 10513 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 10514 * 10515 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 10516 * Use is subject to license terms. 10517 */ 10518 /* 10519 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 10520 * Copyright 2016 Joyent, Inc. 10521 */ 10522 # 63 "/usr/include/openssl/asn1.h" 2 3 4 10523 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 10524 /* e_os2.h */ 10525 /* ==================================================================== 10526 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 10527 * 10528 * Redistribution and use in source and binary forms, with or without 10529 * modification, are permitted provided that the following conditions 10530 * are met: 10531 * 10532 * 1. Redistributions of source code must retain the above copyright 10533 * notice, this list of conditions and the following disclaimer. 10534 * 10535 * 2. Redistributions in binary form must reproduce the above copyright 10536 * notice, this list of conditions and the following disclaimer in 10537 * the documentation and/or other materials provided with the 10538 * distribution. 10539 * 10540 * 3. All advertising materials mentioning features or use of this 10541 * software must display the following acknowledgment: 10542 * "This product includes software developed by the OpenSSL Project 10543 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10544 * 10545 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10546 * endorse or promote products derived from this software without 10547 * prior written permission. For written permission, please contact 10548 * openssl-core@openssl.org. 10549 * 10550 * 5. Products derived from this software may not be called "OpenSSL" 10551 * nor may "OpenSSL" appear in their names without prior written 10552 * permission of the OpenSSL Project. 10553 * 10554 * 6. Redistributions of any form whatsoever must retain the following 10555 * acknowledgment: 10556 * "This product includes software developed by the OpenSSL Project 10557 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10558 * 10559 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10560 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10561 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10562 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10563 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10564 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10565 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10566 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10567 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10568 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10569 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10570 * OF THE POSSIBILITY OF SUCH DAMAGE. 10571 * ==================================================================== 10572 * 10573 * This product includes cryptographic software written by Eric Young 10574 * (eay@cryptsoft.com). This product includes software written by Tim 10575 * Hudson (tjh@cryptsoft.com). 10576 * 10577 */ 10578 10579 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 10580 /* opensslconf.h */ 10581 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 10582 10583 10584 10585 10586 /* OpenSSL was configured with the following options: */ 10587 # 108 "/usr/include/openssl/opensslconf.h" 3 4 10588 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 10589 asks for it. This is a transient feature that is provided for those 10590 who haven't had the time to do the appropriate changes in their 10591 applications. */ 10592 # 204 "/usr/include/openssl/opensslconf.h" 3 4 10593 /* crypto/opensslconf.h.in */ 10594 10595 /* Generate 80386 code? */ 10596 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 10597 # 64 "/usr/include/openssl/asn1.h" 2 3 4 10598 10599 # 1 "/usr/include/openssl/bio.h" 1 3 4 10600 /* crypto/bio/bio.h */ 10601 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10602 * All rights reserved. 10603 * 10604 * This package is an SSL implementation written 10605 * by Eric Young (eay@cryptsoft.com). 10606 * The implementation was written so as to conform with Netscapes SSL. 10607 * 10608 * This library is free for commercial and non-commercial use as long as 10609 * the following conditions are aheared to. The following conditions 10610 * apply to all code found in this distribution, be it the RC4, RSA, 10611 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10612 * included with this distribution is covered by the same copyright terms 10613 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10614 * 10615 * Copyright remains Eric Young's, and as such any Copyright notices in 10616 * the code are not to be removed. 10617 * If this package is used in a product, Eric Young should be given attribution 10618 * as the author of the parts of the library used. 10619 * This can be in the form of a textual message at program startup or 10620 * in documentation (online or textual) provided with the package. 10621 * 10622 * Redistribution and use in source and binary forms, with or without 10623 * modification, are permitted provided that the following conditions 10624 * are met: 10625 * 1. Redistributions of source code must retain the copyright 10626 * notice, this list of conditions and the following disclaimer. 10627 * 2. Redistributions in binary form must reproduce the above copyright 10628 * notice, this list of conditions and the following disclaimer in the 10629 * documentation and/or other materials provided with the distribution. 10630 * 3. All advertising materials mentioning features or use of this software 10631 * must display the following acknowledgement: 10632 * "This product includes cryptographic software written by 10633 * Eric Young (eay@cryptsoft.com)" 10634 * The word 'cryptographic' can be left out if the rouines from the library 10635 * being used are not cryptographic related :-). 10636 * 4. If you include any Windows specific code (or a derivative thereof) from 10637 * the apps directory (application code) you must include an acknowledgement: 10638 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10639 * 10640 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10641 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10642 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10643 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10644 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10645 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10646 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10647 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10648 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10649 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10650 * SUCH DAMAGE. 10651 * 10652 * The licence and distribution terms for any publically available version or 10653 * derivative of this code cannot be changed. i.e. this code cannot simply be 10654 * copied and put under another distribution licence 10655 * [including the GNU Public Licence.] 10656 */ 10657 # 66 "/usr/include/openssl/asn1.h" 2 3 4 10658 10659 # 1 "/usr/include/openssl/stack.h" 1 3 4 10660 /* crypto/stack/stack.h */ 10661 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10662 * All rights reserved. 10663 * 10664 * This package is an SSL implementation written 10665 * by Eric Young (eay@cryptsoft.com). 10666 * The implementation was written so as to conform with Netscapes SSL. 10667 * 10668 * This library is free for commercial and non-commercial use as long as 10669 * the following conditions are aheared to. The following conditions 10670 * apply to all code found in this distribution, be it the RC4, RSA, 10671 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10672 * included with this distribution is covered by the same copyright terms 10673 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10674 * 10675 * Copyright remains Eric Young's, and as such any Copyright notices in 10676 * the code are not to be removed. 10677 * If this package is used in a product, Eric Young should be given attribution 10678 * as the author of the parts of the library used. 10679 * This can be in the form of a textual message at program startup or 10680 * in documentation (online or textual) provided with the package. 10681 * 10682 * Redistribution and use in source and binary forms, with or without 10683 * modification, are permitted provided that the following conditions 10684 * are met: 10685 * 1. Redistributions of source code must retain the copyright 10686 * notice, this list of conditions and the following disclaimer. 10687 * 2. Redistributions in binary form must reproduce the above copyright 10688 * notice, this list of conditions and the following disclaimer in the 10689 * documentation and/or other materials provided with the distribution. 10690 * 3. All advertising materials mentioning features or use of this software 10691 * must display the following acknowledgement: 10692 * "This product includes cryptographic software written by 10693 * Eric Young (eay@cryptsoft.com)" 10694 * The word 'cryptographic' can be left out if the rouines from the library 10695 * being used are not cryptographic related :-). 10696 * 4. If you include any Windows specific code (or a derivative thereof) from 10697 * the apps directory (application code) you must include an acknowledgement: 10698 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10699 * 10700 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10701 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10702 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10703 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10704 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10705 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10706 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10707 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10708 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10709 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10710 * SUCH DAMAGE. 10711 * 10712 * The licence and distribution terms for any publically available version or 10713 * derivative of this code cannot be changed. i.e. this code cannot simply be 10714 * copied and put under another distribution licence 10715 * [including the GNU Public Licence.] 10716 */ 10717 # 68 "/usr/include/openssl/asn1.h" 2 3 4 10718 # 1 "/usr/include/openssl/safestack.h" 1 3 4 10719 /* ==================================================================== 10720 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10721 * 10722 * Redistribution and use in source and binary forms, with or without 10723 * modification, are permitted provided that the following conditions 10724 * are met: 10725 * 10726 * 1. Redistributions of source code must retain the above copyright 10727 * notice, this list of conditions and the following disclaimer. 10728 * 10729 * 2. Redistributions in binary form must reproduce the above copyright 10730 * notice, this list of conditions and the following disclaimer in 10731 * the documentation and/or other materials provided with the 10732 * distribution. 10733 * 10734 * 3. All advertising materials mentioning features or use of this 10735 * software must display the following acknowledgment: 10736 * "This product includes software developed by the OpenSSL Project 10737 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10738 * 10739 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10740 * endorse or promote products derived from this software without 10741 * prior written permission. For written permission, please contact 10742 * openssl-core@openssl.org. 10743 * 10744 * 5. Products derived from this software may not be called "OpenSSL" 10745 * nor may "OpenSSL" appear in their names without prior written 10746 * permission of the OpenSSL Project. 10747 * 10748 * 6. Redistributions of any form whatsoever must retain the following 10749 * acknowledgment: 10750 * "This product includes software developed by the OpenSSL Project 10751 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10752 * 10753 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10754 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10755 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10756 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10757 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10758 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10759 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10760 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10761 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10762 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10763 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10764 * OF THE POSSIBILITY OF SUCH DAMAGE. 10765 * ==================================================================== 10766 * 10767 * This product includes cryptographic software written by Eric Young 10768 * (eay@cryptsoft.com). This product includes software written by Tim 10769 * Hudson (tjh@cryptsoft.com). 10770 * 10771 */ 10772 # 69 "/usr/include/openssl/asn1.h" 2 3 4 10773 10774 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 10775 /* ==================================================================== 10776 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10777 * 10778 * Redistribution and use in source and binary forms, with or without 10779 * modification, are permitted provided that the following conditions 10780 * are met: 10781 * 10782 * 1. Redistributions of source code must retain the above copyright 10783 * notice, this list of conditions and the following disclaimer. 10784 * 10785 * 2. Redistributions in binary form must reproduce the above copyright 10786 * notice, this list of conditions and the following disclaimer in 10787 * the documentation and/or other materials provided with the 10788 * distribution. 10789 * 10790 * 3. All advertising materials mentioning features or use of this 10791 * software must display the following acknowledgment: 10792 * "This product includes software developed by the OpenSSL Project 10793 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10794 * 10795 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10796 * endorse or promote products derived from this software without 10797 * prior written permission. For written permission, please contact 10798 * openssl-core@openssl.org. 10799 * 10800 * 5. Products derived from this software may not be called "OpenSSL" 10801 * nor may "OpenSSL" appear in their names without prior written 10802 * permission of the OpenSSL Project. 10803 * 10804 * 6. Redistributions of any form whatsoever must retain the following 10805 * acknowledgment: 10806 * "This product includes software developed by the OpenSSL Project 10807 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10808 * 10809 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10810 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10811 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10812 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10813 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10814 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10815 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10816 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10817 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10818 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10819 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10820 * OF THE POSSIBILITY OF SUCH DAMAGE. 10821 * ==================================================================== 10822 * 10823 * This product includes cryptographic software written by Eric Young 10824 * (eay@cryptsoft.com). This product includes software written by Tim 10825 * Hudson (tjh@cryptsoft.com). 10826 * 10827 */ 10828 # 71 "/usr/include/openssl/asn1.h" 2 3 4 10829 10830 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 10831 /* ==================================================================== 10832 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 10833 * 10834 * Redistribution and use in source and binary forms, with or without 10835 * modification, are permitted provided that the following conditions 10836 * are met: 10837 * 10838 * 1. Redistributions of source code must retain the above copyright 10839 * notice, this list of conditions and the following disclaimer. 10840 * 10841 * 2. Redistributions in binary form must reproduce the above copyright 10842 * notice, this list of conditions and the following disclaimer in 10843 * the documentation and/or other materials provided with the 10844 * distribution. 10845 * 10846 * 3. All advertising materials mentioning features or use of this 10847 * software must display the following acknowledgment: 10848 * "This product includes software developed by the OpenSSL Project 10849 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10850 * 10851 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10852 * endorse or promote products derived from this software without 10853 * prior written permission. For written permission, please contact 10854 * openssl-core@openssl.org. 10855 * 10856 * 5. Products derived from this software may not be called "OpenSSL" 10857 * nor may "OpenSSL" appear in their names without prior written 10858 * permission of the OpenSSL Project. 10859 * 10860 * 6. Redistributions of any form whatsoever must retain the following 10861 * acknowledgment: 10862 * "This product includes software developed by the OpenSSL Project 10863 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10864 * 10865 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10866 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10867 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10868 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10869 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10870 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10871 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10872 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10873 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10874 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10875 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10876 * OF THE POSSIBILITY OF SUCH DAMAGE. 10877 * ==================================================================== 10878 * 10879 * This product includes cryptographic software written by Eric Young 10880 * (eay@cryptsoft.com). This product includes software written by Tim 10881 * Hudson (tjh@cryptsoft.com). 10882 * 10883 */ 10884 # 73 "/usr/include/openssl/asn1.h" 2 3 4 10885 10886 # 1 "/usr/include/openssl/bn.h" 1 3 4 10887 /* crypto/bn/bn.h */ 10888 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 10889 * All rights reserved. 10890 * 10891 * This package is an SSL implementation written 10892 * by Eric Young (eay@cryptsoft.com). 10893 * The implementation was written so as to conform with Netscapes SSL. 10894 * 10895 * This library is free for commercial and non-commercial use as long as 10896 * the following conditions are aheared to. The following conditions 10897 * apply to all code found in this distribution, be it the RC4, RSA, 10898 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10899 * included with this distribution is covered by the same copyright terms 10900 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10901 * 10902 * Copyright remains Eric Young's, and as such any Copyright notices in 10903 * the code are not to be removed. 10904 * If this package is used in a product, Eric Young should be given attribution 10905 * as the author of the parts of the library used. 10906 * This can be in the form of a textual message at program startup or 10907 * in documentation (online or textual) provided with the package. 10908 * 10909 * Redistribution and use in source and binary forms, with or without 10910 * modification, are permitted provided that the following conditions 10911 * are met: 10912 * 1. Redistributions of source code must retain the copyright 10913 * notice, this list of conditions and the following disclaimer. 10914 * 2. Redistributions in binary form must reproduce the above copyright 10915 * notice, this list of conditions and the following disclaimer in the 10916 * documentation and/or other materials provided with the distribution. 10917 * 3. All advertising materials mentioning features or use of this software 10918 * must display the following acknowledgement: 10919 * "This product includes cryptographic software written by 10920 * Eric Young (eay@cryptsoft.com)" 10921 * The word 'cryptographic' can be left out if the rouines from the library 10922 * being used are not cryptographic related :-). 10923 * 4. If you include any Windows specific code (or a derivative thereof) from 10924 * the apps directory (application code) you must include an acknowledgement: 10925 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10926 * 10927 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10928 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10929 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10930 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10931 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10932 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10933 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10934 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10935 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10936 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10937 * SUCH DAMAGE. 10938 * 10939 * The licence and distribution terms for any publically available version or 10940 * derivative of this code cannot be changed. i.e. this code cannot simply be 10941 * copied and put under another distribution licence 10942 * [including the GNU Public Licence.] 10943 */ 10944 /* ==================================================================== 10945 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 10946 * 10947 * Redistribution and use in source and binary forms, with or without 10948 * modification, are permitted provided that the following conditions 10949 * are met: 10950 * 10951 * 1. Redistributions of source code must retain the above copyright 10952 * notice, this list of conditions and the following disclaimer. 10953 * 10954 * 2. Redistributions in binary form must reproduce the above copyright 10955 * notice, this list of conditions and the following disclaimer in 10956 * the documentation and/or other materials provided with the 10957 * distribution. 10958 * 10959 * 3. All advertising materials mentioning features or use of this 10960 * software must display the following acknowledgment: 10961 * "This product includes software developed by the OpenSSL Project 10962 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10963 * 10964 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10965 * endorse or promote products derived from this software without 10966 * prior written permission. For written permission, please contact 10967 * openssl-core@openssl.org. 10968 * 10969 * 5. Products derived from this software may not be called "OpenSSL" 10970 * nor may "OpenSSL" appear in their names without prior written 10971 * permission of the OpenSSL Project. 10972 * 10973 * 6. Redistributions of any form whatsoever must retain the following 10974 * acknowledgment: 10975 * "This product includes software developed by the OpenSSL Project 10976 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10977 * 10978 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10979 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10980 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10981 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10982 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10983 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10984 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10985 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10986 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10987 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10988 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10989 * OF THE POSSIBILITY OF SUCH DAMAGE. 10990 * ==================================================================== 10991 * 10992 * This product includes cryptographic software written by Eric Young 10993 * (eay@cryptsoft.com). This product includes software written by Tim 10994 * Hudson (tjh@cryptsoft.com). 10995 * 10996 */ 10997 /* ==================================================================== 10998 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 10999 * 11000 * Portions of the attached software ("Contribution") are developed by 11001 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 11002 * 11003 * The Contribution is licensed pursuant to the Eric Young open source 11004 * license provided above. 11005 * 11006 * The binary polynomial arithmetic software is originally written by 11007 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 11008 * 11009 */ 11010 11011 11012 11013 11014 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 3 4 11015 /* 11016 * CDDL HEADER START 11017 * 11018 * The contents of this file are subject to the terms of the 11019 * Common Development and Distribution License (the "License"). 11020 * You may not use this file except in compliance with the License. 11021 * 11022 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11023 * or http://www.opensolaris.org/os/licensing. 11024 * See the License for the specific language governing permissions 11025 * and limitations under the License. 11026 * 11027 * When distributing Covered Code, include this CDDL HEADER in each 11028 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 11029 * If applicable, add the following below this CDDL HEADER, with the 11030 * fields enclosed by brackets "[]" replaced with your own identifying 11031 * information: Portions Copyright [yyyy] [name of copyright owner] 11032 * 11033 * CDDL HEADER END 11034 */ 11035 11036 /* 11037 * Copyright (c) 2013 Gary Mills 11038 * 11039 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 11040 * Use is subject to license terms. 11041 */ 11042 11043 /* Copyright (c) 1988 AT&T */ 11044 /* All Rights Reserved */ 11045 # 129 "/usr/include/openssl/bn.h" 2 3 4 11046 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 11047 /* e_os2.h */ 11048 /* ==================================================================== 11049 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 11050 * 11051 * Redistribution and use in source and binary forms, with or without 11052 * modification, are permitted provided that the following conditions 11053 * are met: 11054 * 11055 * 1. Redistributions of source code must retain the above copyright 11056 * notice, this list of conditions and the following disclaimer. 11057 * 11058 * 2. Redistributions in binary form must reproduce the above copyright 11059 * notice, this list of conditions and the following disclaimer in 11060 * the documentation and/or other materials provided with the 11061 * distribution. 11062 * 11063 * 3. All advertising materials mentioning features or use of this 11064 * software must display the following acknowledgment: 11065 * "This product includes software developed by the OpenSSL Project 11066 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11067 * 11068 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11069 * endorse or promote products derived from this software without 11070 * prior written permission. For written permission, please contact 11071 * openssl-core@openssl.org. 11072 * 11073 * 5. Products derived from this software may not be called "OpenSSL" 11074 * nor may "OpenSSL" appear in their names without prior written 11075 * permission of the OpenSSL Project. 11076 * 11077 * 6. Redistributions of any form whatsoever must retain the following 11078 * acknowledgment: 11079 * "This product includes software developed by the OpenSSL Project 11080 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11081 * 11082 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11083 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11084 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11085 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11086 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11087 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11088 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11089 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11090 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11091 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11092 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11093 * OF THE POSSIBILITY OF SUCH DAMAGE. 11094 * ==================================================================== 11095 * 11096 * This product includes cryptographic software written by Eric Young 11097 * (eay@cryptsoft.com). This product includes software written by Tim 11098 * Hudson (tjh@cryptsoft.com). 11099 * 11100 */ 11101 11102 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 11103 /* opensslconf.h */ 11104 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 11105 11106 11107 11108 11109 /* OpenSSL was configured with the following options: */ 11110 # 108 "/usr/include/openssl/opensslconf.h" 3 4 11111 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 11112 asks for it. This is a transient feature that is provided for those 11113 who haven't had the time to do the appropriate changes in their 11114 applications. */ 11115 # 204 "/usr/include/openssl/opensslconf.h" 3 4 11116 /* crypto/opensslconf.h.in */ 11117 11118 /* Generate 80386 code? */ 11119 # 272 "/usr/include/openssl/opensslconf.h" 3 4 11120 /* 11121 * OpenSSL revision 1.521 from 2005-12-15 in OpenSSL_1_0_0-stable branch changed 11122 * 64 bit sparcv9 configuration from SIXTY_FOUR_BIT_LONG to BN_LLONG. 11123 */ 11124 11125 11126 11127 11128 11129 11130 /* Should we define BN_DIV2W here? */ 11131 11132 /* Only one for the following should be defined */ 11133 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 11134 # 130 "/usr/include/openssl/bn.h" 2 3 4 11135 11136 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 11137 /* 11138 * CDDL HEADER START 11139 * 11140 * The contents of this file are subject to the terms of the 11141 * Common Development and Distribution License (the "License"). 11142 * You may not use this file except in compliance with the License. 11143 * 11144 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11145 * or http://www.opensolaris.org/os/licensing. 11146 * See the License for the specific language governing permissions 11147 * and limitations under the License. 11148 * 11149 * When distributing Covered Code, include this CDDL HEADER in each 11150 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 11151 * If applicable, add the following below this CDDL HEADER, with the 11152 * fields enclosed by brackets "[]" replaced with your own identifying 11153 * information: Portions Copyright [yyyy] [name of copyright owner] 11154 * 11155 * CDDL HEADER END 11156 */ 11157 11158 /* 11159 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 11160 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 11161 */ 11162 11163 /* Copyright (c) 1988 AT&T */ 11164 /* All Rights Reserved */ 11165 11166 /* 11167 * User-visible pieces of the ANSI C standard I/O package. 11168 */ 11169 # 132 "/usr/include/openssl/bn.h" 2 3 4 11170 11171 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 11172 /* ==================================================================== 11173 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 11174 * 11175 * Redistribution and use in source and binary forms, with or without 11176 * modification, are permitted provided that the following conditions 11177 * are met: 11178 * 11179 * 1. Redistributions of source code must retain the above copyright 11180 * notice, this list of conditions and the following disclaimer. 11181 * 11182 * 2. Redistributions in binary form must reproduce the above copyright 11183 * notice, this list of conditions and the following disclaimer in 11184 * the documentation and/or other materials provided with the 11185 * distribution. 11186 * 11187 * 3. All advertising materials mentioning features or use of this 11188 * software must display the following acknowledgment: 11189 * "This product includes software developed by the OpenSSL Project 11190 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11191 * 11192 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11193 * endorse or promote products derived from this software without 11194 * prior written permission. For written permission, please contact 11195 * openssl-core@openssl.org. 11196 * 11197 * 5. Products derived from this software may not be called "OpenSSL" 11198 * nor may "OpenSSL" appear in their names without prior written 11199 * permission of the OpenSSL Project. 11200 * 11201 * 6. Redistributions of any form whatsoever must retain the following 11202 * acknowledgment: 11203 * "This product includes software developed by the OpenSSL Project 11204 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11205 * 11206 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11207 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11208 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11209 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11210 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11211 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11212 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11213 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11214 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11215 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11216 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11217 * OF THE POSSIBILITY OF SUCH DAMAGE. 11218 * ==================================================================== 11219 * 11220 * This product includes cryptographic software written by Eric Young 11221 * (eay@cryptsoft.com). This product includes software written by Tim 11222 * Hudson (tjh@cryptsoft.com). 11223 * 11224 */ 11225 # 134 "/usr/include/openssl/bn.h" 2 3 4 11226 # 1 "/usr/include/openssl/crypto.h" 1 3 4 11227 /* crypto/crypto.h */ 11228 /* ==================================================================== 11229 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 11230 * 11231 * Redistribution and use in source and binary forms, with or without 11232 * modification, are permitted provided that the following conditions 11233 * are met: 11234 * 11235 * 1. Redistributions of source code must retain the above copyright 11236 * notice, this list of conditions and the following disclaimer. 11237 * 11238 * 2. Redistributions in binary form must reproduce the above copyright 11239 * notice, this list of conditions and the following disclaimer in 11240 * the documentation and/or other materials provided with the 11241 * distribution. 11242 * 11243 * 3. All advertising materials mentioning features or use of this 11244 * software must display the following acknowledgment: 11245 * "This product includes software developed by the OpenSSL Project 11246 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11247 * 11248 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11249 * endorse or promote products derived from this software without 11250 * prior written permission. For written permission, please contact 11251 * openssl-core@openssl.org. 11252 * 11253 * 5. Products derived from this software may not be called "OpenSSL" 11254 * nor may "OpenSSL" appear in their names without prior written 11255 * permission of the OpenSSL Project. 11256 * 11257 * 6. Redistributions of any form whatsoever must retain the following 11258 * acknowledgment: 11259 * "This product includes software developed by the OpenSSL Project 11260 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11261 * 11262 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11263 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11264 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11265 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11266 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11267 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11268 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11269 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11270 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11271 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11272 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11273 * OF THE POSSIBILITY OF SUCH DAMAGE. 11274 * ==================================================================== 11275 * 11276 * This product includes cryptographic software written by Eric Young 11277 * (eay@cryptsoft.com). This product includes software written by Tim 11278 * Hudson (tjh@cryptsoft.com). 11279 * 11280 */ 11281 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11282 * All rights reserved. 11283 * 11284 * This package is an SSL implementation written 11285 * by Eric Young (eay@cryptsoft.com). 11286 * The implementation was written so as to conform with Netscapes SSL. 11287 * 11288 * This library is free for commercial and non-commercial use as long as 11289 * the following conditions are aheared to. The following conditions 11290 * apply to all code found in this distribution, be it the RC4, RSA, 11291 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11292 * included with this distribution is covered by the same copyright terms 11293 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11294 * 11295 * Copyright remains Eric Young's, and as such any Copyright notices in 11296 * the code are not to be removed. 11297 * If this package is used in a product, Eric Young should be given attribution 11298 * as the author of the parts of the library used. 11299 * This can be in the form of a textual message at program startup or 11300 * in documentation (online or textual) provided with the package. 11301 * 11302 * Redistribution and use in source and binary forms, with or without 11303 * modification, are permitted provided that the following conditions 11304 * are met: 11305 * 1. Redistributions of source code must retain the copyright 11306 * notice, this list of conditions and the following disclaimer. 11307 * 2. Redistributions in binary form must reproduce the above copyright 11308 * notice, this list of conditions and the following disclaimer in the 11309 * documentation and/or other materials provided with the distribution. 11310 * 3. All advertising materials mentioning features or use of this software 11311 * must display the following acknowledgement: 11312 * "This product includes cryptographic software written by 11313 * Eric Young (eay@cryptsoft.com)" 11314 * The word 'cryptographic' can be left out if the rouines from the library 11315 * being used are not cryptographic related :-). 11316 * 4. If you include any Windows specific code (or a derivative thereof) from 11317 * the apps directory (application code) you must include an acknowledgement: 11318 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11319 * 11320 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11321 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11322 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11323 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11324 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11325 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11326 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11327 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11328 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11329 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11330 * SUCH DAMAGE. 11331 * 11332 * The licence and distribution terms for any publically available version or 11333 * derivative of this code cannot be changed. i.e. this code cannot simply be 11334 * copied and put under another distribution licence 11335 * [including the GNU Public Licence.] 11336 */ 11337 /* ==================================================================== 11338 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 11339 * ECDH support in OpenSSL originally developed by 11340 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 11341 */ 11342 # 135 "/usr/include/openssl/bn.h" 2 3 4 11343 11344 11345 11346 11347 11348 /* 11349 * These preprocessor symbols control various aspects of the bignum headers 11350 * and library code. They're not defined by any "normal" configuration, as 11351 * they are intended for development and testing purposes. NB: defining all 11352 * three can be useful for debugging application code as well as openssl 11353 * itself. BN_DEBUG - turn on various debugging alterations to the bignum 11354 * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up 11355 * mismanagement of bignum internals. You must also define BN_DEBUG. 11356 */ 11357 /* #define BN_DEBUG */ 11358 /* #define BN_DEBUG_RAND */ 11359 11360 11361 11362 11363 11364 11365 11366 /* 11367 * This next option uses the C libraries (2 word)/(1 word) function. If it is 11368 * not defined, I use my C version (which is slower). The reason for this 11369 * flag is that when the particular C compiler library routine is used, and 11370 * the library is linked with a different compiler, the library is missing. 11371 * This mostly happens when the library is built with gcc and then linked 11372 * using normal cc. This would be a common occurrence because gcc normally 11373 * produces code that is 2 times faster than system compilers for the big 11374 * number stuff. For machines with only one compiler (or shared libraries), 11375 * this should be on. Again this in only really a problem on machines using 11376 * "long long's", are 32bit, and are not using my assembler code. 11377 */ 11378 11379 11380 11381 11382 11383 11384 11385 /* 11386 * assuming long is 64bit - this is the DEC Alpha unsigned long long is only 11387 * 64 bits :-(, don't define BN_LLONG for the DEC Alpha 11388 */ 11389 # 203 "/usr/include/openssl/bn.h" 3 4 11390 /* 11391 * This is where the long long data type is 64 bits, but long is 32. For 11392 * machines where there are 64bit registers, this is the mode to use. IRIX, 11393 * on R4000 and above should use this mode, along with the relevant assembler 11394 * code :-). Do NOT define BN_LLONG. 11395 */ 11396 # 265 "/usr/include/openssl/bn.h" 3 4 11397 /* 11398 * avoid leaking exponent information through timing, 11399 * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, 11400 * BN_div() will call BN_div_no_branch, 11401 * BN_mod_inverse() will call BN_mod_inverse_no_branch. 11402 */ 11403 # 284 "/usr/include/openssl/bn.h" 3 4 11404 /* used for debuging */ 11405 11406 11407 11408 11409 /* 11410 * get a clone of a BIGNUM with changed flags, for *temporary* use only (the 11411 * two BIGNUMs cannot not be used in parallel!) 11412 */ 11413 # 302 "/usr/include/openssl/bn.h" 3 4 11414 /* Already declared in ossl_typ.h */ 11415 # 313 "/usr/include/openssl/bn.h" 3 4 11416 struct bignum_st { 11417 unsigned int *d; /* Pointer to an array of 'BN_BITS2' bit 11418 * chunks. */ 11419 int top; /* Index of last used d +1. */ 11420 /* The next are internal book keeping for bn_expand. */ 11421 int dmax; /* Size of the d array. */ 11422 int neg; /* one if the number is negative */ 11423 int flags; 11424 }; 11425 11426 /* Used for montgomery multiplication */ 11427 struct bn_mont_ctx_st { 11428 int ri; /* number of bits in R */ 11429 BIGNUM RR; /* used to convert to montgomery form */ 11430 BIGNUM N; /* The modulus */ 11431 BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only 11432 * stored for bignum algorithm) */ 11433 unsigned int n0[2]; /* least significant word(s) of Ni; (type 11434 * changed with 0.9.9, was "BN_ULONG n0;" 11435 * before) */ 11436 int flags; 11437 }; 11438 11439 /* 11440 * Used for reciprocal division/mod functions It cannot be shared between 11441 * threads 11442 */ 11443 struct bn_recp_ctx_st { 11444 BIGNUM N; /* the divisor */ 11445 BIGNUM Nr; /* the reciprocal */ 11446 int num_bits; 11447 int shift; 11448 int flags; 11449 }; 11450 11451 /* Used for slow "generation" functions. */ 11452 struct bn_gencb_st { 11453 unsigned int ver; /* To handle binary (in)compatibility */ 11454 void *arg; /* callback-specific data */ 11455 union { 11456 /* if(ver==1) - handles old style callbacks */ 11457 void (*cb_1) (int, int, void *); 11458 /* if(ver==2) - new callback style */ 11459 int (*cb_2) (int, int, BN_GENCB *); 11460 } cb; 11461 }; 11462 /* Wrapper function to make using BN_GENCB easier, */ 11463 int BN_GENCB_call(BN_GENCB *cb, int a, int b); 11464 /* Macro to populate a BN_GENCB structure with an "old"-style callback */ 11465 11466 11467 11468 11469 11470 /* Macro to populate a BN_GENCB structure with a "new"-style callback */ 11471 # 377 "/usr/include/openssl/bn.h" 3 4 11472 /* 11473 * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations 11474 * that will be done for checking that a random number is probably prime. The 11475 * error rate for accepting a composite number as prime depends on the size of 11476 * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, 11477 * and so the level is what you would expect for a key of double the size of the 11478 * prime. 11479 * 11480 * This table is generated using the algorithm of FIPS PUB 186-4 11481 * Digital Signature Standard (DSS), section F.1, page 117. 11482 * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) 11483 * 11484 * The following magma script was used to generate the output: 11485 * securitybits:=125; 11486 * k:=1024; 11487 * for t:=1 to 65 do 11488 * for M:=3 to Floor(2*Sqrt(k-1)-1) do 11489 * S:=0; 11490 * // Sum over m 11491 * for m:=3 to M do 11492 * s:=0; 11493 * // Sum over j 11494 * for j:=2 to m do 11495 * s+:=(RealField(32)!2)^-(j+(k-1)/j); 11496 * end for; 11497 * S+:=2^(m-(m-1)*t)*s; 11498 * end for; 11499 * A:=2^(k-2-M*t); 11500 * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; 11501 * pkt:=2.00743*Log(2)*k*2^-k*(A+B); 11502 * seclevel:=Floor(-Log(2,pkt)); 11503 * if seclevel ge securitybits then 11504 * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; 11505 * break; 11506 * end if; 11507 * end for; 11508 * if seclevel ge securitybits then break; end if; 11509 * end for; 11510 * 11511 * It can be run online at: 11512 * http://magma.maths.usyd.edu.au/calc 11513 * 11514 * And will output: 11515 * k: 1024, security: 129 bits (t: 6, M: 23) 11516 * 11517 * k is the number of bits of the prime, securitybits is the level we want to 11518 * reach. 11519 * 11520 * prime length | RSA key size | # MR tests | security level 11521 * -------------+--------------|------------+--------------- 11522 * (b) >= 6394 | >= 12788 | 3 | 256 bit 11523 * (b) >= 3747 | >= 7494 | 3 | 192 bit 11524 * (b) >= 1345 | >= 2690 | 4 | 128 bit 11525 * (b) >= 1080 | >= 2160 | 5 | 128 bit 11526 * (b) >= 852 | >= 1704 | 5 | 112 bit 11527 * (b) >= 476 | >= 952 | 5 | 80 bit 11528 * (b) >= 400 | >= 800 | 6 | 80 bit 11529 * (b) >= 347 | >= 694 | 7 | 80 bit 11530 * (b) >= 308 | >= 616 | 8 | 80 bit 11531 * (b) >= 55 | >= 110 | 27 | 64 bit 11532 * (b) >= 6 | >= 12 | 34 | 64 bit 11533 */ 11534 # 451 "/usr/include/openssl/bn.h" 3 4 11535 /* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ 11536 # 472 "/usr/include/openssl/bn.h" 3 4 11537 const BIGNUM *BN_value_one(void); 11538 char *BN_options(void); 11539 BN_CTX *BN_CTX_new(void); 11540 11541 void BN_CTX_init(BN_CTX *c); 11542 11543 void BN_CTX_free(BN_CTX *c); 11544 void BN_CTX_start(BN_CTX *ctx); 11545 BIGNUM *BN_CTX_get(BN_CTX *ctx); 11546 void BN_CTX_end(BN_CTX *ctx); 11547 int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); 11548 int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); 11549 int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); 11550 int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); 11551 int BN_num_bits(const BIGNUM *a); 11552 int BN_num_bits_word(unsigned int); 11553 BIGNUM *BN_new(void); 11554 void BN_init(BIGNUM *); 11555 void BN_clear_free(BIGNUM *a); 11556 BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); 11557 void BN_swap(BIGNUM *a, BIGNUM *b); 11558 BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); 11559 int BN_bn2bin(const BIGNUM *a, unsigned char *to); 11560 BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); 11561 int BN_bn2mpi(const BIGNUM *a, unsigned char *to); 11562 int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11563 int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11564 int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11565 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11566 int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 11567 int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); 11568 /** BN_set_negative sets sign of a BIGNUM 11569 * \param b pointer to the BIGNUM object 11570 * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise 11571 */ 11572 void BN_set_negative(BIGNUM *b, int n); 11573 /** BN_is_negative returns 1 if the BIGNUM is negative 11574 * \param a pointer to the BIGNUM object 11575 * \return 1 if a < 0 and 0 otherwise 11576 */ 11577 11578 11579 int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, 11580 BN_CTX *ctx); 11581 11582 int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); 11583 int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11584 BN_CTX *ctx); 11585 int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11586 const BIGNUM *m); 11587 int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11588 BN_CTX *ctx); 11589 int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11590 const BIGNUM *m); 11591 int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11592 BN_CTX *ctx); 11593 int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 11594 int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 11595 int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); 11596 int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, 11597 BN_CTX *ctx); 11598 int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); 11599 11600 unsigned int BN_mod_word(const BIGNUM *a, unsigned int w); 11601 unsigned int BN_div_word(BIGNUM *a, unsigned int w); 11602 int BN_mul_word(BIGNUM *a, unsigned int w); 11603 int BN_add_word(BIGNUM *a, unsigned int w); 11604 int BN_sub_word(BIGNUM *a, unsigned int w); 11605 int BN_set_word(BIGNUM *a, unsigned int w); 11606 unsigned int BN_get_word(const BIGNUM *a); 11607 11608 int BN_cmp(const BIGNUM *a, const BIGNUM *b); 11609 void BN_free(BIGNUM *a); 11610 int BN_is_bit_set(const BIGNUM *a, int n); 11611 int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); 11612 int BN_lshift1(BIGNUM *r, const BIGNUM *a); 11613 int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11614 11615 int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11616 const BIGNUM *m, BN_CTX *ctx); 11617 int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11618 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11619 int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, 11620 const BIGNUM *m, BN_CTX *ctx, 11621 BN_MONT_CTX *in_mont); 11622 int BN_mod_exp_mont_word(BIGNUM *r, unsigned int a, const BIGNUM *p, 11623 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11624 int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, 11625 const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, 11626 BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11627 int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11628 const BIGNUM *m, BN_CTX *ctx); 11629 11630 int BN_mask_bits(BIGNUM *a, int n); 11631 11632 int BN_print_fp(FILE *fp, const BIGNUM *a); 11633 11634 11635 int BN_print(BIO *fp, const BIGNUM *a); 11636 11637 11638 11639 int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); 11640 int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); 11641 int BN_rshift1(BIGNUM *r, const BIGNUM *a); 11642 void BN_clear(BIGNUM *a); 11643 BIGNUM *BN_dup(const BIGNUM *a); 11644 int BN_ucmp(const BIGNUM *a, const BIGNUM *b); 11645 int BN_set_bit(BIGNUM *a, int n); 11646 int BN_clear_bit(BIGNUM *a, int n); 11647 char *BN_bn2hex(const BIGNUM *a); 11648 char *BN_bn2dec(const BIGNUM *a); 11649 int BN_hex2bn(BIGNUM **a, const char *str); 11650 int BN_dec2bn(BIGNUM **a, const char *str); 11651 int BN_asc2bn(BIGNUM **a, const char *str); 11652 int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 11653 int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns 11654 * -2 for 11655 * error */ 11656 BIGNUM *BN_mod_inverse(BIGNUM *ret, 11657 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 11658 BIGNUM *BN_mod_sqrt(BIGNUM *ret, 11659 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 11660 11661 void BN_consttime_swap(unsigned int swap, BIGNUM *a, BIGNUM *b, int nwords); 11662 11663 /* Deprecated versions */ 11664 11665 BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, 11666 const BIGNUM *add, const BIGNUM *rem, 11667 void (*callback) (int, int, void *), void *cb_arg); 11668 int BN_is_prime(const BIGNUM *p, int nchecks, 11669 void (*callback) (int, int, void *), 11670 BN_CTX *ctx, void *cb_arg); 11671 int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, 11672 void (*callback) (int, int, void *), BN_CTX *ctx, 11673 void *cb_arg, int do_trial_division); 11674 11675 11676 /* Newer versions */ 11677 int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, 11678 const BIGNUM *rem, BN_GENCB *cb); 11679 int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); 11680 int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, 11681 int do_trial_division, BN_GENCB *cb); 11682 11683 int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); 11684 11685 int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, 11686 const BIGNUM *Xp, const BIGNUM *Xp1, 11687 const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, 11688 BN_GENCB *cb); 11689 int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, 11690 BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, 11691 BN_CTX *ctx, BN_GENCB *cb); 11692 11693 BN_MONT_CTX *BN_MONT_CTX_new(void); 11694 void BN_MONT_CTX_init(BN_MONT_CTX *ctx); 11695 int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11696 BN_MONT_CTX *mont, BN_CTX *ctx); 11697 11698 11699 int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, 11700 BN_MONT_CTX *mont, BN_CTX *ctx); 11701 void BN_MONT_CTX_free(BN_MONT_CTX *mont); 11702 int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); 11703 BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); 11704 BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, 11705 const BIGNUM *mod, BN_CTX *ctx); 11706 11707 /* BN_BLINDING flags */ 11708 11709 11710 11711 BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); 11712 void BN_BLINDING_free(BN_BLINDING *b); 11713 int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); 11714 int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 11715 int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 11716 int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); 11717 int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, 11718 BN_CTX *); 11719 11720 unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); 11721 void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); 11722 11723 CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); 11724 unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); 11725 void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); 11726 BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, 11727 const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, 11728 int (*bn_mod_exp) (BIGNUM *r, 11729 const BIGNUM *a, 11730 const BIGNUM *p, 11731 const BIGNUM *m, 11732 BN_CTX *ctx, 11733 BN_MONT_CTX *m_ctx), 11734 BN_MONT_CTX *m_ctx); 11735 11736 11737 void BN_set_params(int mul, int high, int low, int mont); 11738 int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ 11739 11740 11741 void BN_RECP_CTX_init(BN_RECP_CTX *recp); 11742 BN_RECP_CTX *BN_RECP_CTX_new(void); 11743 void BN_RECP_CTX_free(BN_RECP_CTX *recp); 11744 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); 11745 int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, 11746 BN_RECP_CTX *recp, BN_CTX *ctx); 11747 int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11748 const BIGNUM *m, BN_CTX *ctx); 11749 int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, 11750 BN_RECP_CTX *recp, BN_CTX *ctx); 11751 11752 11753 11754 /* 11755 * Functions for arithmetic over binary polynomials represented by BIGNUMs. 11756 * The BIGNUM::neg property of BIGNUMs representing binary polynomials is 11757 * ignored. Note that input arguments are not const so that their bit arrays 11758 * can be expanded to the appropriate size if needed. 11759 */ 11760 11761 /* 11762 * r = a + b 11763 */ 11764 int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11765 11766 /* 11767 * r=a mod p 11768 */ 11769 int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); 11770 /* r = (a * b) mod p */ 11771 int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11772 const BIGNUM *p, BN_CTX *ctx); 11773 /* r = (a * a) mod p */ 11774 int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11775 /* r = (1 / b) mod p */ 11776 int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); 11777 /* r = (a / b) mod p */ 11778 int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11779 const BIGNUM *p, BN_CTX *ctx); 11780 /* r = (a ^ b) mod p */ 11781 int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11782 const BIGNUM *p, BN_CTX *ctx); 11783 /* r = sqrt(a) mod p */ 11784 int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11785 BN_CTX *ctx); 11786 /* r^2 + r = a mod p */ 11787 int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11788 BN_CTX *ctx); 11789 11790 /*- 11791 * Some functions allow for representation of the irreducible polynomials 11792 * as an unsigned int[], say p. The irreducible f(t) is then of the form: 11793 * t^p[0] + t^p[1] + ... + t^p[k] 11794 * where m = p[0] > p[1] > ... > p[k] = 0. 11795 */ 11796 /* r = a mod p */ 11797 int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); 11798 /* r = (a * b) mod p */ 11799 int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11800 const int p[], BN_CTX *ctx); 11801 /* r = (a * a) mod p */ 11802 int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], 11803 BN_CTX *ctx); 11804 /* r = (1 / b) mod p */ 11805 int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], 11806 BN_CTX *ctx); 11807 /* r = (a / b) mod p */ 11808 int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11809 const int p[], BN_CTX *ctx); 11810 /* r = (a ^ b) mod p */ 11811 int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11812 const int p[], BN_CTX *ctx); 11813 /* r = sqrt(a) mod p */ 11814 int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, 11815 const int p[], BN_CTX *ctx); 11816 /* r^2 + r = a mod p */ 11817 int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, 11818 const int p[], BN_CTX *ctx); 11819 int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); 11820 int BN_GF2m_arr2poly(const int p[], BIGNUM *a); 11821 11822 11823 11824 /* 11825 * faster mod functions for the 'NIST primes' 0 <= a < p^2 11826 */ 11827 int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11828 int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11829 int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11830 int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11831 int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11832 11833 const BIGNUM *BN_get0_nist_prime_192(void); 11834 const BIGNUM *BN_get0_nist_prime_224(void); 11835 const BIGNUM *BN_get0_nist_prime_256(void); 11836 const BIGNUM *BN_get0_nist_prime_384(void); 11837 const BIGNUM *BN_get0_nist_prime_521(void); 11838 11839 /* library internal functions */ 11840 # 788 "/usr/include/openssl/bn.h" 3 4 11841 BIGNUM *bn_expand2(BIGNUM *a, int words); 11842 11843 BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ 11844 11845 11846 /*- 11847 * Bignum consistency macros 11848 * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from 11849 * bignum data after direct manipulations on the data. There is also an 11850 * "internal" macro, bn_check_top(), for verifying that there are no leading 11851 * zeroes. Unfortunately, some auditing is required due to the fact that 11852 * bn_fix_top() has become an overabused duct-tape because bignum data is 11853 * occasionally passed around in an inconsistent state. So the following 11854 * changes have been made to sort this out; 11855 * - bn_fix_top()s implementation has been moved to bn_correct_top() 11856 * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and 11857 * bn_check_top() is as before. 11858 * - if BN_DEBUG *is* defined; 11859 * - bn_check_top() tries to pollute unused words even if the bignum 'top' is 11860 * consistent. (ed: only if BN_DEBUG_RAND is defined) 11861 * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. 11862 * The idea is to have debug builds flag up inconsistent bignums when they 11863 * occur. If that occurs in a bn_fix_top(), we examine the code in question; if 11864 * the use of bn_fix_top() was appropriate (ie. it follows directly after code 11865 * that manipulates the bignum) it is converted to bn_correct_top(), and if it 11866 * was not appropriate, we convert it permanently to bn_check_top() and track 11867 * down the cause of the bug. Eventually, no internal code should be using the 11868 * bn_fix_top() macro. External applications and libraries should try this with 11869 * their own code too, both in terms of building against the openssl headers 11870 * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it 11871 * defined. This not only improves external code, it provides more test 11872 * coverage for openssl's own code. 11873 */ 11874 # 914 "/usr/include/openssl/bn.h" 3 4 11875 unsigned int bn_mul_add_words(unsigned int *rp, const unsigned int *ap, int num, 11876 unsigned int w); 11877 unsigned int bn_mul_words(unsigned int *rp, const unsigned int *ap, int num, unsigned int w); 11878 void bn_sqr_words(unsigned int *rp, const unsigned int *ap, int num); 11879 unsigned int bn_div_words(unsigned int h, unsigned int l, unsigned int d); 11880 unsigned int bn_add_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 11881 int num); 11882 unsigned int bn_sub_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 11883 int num); 11884 11885 /* Primes from RFC 2409 */ 11886 BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); 11887 BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); 11888 11889 /* Primes from RFC 3526 */ 11890 BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); 11891 BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); 11892 BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); 11893 BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); 11894 BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); 11895 BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); 11896 11897 int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); 11898 11899 /* BEGIN ERROR CODES */ 11900 /* 11901 * The following lines are auto generated by the script mkerr.pl. Any changes 11902 * made after this point may be overwritten when the script is next run. 11903 */ 11904 void ERR_load_BN_strings(void); 11905 11906 /* Error codes for the BN functions. */ 11907 11908 /* Function codes. */ 11909 # 991 "/usr/include/openssl/bn.h" 3 4 11910 /* Reason codes. */ 11911 # 75 "/usr/include/openssl/asn1.h" 2 3 4 11912 # 132 "/usr/include/openssl/asn1.h" 3 4 11913 /* For use with d2i_ASN1_type_bytes() */ 11914 # 152 "/usr/include/openssl/asn1.h" 3 4 11915 /* For use with ASN1_mbstring_copy() */ 11916 # 161 "/usr/include/openssl/asn1.h" 3 4 11917 struct X509_algor_st; 11918 struct stack_st_X509_ALGOR { _STACK stack; }; 11919 11920 11921 11922 11923 /* 11924 * We MUST make sure that, except for constness, asn1_ctx_st and 11925 * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 11926 * parsing macros are gone, we can throw this away as well... 11927 */ 11928 typedef struct asn1_ctx_st { 11929 unsigned char *p; /* work char pointer */ 11930 int eos; /* end of sequence read for indefinite 11931 * encoding */ 11932 int error; /* error code to use when returning an error */ 11933 int inf; /* constructed if 0x20, indefinite is 0x21 */ 11934 int tag; /* tag from last 'get object' */ 11935 int xclass; /* class from last 'get object' */ 11936 long slen; /* length of last 'get object' */ 11937 unsigned char *max; /* largest value of p allowed */ 11938 unsigned char *q; /* temporary variable */ 11939 unsigned char **pp; /* variable */ 11940 int line; /* used in error processing */ 11941 } ASN1_CTX; 11942 11943 typedef struct asn1_const_ctx_st { 11944 const unsigned char *p; /* work char pointer */ 11945 int eos; /* end of sequence read for indefinite 11946 * encoding */ 11947 int error; /* error code to use when returning an error */ 11948 int inf; /* constructed if 0x20, indefinite is 0x21 */ 11949 int tag; /* tag from last 'get object' */ 11950 int xclass; /* class from last 'get object' */ 11951 long slen; /* length of last 'get object' */ 11952 const unsigned char *max; /* largest value of p allowed */ 11953 const unsigned char *q; /* temporary variable */ 11954 const unsigned char **pp; /* variable */ 11955 int line; /* used in error processing */ 11956 } ASN1_const_CTX; 11957 11958 /* 11959 * These are used internally in the ASN1_OBJECT to keep track of whether the 11960 * names and data need to be free()ed 11961 */ 11962 11963 11964 11965 11966 struct asn1_object_st { 11967 const char *sn, *ln; 11968 int nid; 11969 int length; 11970 const unsigned char *data; /* data remains const after init */ 11971 int flags; /* Should we free this one */ 11972 }; 11973 11974 11975 /* 11976 * This indicates that the ASN1_STRING is not a real value but just a place 11977 * holder for the location where indefinite length constructed data should be 11978 * inserted in the memory buffer 11979 */ 11980 11981 11982 /* 11983 * This flag is used by the CMS code to indicate that a string is not 11984 * complete and is a place holder for content when it had all been accessed. 11985 * The flag will be reset when content has been written to it. 11986 */ 11987 11988 11989 /* 11990 * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING 11991 * type. 11992 */ 11993 11994 /* This is the base type that holds just about everything :-) */ 11995 struct asn1_string_st { 11996 int length; 11997 int type; 11998 unsigned char *data; 11999 /* 12000 * The value of the following field depends on the type being held. It 12001 * is mostly being used for BIT_STRING so if the input data has a 12002 * non-zero 'unused bits' value, it will be handled correctly 12003 */ 12004 long flags; 12005 }; 12006 12007 /* 12008 * ASN1_ENCODING structure: this is used to save the received encoding of an 12009 * ASN1 type. This is useful to get round problems with invalid encodings 12010 * which can break signatures. 12011 */ 12012 12013 typedef struct ASN1_ENCODING_st { 12014 unsigned char *enc; /* DER encoding */ 12015 long len; /* Length of encoding */ 12016 int modified; /* set to 1 if 'enc' is invalid */ 12017 } ASN1_ENCODING; 12018 12019 /* Used with ASN1 LONG type: if a long is set to this it is omitted */ 12020 # 272 "/usr/include/openssl/asn1.h" 3 4 12021 typedef struct asn1_string_table_st { 12022 int nid; 12023 long minsize; 12024 long maxsize; 12025 unsigned long mask; 12026 unsigned long flags; 12027 } ASN1_STRING_TABLE; 12028 12029 struct stack_st_ASN1_STRING_TABLE { _STACK stack; }; 12030 12031 /* size limits: this stuff is taken straight from RFC2459 */ 12032 # 293 "/usr/include/openssl/asn1.h" 3 4 12033 /* 12034 * Declarations for template structures: for full definitions see asn1t.h 12035 */ 12036 typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; 12037 typedef struct ASN1_TLC_st ASN1_TLC; 12038 /* This is just an opaque pointer */ 12039 typedef struct ASN1_VALUE_st ASN1_VALUE; 12040 12041 /* Declare ASN1 functions: the implement macro in in asn1t.h */ 12042 # 363 "/usr/include/openssl/asn1.h" 3 4 12043 typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **); 12044 12045 /*- 12046 * The following macros and typedefs allow an ASN1_ITEM 12047 * to be embedded in a structure and referenced. Since 12048 * the ASN1_ITEM pointers need to be globally accessible 12049 * (possibly from shared libraries) they may exist in 12050 * different forms. On platforms that support it the 12051 * ASN1_ITEM structure itself will be globally exported. 12052 * Other platforms will export a function that returns 12053 * an ASN1_ITEM pointer. 12054 * 12055 * To handle both cases transparently the macros below 12056 * should be used instead of hard coding an ASN1_ITEM 12057 * pointer in a structure. 12058 * 12059 * The structure will look like this: 12060 * 12061 * typedef struct SOMETHING_st { 12062 * ... 12063 * ASN1_ITEM_EXP *iptr; 12064 * ... 12065 * } SOMETHING; 12066 * 12067 * It would be initialised as e.g.: 12068 * 12069 * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; 12070 * 12071 * and the actual pointer extracted with: 12072 * 12073 * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); 12074 * 12075 * Finally an ASN1_ITEM pointer can be extracted from an 12076 * appropriate reference with: ASN1_ITEM_rptr(X509). This 12077 * would be used when a function takes an ASN1_ITEM * argument. 12078 * 12079 */ 12080 12081 12082 12083 /* ASN1_ITEM pointer exported type */ 12084 typedef const ASN1_ITEM ASN1_ITEM_EXP; 12085 12086 /* Macro to obtain ASN1_ITEM pointer from exported type */ 12087 12088 12089 /* Macro to include ASN1_ITEM pointer from base type */ 12090 # 440 "/usr/include/openssl/asn1.h" 3 4 12091 /* Parameters used by ASN1_STRING_print_ex() */ 12092 12093 /* 12094 * These determine which characters to escape: RFC2253 special characters, 12095 * control characters and MSB set characters 12096 */ 12097 12098 12099 12100 12101 12102 /* 12103 * This flag determines how we do escaping: normally RC2253 backslash only, 12104 * set this to use backslash and quote. 12105 */ 12106 12107 12108 12109 /* These three flags are internal use only. */ 12110 12111 /* Character is a valid PrintableString character */ 12112 12113 /* Character needs escaping if it is the first character */ 12114 12115 /* Character needs escaping if it is the last character */ 12116 12117 12118 /* 12119 * NB the internal flags are safely reused below by flags handled at the top 12120 * level. 12121 */ 12122 12123 /* 12124 * If this is set we convert all character strings to UTF8 first 12125 */ 12126 12127 12128 12129 /* 12130 * If this is set we don't attempt to interpret content: just assume all 12131 * strings are 1 byte per character. This will produce some pretty odd 12132 * looking output! 12133 */ 12134 12135 12136 12137 /* If this is set we include the string type in the output */ 12138 12139 12140 /* 12141 * This determines which strings to display and which to 'dump' (hex dump of 12142 * content octets or DER encoding). We can only dump non character strings or 12143 * everything. If we don't dump 'unknown' they are interpreted as character 12144 * strings with 1 octet per character and are subject to the usual escaping 12145 * options. 12146 */ 12147 12148 12149 12150 12151 /* 12152 * These determine what 'dumping' does, we can dump the content octets or the 12153 * DER encoding: both use the RFC2253 #XXXXX notation. 12154 */ 12155 12156 12157 12158 /* 12159 * All the string flags consistent with RFC2253, escaping control characters 12160 * isn't essential in RFC2253 but it is advisable anyway. 12161 */ 12162 # 519 "/usr/include/openssl/asn1.h" 3 4 12163 struct stack_st_ASN1_INTEGER { _STACK stack; }; 12164 12165 12166 struct stack_st_ASN1_GENERALSTRING { _STACK stack; }; 12167 12168 typedef struct asn1_type_st { 12169 int type; 12170 union { 12171 char *ptr; 12172 ASN1_BOOLEAN boolean; 12173 ASN1_STRING *asn1_string; 12174 ASN1_OBJECT *object; 12175 ASN1_INTEGER *integer; 12176 ASN1_ENUMERATED *enumerated; 12177 ASN1_BIT_STRING *bit_string; 12178 ASN1_OCTET_STRING *octet_string; 12179 ASN1_PRINTABLESTRING *printablestring; 12180 ASN1_T61STRING *t61string; 12181 ASN1_IA5STRING *ia5string; 12182 ASN1_GENERALSTRING *generalstring; 12183 ASN1_BMPSTRING *bmpstring; 12184 ASN1_UNIVERSALSTRING *universalstring; 12185 ASN1_UTCTIME *utctime; 12186 ASN1_GENERALIZEDTIME *generalizedtime; 12187 ASN1_VISIBLESTRING *visiblestring; 12188 ASN1_UTF8STRING *utf8string; 12189 /* 12190 * set and sequence are left complete and still contain the set or 12191 * sequence bytes 12192 */ 12193 ASN1_STRING *set; 12194 ASN1_STRING *sequence; 12195 ASN1_VALUE *asn1_value; 12196 } value; 12197 } ASN1_TYPE; 12198 12199 struct stack_st_ASN1_TYPE { _STACK stack; }; 12200 12201 12202 typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY; 12203 12204 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; 12205 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; 12206 12207 typedef struct NETSCAPE_X509_st { 12208 ASN1_OCTET_STRING *header; 12209 X509 *cert; 12210 } NETSCAPE_X509; 12211 12212 /* This is used to contain a list of bit names */ 12213 typedef struct BIT_STRING_BITNAME_st { 12214 int bitnum; 12215 const char *lname; 12216 const char *sname; 12217 } BIT_STRING_BITNAME; 12218 12219 12220 12221 12222 12223 12224 /* Macros for string operations */ 12225 # 772 "/usr/include/openssl/asn1.h" 3 4 12226 /* for the is_set parameter to i2d_ASN1_SET */ 12227 12228 12229 12230 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; 12231 12232 int ASN1_TYPE_get(ASN1_TYPE *a); 12233 void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); 12234 int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); 12235 int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); 12236 12237 ASN1_OBJECT *ASN1_OBJECT_new(void); 12238 void ASN1_OBJECT_free(ASN1_OBJECT *a); 12239 int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); 12240 ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 12241 long length); 12242 ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 12243 long length); 12244 12245 extern const ASN1_ITEM ASN1_OBJECT_it; 12246 12247 struct stack_st_ASN1_OBJECT { _STACK stack; }; 12248 12249 12250 ASN1_STRING *ASN1_STRING_new(void); 12251 void ASN1_STRING_free(ASN1_STRING *a); 12252 void ASN1_STRING_clear_free(ASN1_STRING *a); 12253 int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); 12254 ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); 12255 ASN1_STRING *ASN1_STRING_type_new(int type); 12256 int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); 12257 /* 12258 * Since this is used to store all sorts of things, via macros, for now, 12259 * make its data void * 12260 */ 12261 int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); 12262 void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); 12263 int ASN1_STRING_length(const ASN1_STRING *x); 12264 void ASN1_STRING_length_set(ASN1_STRING *x, int n); 12265 int ASN1_STRING_type(ASN1_STRING *x); 12266 unsigned char *ASN1_STRING_data(ASN1_STRING *x); 12267 12268 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; 12269 int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); 12270 ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, 12271 const unsigned char **pp, long length); 12272 int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); 12273 int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); 12274 int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); 12275 int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, 12276 unsigned char *flags, int flags_len); 12277 12278 12279 int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, 12280 BIT_STRING_BITNAME *tbl, int indent); 12281 12282 int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); 12283 int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, 12284 BIT_STRING_BITNAME *tbl); 12285 12286 int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); 12287 int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); 12288 12289 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; 12290 int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); 12291 ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, 12292 long length); 12293 ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, 12294 long length); 12295 ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); 12296 int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); 12297 12298 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; 12299 12300 int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); 12301 ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); 12302 ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, 12303 int offset_day, long offset_sec); 12304 int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); 12305 int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); 12306 12307 12308 12309 12310 int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); 12311 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, 12312 time_t t); 12313 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, 12314 time_t t, int offset_day, 12315 long offset_sec); 12316 int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); 12317 int ASN1_TIME_diff(int *pday, int *psec, 12318 const ASN1_TIME *from, const ASN1_TIME *to); 12319 12320 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; 12321 ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); 12322 int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, 12323 const ASN1_OCTET_STRING *b); 12324 int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, 12325 int len); 12326 12327 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; 12328 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; 12329 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; 12330 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; 12331 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; 12332 12333 int UTF8_getc(const unsigned char *str, int len, unsigned long *val); 12334 int UTF8_putc(unsigned char *str, int len, unsigned long value); 12335 12336 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; 12337 12338 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; 12339 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; 12340 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; 12341 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; 12342 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; 12343 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; 12344 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; 12345 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; 12346 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; 12347 12348 extern const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it; 12349 12350 ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); 12351 ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, 12352 int offset_day, long offset_sec); 12353 int ASN1_TIME_check(ASN1_TIME *t); 12354 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME 12355 **out); 12356 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); 12357 12358 int i2d_ASN1_SET(struct stack_st_OPENSSL_BLOCK *a, unsigned char **pp, 12359 i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); 12360 struct stack_st_OPENSSL_BLOCK *d2i_ASN1_SET(struct stack_st_OPENSSL_BLOCK **a, 12361 const unsigned char **pp, 12362 long length, d2i_of_void *d2i, 12363 void (*free_func) (OPENSSL_BLOCK), 12364 int ex_tag, int ex_class); 12365 12366 12367 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); 12368 int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); 12369 int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); 12370 int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); 12371 int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); 12372 int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); 12373 int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); 12374 12375 int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); 12376 12377 int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); 12378 ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, 12379 const char *sn, const char *ln); 12380 12381 int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); 12382 long ASN1_INTEGER_get(const ASN1_INTEGER *a); 12383 ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); 12384 BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); 12385 12386 int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); 12387 long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); 12388 ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); 12389 BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); 12390 12391 /* General */ 12392 /* given a string, return the correct type, max is the maximum length */ 12393 int ASN1_PRINTABLE_type(const unsigned char *s, int max); 12394 12395 int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); 12396 ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, 12397 long length, int Ptag, int Pclass); 12398 unsigned long ASN1_tag2bit(int tag); 12399 /* type is one or more of the B_ASN1_ values. */ 12400 ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, 12401 long length, int type); 12402 12403 /* PARSING */ 12404 int asn1_Finish(ASN1_CTX *c); 12405 int asn1_const_Finish(ASN1_const_CTX *c); 12406 12407 /* SPECIALS */ 12408 int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, 12409 int *pclass, long omax); 12410 int ASN1_check_infinite_end(unsigned char **p, long len); 12411 int ASN1_const_check_infinite_end(const unsigned char **p, long len); 12412 void ASN1_put_object(unsigned char **pp, int constructed, int length, 12413 int tag, int xclass); 12414 int ASN1_put_eoc(unsigned char **pp); 12415 int ASN1_object_size(int constructed, int length, int tag); 12416 12417 /* Used to implement other functions */ 12418 void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); 12419 # 976 "/usr/include/openssl/asn1.h" 3 4 12420 void *ASN1_item_dup(const ASN1_ITEM *it, void *x); 12421 12422 /* ASN1 alloc/free macros for when a type is only used internally */ 12423 12424 12425 12426 12427 12428 12429 void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); 12430 12431 12432 12433 12434 12435 12436 12437 void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); 12438 int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); 12439 # 1006 "/usr/include/openssl/asn1.h" 3 4 12440 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); 12441 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); 12442 12443 12444 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); 12445 12446 12447 void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); 12448 12449 12450 12451 12452 12453 12454 12455 void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); 12456 int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); 12457 # 1034 "/usr/include/openssl/asn1.h" 3 4 12458 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); 12459 int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); 12460 int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); 12461 int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); 12462 int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); 12463 int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); 12464 int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, 12465 unsigned char *buf, int off); 12466 int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); 12467 int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, 12468 int dump); 12469 12470 const char *ASN1_tag2str(int tag); 12471 12472 /* Used to load and write netscape format cert */ 12473 12474 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; 12475 12476 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); 12477 12478 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); 12479 int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); 12480 int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, 12481 unsigned char *data, int len); 12482 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, 12483 unsigned char *data, int max_len); 12484 12485 struct stack_st_OPENSSL_BLOCK *ASN1_seq_unpack(const unsigned char *buf, int len, 12486 d2i_of_void *d2i, 12487 void (*free_func) (OPENSSL_BLOCK)); 12488 unsigned char *ASN1_seq_pack(struct stack_st_OPENSSL_BLOCK *safes, i2d_of_void *i2d, 12489 unsigned char **buf, int *len); 12490 void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); 12491 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); 12492 ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, 12493 ASN1_OCTET_STRING **oct); 12494 12495 12496 12497 12498 12499 12500 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, 12501 ASN1_OCTET_STRING **oct); 12502 12503 void ASN1_STRING_set_default_mask(unsigned long mask); 12504 int ASN1_STRING_set_default_mask_asc(const char *p); 12505 unsigned long ASN1_STRING_get_default_mask(void); 12506 int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, 12507 int inform, unsigned long mask); 12508 int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, 12509 int inform, unsigned long mask, 12510 long minsize, long maxsize); 12511 12512 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, 12513 const unsigned char *in, int inlen, 12514 int inform, int nid); 12515 ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); 12516 int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); 12517 void ASN1_STRING_TABLE_cleanup(void); 12518 12519 /* ASN1 template functions */ 12520 12521 /* Old API compatible functions */ 12522 ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); 12523 void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 12524 ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, 12525 long len, const ASN1_ITEM *it); 12526 int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); 12527 int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, 12528 const ASN1_ITEM *it); 12529 12530 void ASN1_add_oid_module(void); 12531 12532 ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); 12533 ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); 12534 12535 /* ASN1 Print flags */ 12536 12537 /* Indicate missing OPTIONAL fields */ 12538 12539 /* Mark start and end of SEQUENCE */ 12540 12541 /* Mark start and end of SEQUENCE/SET OF */ 12542 12543 /* Show the ASN1 type of primitives */ 12544 12545 /* Don't show ASN1 type of ANY */ 12546 12547 /* Don't show ASN1 type of MSTRINGs */ 12548 12549 /* Don't show field names in SEQUENCE */ 12550 12551 /* Show structure names of each SEQUENCE field */ 12552 12553 /* Don't show structure name even at top level */ 12554 12555 12556 int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, 12557 const ASN1_ITEM *it, const ASN1_PCTX *pctx); 12558 ASN1_PCTX *ASN1_PCTX_new(void); 12559 void ASN1_PCTX_free(ASN1_PCTX *p); 12560 unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); 12561 void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); 12562 unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); 12563 void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); 12564 unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); 12565 void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); 12566 unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); 12567 void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); 12568 unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); 12569 void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); 12570 12571 BIO_METHOD *BIO_f_asn1(void); 12572 12573 BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); 12574 12575 int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 12576 const ASN1_ITEM *it); 12577 int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 12578 const char *hdr, const ASN1_ITEM *it); 12579 int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, 12580 int ctype_nid, int econt_nid, 12581 struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it); 12582 ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); 12583 int SMIME_crlf_copy(BIO *in, BIO *out, int flags); 12584 int SMIME_text(BIO *in, BIO *out); 12585 12586 /* BEGIN ERROR CODES */ 12587 /* 12588 * The following lines are auto generated by the script mkerr.pl. Any changes 12589 * made after this point may be overwritten when the script is next run. 12590 */ 12591 12592 void ERR_load_ASN1_strings(void); 12593 12594 /* Error codes for the ASN1 functions. */ 12595 12596 /* Function codes. */ 12597 # 1298 "/usr/include/openssl/asn1.h" 3 4 12598 /* Reason codes. */ 12599 # 966 "/usr/include/openssl/objects.h" 2 3 4 12600 # 984 "/usr/include/openssl/objects.h" 3 4 12601 typedef struct obj_name_st { 12602 int type; 12603 int alias; 12604 const char *name; 12605 const char *data; 12606 } OBJ_NAME; 12607 12608 12609 12610 int OBJ_NAME_init(void); 12611 int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), 12612 int (*cmp_func) (const char *, const char *), 12613 void (*free_func) (const char *, int, const char *)); 12614 const char *OBJ_NAME_get(const char *name, int type); 12615 int OBJ_NAME_add(const char *name, int type, const char *data); 12616 int OBJ_NAME_remove(const char *name, int type); 12617 void OBJ_NAME_cleanup(int type); /* -1 for everything */ 12618 void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), 12619 void *arg); 12620 void OBJ_NAME_do_all_sorted(int type, 12621 void (*fn) (const OBJ_NAME *, void *arg), 12622 void *arg); 12623 12624 ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); 12625 ASN1_OBJECT *OBJ_nid2obj(int n); 12626 const char *OBJ_nid2ln(int n); 12627 const char *OBJ_nid2sn(int n); 12628 int OBJ_obj2nid(const ASN1_OBJECT *o); 12629 ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); 12630 int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); 12631 int OBJ_txt2nid(const char *s); 12632 int OBJ_ln2nid(const char *s); 12633 int OBJ_sn2nid(const char *s); 12634 int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 12635 const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, 12636 int (*cmp) (const void *, const void *)); 12637 const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, 12638 int size, 12639 int (*cmp) (const void *, const void *), 12640 int flags); 12641 # 1035 "/usr/include/openssl/objects.h" 3 4 12642 /*- 12643 * Unsolved problem: if a type is actually a pointer type, like 12644 * nid_triple is, then its impossible to get a const where you need 12645 * it. Consider: 12646 * 12647 * typedef int nid_triple[3]; 12648 * const void *a_; 12649 * const nid_triple const *a = a_; 12650 * 12651 * The assignement discards a const because what you really want is: 12652 * 12653 * const int const * const *a = a_; 12654 * 12655 * But if you do that, you lose the fact that a is an array of 3 ints, 12656 * which breaks comparison functions. 12657 * 12658 * Thus we end up having to cast, sadly, or unpack the 12659 * declarations. Or, as I finally did in this case, delcare nid_triple 12660 * to be a struct, which it should have been in the first place. 12661 * 12662 * Ben, August 2008. 12663 * 12664 * Also, strictly speaking not all types need be const, but handling 12665 * the non-constness means a lot of complication, and in practice 12666 * comparison routines do always not touch their arguments. 12667 */ 12668 # 1104 "/usr/include/openssl/objects.h" 3 4 12669 int OBJ_new_nid(int num); 12670 int OBJ_add_object(const ASN1_OBJECT *obj); 12671 int OBJ_create(const char *oid, const char *sn, const char *ln); 12672 void OBJ_cleanup(void); 12673 int OBJ_create_objects(BIO *in); 12674 12675 int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); 12676 int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); 12677 int OBJ_add_sigid(int signid, int dig_id, int pkey_id); 12678 void OBJ_sigid_free(void); 12679 12680 extern int obj_cleanup_defer; 12681 void check_defer(int nid); 12682 12683 /* BEGIN ERROR CODES */ 12684 /* 12685 * The following lines are auto generated by the script mkerr.pl. Any changes 12686 * made after this point may be overwritten when the script is next run. 12687 */ 12688 void ERR_load_OBJ_strings(void); 12689 12690 /* Error codes for the OBJ functions. */ 12691 12692 /* Function codes. */ 12693 # 1136 "/usr/include/openssl/objects.h" 3 4 12694 /* Reason codes. */ 12695 # 95 "/usr/include/openssl/evp.h" 2 3 4 12696 # 125 "/usr/include/openssl/evp.h" 3 4 12697 /* 12698 * Type needs to be a bit field Sub-type needs to be for variations on the 12699 * method, as in, can it do arbitrary encryption.... 12700 */ 12701 struct evp_pkey_st { 12702 int type; 12703 int save_type; 12704 int references; 12705 const EVP_PKEY_ASN1_METHOD *ameth; 12706 ENGINE *engine; 12707 union { 12708 char *ptr; 12709 12710 struct rsa_st *rsa; /* RSA */ 12711 12712 12713 struct dsa_st *dsa; /* DSA */ 12714 12715 12716 struct dh_st *dh; /* DH */ 12717 12718 12719 struct ec_key_st *ec; /* ECC */ 12720 12721 } pkey; 12722 int save_parameters; 12723 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 12724 } /* EVP_PKEY */ ; 12725 12726 12727 12728 12729 12730 12731 12732 struct env_md_st { 12733 int type; 12734 int pkey_type; 12735 int md_size; 12736 unsigned long flags; 12737 int (*init) (EVP_MD_CTX *ctx); 12738 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 12739 int (*final) (EVP_MD_CTX *ctx, unsigned char *md); 12740 int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); 12741 int (*cleanup) (EVP_MD_CTX *ctx); 12742 /* FIXME: prototype these some day */ 12743 int (*sign) (int type, const unsigned char *m, unsigned int m_length, 12744 unsigned char *sigret, unsigned int *siglen, void *key); 12745 int (*verify) (int type, const unsigned char *m, unsigned int m_length, 12746 const unsigned char *sigbuf, unsigned int siglen, 12747 void *key); 12748 int required_pkey_type[5]; /* EVP_PKEY_xxx */ 12749 int block_size; 12750 int ctx_size; /* how big does the ctx->md_data need to be */ 12751 /* control function */ 12752 int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); 12753 } /* EVP_MD */ ; 12754 12755 typedef int evp_sign_method(int type, const unsigned char *m, 12756 unsigned int m_length, unsigned char *sigret, 12757 unsigned int *siglen, void *key); 12758 typedef int evp_verify_method(int type, const unsigned char *m, 12759 unsigned int m_length, 12760 const unsigned char *sigbuf, 12761 unsigned int siglen, void *key); 12762 12763 /* digest can only handle a single block */ 12764 12765 12766 /* 12767 * digest is a "clone" digest used 12768 * which is a copy of an existing 12769 * one for a specific public key type. 12770 * EVP_dss1() etc 12771 */ 12772 12773 12774 /* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ 12775 12776 12777 12778 /* DigestAlgorithmIdentifier flags... */ 12779 12780 12781 12782 /* NULL or absent parameter accepted. Use NULL */ 12783 12784 12785 12786 /* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ 12787 12788 12789 12790 /* Custom handling via ctrl */ 12791 12792 12793 12794 /* Note if suitable for use in FIPS mode */ 12795 12796 12797 /* Digest ctrls */ 12798 12799 12800 12801 12802 /* Minimum Algorithm specific ctrl value */ 12803 # 268 "/usr/include/openssl/evp.h" 3 4 12804 struct env_md_ctx_st { 12805 const EVP_MD *digest; 12806 ENGINE *engine; /* functional reference if 'digest' is 12807 * ENGINE-provided */ 12808 unsigned long flags; 12809 void *md_data; 12810 /* Public key context for sign/verify */ 12811 EVP_PKEY_CTX *pctx; 12812 /* Update function: usually copied from EVP_MD */ 12813 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 12814 } /* EVP_MD_CTX */ ; 12815 12816 /* values for EVP_MD_CTX flags */ 12817 12818 12819 12820 12821 12822 12823 12824 /* 12825 * FIPS and pad options are ignored in 1.0.0, definitions are here so we 12826 * don't accidentally reuse the values for other purposes. 12827 */ 12828 12829 12830 12831 12832 /* 12833 * The following PAD options are also currently ignored in 1.0.0, digest 12834 * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() 12835 * instead. 12836 */ 12837 12838 12839 12840 12841 12842 12843 12844 struct evp_cipher_st { 12845 int nid; 12846 int block_size; 12847 /* Default value for variable length ciphers */ 12848 int key_len; 12849 int iv_len; 12850 /* Various flags */ 12851 unsigned long flags; 12852 /* init key */ 12853 int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, 12854 const unsigned char *iv, int enc); 12855 /* encrypt/decrypt data */ 12856 int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, 12857 const unsigned char *in, size_t inl); 12858 /* cleanup ctx */ 12859 int (*cleanup) (EVP_CIPHER_CTX *); 12860 /* how big ctx->cipher_data needs to be */ 12861 int ctx_size; 12862 /* Populate a ASN1_TYPE with parameters */ 12863 int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 12864 /* Get parameters from a ASN1_TYPE */ 12865 int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 12866 /* Miscellaneous operations */ 12867 int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); 12868 /* Application data */ 12869 void *app_data; 12870 } /* EVP_CIPHER */ ; 12871 12872 /* Values for cipher flags */ 12873 12874 /* Modes for ciphers */ 12875 # 351 "/usr/include/openssl/evp.h" 3 4 12876 /* Set if variable length cipher */ 12877 12878 /* Set if the iv handling should be done by the cipher itself */ 12879 12880 /* Set if the cipher's init() function should be called if key is NULL */ 12881 12882 /* Call ctrl() to init cipher parameters */ 12883 12884 /* Don't use standard key length function */ 12885 12886 /* Don't use standard block padding */ 12887 12888 /* cipher handles random key generation */ 12889 12890 /* cipher has its own additional copying logic */ 12891 12892 /* Allow use default ASN1 get/set iv */ 12893 12894 /* Buffer length in bits not bytes: CFB1 mode only */ 12895 12896 /* Note if suitable for use in FIPS mode */ 12897 12898 /* Allow non FIPS cipher in FIPS mode */ 12899 12900 /* 12901 * Cipher handles any and all padding logic as well as finalisation. 12902 */ 12903 12904 12905 12906 12907 /* 12908 * Cipher context flag to indicate we can handle wrap mode: if allowed in 12909 * older applications it could overflow buffers. 12910 */ 12911 12912 12913 12914 /* ctrl() values */ 12915 # 410 "/usr/include/openssl/evp.h" 3 4 12916 /* 12917 * AEAD cipher deduces payload length and returns number of bytes required to 12918 * store MAC and eventual padding. Subsequent call to EVP_Cipher even 12919 * appends/verifies MAC. 12920 */ 12921 12922 /* Used by composite AEAD ciphers, no-op in GCM, CCM... */ 12923 12924 /* Set the GCM invocation field, decrypt only */ 12925 12926 12927 12928 12929 12930 12931 12932 /* RFC 5246 defines additional data to be 13 bytes in length */ 12933 12934 12935 typedef struct { 12936 unsigned char *out; 12937 const unsigned char *inp; 12938 size_t len; 12939 unsigned int interleave; 12940 } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; 12941 12942 /* GCM TLS constants */ 12943 /* Length of fixed part of IV derived from PRF */ 12944 12945 /* Length of explicit part of IV part of TLS records */ 12946 12947 /* Length of tag for TLS */ 12948 12949 12950 typedef struct evp_cipher_info_st { 12951 const EVP_CIPHER *cipher; 12952 unsigned char iv[16]; 12953 } EVP_CIPHER_INFO; 12954 12955 struct evp_cipher_ctx_st { 12956 const EVP_CIPHER *cipher; 12957 ENGINE *engine; /* functional reference if 'cipher' is 12958 * ENGINE-provided */ 12959 int encrypt; /* encrypt or decrypt */ 12960 int buf_len; /* number we have left */ 12961 unsigned char oiv[16]; /* original iv */ 12962 unsigned char iv[16]; /* working iv */ 12963 unsigned char buf[32]; /* saved partial block */ 12964 int num; /* used by cfb/ofb/ctr mode */ 12965 void *app_data; /* application stuff */ 12966 int key_len; /* May change for variable length cipher */ 12967 unsigned long flags; /* Various flags */ 12968 void *cipher_data; /* per EVP data */ 12969 int final_used; 12970 int block_mask; 12971 unsigned char final[32]; /* possible final block */ 12972 } /* EVP_CIPHER_CTX */ ; 12973 12974 typedef struct evp_Encode_Ctx_st { 12975 /* number saved in a partial encode/decode */ 12976 int num; 12977 /* 12978 * The length is either the output line length (in input bytes) or the 12979 * shortest input line length that is ok. Once decoding begins, the 12980 * length is adjusted up each time a longer line is decoded 12981 */ 12982 int length; 12983 /* data to encode */ 12984 unsigned char enc_data[80]; 12985 /* number read on current line */ 12986 int line_num; 12987 int expect_nl; 12988 } EVP_ENCODE_CTX; 12989 12990 /* Password based encryption function */ 12991 typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, 12992 int passlen, ASN1_TYPE *param, 12993 const EVP_CIPHER *cipher, const EVP_MD *md, 12994 int en_de); 12995 # 510 "/usr/include/openssl/evp.h" 3 4 12996 /* Add some extra combinations */ 12997 12998 12999 13000 13001 13002 int EVP_MD_type(const EVP_MD *md); 13003 13004 13005 int EVP_MD_pkey_type(const EVP_MD *md); 13006 int EVP_MD_size(const EVP_MD *md); 13007 int EVP_MD_block_size(const EVP_MD *md); 13008 unsigned long EVP_MD_flags(const EVP_MD *md); 13009 13010 const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); 13011 13012 13013 13014 13015 int EVP_CIPHER_nid(const EVP_CIPHER *cipher); 13016 13017 int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); 13018 int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); 13019 int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); 13020 unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); 13021 13022 13023 const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); 13024 int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); 13025 int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); 13026 int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); 13027 int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); 13028 int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); 13029 void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); 13030 void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); 13031 13032 unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); 13033 # 574 "/usr/include/openssl/evp.h" 3 4 13034 int EVP_Cipher(EVP_CIPHER_CTX *c, 13035 unsigned char *out, const unsigned char *in, unsigned int inl); 13036 # 586 "/usr/include/openssl/evp.h" 3 4 13037 void EVP_MD_CTX_init(EVP_MD_CTX *ctx); 13038 int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); 13039 EVP_MD_CTX *EVP_MD_CTX_create(void); 13040 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); 13041 int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); 13042 void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); 13043 void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); 13044 int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); 13045 int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); 13046 int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); 13047 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 13048 int EVP_Digest(const void *data, size_t count, 13049 unsigned char *md, unsigned int *size, const EVP_MD *type, 13050 ENGINE *impl); 13051 13052 int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); 13053 int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); 13054 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 13055 13056 int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); 13057 int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, 13058 const char *prompt, int verify); 13059 void EVP_set_pw_prompt(const char *prompt); 13060 char *EVP_get_pw_prompt(void); 13061 13062 int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, 13063 const unsigned char *salt, const unsigned char *data, 13064 int datal, int count, unsigned char *key, 13065 unsigned char *iv); 13066 13067 void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); 13068 void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); 13069 int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); 13070 13071 int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13072 const unsigned char *key, const unsigned char *iv); 13073 int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13074 ENGINE *impl, const unsigned char *key, 13075 const unsigned char *iv); 13076 int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 13077 const unsigned char *in, int inl); 13078 int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 13079 int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 13080 13081 int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13082 const unsigned char *key, const unsigned char *iv); 13083 int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13084 ENGINE *impl, const unsigned char *key, 13085 const unsigned char *iv); 13086 int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 13087 const unsigned char *in, int inl); 13088 int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 13089 int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 13090 13091 int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13092 const unsigned char *key, const unsigned char *iv, 13093 int enc); 13094 int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 13095 ENGINE *impl, const unsigned char *key, 13096 const unsigned char *iv, int enc); 13097 int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 13098 const unsigned char *in, int inl); 13099 int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 13100 int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 13101 13102 int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, 13103 EVP_PKEY *pkey); 13104 13105 int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, 13106 unsigned int siglen, EVP_PKEY *pkey); 13107 13108 int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 13109 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 13110 int EVP_DigestSignFinal(EVP_MD_CTX *ctx, 13111 unsigned char *sigret, size_t *siglen); 13112 13113 int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 13114 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 13115 int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, 13116 const unsigned char *sig, size_t siglen); 13117 13118 int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 13119 const unsigned char *ek, int ekl, const unsigned char *iv, 13120 EVP_PKEY *priv); 13121 int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 13122 13123 int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 13124 unsigned char **ek, int *ekl, unsigned char *iv, 13125 EVP_PKEY **pubk, int npubk); 13126 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 13127 13128 void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); 13129 void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 13130 const unsigned char *in, int inl); 13131 void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); 13132 int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); 13133 13134 void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); 13135 int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 13136 const unsigned char *in, int inl); 13137 int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned 13138 char *out, int *outl); 13139 int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); 13140 13141 void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); 13142 int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); 13143 EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); 13144 void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); 13145 int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); 13146 int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); 13147 int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); 13148 int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); 13149 13150 13151 BIO_METHOD *BIO_f_md(void); 13152 BIO_METHOD *BIO_f_base64(void); 13153 BIO_METHOD *BIO_f_cipher(void); 13154 BIO_METHOD *BIO_f_reliable(void); 13155 void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, 13156 const unsigned char *i, int enc); 13157 13158 13159 const EVP_MD *EVP_md_null(void); 13160 13161 const EVP_MD *EVP_md2(void); 13162 13163 13164 const EVP_MD *EVP_md4(void); 13165 13166 13167 const EVP_MD *EVP_md5(void); 13168 13169 13170 const EVP_MD *EVP_sha(void); 13171 const EVP_MD *EVP_sha1(void); 13172 const EVP_MD *EVP_dss(void); 13173 const EVP_MD *EVP_dss1(void); 13174 const EVP_MD *EVP_ecdsa(void); 13175 13176 13177 const EVP_MD *EVP_sha224(void); 13178 const EVP_MD *EVP_sha256(void); 13179 13180 13181 const EVP_MD *EVP_sha384(void); 13182 const EVP_MD *EVP_sha512(void); 13183 13184 13185 13186 13187 13188 const EVP_MD *EVP_ripemd160(void); 13189 13190 13191 13192 13193 const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ 13194 13195 const EVP_CIPHER *EVP_des_ecb(void); 13196 const EVP_CIPHER *EVP_des_ede(void); 13197 const EVP_CIPHER *EVP_des_ede3(void); 13198 const EVP_CIPHER *EVP_des_ede_ecb(void); 13199 const EVP_CIPHER *EVP_des_ede3_ecb(void); 13200 const EVP_CIPHER *EVP_des_cfb64(void); 13201 13202 const EVP_CIPHER *EVP_des_cfb1(void); 13203 const EVP_CIPHER *EVP_des_cfb8(void); 13204 const EVP_CIPHER *EVP_des_ede_cfb64(void); 13205 13206 13207 13208 13209 13210 const EVP_CIPHER *EVP_des_ede3_cfb64(void); 13211 13212 const EVP_CIPHER *EVP_des_ede3_cfb1(void); 13213 const EVP_CIPHER *EVP_des_ede3_cfb8(void); 13214 const EVP_CIPHER *EVP_des_ofb(void); 13215 const EVP_CIPHER *EVP_des_ede_ofb(void); 13216 const EVP_CIPHER *EVP_des_ede3_ofb(void); 13217 const EVP_CIPHER *EVP_des_cbc(void); 13218 const EVP_CIPHER *EVP_des_ede_cbc(void); 13219 const EVP_CIPHER *EVP_des_ede3_cbc(void); 13220 const EVP_CIPHER *EVP_desx_cbc(void); 13221 const EVP_CIPHER *EVP_des_ede3_wrap(void); 13222 /* 13223 * This should now be supported through the dev_crypto ENGINE. But also, why 13224 * are rc4 and md5 declarations made here inside a "NO_DES" precompiler 13225 * branch? 13226 */ 13227 # 785 "/usr/include/openssl/evp.h" 3 4 13228 const EVP_CIPHER *EVP_rc4(void); 13229 const EVP_CIPHER *EVP_rc4_40(void); 13230 13231 const EVP_CIPHER *EVP_rc4_hmac_md5(void); 13232 # 799 "/usr/include/openssl/evp.h" 3 4 13233 const EVP_CIPHER *EVP_rc2_ecb(void); 13234 const EVP_CIPHER *EVP_rc2_cbc(void); 13235 const EVP_CIPHER *EVP_rc2_40_cbc(void); 13236 const EVP_CIPHER *EVP_rc2_64_cbc(void); 13237 const EVP_CIPHER *EVP_rc2_cfb64(void); 13238 13239 const EVP_CIPHER *EVP_rc2_ofb(void); 13240 13241 13242 const EVP_CIPHER *EVP_bf_ecb(void); 13243 const EVP_CIPHER *EVP_bf_cbc(void); 13244 const EVP_CIPHER *EVP_bf_cfb64(void); 13245 13246 const EVP_CIPHER *EVP_bf_ofb(void); 13247 13248 13249 const EVP_CIPHER *EVP_cast5_ecb(void); 13250 const EVP_CIPHER *EVP_cast5_cbc(void); 13251 const EVP_CIPHER *EVP_cast5_cfb64(void); 13252 13253 const EVP_CIPHER *EVP_cast5_ofb(void); 13254 # 829 "/usr/include/openssl/evp.h" 3 4 13255 const EVP_CIPHER *EVP_aes_128_ecb(void); 13256 const EVP_CIPHER *EVP_aes_128_cbc(void); 13257 const EVP_CIPHER *EVP_aes_128_cfb1(void); 13258 const EVP_CIPHER *EVP_aes_128_cfb8(void); 13259 const EVP_CIPHER *EVP_aes_128_cfb128(void); 13260 13261 const EVP_CIPHER *EVP_aes_128_ofb(void); 13262 const EVP_CIPHER *EVP_aes_128_ctr(void); 13263 const EVP_CIPHER *EVP_aes_128_ccm(void); 13264 const EVP_CIPHER *EVP_aes_128_gcm(void); 13265 const EVP_CIPHER *EVP_aes_128_xts(void); 13266 const EVP_CIPHER *EVP_aes_128_wrap(void); 13267 const EVP_CIPHER *EVP_aes_192_ecb(void); 13268 const EVP_CIPHER *EVP_aes_192_cbc(void); 13269 const EVP_CIPHER *EVP_aes_192_cfb1(void); 13270 const EVP_CIPHER *EVP_aes_192_cfb8(void); 13271 const EVP_CIPHER *EVP_aes_192_cfb128(void); 13272 13273 const EVP_CIPHER *EVP_aes_192_ofb(void); 13274 const EVP_CIPHER *EVP_aes_192_ctr(void); 13275 const EVP_CIPHER *EVP_aes_192_ccm(void); 13276 const EVP_CIPHER *EVP_aes_192_gcm(void); 13277 const EVP_CIPHER *EVP_aes_192_wrap(void); 13278 const EVP_CIPHER *EVP_aes_256_ecb(void); 13279 const EVP_CIPHER *EVP_aes_256_cbc(void); 13280 const EVP_CIPHER *EVP_aes_256_cfb1(void); 13281 const EVP_CIPHER *EVP_aes_256_cfb8(void); 13282 const EVP_CIPHER *EVP_aes_256_cfb128(void); 13283 13284 const EVP_CIPHER *EVP_aes_256_ofb(void); 13285 const EVP_CIPHER *EVP_aes_256_ctr(void); 13286 const EVP_CIPHER *EVP_aes_256_ccm(void); 13287 const EVP_CIPHER *EVP_aes_256_gcm(void); 13288 const EVP_CIPHER *EVP_aes_256_xts(void); 13289 const EVP_CIPHER *EVP_aes_256_wrap(void); 13290 13291 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); 13292 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); 13293 13294 13295 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); 13296 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); 13297 13298 13299 13300 const EVP_CIPHER *EVP_camellia_128_ecb(void); 13301 const EVP_CIPHER *EVP_camellia_128_cbc(void); 13302 const EVP_CIPHER *EVP_camellia_128_cfb1(void); 13303 const EVP_CIPHER *EVP_camellia_128_cfb8(void); 13304 const EVP_CIPHER *EVP_camellia_128_cfb128(void); 13305 13306 const EVP_CIPHER *EVP_camellia_128_ofb(void); 13307 const EVP_CIPHER *EVP_camellia_192_ecb(void); 13308 const EVP_CIPHER *EVP_camellia_192_cbc(void); 13309 const EVP_CIPHER *EVP_camellia_192_cfb1(void); 13310 const EVP_CIPHER *EVP_camellia_192_cfb8(void); 13311 const EVP_CIPHER *EVP_camellia_192_cfb128(void); 13312 13313 const EVP_CIPHER *EVP_camellia_192_ofb(void); 13314 const EVP_CIPHER *EVP_camellia_256_ecb(void); 13315 const EVP_CIPHER *EVP_camellia_256_cbc(void); 13316 const EVP_CIPHER *EVP_camellia_256_cfb1(void); 13317 const EVP_CIPHER *EVP_camellia_256_cfb8(void); 13318 const EVP_CIPHER *EVP_camellia_256_cfb128(void); 13319 13320 const EVP_CIPHER *EVP_camellia_256_ofb(void); 13321 # 905 "/usr/include/openssl/evp.h" 3 4 13322 void OPENSSL_add_all_algorithms_noconf(void); 13323 void OPENSSL_add_all_algorithms_conf(void); 13324 # 916 "/usr/include/openssl/evp.h" 3 4 13325 void OpenSSL_add_all_ciphers(void); 13326 void OpenSSL_add_all_digests(void); 13327 13328 13329 13330 13331 int EVP_add_cipher(const EVP_CIPHER *cipher); 13332 int EVP_add_digest(const EVP_MD *digest); 13333 13334 const EVP_CIPHER *EVP_get_cipherbyname(const char *name); 13335 const EVP_MD *EVP_get_digestbyname(const char *name); 13336 void EVP_cleanup(void); 13337 13338 void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, 13339 const char *from, const char *to, void *x), 13340 void *arg); 13341 void EVP_CIPHER_do_all_sorted(void (*fn) 13342 (const EVP_CIPHER *ciph, const char *from, 13343 const char *to, void *x), void *arg); 13344 13345 void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, 13346 const char *from, const char *to, void *x), 13347 void *arg); 13348 void EVP_MD_do_all_sorted(void (*fn) 13349 (const EVP_MD *ciph, const char *from, 13350 const char *to, void *x), void *arg); 13351 13352 int EVP_PKEY_decrypt_old(unsigned char *dec_key, 13353 const unsigned char *enc_key, int enc_key_len, 13354 EVP_PKEY *private_key); 13355 int EVP_PKEY_encrypt_old(unsigned char *enc_key, 13356 const unsigned char *key, int key_len, 13357 EVP_PKEY *pub_key); 13358 int EVP_PKEY_type(int type); 13359 int EVP_PKEY_id(const EVP_PKEY *pkey); 13360 int EVP_PKEY_base_id(const EVP_PKEY *pkey); 13361 int EVP_PKEY_bits(EVP_PKEY *pkey); 13362 int EVP_PKEY_size(EVP_PKEY *pkey); 13363 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); 13364 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); 13365 int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); 13366 void *EVP_PKEY_get0(EVP_PKEY *pkey); 13367 13368 13369 struct rsa_st; 13370 int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); 13371 struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); 13372 13373 13374 struct dsa_st; 13375 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); 13376 struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); 13377 13378 13379 struct dh_st; 13380 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); 13381 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); 13382 13383 13384 struct ec_key_st; 13385 int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); 13386 struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); 13387 13388 13389 EVP_PKEY *EVP_PKEY_new(void); 13390 void EVP_PKEY_free(EVP_PKEY *pkey); 13391 13392 EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, 13393 long length); 13394 int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); 13395 13396 EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, 13397 long length); 13398 EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, 13399 long length); 13400 int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); 13401 13402 int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); 13403 int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); 13404 int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); 13405 int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); 13406 13407 int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); 13408 13409 int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, 13410 int indent, ASN1_PCTX *pctx); 13411 int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, 13412 int indent, ASN1_PCTX *pctx); 13413 int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, 13414 int indent, ASN1_PCTX *pctx); 13415 13416 int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); 13417 13418 int EVP_CIPHER_type(const EVP_CIPHER *ctx); 13419 13420 /* calls methods */ 13421 int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13422 int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13423 13424 /* These are used by EVP_CIPHER methods */ 13425 int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13426 int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13427 13428 /* PKCS5 password based encryption */ 13429 int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 13430 ASN1_TYPE *param, const EVP_CIPHER *cipher, 13431 const EVP_MD *md, int en_de); 13432 int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, 13433 const unsigned char *salt, int saltlen, int iter, 13434 int keylen, unsigned char *out); 13435 int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, 13436 const unsigned char *salt, int saltlen, int iter, 13437 const EVP_MD *digest, int keylen, unsigned char *out); 13438 int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 13439 ASN1_TYPE *param, const EVP_CIPHER *cipher, 13440 const EVP_MD *md, int en_de); 13441 13442 void PKCS5_PBE_add(void); 13443 13444 int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, 13445 ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); 13446 13447 /* PBE type */ 13448 13449 /* Can appear as the outermost AlgorithmIdentifier */ 13450 13451 /* Is an PRF type OID */ 13452 13453 13454 int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, 13455 int md_nid, EVP_PBE_KEYGEN *keygen); 13456 int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, 13457 EVP_PBE_KEYGEN *keygen); 13458 int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, 13459 EVP_PBE_KEYGEN **pkeygen); 13460 void EVP_PBE_cleanup(void); 13461 # 1064 "/usr/include/openssl/evp.h" 3 4 13462 int EVP_PKEY_asn1_get_count(void); 13463 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); 13464 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); 13465 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, 13466 const char *str, int len); 13467 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); 13468 int EVP_PKEY_asn1_add_alias(int to, int from); 13469 int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, 13470 int *ppkey_flags, const char **pinfo, 13471 const char **ppem_str, 13472 const EVP_PKEY_ASN1_METHOD *ameth); 13473 13474 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); 13475 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, 13476 const char *pem_str, 13477 const char *info); 13478 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, 13479 const EVP_PKEY_ASN1_METHOD *src); 13480 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); 13481 void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, 13482 int (*pub_decode) (EVP_PKEY *pk, 13483 X509_PUBKEY *pub), 13484 int (*pub_encode) (X509_PUBKEY *pub, 13485 const EVP_PKEY *pk), 13486 int (*pub_cmp) (const EVP_PKEY *a, 13487 const EVP_PKEY *b), 13488 int (*pub_print) (BIO *out, 13489 const EVP_PKEY *pkey, 13490 int indent, ASN1_PCTX *pctx), 13491 int (*pkey_size) (const EVP_PKEY *pk), 13492 int (*pkey_bits) (const EVP_PKEY *pk)); 13493 void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, 13494 int (*priv_decode) (EVP_PKEY *pk, 13495 PKCS8_PRIV_KEY_INFO 13496 *p8inf), 13497 int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, 13498 const EVP_PKEY *pk), 13499 int (*priv_print) (BIO *out, 13500 const EVP_PKEY *pkey, 13501 int indent, 13502 ASN1_PCTX *pctx)); 13503 void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, 13504 int (*param_decode) (EVP_PKEY *pkey, 13505 const unsigned char **pder, 13506 int derlen), 13507 int (*param_encode) (const EVP_PKEY *pkey, 13508 unsigned char **pder), 13509 int (*param_missing) (const EVP_PKEY *pk), 13510 int (*param_copy) (EVP_PKEY *to, 13511 const EVP_PKEY *from), 13512 int (*param_cmp) (const EVP_PKEY *a, 13513 const EVP_PKEY *b), 13514 int (*param_print) (BIO *out, 13515 const EVP_PKEY *pkey, 13516 int indent, 13517 ASN1_PCTX *pctx)); 13518 13519 void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, 13520 void (*pkey_free) (EVP_PKEY *pkey)); 13521 void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, 13522 int (*pkey_ctrl) (EVP_PKEY *pkey, int op, 13523 long arg1, void *arg2)); 13524 void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, 13525 int (*item_verify) (EVP_MD_CTX *ctx, 13526 const ASN1_ITEM *it, 13527 void *asn, 13528 X509_ALGOR *a, 13529 ASN1_BIT_STRING *sig, 13530 EVP_PKEY *pkey), 13531 int (*item_sign) (EVP_MD_CTX *ctx, 13532 const ASN1_ITEM *it, 13533 void *asn, 13534 X509_ALGOR *alg1, 13535 X509_ALGOR *alg2, 13536 ASN1_BIT_STRING *sig)); 13537 # 1185 "/usr/include/openssl/evp.h" 3 4 13538 /* Used by GOST key encryption in TLS */ 13539 # 1199 "/usr/include/openssl/evp.h" 3 4 13540 /* 13541 * Method handles all operations: don't assume any digest related defaults. 13542 */ 13543 13544 13545 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); 13546 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); 13547 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, 13548 const EVP_PKEY_METHOD *meth); 13549 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); 13550 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); 13551 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); 13552 13553 EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); 13554 EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); 13555 EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); 13556 void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); 13557 13558 int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, 13559 int cmd, int p1, void *p2); 13560 int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, 13561 const char *value); 13562 13563 int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); 13564 void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); 13565 13566 EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, 13567 const unsigned char *key, int keylen); 13568 13569 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); 13570 void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); 13571 EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); 13572 13573 EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); 13574 13575 void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); 13576 void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); 13577 13578 int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); 13579 int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, 13580 unsigned char *sig, size_t *siglen, 13581 const unsigned char *tbs, size_t tbslen); 13582 int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); 13583 int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, 13584 const unsigned char *sig, size_t siglen, 13585 const unsigned char *tbs, size_t tbslen); 13586 int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); 13587 int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, 13588 unsigned char *rout, size_t *routlen, 13589 const unsigned char *sig, size_t siglen); 13590 int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); 13591 int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, 13592 unsigned char *out, size_t *outlen, 13593 const unsigned char *in, size_t inlen); 13594 int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); 13595 int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, 13596 unsigned char *out, size_t *outlen, 13597 const unsigned char *in, size_t inlen); 13598 13599 int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); 13600 int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); 13601 int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); 13602 13603 typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); 13604 13605 int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); 13606 int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 13607 int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); 13608 int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 13609 13610 void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); 13611 EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); 13612 13613 int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); 13614 13615 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, 13616 int (*init) (EVP_PKEY_CTX *ctx)); 13617 13618 void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, 13619 int (*copy) (EVP_PKEY_CTX *dst, 13620 EVP_PKEY_CTX *src)); 13621 13622 void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, 13623 void (*cleanup) (EVP_PKEY_CTX *ctx)); 13624 13625 void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, 13626 int (*paramgen_init) (EVP_PKEY_CTX *ctx), 13627 int (*paramgen) (EVP_PKEY_CTX *ctx, 13628 EVP_PKEY *pkey)); 13629 13630 void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, 13631 int (*keygen_init) (EVP_PKEY_CTX *ctx), 13632 int (*keygen) (EVP_PKEY_CTX *ctx, 13633 EVP_PKEY *pkey)); 13634 13635 void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, 13636 int (*sign_init) (EVP_PKEY_CTX *ctx), 13637 int (*sign) (EVP_PKEY_CTX *ctx, 13638 unsigned char *sig, size_t *siglen, 13639 const unsigned char *tbs, 13640 size_t tbslen)); 13641 13642 void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, 13643 int (*verify_init) (EVP_PKEY_CTX *ctx), 13644 int (*verify) (EVP_PKEY_CTX *ctx, 13645 const unsigned char *sig, 13646 size_t siglen, 13647 const unsigned char *tbs, 13648 size_t tbslen)); 13649 13650 void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, 13651 int (*verify_recover_init) (EVP_PKEY_CTX 13652 *ctx), 13653 int (*verify_recover) (EVP_PKEY_CTX 13654 *ctx, 13655 unsigned char 13656 *sig, 13657 size_t *siglen, 13658 const unsigned 13659 char *tbs, 13660 size_t tbslen)); 13661 13662 void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, 13663 int (*signctx_init) (EVP_PKEY_CTX *ctx, 13664 EVP_MD_CTX *mctx), 13665 int (*signctx) (EVP_PKEY_CTX *ctx, 13666 unsigned char *sig, 13667 size_t *siglen, 13668 EVP_MD_CTX *mctx)); 13669 13670 void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, 13671 int (*verifyctx_init) (EVP_PKEY_CTX *ctx, 13672 EVP_MD_CTX *mctx), 13673 int (*verifyctx) (EVP_PKEY_CTX *ctx, 13674 const unsigned char *sig, 13675 int siglen, 13676 EVP_MD_CTX *mctx)); 13677 13678 void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, 13679 int (*encrypt_init) (EVP_PKEY_CTX *ctx), 13680 int (*encryptfn) (EVP_PKEY_CTX *ctx, 13681 unsigned char *out, 13682 size_t *outlen, 13683 const unsigned char *in, 13684 size_t inlen)); 13685 13686 void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, 13687 int (*decrypt_init) (EVP_PKEY_CTX *ctx), 13688 int (*decrypt) (EVP_PKEY_CTX *ctx, 13689 unsigned char *out, 13690 size_t *outlen, 13691 const unsigned char *in, 13692 size_t inlen)); 13693 13694 void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, 13695 int (*derive_init) (EVP_PKEY_CTX *ctx), 13696 int (*derive) (EVP_PKEY_CTX *ctx, 13697 unsigned char *key, 13698 size_t *keylen)); 13699 13700 void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, 13701 int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 13702 void *p2), 13703 int (*ctrl_str) (EVP_PKEY_CTX *ctx, 13704 const char *type, 13705 const char *value)); 13706 13707 void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, 13708 int (**pinit) (EVP_PKEY_CTX *ctx)); 13709 13710 void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, 13711 int (**pcopy) (EVP_PKEY_CTX *dst, 13712 EVP_PKEY_CTX *src)); 13713 13714 void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, 13715 void (**pcleanup) (EVP_PKEY_CTX *ctx)); 13716 13717 void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, 13718 int (**pparamgen_init) (EVP_PKEY_CTX *ctx), 13719 int (**pparamgen) (EVP_PKEY_CTX *ctx, 13720 EVP_PKEY *pkey)); 13721 13722 void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, 13723 int (**pkeygen_init) (EVP_PKEY_CTX *ctx), 13724 int (**pkeygen) (EVP_PKEY_CTX *ctx, 13725 EVP_PKEY *pkey)); 13726 13727 void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, 13728 int (**psign_init) (EVP_PKEY_CTX *ctx), 13729 int (**psign) (EVP_PKEY_CTX *ctx, 13730 unsigned char *sig, size_t *siglen, 13731 const unsigned char *tbs, 13732 size_t tbslen)); 13733 13734 void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, 13735 int (**pverify_init) (EVP_PKEY_CTX *ctx), 13736 int (**pverify) (EVP_PKEY_CTX *ctx, 13737 const unsigned char *sig, 13738 size_t siglen, 13739 const unsigned char *tbs, 13740 size_t tbslen)); 13741 13742 void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, 13743 int (**pverify_recover_init) (EVP_PKEY_CTX 13744 *ctx), 13745 int (**pverify_recover) (EVP_PKEY_CTX 13746 *ctx, 13747 unsigned char 13748 *sig, 13749 size_t *siglen, 13750 const unsigned 13751 char *tbs, 13752 size_t tbslen)); 13753 13754 void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, 13755 int (**psignctx_init) (EVP_PKEY_CTX *ctx, 13756 EVP_MD_CTX *mctx), 13757 int (**psignctx) (EVP_PKEY_CTX *ctx, 13758 unsigned char *sig, 13759 size_t *siglen, 13760 EVP_MD_CTX *mctx)); 13761 13762 void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, 13763 int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, 13764 EVP_MD_CTX *mctx), 13765 int (**pverifyctx) (EVP_PKEY_CTX *ctx, 13766 const unsigned char *sig, 13767 int siglen, 13768 EVP_MD_CTX *mctx)); 13769 13770 void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, 13771 int (**pencrypt_init) (EVP_PKEY_CTX *ctx), 13772 int (**pencryptfn) (EVP_PKEY_CTX *ctx, 13773 unsigned char *out, 13774 size_t *outlen, 13775 const unsigned char *in, 13776 size_t inlen)); 13777 13778 void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, 13779 int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), 13780 int (**pdecrypt) (EVP_PKEY_CTX *ctx, 13781 unsigned char *out, 13782 size_t *outlen, 13783 const unsigned char *in, 13784 size_t inlen)); 13785 13786 void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, 13787 int (**pderive_init) (EVP_PKEY_CTX *ctx), 13788 int (**pderive) (EVP_PKEY_CTX *ctx, 13789 unsigned char *key, 13790 size_t *keylen)); 13791 13792 void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, 13793 int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 13794 void *p2), 13795 int (**pctrl_str) (EVP_PKEY_CTX *ctx, 13796 const char *type, 13797 const char *value)); 13798 13799 void EVP_add_alg_module(void); 13800 13801 /* BEGIN ERROR CODES */ 13802 /* 13803 * The following lines are auto generated by the script mkerr.pl. Any changes 13804 * made after this point may be overwritten when the script is next run. 13805 */ 13806 13807 void ERR_load_EVP_strings(void); 13808 13809 /* Error codes for the EVP functions. */ 13810 13811 /* Function codes. */ 13812 # 1554 "/usr/include/openssl/evp.h" 3 4 13813 /* Reason codes. */ 13814 # 74 "/usr/include/openssl/x509.h" 2 3 4 13815 13816 13817 # 1 "/usr/include/openssl/bio.h" 1 3 4 13818 /* crypto/bio/bio.h */ 13819 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13820 * All rights reserved. 13821 * 13822 * This package is an SSL implementation written 13823 * by Eric Young (eay@cryptsoft.com). 13824 * The implementation was written so as to conform with Netscapes SSL. 13825 * 13826 * This library is free for commercial and non-commercial use as long as 13827 * the following conditions are aheared to. The following conditions 13828 * apply to all code found in this distribution, be it the RC4, RSA, 13829 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13830 * included with this distribution is covered by the same copyright terms 13831 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13832 * 13833 * Copyright remains Eric Young's, and as such any Copyright notices in 13834 * the code are not to be removed. 13835 * If this package is used in a product, Eric Young should be given attribution 13836 * as the author of the parts of the library used. 13837 * This can be in the form of a textual message at program startup or 13838 * in documentation (online or textual) provided with the package. 13839 * 13840 * Redistribution and use in source and binary forms, with or without 13841 * modification, are permitted provided that the following conditions 13842 * are met: 13843 * 1. Redistributions of source code must retain the copyright 13844 * notice, this list of conditions and the following disclaimer. 13845 * 2. Redistributions in binary form must reproduce the above copyright 13846 * notice, this list of conditions and the following disclaimer in the 13847 * documentation and/or other materials provided with the distribution. 13848 * 3. All advertising materials mentioning features or use of this software 13849 * must display the following acknowledgement: 13850 * "This product includes cryptographic software written by 13851 * Eric Young (eay@cryptsoft.com)" 13852 * The word 'cryptographic' can be left out if the rouines from the library 13853 * being used are not cryptographic related :-). 13854 * 4. If you include any Windows specific code (or a derivative thereof) from 13855 * the apps directory (application code) you must include an acknowledgement: 13856 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13857 * 13858 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13859 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13860 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13861 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13862 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13863 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13864 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13865 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13866 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13867 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13868 * SUCH DAMAGE. 13869 * 13870 * The licence and distribution terms for any publically available version or 13871 * derivative of this code cannot be changed. i.e. this code cannot simply be 13872 * copied and put under another distribution licence 13873 * [including the GNU Public Licence.] 13874 */ 13875 # 77 "/usr/include/openssl/x509.h" 2 3 4 13876 13877 # 1 "/usr/include/openssl/stack.h" 1 3 4 13878 /* crypto/stack/stack.h */ 13879 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13880 * All rights reserved. 13881 * 13882 * This package is an SSL implementation written 13883 * by Eric Young (eay@cryptsoft.com). 13884 * The implementation was written so as to conform with Netscapes SSL. 13885 * 13886 * This library is free for commercial and non-commercial use as long as 13887 * the following conditions are aheared to. The following conditions 13888 * apply to all code found in this distribution, be it the RC4, RSA, 13889 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13890 * included with this distribution is covered by the same copyright terms 13891 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13892 * 13893 * Copyright remains Eric Young's, and as such any Copyright notices in 13894 * the code are not to be removed. 13895 * If this package is used in a product, Eric Young should be given attribution 13896 * as the author of the parts of the library used. 13897 * This can be in the form of a textual message at program startup or 13898 * in documentation (online or textual) provided with the package. 13899 * 13900 * Redistribution and use in source and binary forms, with or without 13901 * modification, are permitted provided that the following conditions 13902 * are met: 13903 * 1. Redistributions of source code must retain the copyright 13904 * notice, this list of conditions and the following disclaimer. 13905 * 2. Redistributions in binary form must reproduce the above copyright 13906 * notice, this list of conditions and the following disclaimer in the 13907 * documentation and/or other materials provided with the distribution. 13908 * 3. All advertising materials mentioning features or use of this software 13909 * must display the following acknowledgement: 13910 * "This product includes cryptographic software written by 13911 * Eric Young (eay@cryptsoft.com)" 13912 * The word 'cryptographic' can be left out if the rouines from the library 13913 * being used are not cryptographic related :-). 13914 * 4. If you include any Windows specific code (or a derivative thereof) from 13915 * the apps directory (application code) you must include an acknowledgement: 13916 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13917 * 13918 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13919 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13920 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13921 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13922 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13923 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13924 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13925 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13926 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13927 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13928 * SUCH DAMAGE. 13929 * 13930 * The licence and distribution terms for any publically available version or 13931 * derivative of this code cannot be changed. i.e. this code cannot simply be 13932 * copied and put under another distribution licence 13933 * [including the GNU Public Licence.] 13934 */ 13935 # 79 "/usr/include/openssl/x509.h" 2 3 4 13936 # 1 "/usr/include/openssl/asn1.h" 1 3 4 13937 /* crypto/asn1/asn1.h */ 13938 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13939 * All rights reserved. 13940 * 13941 * This package is an SSL implementation written 13942 * by Eric Young (eay@cryptsoft.com). 13943 * The implementation was written so as to conform with Netscapes SSL. 13944 * 13945 * This library is free for commercial and non-commercial use as long as 13946 * the following conditions are aheared to. The following conditions 13947 * apply to all code found in this distribution, be it the RC4, RSA, 13948 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13949 * included with this distribution is covered by the same copyright terms 13950 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13951 * 13952 * Copyright remains Eric Young's, and as such any Copyright notices in 13953 * the code are not to be removed. 13954 * If this package is used in a product, Eric Young should be given attribution 13955 * as the author of the parts of the library used. 13956 * This can be in the form of a textual message at program startup or 13957 * in documentation (online or textual) provided with the package. 13958 * 13959 * Redistribution and use in source and binary forms, with or without 13960 * modification, are permitted provided that the following conditions 13961 * are met: 13962 * 1. Redistributions of source code must retain the copyright 13963 * notice, this list of conditions and the following disclaimer. 13964 * 2. Redistributions in binary form must reproduce the above copyright 13965 * notice, this list of conditions and the following disclaimer in the 13966 * documentation and/or other materials provided with the distribution. 13967 * 3. All advertising materials mentioning features or use of this software 13968 * must display the following acknowledgement: 13969 * "This product includes cryptographic software written by 13970 * Eric Young (eay@cryptsoft.com)" 13971 * The word 'cryptographic' can be left out if the rouines from the library 13972 * being used are not cryptographic related :-). 13973 * 4. If you include any Windows specific code (or a derivative thereof) from 13974 * the apps directory (application code) you must include an acknowledgement: 13975 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13976 * 13977 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13978 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13979 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13980 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13981 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13982 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13983 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13984 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13985 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13986 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13987 * SUCH DAMAGE. 13988 * 13989 * The licence and distribution terms for any publically available version or 13990 * derivative of this code cannot be changed. i.e. this code cannot simply be 13991 * copied and put under another distribution licence 13992 * [including the GNU Public Licence.] 13993 */ 13994 # 80 "/usr/include/openssl/x509.h" 2 3 4 13995 # 1 "/usr/include/openssl/safestack.h" 1 3 4 13996 /* ==================================================================== 13997 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 13998 * 13999 * Redistribution and use in source and binary forms, with or without 14000 * modification, are permitted provided that the following conditions 14001 * are met: 14002 * 14003 * 1. Redistributions of source code must retain the above copyright 14004 * notice, this list of conditions and the following disclaimer. 14005 * 14006 * 2. Redistributions in binary form must reproduce the above copyright 14007 * notice, this list of conditions and the following disclaimer in 14008 * the documentation and/or other materials provided with the 14009 * distribution. 14010 * 14011 * 3. All advertising materials mentioning features or use of this 14012 * software must display the following acknowledgment: 14013 * "This product includes software developed by the OpenSSL Project 14014 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14015 * 14016 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14017 * endorse or promote products derived from this software without 14018 * prior written permission. For written permission, please contact 14019 * openssl-core@openssl.org. 14020 * 14021 * 5. Products derived from this software may not be called "OpenSSL" 14022 * nor may "OpenSSL" appear in their names without prior written 14023 * permission of the OpenSSL Project. 14024 * 14025 * 6. Redistributions of any form whatsoever must retain the following 14026 * acknowledgment: 14027 * "This product includes software developed by the OpenSSL Project 14028 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14029 * 14030 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14031 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14032 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14033 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14034 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14035 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14036 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14037 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14038 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14039 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14040 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14041 * OF THE POSSIBILITY OF SUCH DAMAGE. 14042 * ==================================================================== 14043 * 14044 * This product includes cryptographic software written by Eric Young 14045 * (eay@cryptsoft.com). This product includes software written by Tim 14046 * Hudson (tjh@cryptsoft.com). 14047 * 14048 */ 14049 # 81 "/usr/include/openssl/x509.h" 2 3 4 14050 14051 14052 # 1 "/usr/include/openssl/ec.h" 1 3 4 14053 /* crypto/ec/ec.h */ 14054 /* 14055 * Originally written by Bodo Moeller for the OpenSSL project. 14056 */ 14057 /** 14058 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 14059 * \author Originally written by Bodo Moeller for the OpenSSL project 14060 */ 14061 /* ==================================================================== 14062 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 14063 * 14064 * Redistribution and use in source and binary forms, with or without 14065 * modification, are permitted provided that the following conditions 14066 * are met: 14067 * 14068 * 1. Redistributions of source code must retain the above copyright 14069 * notice, this list of conditions and the following disclaimer. 14070 * 14071 * 2. Redistributions in binary form must reproduce the above copyright 14072 * notice, this list of conditions and the following disclaimer in 14073 * the documentation and/or other materials provided with the 14074 * distribution. 14075 * 14076 * 3. All advertising materials mentioning features or use of this 14077 * software must display the following acknowledgment: 14078 * "This product includes software developed by the OpenSSL Project 14079 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14080 * 14081 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14082 * endorse or promote products derived from this software without 14083 * prior written permission. For written permission, please contact 14084 * openssl-core@openssl.org. 14085 * 14086 * 5. Products derived from this software may not be called "OpenSSL" 14087 * nor may "OpenSSL" appear in their names without prior written 14088 * permission of the OpenSSL Project. 14089 * 14090 * 6. Redistributions of any form whatsoever must retain the following 14091 * acknowledgment: 14092 * "This product includes software developed by the OpenSSL Project 14093 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14094 * 14095 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14096 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14097 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14098 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14099 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14100 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14101 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14102 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14103 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14104 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14105 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14106 * OF THE POSSIBILITY OF SUCH DAMAGE. 14107 * ==================================================================== 14108 * 14109 * This product includes cryptographic software written by Eric Young 14110 * (eay@cryptsoft.com). This product includes software written by Tim 14111 * Hudson (tjh@cryptsoft.com). 14112 * 14113 */ 14114 /* ==================================================================== 14115 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 14116 * 14117 * Portions of the attached software ("Contribution") are developed by 14118 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 14119 * 14120 * The Contribution is licensed pursuant to the OpenSSL open source 14121 * license provided above. 14122 * 14123 * The elliptic curve binary polynomial software is originally written by 14124 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 14125 * 14126 */ 14127 14128 14129 14130 14131 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 14132 /* opensslconf.h */ 14133 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 14134 14135 14136 14137 14138 /* OpenSSL was configured with the following options: */ 14139 # 108 "/usr/include/openssl/opensslconf.h" 3 4 14140 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 14141 asks for it. This is a transient feature that is provided for those 14142 who haven't had the time to do the appropriate changes in their 14143 applications. */ 14144 # 204 "/usr/include/openssl/opensslconf.h" 3 4 14145 /* crypto/opensslconf.h.in */ 14146 14147 /* Generate 80386 code? */ 14148 # 80 "/usr/include/openssl/ec.h" 2 3 4 14149 14150 14151 14152 14153 14154 # 1 "/usr/include/openssl/asn1.h" 1 3 4 14155 /* crypto/asn1/asn1.h */ 14156 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 14157 * All rights reserved. 14158 * 14159 * This package is an SSL implementation written 14160 * by Eric Young (eay@cryptsoft.com). 14161 * The implementation was written so as to conform with Netscapes SSL. 14162 * 14163 * This library is free for commercial and non-commercial use as long as 14164 * the following conditions are aheared to. The following conditions 14165 * apply to all code found in this distribution, be it the RC4, RSA, 14166 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 14167 * included with this distribution is covered by the same copyright terms 14168 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14169 * 14170 * Copyright remains Eric Young's, and as such any Copyright notices in 14171 * the code are not to be removed. 14172 * If this package is used in a product, Eric Young should be given attribution 14173 * as the author of the parts of the library used. 14174 * This can be in the form of a textual message at program startup or 14175 * in documentation (online or textual) provided with the package. 14176 * 14177 * Redistribution and use in source and binary forms, with or without 14178 * modification, are permitted provided that the following conditions 14179 * are met: 14180 * 1. Redistributions of source code must retain the copyright 14181 * notice, this list of conditions and the following disclaimer. 14182 * 2. Redistributions in binary form must reproduce the above copyright 14183 * notice, this list of conditions and the following disclaimer in the 14184 * documentation and/or other materials provided with the distribution. 14185 * 3. All advertising materials mentioning features or use of this software 14186 * must display the following acknowledgement: 14187 * "This product includes cryptographic software written by 14188 * Eric Young (eay@cryptsoft.com)" 14189 * The word 'cryptographic' can be left out if the rouines from the library 14190 * being used are not cryptographic related :-). 14191 * 4. If you include any Windows specific code (or a derivative thereof) from 14192 * the apps directory (application code) you must include an acknowledgement: 14193 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 14194 * 14195 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 14196 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14197 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 14198 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 14199 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 14200 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 14201 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14202 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 14203 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 14204 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 14205 * SUCH DAMAGE. 14206 * 14207 * The licence and distribution terms for any publically available version or 14208 * derivative of this code cannot be changed. i.e. this code cannot simply be 14209 * copied and put under another distribution licence 14210 * [including the GNU Public Licence.] 14211 */ 14212 # 86 "/usr/include/openssl/ec.h" 2 3 4 14213 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 14214 /* ==================================================================== 14215 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 14216 * 14217 * Redistribution and use in source and binary forms, with or without 14218 * modification, are permitted provided that the following conditions 14219 * are met: 14220 * 14221 * 1. Redistributions of source code must retain the above copyright 14222 * notice, this list of conditions and the following disclaimer. 14223 * 14224 * 2. Redistributions in binary form must reproduce the above copyright 14225 * notice, this list of conditions and the following disclaimer in 14226 * the documentation and/or other materials provided with the 14227 * distribution. 14228 * 14229 * 3. All advertising materials mentioning features or use of this 14230 * software must display the following acknowledgment: 14231 * "This product includes software developed by the OpenSSL Project 14232 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14233 * 14234 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14235 * endorse or promote products derived from this software without 14236 * prior written permission. For written permission, please contact 14237 * openssl-core@openssl.org. 14238 * 14239 * 5. Products derived from this software may not be called "OpenSSL" 14240 * nor may "OpenSSL" appear in their names without prior written 14241 * permission of the OpenSSL Project. 14242 * 14243 * 6. Redistributions of any form whatsoever must retain the following 14244 * acknowledgment: 14245 * "This product includes software developed by the OpenSSL Project 14246 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14247 * 14248 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14249 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14250 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14251 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14252 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14253 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14254 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14255 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14256 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14257 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14258 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14259 * OF THE POSSIBILITY OF SUCH DAMAGE. 14260 * ==================================================================== 14261 * 14262 * This product includes cryptographic software written by Eric Young 14263 * (eay@cryptsoft.com). This product includes software written by Tim 14264 * Hudson (tjh@cryptsoft.com). 14265 * 14266 */ 14267 # 87 "/usr/include/openssl/ec.h" 2 3 4 14268 14269 # 1 "/usr/include/openssl/bn.h" 1 3 4 14270 /* crypto/bn/bn.h */ 14271 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 14272 * All rights reserved. 14273 * 14274 * This package is an SSL implementation written 14275 * by Eric Young (eay@cryptsoft.com). 14276 * The implementation was written so as to conform with Netscapes SSL. 14277 * 14278 * This library is free for commercial and non-commercial use as long as 14279 * the following conditions are aheared to. The following conditions 14280 * apply to all code found in this distribution, be it the RC4, RSA, 14281 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 14282 * included with this distribution is covered by the same copyright terms 14283 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14284 * 14285 * Copyright remains Eric Young's, and as such any Copyright notices in 14286 * the code are not to be removed. 14287 * If this package is used in a product, Eric Young should be given attribution 14288 * as the author of the parts of the library used. 14289 * This can be in the form of a textual message at program startup or 14290 * in documentation (online or textual) provided with the package. 14291 * 14292 * Redistribution and use in source and binary forms, with or without 14293 * modification, are permitted provided that the following conditions 14294 * are met: 14295 * 1. Redistributions of source code must retain the copyright 14296 * notice, this list of conditions and the following disclaimer. 14297 * 2. Redistributions in binary form must reproduce the above copyright 14298 * notice, this list of conditions and the following disclaimer in the 14299 * documentation and/or other materials provided with the distribution. 14300 * 3. All advertising materials mentioning features or use of this software 14301 * must display the following acknowledgement: 14302 * "This product includes cryptographic software written by 14303 * Eric Young (eay@cryptsoft.com)" 14304 * The word 'cryptographic' can be left out if the rouines from the library 14305 * being used are not cryptographic related :-). 14306 * 4. If you include any Windows specific code (or a derivative thereof) from 14307 * the apps directory (application code) you must include an acknowledgement: 14308 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 14309 * 14310 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 14311 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14312 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 14313 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 14314 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 14315 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 14316 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14317 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 14318 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 14319 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 14320 * SUCH DAMAGE. 14321 * 14322 * The licence and distribution terms for any publically available version or 14323 * derivative of this code cannot be changed. i.e. this code cannot simply be 14324 * copied and put under another distribution licence 14325 * [including the GNU Public Licence.] 14326 */ 14327 /* ==================================================================== 14328 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 14329 * 14330 * Redistribution and use in source and binary forms, with or without 14331 * modification, are permitted provided that the following conditions 14332 * are met: 14333 * 14334 * 1. Redistributions of source code must retain the above copyright 14335 * notice, this list of conditions and the following disclaimer. 14336 * 14337 * 2. Redistributions in binary form must reproduce the above copyright 14338 * notice, this list of conditions and the following disclaimer in 14339 * the documentation and/or other materials provided with the 14340 * distribution. 14341 * 14342 * 3. All advertising materials mentioning features or use of this 14343 * software must display the following acknowledgment: 14344 * "This product includes software developed by the OpenSSL Project 14345 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14346 * 14347 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14348 * endorse or promote products derived from this software without 14349 * prior written permission. For written permission, please contact 14350 * openssl-core@openssl.org. 14351 * 14352 * 5. Products derived from this software may not be called "OpenSSL" 14353 * nor may "OpenSSL" appear in their names without prior written 14354 * permission of the OpenSSL Project. 14355 * 14356 * 6. Redistributions of any form whatsoever must retain the following 14357 * acknowledgment: 14358 * "This product includes software developed by the OpenSSL Project 14359 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14360 * 14361 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14362 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14363 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14364 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14365 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14366 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14367 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14368 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14369 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14370 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14371 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14372 * OF THE POSSIBILITY OF SUCH DAMAGE. 14373 * ==================================================================== 14374 * 14375 * This product includes cryptographic software written by Eric Young 14376 * (eay@cryptsoft.com). This product includes software written by Tim 14377 * Hudson (tjh@cryptsoft.com). 14378 * 14379 */ 14380 /* ==================================================================== 14381 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 14382 * 14383 * Portions of the attached software ("Contribution") are developed by 14384 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 14385 * 14386 * The Contribution is licensed pursuant to the Eric Young open source 14387 * license provided above. 14388 * 14389 * The binary polynomial arithmetic software is originally written by 14390 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 14391 * 14392 */ 14393 # 89 "/usr/include/openssl/ec.h" 2 3 4 14394 # 103 "/usr/include/openssl/ec.h" 3 4 14395 /** Enum for the point conversion form as defined in X9.62 (ECDSA) 14396 * for the encoding of a elliptic curve point (x,y) */ 14397 typedef enum { 14398 /** the point is encoded as z||x, where the octet z specifies 14399 * which solution of the quadratic equation y is */ 14400 POINT_CONVERSION_COMPRESSED = 2, 14401 /** the point is encoded as z||x||y, where z is the octet 0x04 */ 14402 POINT_CONVERSION_UNCOMPRESSED = 4, 14403 /** the point is encoded as z||x||y, where the octet z specifies 14404 * which solution of the quadratic equation y is */ 14405 POINT_CONVERSION_HYBRID = 6 14406 } point_conversion_form_t; 14407 14408 typedef struct ec_method_st EC_METHOD; 14409 14410 typedef struct ec_group_st 14411 /*- 14412 EC_METHOD *meth; 14413 -- field definition 14414 -- curve coefficients 14415 -- optional generator with associated information (order, cofactor) 14416 -- optional extra data (precomputed table for fast computation of multiples of generator) 14417 -- ASN1 stuff 14418 */ 14419 EC_GROUP; 14420 14421 typedef struct ec_point_st EC_POINT; 14422 14423 /********************************************************************/ 14424 /* EC_METHODs for curves over GF(p) */ 14425 /********************************************************************/ 14426 14427 /** Returns the basic GFp ec methods which provides the basis for the 14428 * optimized methods. 14429 * \return EC_METHOD object 14430 */ 14431 const EC_METHOD *EC_GFp_simple_method(void); 14432 14433 /** Returns GFp methods using montgomery multiplication. 14434 * \return EC_METHOD object 14435 */ 14436 const EC_METHOD *EC_GFp_mont_method(void); 14437 14438 /** Returns GFp methods using optimized methods for NIST recommended curves 14439 * \return EC_METHOD object 14440 */ 14441 const EC_METHOD *EC_GFp_nist_method(void); 14442 # 169 "/usr/include/openssl/ec.h" 3 4 14443 /********************************************************************/ 14444 /* EC_METHOD for curves over GF(2^m) */ 14445 /********************************************************************/ 14446 14447 /** Returns the basic GF2m ec method 14448 * \return EC_METHOD object 14449 */ 14450 const EC_METHOD *EC_GF2m_simple_method(void); 14451 14452 14453 14454 /********************************************************************/ 14455 /* EC_GROUP functions */ 14456 /********************************************************************/ 14457 14458 /** Creates a new EC_GROUP object 14459 * \param meth EC_METHOD to use 14460 * \return newly created EC_GROUP object or NULL in case of an error. 14461 */ 14462 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); 14463 14464 /** Frees a EC_GROUP object 14465 * \param group EC_GROUP object to be freed. 14466 */ 14467 void EC_GROUP_free(EC_GROUP *group); 14468 14469 /** Clears and frees a EC_GROUP object 14470 * \param group EC_GROUP object to be cleared and freed. 14471 */ 14472 void EC_GROUP_clear_free(EC_GROUP *group); 14473 14474 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. 14475 * \param dst destination EC_GROUP object 14476 * \param src source EC_GROUP object 14477 * \return 1 on success and 0 if an error occurred. 14478 */ 14479 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); 14480 14481 /** Creates a new EC_GROUP object and copies the copies the content 14482 * form src to the newly created EC_KEY object 14483 * \param src source EC_GROUP object 14484 * \return newly created EC_GROUP object or NULL in case of an error. 14485 */ 14486 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); 14487 14488 /** Returns the EC_METHOD of the EC_GROUP object. 14489 * \param group EC_GROUP object 14490 * \return EC_METHOD used in this EC_GROUP object. 14491 */ 14492 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); 14493 14494 /** Returns the field type of the EC_METHOD. 14495 * \param meth EC_METHOD object 14496 * \return NID of the underlying field type OID. 14497 */ 14498 int EC_METHOD_get_field_type(const EC_METHOD *meth); 14499 14500 /** Sets the generator and it's order/cofactor of a EC_GROUP object. 14501 * \param group EC_GROUP object 14502 * \param generator EC_POINT object with the generator. 14503 * \param order the order of the group generated by the generator. 14504 * \param cofactor the index of the sub-group generated by the generator 14505 * in the group of all points on the elliptic curve. 14506 * \return 1 on success and 0 if an error occured 14507 */ 14508 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, 14509 const BIGNUM *order, const BIGNUM *cofactor); 14510 14511 /** Returns the generator of a EC_GROUP object. 14512 * \param group EC_GROUP object 14513 * \return the currently used generator (possibly NULL). 14514 */ 14515 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); 14516 14517 /** Returns the montgomery data for order(Generator) 14518 * \param group EC_GROUP object 14519 * \return the currently used generator (possibly NULL). 14520 */ 14521 BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); 14522 14523 /** Gets the order of a EC_GROUP 14524 * \param group EC_GROUP object 14525 * \param order BIGNUM to which the order is copied 14526 * \param ctx BN_CTX object (optional) 14527 * \return 1 on success and 0 if an error occured 14528 */ 14529 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); 14530 14531 /** Gets the cofactor of a EC_GROUP 14532 * \param group EC_GROUP object 14533 * \param cofactor BIGNUM to which the cofactor is copied 14534 * \param ctx BN_CTX object (optional) 14535 * \return 1 on success and 0 if an error occured 14536 */ 14537 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, 14538 BN_CTX *ctx); 14539 14540 /** Sets the name of a EC_GROUP object 14541 * \param group EC_GROUP object 14542 * \param nid NID of the curve name OID 14543 */ 14544 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); 14545 14546 /** Returns the curve name of a EC_GROUP object 14547 * \param group EC_GROUP object 14548 * \return NID of the curve name OID or 0 if not set. 14549 */ 14550 int EC_GROUP_get_curve_name(const EC_GROUP *group); 14551 14552 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); 14553 int EC_GROUP_get_asn1_flag(const EC_GROUP *group); 14554 14555 void EC_GROUP_set_point_conversion_form(EC_GROUP *group, 14556 point_conversion_form_t form); 14557 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); 14558 14559 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); 14560 size_t EC_GROUP_get_seed_len(const EC_GROUP *); 14561 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); 14562 14563 /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b 14564 * \param group EC_GROUP object 14565 * \param p BIGNUM with the prime number 14566 * \param a BIGNUM with parameter a of the equation 14567 * \param b BIGNUM with parameter b of the equation 14568 * \param ctx BN_CTX object (optional) 14569 * \return 1 on success and 0 if an error occured 14570 */ 14571 int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 14572 const BIGNUM *b, BN_CTX *ctx); 14573 14574 /** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b 14575 * \param group EC_GROUP object 14576 * \param p BIGNUM for the prime number 14577 * \param a BIGNUM for parameter a of the equation 14578 * \param b BIGNUM for parameter b of the equation 14579 * \param ctx BN_CTX object (optional) 14580 * \return 1 on success and 0 if an error occured 14581 */ 14582 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 14583 BIGNUM *b, BN_CTX *ctx); 14584 14585 14586 /** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 14587 * \param group EC_GROUP object 14588 * \param p BIGNUM with the polynomial defining the underlying field 14589 * \param a BIGNUM with parameter a of the equation 14590 * \param b BIGNUM with parameter b of the equation 14591 * \param ctx BN_CTX object (optional) 14592 * \return 1 on success and 0 if an error occured 14593 */ 14594 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 14595 const BIGNUM *b, BN_CTX *ctx); 14596 14597 /** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 14598 * \param group EC_GROUP object 14599 * \param p BIGNUM for the polynomial defining the underlying field 14600 * \param a BIGNUM for parameter a of the equation 14601 * \param b BIGNUM for parameter b of the equation 14602 * \param ctx BN_CTX object (optional) 14603 * \return 1 on success and 0 if an error occured 14604 */ 14605 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 14606 BIGNUM *b, BN_CTX *ctx); 14607 14608 /** Returns the number of bits needed to represent a field element 14609 * \param group EC_GROUP object 14610 * \return number of bits needed to represent a field element 14611 */ 14612 int EC_GROUP_get_degree(const EC_GROUP *group); 14613 14614 /** Checks whether the parameter in the EC_GROUP define a valid ec group 14615 * \param group EC_GROUP object 14616 * \param ctx BN_CTX object (optional) 14617 * \return 1 if group is a valid ec group and 0 otherwise 14618 */ 14619 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); 14620 14621 /** Checks whether the discriminant of the elliptic curve is zero or not 14622 * \param group EC_GROUP object 14623 * \param ctx BN_CTX object (optional) 14624 * \return 1 if the discriminant is not zero and 0 otherwise 14625 */ 14626 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); 14627 14628 /** Compares two EC_GROUP objects 14629 * \param a first EC_GROUP object 14630 * \param b second EC_GROUP object 14631 * \param ctx BN_CTX object (optional) 14632 * \return 0 if both groups are equal and 1 otherwise 14633 */ 14634 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); 14635 14636 /* 14637 * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after 14638 * choosing an appropriate EC_METHOD 14639 */ 14640 14641 /** Creates a new EC_GROUP object with the specified parameters defined 14642 * over GFp (defined by the equation y^2 = x^3 + a*x + b) 14643 * \param p BIGNUM with the prime number 14644 * \param a BIGNUM with the parameter a of the equation 14645 * \param b BIGNUM with the parameter b of the equation 14646 * \param ctx BN_CTX object (optional) 14647 * \return newly created EC_GROUP object with the specified parameters 14648 */ 14649 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, 14650 const BIGNUM *b, BN_CTX *ctx); 14651 14652 /** Creates a new EC_GROUP object with the specified parameters defined 14653 * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) 14654 * \param p BIGNUM with the polynomial defining the underlying field 14655 * \param a BIGNUM with the parameter a of the equation 14656 * \param b BIGNUM with the parameter b of the equation 14657 * \param ctx BN_CTX object (optional) 14658 * \return newly created EC_GROUP object with the specified parameters 14659 */ 14660 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, 14661 const BIGNUM *b, BN_CTX *ctx); 14662 14663 /** Creates a EC_GROUP object with a curve specified by a NID 14664 * \param nid NID of the OID of the curve name 14665 * \return newly created EC_GROUP object with specified curve or NULL 14666 * if an error occurred 14667 */ 14668 EC_GROUP *EC_GROUP_new_by_curve_name(int nid); 14669 14670 /********************************************************************/ 14671 /* handling of internal curves */ 14672 /********************************************************************/ 14673 14674 typedef struct { 14675 int nid; 14676 const char *comment; 14677 } EC_builtin_curve; 14678 14679 /* 14680 * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all 14681 * available curves or zero if a error occurred. In case r ist not zero 14682 * nitems EC_builtin_curve structures are filled with the data of the first 14683 * nitems internal groups 14684 */ 14685 size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); 14686 14687 const char *EC_curve_nid2nist(int nid); 14688 int EC_curve_nist2nid(const char *name); 14689 14690 /********************************************************************/ 14691 /* EC_POINT functions */ 14692 /********************************************************************/ 14693 14694 /** Creates a new EC_POINT object for the specified EC_GROUP 14695 * \param group EC_GROUP the underlying EC_GROUP object 14696 * \return newly created EC_POINT object or NULL if an error occurred 14697 */ 14698 EC_POINT *EC_POINT_new(const EC_GROUP *group); 14699 14700 /** Frees a EC_POINT object 14701 * \param point EC_POINT object to be freed 14702 */ 14703 void EC_POINT_free(EC_POINT *point); 14704 14705 /** Clears and frees a EC_POINT object 14706 * \param point EC_POINT object to be cleared and freed 14707 */ 14708 void EC_POINT_clear_free(EC_POINT *point); 14709 14710 /** Copies EC_POINT object 14711 * \param dst destination EC_POINT object 14712 * \param src source EC_POINT object 14713 * \return 1 on success and 0 if an error occured 14714 */ 14715 int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); 14716 14717 /** Creates a new EC_POINT object and copies the content of the supplied 14718 * EC_POINT 14719 * \param src source EC_POINT object 14720 * \param group underlying the EC_GROUP object 14721 * \return newly created EC_POINT object or NULL if an error occurred 14722 */ 14723 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); 14724 14725 /** Returns the EC_METHOD used in EC_POINT object 14726 * \param point EC_POINT object 14727 * \return the EC_METHOD used 14728 */ 14729 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); 14730 14731 /** Sets a point to infinity (neutral element) 14732 * \param group underlying EC_GROUP object 14733 * \param point EC_POINT to set to infinity 14734 * \return 1 on success and 0 if an error occured 14735 */ 14736 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); 14737 14738 /** Sets the jacobian projective coordinates of a EC_POINT over GFp 14739 * \param group underlying EC_GROUP object 14740 * \param p EC_POINT object 14741 * \param x BIGNUM with the x-coordinate 14742 * \param y BIGNUM with the y-coordinate 14743 * \param z BIGNUM with the z-coordinate 14744 * \param ctx BN_CTX object (optional) 14745 * \return 1 on success and 0 if an error occured 14746 */ 14747 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, 14748 EC_POINT *p, const BIGNUM *x, 14749 const BIGNUM *y, const BIGNUM *z, 14750 BN_CTX *ctx); 14751 14752 /** Gets the jacobian projective coordinates of a EC_POINT over GFp 14753 * \param group underlying EC_GROUP object 14754 * \param p EC_POINT object 14755 * \param x BIGNUM for the x-coordinate 14756 * \param y BIGNUM for the y-coordinate 14757 * \param z BIGNUM for the z-coordinate 14758 * \param ctx BN_CTX object (optional) 14759 * \return 1 on success and 0 if an error occured 14760 */ 14761 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, 14762 const EC_POINT *p, BIGNUM *x, 14763 BIGNUM *y, BIGNUM *z, 14764 BN_CTX *ctx); 14765 14766 /** Sets the affine coordinates of a EC_POINT over GFp 14767 * \param group underlying EC_GROUP object 14768 * \param p EC_POINT object 14769 * \param x BIGNUM with the x-coordinate 14770 * \param y BIGNUM with the y-coordinate 14771 * \param ctx BN_CTX object (optional) 14772 * \return 1 on success and 0 if an error occured 14773 */ 14774 int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, 14775 const BIGNUM *x, const BIGNUM *y, 14776 BN_CTX *ctx); 14777 14778 /** Gets the affine coordinates of a EC_POINT over GFp 14779 * \param group underlying EC_GROUP object 14780 * \param p EC_POINT object 14781 * \param x BIGNUM for the x-coordinate 14782 * \param y BIGNUM for the y-coordinate 14783 * \param ctx BN_CTX object (optional) 14784 * \return 1 on success and 0 if an error occured 14785 */ 14786 int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, 14787 const EC_POINT *p, BIGNUM *x, 14788 BIGNUM *y, BN_CTX *ctx); 14789 14790 /** Sets the x9.62 compressed coordinates of a EC_POINT over GFp 14791 * \param group underlying EC_GROUP object 14792 * \param p EC_POINT object 14793 * \param x BIGNUM with x-coordinate 14794 * \param y_bit integer with the y-Bit (either 0 or 1) 14795 * \param ctx BN_CTX object (optional) 14796 * \return 1 on success and 0 if an error occured 14797 */ 14798 int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, 14799 EC_POINT *p, const BIGNUM *x, 14800 int y_bit, BN_CTX *ctx); 14801 14802 /** Sets the affine coordinates of a EC_POINT over GF2m 14803 * \param group underlying EC_GROUP object 14804 * \param p EC_POINT object 14805 * \param x BIGNUM with the x-coordinate 14806 * \param y BIGNUM with the y-coordinate 14807 * \param ctx BN_CTX object (optional) 14808 * \return 1 on success and 0 if an error occured 14809 */ 14810 int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, 14811 const BIGNUM *x, const BIGNUM *y, 14812 BN_CTX *ctx); 14813 14814 /** Gets the affine coordinates of a EC_POINT over GF2m 14815 * \param group underlying EC_GROUP object 14816 * \param p EC_POINT object 14817 * \param x BIGNUM for the x-coordinate 14818 * \param y BIGNUM for the y-coordinate 14819 * \param ctx BN_CTX object (optional) 14820 * \return 1 on success and 0 if an error occured 14821 */ 14822 int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, 14823 const EC_POINT *p, BIGNUM *x, 14824 BIGNUM *y, BN_CTX *ctx); 14825 14826 /** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m 14827 * \param group underlying EC_GROUP object 14828 * \param p EC_POINT object 14829 * \param x BIGNUM with x-coordinate 14830 * \param y_bit integer with the y-Bit (either 0 or 1) 14831 * \param ctx BN_CTX object (optional) 14832 * \return 1 on success and 0 if an error occured 14833 */ 14834 int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, 14835 EC_POINT *p, const BIGNUM *x, 14836 int y_bit, BN_CTX *ctx); 14837 14838 /** Encodes a EC_POINT object to a octet string 14839 * \param group underlying EC_GROUP object 14840 * \param p EC_POINT object 14841 * \param form point conversion form 14842 * \param buf memory buffer for the result. If NULL the function returns 14843 * required buffer size. 14844 * \param len length of the memory buffer 14845 * \param ctx BN_CTX object (optional) 14846 * \return the length of the encoded octet string or 0 if an error occurred 14847 */ 14848 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, 14849 point_conversion_form_t form, 14850 unsigned char *buf, size_t len, BN_CTX *ctx); 14851 14852 /** Decodes a EC_POINT from a octet string 14853 * \param group underlying EC_GROUP object 14854 * \param p EC_POINT object 14855 * \param buf memory buffer with the encoded ec point 14856 * \param len length of the encoded ec point 14857 * \param ctx BN_CTX object (optional) 14858 * \return 1 on success and 0 if an error occured 14859 */ 14860 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, 14861 const unsigned char *buf, size_t len, BN_CTX *ctx); 14862 14863 /* other interfaces to point2oct/oct2point: */ 14864 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, 14865 point_conversion_form_t form, BIGNUM *, BN_CTX *); 14866 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, 14867 EC_POINT *, BN_CTX *); 14868 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, 14869 point_conversion_form_t form, BN_CTX *); 14870 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, 14871 EC_POINT *, BN_CTX *); 14872 14873 /********************************************************************/ 14874 /* functions for doing EC_POINT arithmetic */ 14875 /********************************************************************/ 14876 14877 /** Computes the sum of two EC_POINT 14878 * \param group underlying EC_GROUP object 14879 * \param r EC_POINT object for the result (r = a + b) 14880 * \param a EC_POINT object with the first summand 14881 * \param b EC_POINT object with the second summand 14882 * \param ctx BN_CTX object (optional) 14883 * \return 1 on success and 0 if an error occured 14884 */ 14885 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 14886 const EC_POINT *b, BN_CTX *ctx); 14887 14888 /** Computes the double of a EC_POINT 14889 * \param group underlying EC_GROUP object 14890 * \param r EC_POINT object for the result (r = 2 * a) 14891 * \param a EC_POINT object 14892 * \param ctx BN_CTX object (optional) 14893 * \return 1 on success and 0 if an error occured 14894 */ 14895 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 14896 BN_CTX *ctx); 14897 14898 /** Computes the inverse of a EC_POINT 14899 * \param group underlying EC_GROUP object 14900 * \param a EC_POINT object to be inverted (it's used for the result as well) 14901 * \param ctx BN_CTX object (optional) 14902 * \return 1 on success and 0 if an error occured 14903 */ 14904 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); 14905 14906 /** Checks whether the point is the neutral element of the group 14907 * \param group the underlying EC_GROUP object 14908 * \param p EC_POINT object 14909 * \return 1 if the point is the neutral element and 0 otherwise 14910 */ 14911 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); 14912 14913 /** Checks whether the point is on the curve 14914 * \param group underlying EC_GROUP object 14915 * \param point EC_POINT object to check 14916 * \param ctx BN_CTX object (optional) 14917 * \return 1 if point if on the curve and 0 otherwise 14918 */ 14919 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, 14920 BN_CTX *ctx); 14921 14922 /** Compares two EC_POINTs 14923 * \param group underlying EC_GROUP object 14924 * \param a first EC_POINT object 14925 * \param b second EC_POINT object 14926 * \param ctx BN_CTX object (optional) 14927 * \return 0 if both points are equal and a value != 0 otherwise 14928 */ 14929 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, 14930 BN_CTX *ctx); 14931 14932 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); 14933 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, 14934 EC_POINT *points[], BN_CTX *ctx); 14935 14936 /** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] 14937 * \param group underlying EC_GROUP object 14938 * \param r EC_POINT object for the result 14939 * \param n BIGNUM with the multiplier for the group generator (optional) 14940 * \param num number futher summands 14941 * \param p array of size num of EC_POINT objects 14942 * \param m array of size num of BIGNUM objects 14943 * \param ctx BN_CTX object (optional) 14944 * \return 1 on success and 0 if an error occured 14945 */ 14946 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 14947 size_t num, const EC_POINT *p[], const BIGNUM *m[], 14948 BN_CTX *ctx); 14949 14950 /** Computes r = generator * n + q * m 14951 * \param group underlying EC_GROUP object 14952 * \param r EC_POINT object for the result 14953 * \param n BIGNUM with the multiplier for the group generator (optional) 14954 * \param q EC_POINT object with the first factor of the second summand 14955 * \param m BIGNUM with the second factor of the second summand 14956 * \param ctx BN_CTX object (optional) 14957 * \return 1 on success and 0 if an error occured 14958 */ 14959 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 14960 const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); 14961 14962 /** Stores multiples of generator for faster point multiplication 14963 * \param group EC_GROUP object 14964 * \param ctx BN_CTX object (optional) 14965 * \return 1 on success and 0 if an error occured 14966 */ 14967 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); 14968 14969 /** Reports whether a precomputation has been done 14970 * \param group EC_GROUP object 14971 * \return 1 if a pre-computation has been done and 0 otherwise 14972 */ 14973 int EC_GROUP_have_precompute_mult(const EC_GROUP *group); 14974 14975 /********************************************************************/ 14976 /* ASN1 stuff */ 14977 /********************************************************************/ 14978 14979 /* 14980 * EC_GROUP_get_basis_type() returns the NID of the basis type used to 14981 * represent the field elements 14982 */ 14983 int EC_GROUP_get_basis_type(const EC_GROUP *); 14984 14985 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); 14986 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, 14987 unsigned int *k2, unsigned int *k3); 14988 14989 14990 14991 14992 typedef struct ecpk_parameters_st ECPKPARAMETERS; 14993 14994 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); 14995 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); 14996 # 731 "/usr/include/openssl/ec.h" 3 4 14997 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); 14998 14999 15000 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); 15001 15002 15003 /********************************************************************/ 15004 /* EC_KEY functions */ 15005 /********************************************************************/ 15006 15007 typedef struct ec_key_st EC_KEY; 15008 15009 /* some values for the encoding_flag */ 15010 15011 15012 15013 /* some values for the flags field */ 15014 15015 15016 15017 /** Creates a new EC_KEY object. 15018 * \return EC_KEY object or NULL if an error occurred. 15019 */ 15020 EC_KEY *EC_KEY_new(void); 15021 15022 int EC_KEY_get_flags(const EC_KEY *key); 15023 15024 void EC_KEY_set_flags(EC_KEY *key, int flags); 15025 15026 void EC_KEY_clear_flags(EC_KEY *key, int flags); 15027 15028 /** Creates a new EC_KEY object using a named curve as underlying 15029 * EC_GROUP object. 15030 * \param nid NID of the named curve. 15031 * \return EC_KEY object or NULL if an error occurred. 15032 */ 15033 EC_KEY *EC_KEY_new_by_curve_name(int nid); 15034 15035 /** Frees a EC_KEY object. 15036 * \param key EC_KEY object to be freed. 15037 */ 15038 void EC_KEY_free(EC_KEY *key); 15039 15040 /** Copies a EC_KEY object. 15041 * \param dst destination EC_KEY object 15042 * \param src src EC_KEY object 15043 * \return dst or NULL if an error occurred. 15044 */ 15045 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); 15046 15047 /** Creates a new EC_KEY object and copies the content from src to it. 15048 * \param src the source EC_KEY object 15049 * \return newly created EC_KEY object or NULL if an error occurred. 15050 */ 15051 EC_KEY *EC_KEY_dup(const EC_KEY *src); 15052 15053 /** Increases the internal reference count of a EC_KEY object. 15054 * \param key EC_KEY object 15055 * \return 1 on success and 0 if an error occurred. 15056 */ 15057 int EC_KEY_up_ref(EC_KEY *key); 15058 15059 /** Returns the EC_GROUP object of a EC_KEY object 15060 * \param key EC_KEY object 15061 * \return the EC_GROUP object (possibly NULL). 15062 */ 15063 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); 15064 15065 /** Sets the EC_GROUP of a EC_KEY object. 15066 * \param key EC_KEY object 15067 * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY 15068 * object will use an own copy of the EC_GROUP). 15069 * \return 1 on success and 0 if an error occurred. 15070 */ 15071 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); 15072 15073 /** Returns the private key of a EC_KEY object. 15074 * \param key EC_KEY object 15075 * \return a BIGNUM with the private key (possibly NULL). 15076 */ 15077 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); 15078 15079 /** Sets the private key of a EC_KEY object. 15080 * \param key EC_KEY object 15081 * \param prv BIGNUM with the private key (note: the EC_KEY object 15082 * will use an own copy of the BIGNUM). 15083 * \return 1 on success and 0 if an error occurred. 15084 */ 15085 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); 15086 15087 /** Returns the public key of a EC_KEY object. 15088 * \param key the EC_KEY object 15089 * \return a EC_POINT object with the public key (possibly NULL) 15090 */ 15091 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); 15092 15093 /** Sets the public key of a EC_KEY object. 15094 * \param key EC_KEY object 15095 * \param pub EC_POINT object with the public key (note: the EC_KEY object 15096 * will use an own copy of the EC_POINT object). 15097 * \return 1 on success and 0 if an error occurred. 15098 */ 15099 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); 15100 15101 unsigned EC_KEY_get_enc_flags(const EC_KEY *key); 15102 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); 15103 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); 15104 void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); 15105 /* functions to set/get method specific data */ 15106 void *EC_KEY_get_key_method_data(EC_KEY *key, 15107 void *(*dup_func) (void *), 15108 void (*free_func) (void *), 15109 void (*clear_free_func) (void *)); 15110 /** Sets the key method data of an EC_KEY object, if none has yet been set. 15111 * \param key EC_KEY object 15112 * \param data opaque data to install. 15113 * \param dup_func a function that duplicates |data|. 15114 * \param free_func a function that frees |data|. 15115 * \param clear_free_func a function that wipes and frees |data|. 15116 * \return the previously set data pointer, or NULL if |data| was inserted. 15117 */ 15118 void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, 15119 void *(*dup_func) (void *), 15120 void (*free_func) (void *), 15121 void (*clear_free_func) (void *)); 15122 /* wrapper functions for the underlying EC_GROUP object */ 15123 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); 15124 15125 /** Creates a table of pre-computed multiples of the generator to 15126 * accelerate further EC_KEY operations. 15127 * \param key EC_KEY object 15128 * \param ctx BN_CTX object (optional) 15129 * \return 1 on success and 0 if an error occurred. 15130 */ 15131 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); 15132 15133 /** Creates a new ec private (and optional a new public) key. 15134 * \param key EC_KEY object 15135 * \return 1 on success and 0 if an error occurred. 15136 */ 15137 int EC_KEY_generate_key(EC_KEY *key); 15138 15139 /** Verifies that a private and/or public key is valid. 15140 * \param key the EC_KEY object 15141 * \return 1 on success and 0 otherwise. 15142 */ 15143 int EC_KEY_check_key(const EC_KEY *key); 15144 15145 /** Sets a public key from affine coordindates performing 15146 * neccessary NIST PKV tests. 15147 * \param key the EC_KEY object 15148 * \param x public key x coordinate 15149 * \param y public key y coordinate 15150 * \return 1 on success and 0 otherwise. 15151 */ 15152 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, 15153 BIGNUM *y); 15154 15155 /********************************************************************/ 15156 /* de- and encoding functions for SEC1 ECPrivateKey */ 15157 /********************************************************************/ 15158 15159 /** Decodes a private key from a memory buffer. 15160 * \param key a pointer to a EC_KEY object which should be used (or NULL) 15161 * \param in pointer to memory with the DER encoded private key 15162 * \param len length of the DER encoded private key 15163 * \return the decoded private key or NULL if an error occurred. 15164 */ 15165 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); 15166 15167 /** Encodes a private key object and stores the result in a buffer. 15168 * \param key the EC_KEY object to encode 15169 * \param out the buffer for the result (if NULL the function returns number 15170 * of bytes needed). 15171 * \return 1 on success and 0 if an error occurred. 15172 */ 15173 int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); 15174 15175 /********************************************************************/ 15176 /* de- and encoding functions for EC parameters */ 15177 /********************************************************************/ 15178 15179 /** Decodes ec parameter from a memory buffer. 15180 * \param key a pointer to a EC_KEY object which should be used (or NULL) 15181 * \param in pointer to memory with the DER encoded ec parameters 15182 * \param len length of the DER encoded ec parameters 15183 * \return a EC_KEY object with the decoded parameters or NULL if an error 15184 * occurred. 15185 */ 15186 EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); 15187 15188 /** Encodes ec parameter and stores the result in a buffer. 15189 * \param key the EC_KEY object with ec paramters to encode 15190 * \param out the buffer for the result (if NULL the function returns number 15191 * of bytes needed). 15192 * \return 1 on success and 0 if an error occurred. 15193 */ 15194 int i2d_ECParameters(EC_KEY *key, unsigned char **out); 15195 15196 /********************************************************************/ 15197 /* de- and encoding functions for EC public key */ 15198 /* (octet string, not DER -- hence 'o2i' and 'i2o') */ 15199 /********************************************************************/ 15200 15201 /** Decodes a ec public key from a octet string. 15202 * \param key a pointer to a EC_KEY object which should be used 15203 * \param in memory buffer with the encoded public key 15204 * \param len length of the encoded public key 15205 * \return EC_KEY object with decoded public key or NULL if an error 15206 * occurred. 15207 */ 15208 EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); 15209 15210 /** Encodes a ec public key in an octet string. 15211 * \param key the EC_KEY object with the public key 15212 * \param out the buffer for the result (if NULL the function returns number 15213 * of bytes needed). 15214 * \return 1 on success and 0 if an error occurred 15215 */ 15216 int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); 15217 15218 15219 /** Prints out the ec parameters on human readable form. 15220 * \param bp BIO object to which the information is printed 15221 * \param key EC_KEY object 15222 * \return 1 on success and 0 if an error occurred 15223 */ 15224 int ECParameters_print(BIO *bp, const EC_KEY *key); 15225 15226 /** Prints out the contents of a EC_KEY object 15227 * \param bp BIO object to which the information is printed 15228 * \param key EC_KEY object 15229 * \param off line offset 15230 * \return 1 on success and 0 if an error occurred 15231 */ 15232 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); 15233 15234 15235 15236 /** Prints out the ec parameters on human readable form. 15237 * \param fp file descriptor to which the information is printed 15238 * \param key EC_KEY object 15239 * \return 1 on success and 0 if an error occurred 15240 */ 15241 int ECParameters_print_fp(FILE *fp, const EC_KEY *key); 15242 15243 /** Prints out the contents of a EC_KEY object 15244 * \param fp file descriptor to which the information is printed 15245 * \param key EC_KEY object 15246 * \param off line offset 15247 * \return 1 on success and 0 if an error occurred 15248 */ 15249 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); 15250 # 1067 "/usr/include/openssl/ec.h" 3 4 15251 /* KDF types */ 15252 15253 15254 15255 /* BEGIN ERROR CODES */ 15256 /* 15257 * The following lines are auto generated by the script mkerr.pl. Any changes 15258 * made after this point may be overwritten when the script is next run. 15259 */ 15260 15261 void ERR_load_EC_strings(void); 15262 15263 /* Error codes for the EC functions. */ 15264 15265 /* Function codes. */ 15266 # 1227 "/usr/include/openssl/ec.h" 3 4 15267 /* Reason codes. */ 15268 # 84 "/usr/include/openssl/x509.h" 2 3 4 15269 15270 15271 15272 # 1 "/usr/include/openssl/ecdsa.h" 1 3 4 15273 /* crypto/ecdsa/ecdsa.h */ 15274 /** 15275 * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions 15276 * \author Written by Nils Larsch for the OpenSSL project 15277 */ 15278 /* ==================================================================== 15279 * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. 15280 * 15281 * Redistribution and use in source and binary forms, with or without 15282 * modification, are permitted provided that the following conditions 15283 * are met: 15284 * 15285 * 1. Redistributions of source code must retain the above copyright 15286 * notice, this list of conditions and the following disclaimer. 15287 * 15288 * 2. Redistributions in binary form must reproduce the above copyright 15289 * notice, this list of conditions and the following disclaimer in 15290 * the documentation and/or other materials provided with the 15291 * distribution. 15292 * 15293 * 3. All advertising materials mentioning features or use of this 15294 * software must display the following acknowledgment: 15295 * "This product includes software developed by the OpenSSL Project 15296 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 15297 * 15298 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15299 * endorse or promote products derived from this software without 15300 * prior written permission. For written permission, please contact 15301 * licensing@OpenSSL.org. 15302 * 15303 * 5. Products derived from this software may not be called "OpenSSL" 15304 * nor may "OpenSSL" appear in their names without prior written 15305 * permission of the OpenSSL Project. 15306 * 15307 * 6. Redistributions of any form whatsoever must retain the following 15308 * acknowledgment: 15309 * "This product includes software developed by the OpenSSL Project 15310 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 15311 * 15312 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15313 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15314 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15315 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15316 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15317 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15318 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15319 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15320 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15321 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15322 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15323 * OF THE POSSIBILITY OF SUCH DAMAGE. 15324 * ==================================================================== 15325 * 15326 * This product includes cryptographic software written by Eric Young 15327 * (eay@cryptsoft.com). This product includes software written by Tim 15328 * Hudson (tjh@cryptsoft.com). 15329 * 15330 */ 15331 15332 15333 15334 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 15335 /* opensslconf.h */ 15336 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 15337 15338 15339 15340 15341 /* OpenSSL was configured with the following options: */ 15342 # 108 "/usr/include/openssl/opensslconf.h" 3 4 15343 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 15344 asks for it. This is a transient feature that is provided for those 15345 who haven't had the time to do the appropriate changes in their 15346 applications. */ 15347 # 204 "/usr/include/openssl/opensslconf.h" 3 4 15348 /* crypto/opensslconf.h.in */ 15349 15350 /* Generate 80386 code? */ 15351 # 63 "/usr/include/openssl/ecdsa.h" 2 3 4 15352 15353 15354 15355 15356 15357 # 1 "/usr/include/openssl/ec.h" 1 3 4 15358 /* crypto/ec/ec.h */ 15359 /* 15360 * Originally written by Bodo Moeller for the OpenSSL project. 15361 */ 15362 /** 15363 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 15364 * \author Originally written by Bodo Moeller for the OpenSSL project 15365 */ 15366 /* ==================================================================== 15367 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 15368 * 15369 * Redistribution and use in source and binary forms, with or without 15370 * modification, are permitted provided that the following conditions 15371 * are met: 15372 * 15373 * 1. Redistributions of source code must retain the above copyright 15374 * notice, this list of conditions and the following disclaimer. 15375 * 15376 * 2. Redistributions in binary form must reproduce the above copyright 15377 * notice, this list of conditions and the following disclaimer in 15378 * the documentation and/or other materials provided with the 15379 * distribution. 15380 * 15381 * 3. All advertising materials mentioning features or use of this 15382 * software must display the following acknowledgment: 15383 * "This product includes software developed by the OpenSSL Project 15384 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15385 * 15386 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15387 * endorse or promote products derived from this software without 15388 * prior written permission. For written permission, please contact 15389 * openssl-core@openssl.org. 15390 * 15391 * 5. Products derived from this software may not be called "OpenSSL" 15392 * nor may "OpenSSL" appear in their names without prior written 15393 * permission of the OpenSSL Project. 15394 * 15395 * 6. Redistributions of any form whatsoever must retain the following 15396 * acknowledgment: 15397 * "This product includes software developed by the OpenSSL Project 15398 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15399 * 15400 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15401 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15402 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15403 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15404 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15405 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15406 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15407 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15408 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15409 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15410 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15411 * OF THE POSSIBILITY OF SUCH DAMAGE. 15412 * ==================================================================== 15413 * 15414 * This product includes cryptographic software written by Eric Young 15415 * (eay@cryptsoft.com). This product includes software written by Tim 15416 * Hudson (tjh@cryptsoft.com). 15417 * 15418 */ 15419 /* ==================================================================== 15420 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15421 * 15422 * Portions of the attached software ("Contribution") are developed by 15423 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15424 * 15425 * The Contribution is licensed pursuant to the OpenSSL open source 15426 * license provided above. 15427 * 15428 * The elliptic curve binary polynomial software is originally written by 15429 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15430 * 15431 */ 15432 # 69 "/usr/include/openssl/ecdsa.h" 2 3 4 15433 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 15434 /* ==================================================================== 15435 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 15436 * 15437 * Redistribution and use in source and binary forms, with or without 15438 * modification, are permitted provided that the following conditions 15439 * are met: 15440 * 15441 * 1. Redistributions of source code must retain the above copyright 15442 * notice, this list of conditions and the following disclaimer. 15443 * 15444 * 2. Redistributions in binary form must reproduce the above copyright 15445 * notice, this list of conditions and the following disclaimer in 15446 * the documentation and/or other materials provided with the 15447 * distribution. 15448 * 15449 * 3. All advertising materials mentioning features or use of this 15450 * software must display the following acknowledgment: 15451 * "This product includes software developed by the OpenSSL Project 15452 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15453 * 15454 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15455 * endorse or promote products derived from this software without 15456 * prior written permission. For written permission, please contact 15457 * openssl-core@openssl.org. 15458 * 15459 * 5. Products derived from this software may not be called "OpenSSL" 15460 * nor may "OpenSSL" appear in their names without prior written 15461 * permission of the OpenSSL Project. 15462 * 15463 * 6. Redistributions of any form whatsoever must retain the following 15464 * acknowledgment: 15465 * "This product includes software developed by the OpenSSL Project 15466 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15467 * 15468 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15469 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15470 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15471 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15472 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15473 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15474 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15475 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15476 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15477 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15478 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15479 * OF THE POSSIBILITY OF SUCH DAMAGE. 15480 * ==================================================================== 15481 * 15482 * This product includes cryptographic software written by Eric Young 15483 * (eay@cryptsoft.com). This product includes software written by Tim 15484 * Hudson (tjh@cryptsoft.com). 15485 * 15486 */ 15487 # 70 "/usr/include/openssl/ecdsa.h" 2 3 4 15488 15489 # 1 "/usr/include/openssl/bn.h" 1 3 4 15490 /* crypto/bn/bn.h */ 15491 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 15492 * All rights reserved. 15493 * 15494 * This package is an SSL implementation written 15495 * by Eric Young (eay@cryptsoft.com). 15496 * The implementation was written so as to conform with Netscapes SSL. 15497 * 15498 * This library is free for commercial and non-commercial use as long as 15499 * the following conditions are aheared to. The following conditions 15500 * apply to all code found in this distribution, be it the RC4, RSA, 15501 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15502 * included with this distribution is covered by the same copyright terms 15503 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15504 * 15505 * Copyright remains Eric Young's, and as such any Copyright notices in 15506 * the code are not to be removed. 15507 * If this package is used in a product, Eric Young should be given attribution 15508 * as the author of the parts of the library used. 15509 * This can be in the form of a textual message at program startup or 15510 * in documentation (online or textual) provided with the package. 15511 * 15512 * Redistribution and use in source and binary forms, with or without 15513 * modification, are permitted provided that the following conditions 15514 * are met: 15515 * 1. Redistributions of source code must retain the copyright 15516 * notice, this list of conditions and the following disclaimer. 15517 * 2. Redistributions in binary form must reproduce the above copyright 15518 * notice, this list of conditions and the following disclaimer in the 15519 * documentation and/or other materials provided with the distribution. 15520 * 3. All advertising materials mentioning features or use of this software 15521 * must display the following acknowledgement: 15522 * "This product includes cryptographic software written by 15523 * Eric Young (eay@cryptsoft.com)" 15524 * The word 'cryptographic' can be left out if the rouines from the library 15525 * being used are not cryptographic related :-). 15526 * 4. If you include any Windows specific code (or a derivative thereof) from 15527 * the apps directory (application code) you must include an acknowledgement: 15528 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15529 * 15530 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15531 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15532 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15533 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15534 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15535 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15536 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15537 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15538 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15539 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15540 * SUCH DAMAGE. 15541 * 15542 * The licence and distribution terms for any publically available version or 15543 * derivative of this code cannot be changed. i.e. this code cannot simply be 15544 * copied and put under another distribution licence 15545 * [including the GNU Public Licence.] 15546 */ 15547 /* ==================================================================== 15548 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 15549 * 15550 * Redistribution and use in source and binary forms, with or without 15551 * modification, are permitted provided that the following conditions 15552 * are met: 15553 * 15554 * 1. Redistributions of source code must retain the above copyright 15555 * notice, this list of conditions and the following disclaimer. 15556 * 15557 * 2. Redistributions in binary form must reproduce the above copyright 15558 * notice, this list of conditions and the following disclaimer in 15559 * the documentation and/or other materials provided with the 15560 * distribution. 15561 * 15562 * 3. All advertising materials mentioning features or use of this 15563 * software must display the following acknowledgment: 15564 * "This product includes software developed by the OpenSSL Project 15565 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15566 * 15567 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15568 * endorse or promote products derived from this software without 15569 * prior written permission. For written permission, please contact 15570 * openssl-core@openssl.org. 15571 * 15572 * 5. Products derived from this software may not be called "OpenSSL" 15573 * nor may "OpenSSL" appear in their names without prior written 15574 * permission of the OpenSSL Project. 15575 * 15576 * 6. Redistributions of any form whatsoever must retain the following 15577 * acknowledgment: 15578 * "This product includes software developed by the OpenSSL Project 15579 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15580 * 15581 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15582 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15583 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15584 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15585 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15586 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15587 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15588 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15589 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15590 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15591 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15592 * OF THE POSSIBILITY OF SUCH DAMAGE. 15593 * ==================================================================== 15594 * 15595 * This product includes cryptographic software written by Eric Young 15596 * (eay@cryptsoft.com). This product includes software written by Tim 15597 * Hudson (tjh@cryptsoft.com). 15598 * 15599 */ 15600 /* ==================================================================== 15601 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15602 * 15603 * Portions of the attached software ("Contribution") are developed by 15604 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15605 * 15606 * The Contribution is licensed pursuant to the Eric Young open source 15607 * license provided above. 15608 * 15609 * The binary polynomial arithmetic software is originally written by 15610 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15611 * 15612 */ 15613 # 72 "/usr/include/openssl/ecdsa.h" 2 3 4 15614 15615 15616 15617 15618 15619 15620 typedef struct ECDSA_SIG_st { 15621 BIGNUM *r; 15622 BIGNUM *s; 15623 } ECDSA_SIG; 15624 15625 /** Allocates and initialize a ECDSA_SIG structure 15626 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15627 */ 15628 ECDSA_SIG *ECDSA_SIG_new(void); 15629 15630 /** frees a ECDSA_SIG structure 15631 * \param sig pointer to the ECDSA_SIG structure 15632 */ 15633 void ECDSA_SIG_free(ECDSA_SIG *sig); 15634 15635 /** DER encode content of ECDSA_SIG object (note: this function modifies *pp 15636 * (*pp += length of the DER encoded signature)). 15637 * \param sig pointer to the ECDSA_SIG object 15638 * \param pp pointer to a unsigned char pointer for the output or NULL 15639 * \return the length of the DER encoded ECDSA_SIG object or 0 15640 */ 15641 int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); 15642 15643 /** Decodes a DER encoded ECDSA signature (note: this function changes *pp 15644 * (*pp += len)). 15645 * \param sig pointer to ECDSA_SIG pointer (may be NULL) 15646 * \param pp memory buffer with the DER encoded signature 15647 * \param len length of the buffer 15648 * \return pointer to the decoded ECDSA_SIG structure (or NULL) 15649 */ 15650 ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); 15651 15652 /** Computes the ECDSA signature of the given hash value using 15653 * the supplied private key and returns the created signature. 15654 * \param dgst pointer to the hash value 15655 * \param dgst_len length of the hash value 15656 * \param eckey EC_KEY object containing a private EC key 15657 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15658 */ 15659 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, 15660 EC_KEY *eckey); 15661 15662 /** Computes ECDSA signature of a given hash value using the supplied 15663 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15664 * \param dgst pointer to the hash value to sign 15665 * \param dgstlen length of the hash value 15666 * \param kinv BIGNUM with a pre-computed inverse k (optional) 15667 * \param rp BIGNUM with a pre-computed rp value (optioanl), 15668 * see ECDSA_sign_setup 15669 * \param eckey EC_KEY object containing a private EC key 15670 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15671 */ 15672 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, 15673 const BIGNUM *kinv, const BIGNUM *rp, 15674 EC_KEY *eckey); 15675 15676 /** Verifies that the supplied signature is a valid ECDSA 15677 * signature of the supplied hash value using the supplied public key. 15678 * \param dgst pointer to the hash value 15679 * \param dgst_len length of the hash value 15680 * \param sig ECDSA_SIG structure 15681 * \param eckey EC_KEY object containing a public EC key 15682 * \return 1 if the signature is valid, 0 if the signature is invalid 15683 * and -1 on error 15684 */ 15685 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, 15686 const ECDSA_SIG *sig, EC_KEY *eckey); 15687 15688 const ECDSA_METHOD *ECDSA_OpenSSL(void); 15689 15690 /** Sets the default ECDSA method 15691 * \param meth new default ECDSA_METHOD 15692 */ 15693 void ECDSA_set_default_method(const ECDSA_METHOD *meth); 15694 15695 /** Returns the default ECDSA method 15696 * \return pointer to ECDSA_METHOD structure containing the default method 15697 */ 15698 const ECDSA_METHOD *ECDSA_get_default_method(void); 15699 15700 /** Sets method to be used for the ECDSA operations 15701 * \param eckey EC_KEY object 15702 * \param meth new method 15703 * \return 1 on success and 0 otherwise 15704 */ 15705 int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); 15706 15707 /** Returns the maximum length of the DER encoded signature 15708 * \param eckey EC_KEY object 15709 * \return numbers of bytes required for the DER encoded signature 15710 */ 15711 int ECDSA_size(const EC_KEY *eckey); 15712 15713 /** Precompute parts of the signing operation 15714 * \param eckey EC_KEY object containing a private EC key 15715 * \param ctx BN_CTX object (optional) 15716 * \param kinv BIGNUM pointer for the inverse of k 15717 * \param rp BIGNUM pointer for x coordinate of k * generator 15718 * \return 1 on success and 0 otherwise 15719 */ 15720 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); 15721 15722 /** Computes ECDSA signature of a given hash value using the supplied 15723 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15724 * \param type this parameter is ignored 15725 * \param dgst pointer to the hash value to sign 15726 * \param dgstlen length of the hash value 15727 * \param sig memory for the DER encoded created signature 15728 * \param siglen pointer to the length of the returned signature 15729 * \param eckey EC_KEY object containing a private EC key 15730 * \return 1 on success and 0 otherwise 15731 */ 15732 int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, 15733 unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); 15734 15735 /** Computes ECDSA signature of a given hash value using the supplied 15736 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15737 * \param type this parameter is ignored 15738 * \param dgst pointer to the hash value to sign 15739 * \param dgstlen length of the hash value 15740 * \param sig buffer to hold the DER encoded signature 15741 * \param siglen pointer to the length of the returned signature 15742 * \param kinv BIGNUM with a pre-computed inverse k (optional) 15743 * \param rp BIGNUM with a pre-computed rp value (optioanl), 15744 * see ECDSA_sign_setup 15745 * \param eckey EC_KEY object containing a private EC key 15746 * \return 1 on success and 0 otherwise 15747 */ 15748 int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, 15749 unsigned char *sig, unsigned int *siglen, 15750 const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); 15751 15752 /** Verifies that the given signature is valid ECDSA signature 15753 * of the supplied hash value using the specified public key. 15754 * \param type this parameter is ignored 15755 * \param dgst pointer to the hash value 15756 * \param dgstlen length of the hash value 15757 * \param sig pointer to the DER encoded signature 15758 * \param siglen length of the DER encoded signature 15759 * \param eckey EC_KEY object containing a public EC key 15760 * \return 1 if the signature is valid, 0 if the signature is invalid 15761 * and -1 on error 15762 */ 15763 int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, 15764 const unsigned char *sig, int siglen, EC_KEY *eckey); 15765 15766 /* the standard ex_data functions */ 15767 int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 15768 *new_func, CRYPTO_EX_dup *dup_func, 15769 CRYPTO_EX_free *free_func); 15770 int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); 15771 void *ECDSA_get_ex_data(EC_KEY *d, int idx); 15772 15773 /** Allocates and initialize a ECDSA_METHOD structure 15774 * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) 15775 * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred 15776 */ 15777 15778 ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); 15779 15780 /** frees a ECDSA_METHOD structure 15781 * \param ecdsa_method pointer to the ECDSA_METHOD structure 15782 */ 15783 void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); 15784 15785 /** Sets application specific data in the ECDSA_METHOD 15786 * \param ecdsa_method pointer to existing ECDSA_METHOD 15787 * \param app application specific data to set 15788 */ 15789 15790 void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); 15791 15792 /** Returns application specific data from a ECDSA_METHOD structure 15793 * \param ecdsa_method pointer to ECDSA_METHOD structure 15794 * \return pointer to application specific data. 15795 */ 15796 15797 void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); 15798 15799 /** Set the ECDSA_do_sign function in the ECDSA_METHOD 15800 * \param ecdsa_method pointer to existing ECDSA_METHOD 15801 * \param ecdsa_do_sign a funtion of type ECDSA_do_sign 15802 */ 15803 15804 void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, 15805 ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char 15806 *dgst, int dgst_len, 15807 const BIGNUM *inv, 15808 const BIGNUM *rp, 15809 EC_KEY *eckey)); 15810 15811 /** Set the ECDSA_sign_setup function in the ECDSA_METHOD 15812 * \param ecdsa_method pointer to existing ECDSA_METHOD 15813 * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup 15814 */ 15815 15816 void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, 15817 int (*ecdsa_sign_setup) (EC_KEY *eckey, 15818 BN_CTX *ctx, 15819 BIGNUM **kinv, 15820 BIGNUM **r)); 15821 15822 /** Set the ECDSA_do_verify function in the ECDSA_METHOD 15823 * \param ecdsa_method pointer to existing ECDSA_METHOD 15824 * \param ecdsa_do_verify a funtion of type ECDSA_do_verify 15825 */ 15826 15827 void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, 15828 int (*ecdsa_do_verify) (const unsigned char 15829 *dgst, int dgst_len, 15830 const ECDSA_SIG *sig, 15831 EC_KEY *eckey)); 15832 15833 void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); 15834 15835 /** Set the flags field in the ECDSA_METHOD 15836 * \param ecdsa_method pointer to existing ECDSA_METHOD 15837 * \param flags flags value to set 15838 */ 15839 15840 void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); 15841 15842 /** Set the name field in the ECDSA_METHOD 15843 * \param ecdsa_method pointer to existing ECDSA_METHOD 15844 * \param name name to set 15845 */ 15846 15847 /* BEGIN ERROR CODES */ 15848 /* 15849 * The following lines are auto generated by the script mkerr.pl. Any changes 15850 * made after this point may be overwritten when the script is next run. 15851 */ 15852 void ERR_load_ECDSA_strings(void); 15853 15854 /* Error codes for the ECDSA functions. */ 15855 15856 /* Function codes. */ 15857 15858 15859 15860 15861 15862 15863 15864 /* Reason codes. */ 15865 # 88 "/usr/include/openssl/x509.h" 2 3 4 15866 15867 15868 15869 # 1 "/usr/include/openssl/ecdh.h" 1 3 4 15870 /* crypto/ecdh/ecdh.h */ 15871 /* ==================================================================== 15872 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15873 * 15874 * The Elliptic Curve Public-Key Crypto Library (ECC Code) included 15875 * herein is developed by SUN MICROSYSTEMS, INC., and is contributed 15876 * to the OpenSSL project. 15877 * 15878 * The ECC Code is licensed pursuant to the OpenSSL open source 15879 * license provided below. 15880 * 15881 * The ECDH software is originally written by Douglas Stebila of 15882 * Sun Microsystems Laboratories. 15883 * 15884 */ 15885 /* ==================================================================== 15886 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. 15887 * 15888 * Redistribution and use in source and binary forms, with or without 15889 * modification, are permitted provided that the following conditions 15890 * are met: 15891 * 15892 * 1. Redistributions of source code must retain the above copyright 15893 * notice, this list of conditions and the following disclaimer. 15894 * 15895 * 2. Redistributions in binary form must reproduce the above copyright 15896 * notice, this list of conditions and the following disclaimer in 15897 * the documentation and/or other materials provided with the 15898 * distribution. 15899 * 15900 * 3. All advertising materials mentioning features or use of this 15901 * software must display the following acknowledgment: 15902 * "This product includes software developed by the OpenSSL Project 15903 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 15904 * 15905 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15906 * endorse or promote products derived from this software without 15907 * prior written permission. For written permission, please contact 15908 * licensing@OpenSSL.org. 15909 * 15910 * 5. Products derived from this software may not be called "OpenSSL" 15911 * nor may "OpenSSL" appear in their names without prior written 15912 * permission of the OpenSSL Project. 15913 * 15914 * 6. Redistributions of any form whatsoever must retain the following 15915 * acknowledgment: 15916 * "This product includes software developed by the OpenSSL Project 15917 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 15918 * 15919 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15920 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15921 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15922 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15923 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15924 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15925 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15926 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15927 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15928 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15929 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15930 * OF THE POSSIBILITY OF SUCH DAMAGE. 15931 * ==================================================================== 15932 * 15933 * This product includes cryptographic software written by Eric Young 15934 * (eay@cryptsoft.com). This product includes software written by Tim 15935 * Hudson (tjh@cryptsoft.com). 15936 * 15937 */ 15938 15939 15940 15941 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 15942 /* opensslconf.h */ 15943 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 15944 15945 15946 15947 15948 /* OpenSSL was configured with the following options: */ 15949 # 108 "/usr/include/openssl/opensslconf.h" 3 4 15950 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 15951 asks for it. This is a transient feature that is provided for those 15952 who haven't had the time to do the appropriate changes in their 15953 applications. */ 15954 # 204 "/usr/include/openssl/opensslconf.h" 3 4 15955 /* crypto/opensslconf.h.in */ 15956 15957 /* Generate 80386 code? */ 15958 # 73 "/usr/include/openssl/ecdh.h" 2 3 4 15959 15960 15961 15962 15963 15964 # 1 "/usr/include/openssl/ec.h" 1 3 4 15965 /* crypto/ec/ec.h */ 15966 /* 15967 * Originally written by Bodo Moeller for the OpenSSL project. 15968 */ 15969 /** 15970 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 15971 * \author Originally written by Bodo Moeller for the OpenSSL project 15972 */ 15973 /* ==================================================================== 15974 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 15975 * 15976 * Redistribution and use in source and binary forms, with or without 15977 * modification, are permitted provided that the following conditions 15978 * are met: 15979 * 15980 * 1. Redistributions of source code must retain the above copyright 15981 * notice, this list of conditions and the following disclaimer. 15982 * 15983 * 2. Redistributions in binary form must reproduce the above copyright 15984 * notice, this list of conditions and the following disclaimer in 15985 * the documentation and/or other materials provided with the 15986 * distribution. 15987 * 15988 * 3. All advertising materials mentioning features or use of this 15989 * software must display the following acknowledgment: 15990 * "This product includes software developed by the OpenSSL Project 15991 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15992 * 15993 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15994 * endorse or promote products derived from this software without 15995 * prior written permission. For written permission, please contact 15996 * openssl-core@openssl.org. 15997 * 15998 * 5. Products derived from this software may not be called "OpenSSL" 15999 * nor may "OpenSSL" appear in their names without prior written 16000 * permission of the OpenSSL Project. 16001 * 16002 * 6. Redistributions of any form whatsoever must retain the following 16003 * acknowledgment: 16004 * "This product includes software developed by the OpenSSL Project 16005 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16006 * 16007 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16008 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16009 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16010 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16011 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16012 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16013 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16014 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16015 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16016 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16017 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16018 * OF THE POSSIBILITY OF SUCH DAMAGE. 16019 * ==================================================================== 16020 * 16021 * This product includes cryptographic software written by Eric Young 16022 * (eay@cryptsoft.com). This product includes software written by Tim 16023 * Hudson (tjh@cryptsoft.com). 16024 * 16025 */ 16026 /* ==================================================================== 16027 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16028 * 16029 * Portions of the attached software ("Contribution") are developed by 16030 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16031 * 16032 * The Contribution is licensed pursuant to the OpenSSL open source 16033 * license provided above. 16034 * 16035 * The elliptic curve binary polynomial software is originally written by 16036 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16037 * 16038 */ 16039 # 79 "/usr/include/openssl/ecdh.h" 2 3 4 16040 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 16041 /* ==================================================================== 16042 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 16043 * 16044 * Redistribution and use in source and binary forms, with or without 16045 * modification, are permitted provided that the following conditions 16046 * are met: 16047 * 16048 * 1. Redistributions of source code must retain the above copyright 16049 * notice, this list of conditions and the following disclaimer. 16050 * 16051 * 2. Redistributions in binary form must reproduce the above copyright 16052 * notice, this list of conditions and the following disclaimer in 16053 * the documentation and/or other materials provided with the 16054 * distribution. 16055 * 16056 * 3. All advertising materials mentioning features or use of this 16057 * software must display the following acknowledgment: 16058 * "This product includes software developed by the OpenSSL Project 16059 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16060 * 16061 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16062 * endorse or promote products derived from this software without 16063 * prior written permission. For written permission, please contact 16064 * openssl-core@openssl.org. 16065 * 16066 * 5. Products derived from this software may not be called "OpenSSL" 16067 * nor may "OpenSSL" appear in their names without prior written 16068 * permission of the OpenSSL Project. 16069 * 16070 * 6. Redistributions of any form whatsoever must retain the following 16071 * acknowledgment: 16072 * "This product includes software developed by the OpenSSL Project 16073 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16074 * 16075 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16076 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16077 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16078 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16079 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16080 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16081 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16082 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16083 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16084 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16085 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16086 * OF THE POSSIBILITY OF SUCH DAMAGE. 16087 * ==================================================================== 16088 * 16089 * This product includes cryptographic software written by Eric Young 16090 * (eay@cryptsoft.com). This product includes software written by Tim 16091 * Hudson (tjh@cryptsoft.com). 16092 * 16093 */ 16094 # 80 "/usr/include/openssl/ecdh.h" 2 3 4 16095 16096 # 1 "/usr/include/openssl/bn.h" 1 3 4 16097 /* crypto/bn/bn.h */ 16098 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 16099 * All rights reserved. 16100 * 16101 * This package is an SSL implementation written 16102 * by Eric Young (eay@cryptsoft.com). 16103 * The implementation was written so as to conform with Netscapes SSL. 16104 * 16105 * This library is free for commercial and non-commercial use as long as 16106 * the following conditions are aheared to. The following conditions 16107 * apply to all code found in this distribution, be it the RC4, RSA, 16108 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16109 * included with this distribution is covered by the same copyright terms 16110 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16111 * 16112 * Copyright remains Eric Young's, and as such any Copyright notices in 16113 * the code are not to be removed. 16114 * If this package is used in a product, Eric Young should be given attribution 16115 * as the author of the parts of the library used. 16116 * This can be in the form of a textual message at program startup or 16117 * in documentation (online or textual) provided with the package. 16118 * 16119 * Redistribution and use in source and binary forms, with or without 16120 * modification, are permitted provided that the following conditions 16121 * are met: 16122 * 1. Redistributions of source code must retain the copyright 16123 * notice, this list of conditions and the following disclaimer. 16124 * 2. Redistributions in binary form must reproduce the above copyright 16125 * notice, this list of conditions and the following disclaimer in the 16126 * documentation and/or other materials provided with the distribution. 16127 * 3. All advertising materials mentioning features or use of this software 16128 * must display the following acknowledgement: 16129 * "This product includes cryptographic software written by 16130 * Eric Young (eay@cryptsoft.com)" 16131 * The word 'cryptographic' can be left out if the rouines from the library 16132 * being used are not cryptographic related :-). 16133 * 4. If you include any Windows specific code (or a derivative thereof) from 16134 * the apps directory (application code) you must include an acknowledgement: 16135 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16136 * 16137 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16138 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16139 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16140 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16141 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16142 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16143 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16144 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16145 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16146 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16147 * SUCH DAMAGE. 16148 * 16149 * The licence and distribution terms for any publically available version or 16150 * derivative of this code cannot be changed. i.e. this code cannot simply be 16151 * copied and put under another distribution licence 16152 * [including the GNU Public Licence.] 16153 */ 16154 /* ==================================================================== 16155 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 16156 * 16157 * Redistribution and use in source and binary forms, with or without 16158 * modification, are permitted provided that the following conditions 16159 * are met: 16160 * 16161 * 1. Redistributions of source code must retain the above copyright 16162 * notice, this list of conditions and the following disclaimer. 16163 * 16164 * 2. Redistributions in binary form must reproduce the above copyright 16165 * notice, this list of conditions and the following disclaimer in 16166 * the documentation and/or other materials provided with the 16167 * distribution. 16168 * 16169 * 3. All advertising materials mentioning features or use of this 16170 * software must display the following acknowledgment: 16171 * "This product includes software developed by the OpenSSL Project 16172 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16173 * 16174 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16175 * endorse or promote products derived from this software without 16176 * prior written permission. For written permission, please contact 16177 * openssl-core@openssl.org. 16178 * 16179 * 5. Products derived from this software may not be called "OpenSSL" 16180 * nor may "OpenSSL" appear in their names without prior written 16181 * permission of the OpenSSL Project. 16182 * 16183 * 6. Redistributions of any form whatsoever must retain the following 16184 * acknowledgment: 16185 * "This product includes software developed by the OpenSSL Project 16186 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16187 * 16188 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16189 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16190 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16191 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16192 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16193 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16194 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16195 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16196 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16197 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16198 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16199 * OF THE POSSIBILITY OF SUCH DAMAGE. 16200 * ==================================================================== 16201 * 16202 * This product includes cryptographic software written by Eric Young 16203 * (eay@cryptsoft.com). This product includes software written by Tim 16204 * Hudson (tjh@cryptsoft.com). 16205 * 16206 */ 16207 /* ==================================================================== 16208 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16209 * 16210 * Portions of the attached software ("Contribution") are developed by 16211 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16212 * 16213 * The Contribution is licensed pursuant to the Eric Young open source 16214 * license provided above. 16215 * 16216 * The binary polynomial arithmetic software is originally written by 16217 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16218 * 16219 */ 16220 # 82 "/usr/include/openssl/ecdh.h" 2 3 4 16221 # 90 "/usr/include/openssl/ecdh.h" 3 4 16222 const ECDH_METHOD *ECDH_OpenSSL(void); 16223 16224 void ECDH_set_default_method(const ECDH_METHOD *); 16225 const ECDH_METHOD *ECDH_get_default_method(void); 16226 int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); 16227 16228 int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, 16229 EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, 16230 void *out, size_t *outlen)); 16231 16232 int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 16233 *new_func, CRYPTO_EX_dup *dup_func, 16234 CRYPTO_EX_free *free_func); 16235 int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); 16236 void *ECDH_get_ex_data(EC_KEY *d, int idx); 16237 16238 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, 16239 const unsigned char *Z, size_t Zlen, 16240 const unsigned char *sinfo, size_t sinfolen, 16241 const EVP_MD *md); 16242 16243 /* BEGIN ERROR CODES */ 16244 /* 16245 * The following lines are auto generated by the script mkerr.pl. Any changes 16246 * made after this point may be overwritten when the script is next run. 16247 */ 16248 void ERR_load_ECDH_strings(void); 16249 16250 /* Error codes for the ECDH functions. */ 16251 16252 /* Function codes. */ 16253 16254 16255 16256 16257 /* Reason codes. */ 16258 # 92 "/usr/include/openssl/x509.h" 2 3 4 16259 16260 16261 16262 16263 # 1 "/usr/include/openssl/rsa.h" 1 3 4 16264 /* crypto/rsa/rsa.h */ 16265 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16266 * All rights reserved. 16267 * 16268 * This package is an SSL implementation written 16269 * by Eric Young (eay@cryptsoft.com). 16270 * The implementation was written so as to conform with Netscapes SSL. 16271 * 16272 * This library is free for commercial and non-commercial use as long as 16273 * the following conditions are aheared to. The following conditions 16274 * apply to all code found in this distribution, be it the RC4, RSA, 16275 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16276 * included with this distribution is covered by the same copyright terms 16277 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16278 * 16279 * Copyright remains Eric Young's, and as such any Copyright notices in 16280 * the code are not to be removed. 16281 * If this package is used in a product, Eric Young should be given attribution 16282 * as the author of the parts of the library used. 16283 * This can be in the form of a textual message at program startup or 16284 * in documentation (online or textual) provided with the package. 16285 * 16286 * Redistribution and use in source and binary forms, with or without 16287 * modification, are permitted provided that the following conditions 16288 * are met: 16289 * 1. Redistributions of source code must retain the copyright 16290 * notice, this list of conditions and the following disclaimer. 16291 * 2. Redistributions in binary form must reproduce the above copyright 16292 * notice, this list of conditions and the following disclaimer in the 16293 * documentation and/or other materials provided with the distribution. 16294 * 3. All advertising materials mentioning features or use of this software 16295 * must display the following acknowledgement: 16296 * "This product includes cryptographic software written by 16297 * Eric Young (eay@cryptsoft.com)" 16298 * The word 'cryptographic' can be left out if the rouines from the library 16299 * being used are not cryptographic related :-). 16300 * 4. If you include any Windows specific code (or a derivative thereof) from 16301 * the apps directory (application code) you must include an acknowledgement: 16302 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16303 * 16304 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16305 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16306 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16307 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16308 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16309 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16310 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16311 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16312 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16313 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16314 * SUCH DAMAGE. 16315 * 16316 * The licence and distribution terms for any publically available version or 16317 * derivative of this code cannot be changed. i.e. this code cannot simply be 16318 * copied and put under another distribution licence 16319 * [including the GNU Public Licence.] 16320 */ 16321 16322 16323 16324 16325 # 1 "/usr/include/openssl/asn1.h" 1 3 4 16326 /* crypto/asn1/asn1.h */ 16327 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16328 * All rights reserved. 16329 * 16330 * This package is an SSL implementation written 16331 * by Eric Young (eay@cryptsoft.com). 16332 * The implementation was written so as to conform with Netscapes SSL. 16333 * 16334 * This library is free for commercial and non-commercial use as long as 16335 * the following conditions are aheared to. The following conditions 16336 * apply to all code found in this distribution, be it the RC4, RSA, 16337 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16338 * included with this distribution is covered by the same copyright terms 16339 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16340 * 16341 * Copyright remains Eric Young's, and as such any Copyright notices in 16342 * the code are not to be removed. 16343 * If this package is used in a product, Eric Young should be given attribution 16344 * as the author of the parts of the library used. 16345 * This can be in the form of a textual message at program startup or 16346 * in documentation (online or textual) provided with the package. 16347 * 16348 * Redistribution and use in source and binary forms, with or without 16349 * modification, are permitted provided that the following conditions 16350 * are met: 16351 * 1. Redistributions of source code must retain the copyright 16352 * notice, this list of conditions and the following disclaimer. 16353 * 2. Redistributions in binary form must reproduce the above copyright 16354 * notice, this list of conditions and the following disclaimer in the 16355 * documentation and/or other materials provided with the distribution. 16356 * 3. All advertising materials mentioning features or use of this software 16357 * must display the following acknowledgement: 16358 * "This product includes cryptographic software written by 16359 * Eric Young (eay@cryptsoft.com)" 16360 * The word 'cryptographic' can be left out if the rouines from the library 16361 * being used are not cryptographic related :-). 16362 * 4. If you include any Windows specific code (or a derivative thereof) from 16363 * the apps directory (application code) you must include an acknowledgement: 16364 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16365 * 16366 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16367 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16368 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16369 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16370 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16371 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16372 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16373 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16374 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16375 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16376 * SUCH DAMAGE. 16377 * 16378 * The licence and distribution terms for any publically available version or 16379 * derivative of this code cannot be changed. i.e. this code cannot simply be 16380 * copied and put under another distribution licence 16381 * [including the GNU Public Licence.] 16382 */ 16383 # 63 "/usr/include/openssl/rsa.h" 2 3 4 16384 16385 16386 # 1 "/usr/include/openssl/bio.h" 1 3 4 16387 /* crypto/bio/bio.h */ 16388 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16389 * All rights reserved. 16390 * 16391 * This package is an SSL implementation written 16392 * by Eric Young (eay@cryptsoft.com). 16393 * The implementation was written so as to conform with Netscapes SSL. 16394 * 16395 * This library is free for commercial and non-commercial use as long as 16396 * the following conditions are aheared to. The following conditions 16397 * apply to all code found in this distribution, be it the RC4, RSA, 16398 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16399 * included with this distribution is covered by the same copyright terms 16400 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16401 * 16402 * Copyright remains Eric Young's, and as such any Copyright notices in 16403 * the code are not to be removed. 16404 * If this package is used in a product, Eric Young should be given attribution 16405 * as the author of the parts of the library used. 16406 * This can be in the form of a textual message at program startup or 16407 * in documentation (online or textual) provided with the package. 16408 * 16409 * Redistribution and use in source and binary forms, with or without 16410 * modification, are permitted provided that the following conditions 16411 * are met: 16412 * 1. Redistributions of source code must retain the copyright 16413 * notice, this list of conditions and the following disclaimer. 16414 * 2. Redistributions in binary form must reproduce the above copyright 16415 * notice, this list of conditions and the following disclaimer in the 16416 * documentation and/or other materials provided with the distribution. 16417 * 3. All advertising materials mentioning features or use of this software 16418 * must display the following acknowledgement: 16419 * "This product includes cryptographic software written by 16420 * Eric Young (eay@cryptsoft.com)" 16421 * The word 'cryptographic' can be left out if the rouines from the library 16422 * being used are not cryptographic related :-). 16423 * 4. If you include any Windows specific code (or a derivative thereof) from 16424 * the apps directory (application code) you must include an acknowledgement: 16425 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16426 * 16427 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16428 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16429 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16430 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16431 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16432 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16433 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16434 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16435 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16436 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16437 * SUCH DAMAGE. 16438 * 16439 * The licence and distribution terms for any publically available version or 16440 * derivative of this code cannot be changed. i.e. this code cannot simply be 16441 * copied and put under another distribution licence 16442 * [including the GNU Public Licence.] 16443 */ 16444 # 66 "/usr/include/openssl/rsa.h" 2 3 4 16445 16446 # 1 "/usr/include/openssl/crypto.h" 1 3 4 16447 /* crypto/crypto.h */ 16448 /* ==================================================================== 16449 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 16450 * 16451 * Redistribution and use in source and binary forms, with or without 16452 * modification, are permitted provided that the following conditions 16453 * are met: 16454 * 16455 * 1. Redistributions of source code must retain the above copyright 16456 * notice, this list of conditions and the following disclaimer. 16457 * 16458 * 2. Redistributions in binary form must reproduce the above copyright 16459 * notice, this list of conditions and the following disclaimer in 16460 * the documentation and/or other materials provided with the 16461 * distribution. 16462 * 16463 * 3. All advertising materials mentioning features or use of this 16464 * software must display the following acknowledgment: 16465 * "This product includes software developed by the OpenSSL Project 16466 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16467 * 16468 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16469 * endorse or promote products derived from this software without 16470 * prior written permission. For written permission, please contact 16471 * openssl-core@openssl.org. 16472 * 16473 * 5. Products derived from this software may not be called "OpenSSL" 16474 * nor may "OpenSSL" appear in their names without prior written 16475 * permission of the OpenSSL Project. 16476 * 16477 * 6. Redistributions of any form whatsoever must retain the following 16478 * acknowledgment: 16479 * "This product includes software developed by the OpenSSL Project 16480 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16481 * 16482 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16483 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16484 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16485 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16486 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16487 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16488 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16489 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16490 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16491 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16492 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16493 * OF THE POSSIBILITY OF SUCH DAMAGE. 16494 * ==================================================================== 16495 * 16496 * This product includes cryptographic software written by Eric Young 16497 * (eay@cryptsoft.com). This product includes software written by Tim 16498 * Hudson (tjh@cryptsoft.com). 16499 * 16500 */ 16501 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16502 * All rights reserved. 16503 * 16504 * This package is an SSL implementation written 16505 * by Eric Young (eay@cryptsoft.com). 16506 * The implementation was written so as to conform with Netscapes SSL. 16507 * 16508 * This library is free for commercial and non-commercial use as long as 16509 * the following conditions are aheared to. The following conditions 16510 * apply to all code found in this distribution, be it the RC4, RSA, 16511 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16512 * included with this distribution is covered by the same copyright terms 16513 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16514 * 16515 * Copyright remains Eric Young's, and as such any Copyright notices in 16516 * the code are not to be removed. 16517 * If this package is used in a product, Eric Young should be given attribution 16518 * as the author of the parts of the library used. 16519 * This can be in the form of a textual message at program startup or 16520 * in documentation (online or textual) provided with the package. 16521 * 16522 * Redistribution and use in source and binary forms, with or without 16523 * modification, are permitted provided that the following conditions 16524 * are met: 16525 * 1. Redistributions of source code must retain the copyright 16526 * notice, this list of conditions and the following disclaimer. 16527 * 2. Redistributions in binary form must reproduce the above copyright 16528 * notice, this list of conditions and the following disclaimer in the 16529 * documentation and/or other materials provided with the distribution. 16530 * 3. All advertising materials mentioning features or use of this software 16531 * must display the following acknowledgement: 16532 * "This product includes cryptographic software written by 16533 * Eric Young (eay@cryptsoft.com)" 16534 * The word 'cryptographic' can be left out if the rouines from the library 16535 * being used are not cryptographic related :-). 16536 * 4. If you include any Windows specific code (or a derivative thereof) from 16537 * the apps directory (application code) you must include an acknowledgement: 16538 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16539 * 16540 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16541 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16542 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16543 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16544 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16545 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16546 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16547 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16548 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16549 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16550 * SUCH DAMAGE. 16551 * 16552 * The licence and distribution terms for any publically available version or 16553 * derivative of this code cannot be changed. i.e. this code cannot simply be 16554 * copied and put under another distribution licence 16555 * [including the GNU Public Licence.] 16556 */ 16557 /* ==================================================================== 16558 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16559 * ECDH support in OpenSSL originally developed by 16560 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 16561 */ 16562 # 68 "/usr/include/openssl/rsa.h" 2 3 4 16563 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 16564 /* ==================================================================== 16565 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 16566 * 16567 * Redistribution and use in source and binary forms, with or without 16568 * modification, are permitted provided that the following conditions 16569 * are met: 16570 * 16571 * 1. Redistributions of source code must retain the above copyright 16572 * notice, this list of conditions and the following disclaimer. 16573 * 16574 * 2. Redistributions in binary form must reproduce the above copyright 16575 * notice, this list of conditions and the following disclaimer in 16576 * the documentation and/or other materials provided with the 16577 * distribution. 16578 * 16579 * 3. All advertising materials mentioning features or use of this 16580 * software must display the following acknowledgment: 16581 * "This product includes software developed by the OpenSSL Project 16582 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16583 * 16584 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16585 * endorse or promote products derived from this software without 16586 * prior written permission. For written permission, please contact 16587 * openssl-core@openssl.org. 16588 * 16589 * 5. Products derived from this software may not be called "OpenSSL" 16590 * nor may "OpenSSL" appear in their names without prior written 16591 * permission of the OpenSSL Project. 16592 * 16593 * 6. Redistributions of any form whatsoever must retain the following 16594 * acknowledgment: 16595 * "This product includes software developed by the OpenSSL Project 16596 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16597 * 16598 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16599 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16600 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16601 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16602 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16603 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16604 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16605 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16606 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16607 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16608 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16609 * OF THE POSSIBILITY OF SUCH DAMAGE. 16610 * ==================================================================== 16611 * 16612 * This product includes cryptographic software written by Eric Young 16613 * (eay@cryptsoft.com). This product includes software written by Tim 16614 * Hudson (tjh@cryptsoft.com). 16615 * 16616 */ 16617 # 69 "/usr/include/openssl/rsa.h" 2 3 4 16618 16619 # 1 "/usr/include/openssl/bn.h" 1 3 4 16620 /* crypto/bn/bn.h */ 16621 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 16622 * All rights reserved. 16623 * 16624 * This package is an SSL implementation written 16625 * by Eric Young (eay@cryptsoft.com). 16626 * The implementation was written so as to conform with Netscapes SSL. 16627 * 16628 * This library is free for commercial and non-commercial use as long as 16629 * the following conditions are aheared to. The following conditions 16630 * apply to all code found in this distribution, be it the RC4, RSA, 16631 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16632 * included with this distribution is covered by the same copyright terms 16633 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16634 * 16635 * Copyright remains Eric Young's, and as such any Copyright notices in 16636 * the code are not to be removed. 16637 * If this package is used in a product, Eric Young should be given attribution 16638 * as the author of the parts of the library used. 16639 * This can be in the form of a textual message at program startup or 16640 * in documentation (online or textual) provided with the package. 16641 * 16642 * Redistribution and use in source and binary forms, with or without 16643 * modification, are permitted provided that the following conditions 16644 * are met: 16645 * 1. Redistributions of source code must retain the copyright 16646 * notice, this list of conditions and the following disclaimer. 16647 * 2. Redistributions in binary form must reproduce the above copyright 16648 * notice, this list of conditions and the following disclaimer in the 16649 * documentation and/or other materials provided with the distribution. 16650 * 3. All advertising materials mentioning features or use of this software 16651 * must display the following acknowledgement: 16652 * "This product includes cryptographic software written by 16653 * Eric Young (eay@cryptsoft.com)" 16654 * The word 'cryptographic' can be left out if the rouines from the library 16655 * being used are not cryptographic related :-). 16656 * 4. If you include any Windows specific code (or a derivative thereof) from 16657 * the apps directory (application code) you must include an acknowledgement: 16658 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16659 * 16660 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16661 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16662 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16663 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16664 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16665 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16666 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16667 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16668 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16669 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16670 * SUCH DAMAGE. 16671 * 16672 * The licence and distribution terms for any publically available version or 16673 * derivative of this code cannot be changed. i.e. this code cannot simply be 16674 * copied and put under another distribution licence 16675 * [including the GNU Public Licence.] 16676 */ 16677 /* ==================================================================== 16678 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 16679 * 16680 * Redistribution and use in source and binary forms, with or without 16681 * modification, are permitted provided that the following conditions 16682 * are met: 16683 * 16684 * 1. Redistributions of source code must retain the above copyright 16685 * notice, this list of conditions and the following disclaimer. 16686 * 16687 * 2. Redistributions in binary form must reproduce the above copyright 16688 * notice, this list of conditions and the following disclaimer in 16689 * the documentation and/or other materials provided with the 16690 * distribution. 16691 * 16692 * 3. All advertising materials mentioning features or use of this 16693 * software must display the following acknowledgment: 16694 * "This product includes software developed by the OpenSSL Project 16695 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16696 * 16697 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16698 * endorse or promote products derived from this software without 16699 * prior written permission. For written permission, please contact 16700 * openssl-core@openssl.org. 16701 * 16702 * 5. Products derived from this software may not be called "OpenSSL" 16703 * nor may "OpenSSL" appear in their names without prior written 16704 * permission of the OpenSSL Project. 16705 * 16706 * 6. Redistributions of any form whatsoever must retain the following 16707 * acknowledgment: 16708 * "This product includes software developed by the OpenSSL Project 16709 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16710 * 16711 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16712 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16713 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16714 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16715 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16716 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16717 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16718 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16719 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16720 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16721 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16722 * OF THE POSSIBILITY OF SUCH DAMAGE. 16723 * ==================================================================== 16724 * 16725 * This product includes cryptographic software written by Eric Young 16726 * (eay@cryptsoft.com). This product includes software written by Tim 16727 * Hudson (tjh@cryptsoft.com). 16728 * 16729 */ 16730 /* ==================================================================== 16731 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16732 * 16733 * Portions of the attached software ("Contribution") are developed by 16734 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16735 * 16736 * The Contribution is licensed pursuant to the Eric Young open source 16737 * license provided above. 16738 * 16739 * The binary polynomial arithmetic software is originally written by 16740 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16741 * 16742 */ 16743 # 71 "/usr/include/openssl/rsa.h" 2 3 4 16744 # 81 "/usr/include/openssl/rsa.h" 3 4 16745 /* Declared already in ossl_typ.h */ 16746 /* typedef struct rsa_st RSA; */ 16747 /* typedef struct rsa_meth_st RSA_METHOD; */ 16748 16749 struct rsa_meth_st { 16750 const char *name; 16751 int (*rsa_pub_enc) (int flen, const unsigned char *from, 16752 unsigned char *to, RSA *rsa, int padding); 16753 int (*rsa_pub_dec) (int flen, const unsigned char *from, 16754 unsigned char *to, RSA *rsa, int padding); 16755 int (*rsa_priv_enc) (int flen, const unsigned char *from, 16756 unsigned char *to, RSA *rsa, int padding); 16757 int (*rsa_priv_dec) (int flen, const unsigned char *from, 16758 unsigned char *to, RSA *rsa, int padding); 16759 /* Can be null */ 16760 int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); 16761 /* Can be null */ 16762 int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 16763 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 16764 /* called at new */ 16765 int (*init) (RSA *rsa); 16766 /* called at free */ 16767 int (*finish) (RSA *rsa); 16768 /* RSA_METHOD_FLAG_* things */ 16769 int flags; 16770 /* may be needed! */ 16771 char *app_data; 16772 /* 16773 * New sign and verify functions: some libraries don't allow arbitrary 16774 * data to be signed/verified: this allows them to be used. Note: for 16775 * this to work the RSA_public_decrypt() and RSA_private_encrypt() should 16776 * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: 16777 * for backwards compatibility this functionality is only enabled if the 16778 * RSA_FLAG_SIGN_VER option is set in 'flags'. 16779 */ 16780 int (*rsa_sign) (int type, 16781 const unsigned char *m, unsigned int m_length, 16782 unsigned char *sigret, unsigned int *siglen, 16783 const RSA *rsa); 16784 int (*rsa_verify) (int dtype, const unsigned char *m, 16785 unsigned int m_length, const unsigned char *sigbuf, 16786 unsigned int siglen, const RSA *rsa); 16787 /* 16788 * If this callback is NULL, the builtin software RSA key-gen will be 16789 * used. This is for behavioural compatibility whilst the code gets 16790 * rewired, but one day it would be nice to assume there are no such 16791 * things as "builtin software" implementations. 16792 */ 16793 int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 16794 }; 16795 16796 struct rsa_st { 16797 /* 16798 * The first parameter is used to pickup errors where this is passed 16799 * instead of aEVP_PKEY, it is set to 0 16800 */ 16801 int pad; 16802 long version; 16803 const RSA_METHOD *meth; 16804 /* functional reference if 'meth' is ENGINE-provided */ 16805 ENGINE *engine; 16806 BIGNUM *n; 16807 BIGNUM *e; 16808 BIGNUM *d; 16809 BIGNUM *p; 16810 BIGNUM *q; 16811 BIGNUM *dmp1; 16812 BIGNUM *dmq1; 16813 BIGNUM *iqmp; 16814 /* be careful using this if the RSA structure is shared */ 16815 CRYPTO_EX_DATA ex_data; 16816 int references; 16817 int flags; 16818 /* Used to cache montgomery values */ 16819 BN_MONT_CTX *_method_mod_n; 16820 BN_MONT_CTX *_method_mod_p; 16821 BN_MONT_CTX *_method_mod_q; 16822 /* 16823 * all BIGNUM values are actually in the following data, if it is not 16824 * NULL 16825 */ 16826 char *bignum_data; 16827 BN_BLINDING *blinding; 16828 BN_BLINDING *mt_blinding; 16829 }; 16830 # 176 "/usr/include/openssl/rsa.h" 3 4 16831 /* exponent limit enforced for "large" modulus only */ 16832 # 190 "/usr/include/openssl/rsa.h" 3 4 16833 /* 16834 * This flag means the private key operations will be handled by rsa_mod_exp 16835 * and that they do not depend on the private key components being present: 16836 * for example a key stored in external hardware. Without this flag 16837 * bn_mod_exp gets called when private key components are absent. 16838 */ 16839 16840 16841 /* 16842 * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify 16843 * functions. 16844 */ 16845 16846 16847 /* 16848 * new with 0.9.6j and 0.9.7b; the built-in 16849 * RSA implementation now uses blinding by 16850 * default (ignoring RSA_FLAG_BLINDING), 16851 * but other engines might not need it 16852 */ 16853 16854 /* 16855 * new with 0.9.8f; the built-in RSA 16856 * implementation now uses constant time 16857 * operations by default in private key operations, 16858 * e.g., constant time modular exponentiation, 16859 * modular inverse without leaking branches, 16860 * division without leaking branches. This 16861 * flag disables these constant time 16862 * operations and results in faster RSA 16863 * private key operations. 16864 */ 16865 # 312 "/usr/include/openssl/rsa.h" 3 4 16866 /* EVP_PKEY_ only */ 16867 16868 16869 16870 16871 16872 16873 16874 RSA *RSA_new(void); 16875 RSA *RSA_new_method(ENGINE *engine); 16876 int RSA_size(const RSA *rsa); 16877 16878 /* Deprecated version */ 16879 16880 RSA *RSA_generate_key(int bits, unsigned long e, void 16881 (*callback) (int, int, void *), void *cb_arg); 16882 16883 16884 /* New version */ 16885 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 16886 16887 int RSA_check_key(const RSA *); 16888 /* next 4 return -1 on error */ 16889 int RSA_public_encrypt(int flen, const unsigned char *from, 16890 unsigned char *to, RSA *rsa, int padding); 16891 int RSA_private_encrypt(int flen, const unsigned char *from, 16892 unsigned char *to, RSA *rsa, int padding); 16893 int RSA_public_decrypt(int flen, const unsigned char *from, 16894 unsigned char *to, RSA *rsa, int padding); 16895 int RSA_private_decrypt(int flen, const unsigned char *from, 16896 unsigned char *to, RSA *rsa, int padding); 16897 void RSA_free(RSA *r); 16898 /* "up" the RSA object's reference count */ 16899 int RSA_up_ref(RSA *r); 16900 16901 int RSA_flags(const RSA *r); 16902 16903 void RSA_set_default_method(const RSA_METHOD *meth); 16904 const RSA_METHOD *RSA_get_default_method(void); 16905 const RSA_METHOD *RSA_get_method(const RSA *rsa); 16906 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); 16907 16908 /* This function needs the memory locking malloc callbacks to be installed */ 16909 int RSA_memory_lock(RSA *r); 16910 16911 /* these are the actual SSLeay RSA functions */ 16912 const RSA_METHOD *RSA_PKCS1_SSLeay(void); 16913 16914 const RSA_METHOD *RSA_null_method(void); 16915 16916 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; 16917 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; 16918 16919 typedef struct rsa_pss_params_st { 16920 X509_ALGOR *hashAlgorithm; 16921 X509_ALGOR *maskGenAlgorithm; 16922 ASN1_INTEGER *saltLength; 16923 ASN1_INTEGER *trailerField; 16924 } RSA_PSS_PARAMS; 16925 16926 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; 16927 16928 typedef struct rsa_oaep_params_st { 16929 X509_ALGOR *hashFunc; 16930 X509_ALGOR *maskGenFunc; 16931 X509_ALGOR *pSourceFunc; 16932 } RSA_OAEP_PARAMS; 16933 16934 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; 16935 16936 16937 int RSA_print_fp(FILE *fp, const RSA *r, int offset); 16938 16939 16940 16941 int RSA_print(BIO *bp, const RSA *r, int offset); 16942 16943 16944 16945 int i2d_RSA_NET(const RSA *a, unsigned char **pp, 16946 int (*cb) (char *buf, int len, const char *prompt, 16947 int verify), int sgckey); 16948 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, 16949 int (*cb) (char *buf, int len, const char *prompt, 16950 int verify), int sgckey); 16951 16952 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, 16953 int (*cb) (char *buf, int len, const char *prompt, 16954 int verify)); 16955 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, 16956 int (*cb) (char *buf, int len, const char *prompt, 16957 int verify)); 16958 16959 16960 /* 16961 * The following 2 functions sign and verify a X509_SIG ASN1 object inside 16962 * PKCS#1 padded RSA encryption 16963 */ 16964 int RSA_sign(int type, const unsigned char *m, unsigned int m_length, 16965 unsigned char *sigret, unsigned int *siglen, RSA *rsa); 16966 int RSA_verify(int type, const unsigned char *m, unsigned int m_length, 16967 const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); 16968 16969 /* 16970 * The following 2 function sign and verify a ASN1_OCTET_STRING object inside 16971 * PKCS#1 padded RSA encryption 16972 */ 16973 int RSA_sign_ASN1_OCTET_STRING(int type, 16974 const unsigned char *m, unsigned int m_length, 16975 unsigned char *sigret, unsigned int *siglen, 16976 RSA *rsa); 16977 int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, 16978 unsigned int m_length, unsigned char *sigbuf, 16979 unsigned int siglen, RSA *rsa); 16980 16981 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); 16982 void RSA_blinding_off(RSA *rsa); 16983 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); 16984 16985 int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, 16986 const unsigned char *f, int fl); 16987 int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, 16988 const unsigned char *f, int fl, 16989 int rsa_len); 16990 int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, 16991 const unsigned char *f, int fl); 16992 int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, 16993 const unsigned char *f, int fl, 16994 int rsa_len); 16995 int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, 16996 long seedlen, const EVP_MD *dgst); 16997 int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, 16998 const unsigned char *f, int fl, 16999 const unsigned char *p, int pl); 17000 int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, 17001 const unsigned char *f, int fl, int rsa_len, 17002 const unsigned char *p, int pl); 17003 int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 17004 const unsigned char *from, int flen, 17005 const unsigned char *param, int plen, 17006 const EVP_MD *md, const EVP_MD *mgf1md); 17007 int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 17008 const unsigned char *from, int flen, 17009 int num, const unsigned char *param, 17010 int plen, const EVP_MD *md, 17011 const EVP_MD *mgf1md); 17012 int RSA_padding_add_SSLv23(unsigned char *to, int tlen, 17013 const unsigned char *f, int fl); 17014 int RSA_padding_check_SSLv23(unsigned char *to, int tlen, 17015 const unsigned char *f, int fl, int rsa_len); 17016 int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, 17017 int fl); 17018 int RSA_padding_check_none(unsigned char *to, int tlen, 17019 const unsigned char *f, int fl, int rsa_len); 17020 int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, 17021 int fl); 17022 int RSA_padding_check_X931(unsigned char *to, int tlen, 17023 const unsigned char *f, int fl, int rsa_len); 17024 int RSA_X931_hash_id(int nid); 17025 17026 int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, 17027 const EVP_MD *Hash, const unsigned char *EM, 17028 int sLen); 17029 int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, 17030 const unsigned char *mHash, const EVP_MD *Hash, 17031 int sLen); 17032 17033 int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, 17034 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 17035 const unsigned char *EM, int sLen); 17036 17037 int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, 17038 const unsigned char *mHash, 17039 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 17040 int sLen); 17041 17042 int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 17043 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 17044 int RSA_set_ex_data(RSA *r, int idx, void *arg); 17045 void *RSA_get_ex_data(const RSA *r, int idx); 17046 17047 RSA *RSAPublicKey_dup(RSA *rsa); 17048 RSA *RSAPrivateKey_dup(RSA *rsa); 17049 17050 /* 17051 * If this flag is set the RSA method is FIPS compliant and can be used in 17052 * FIPS mode. This is set in the validated module method. If an application 17053 * sets this flag in its own methods it is its responsibility to ensure the 17054 * result is compliant. 17055 */ 17056 17057 17058 17059 /* 17060 * If this flag is set the operations normally disabled in FIPS mode are 17061 * permitted it is then the applications responsibility to ensure that the 17062 * usage is compliant. 17063 */ 17064 17065 17066 /* 17067 * Application has decided PRNG is good enough to generate a key: don't 17068 * check. 17069 */ 17070 17071 17072 /* BEGIN ERROR CODES */ 17073 /* 17074 * The following lines are auto generated by the script mkerr.pl. Any changes 17075 * made after this point may be overwritten when the script is next run. 17076 */ 17077 void ERR_load_RSA_strings(void); 17078 17079 /* Error codes for the RSA functions. */ 17080 17081 /* Function codes. */ 17082 # 592 "/usr/include/openssl/rsa.h" 3 4 17083 /* Reason codes. */ 17084 # 97 "/usr/include/openssl/x509.h" 2 3 4 17085 17086 17087 # 1 "/usr/include/openssl/dsa.h" 1 3 4 17088 /* crypto/dsa/dsa.h */ 17089 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17090 * All rights reserved. 17091 * 17092 * This package is an SSL implementation written 17093 * by Eric Young (eay@cryptsoft.com). 17094 * The implementation was written so as to conform with Netscapes SSL. 17095 * 17096 * This library is free for commercial and non-commercial use as long as 17097 * the following conditions are aheared to. The following conditions 17098 * apply to all code found in this distribution, be it the RC4, RSA, 17099 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17100 * included with this distribution is covered by the same copyright terms 17101 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17102 * 17103 * Copyright remains Eric Young's, and as such any Copyright notices in 17104 * the code are not to be removed. 17105 * If this package is used in a product, Eric Young should be given attribution 17106 * as the author of the parts of the library used. 17107 * This can be in the form of a textual message at program startup or 17108 * in documentation (online or textual) provided with the package. 17109 * 17110 * Redistribution and use in source and binary forms, with or without 17111 * modification, are permitted provided that the following conditions 17112 * are met: 17113 * 1. Redistributions of source code must retain the copyright 17114 * notice, this list of conditions and the following disclaimer. 17115 * 2. Redistributions in binary form must reproduce the above copyright 17116 * notice, this list of conditions and the following disclaimer in the 17117 * documentation and/or other materials provided with the distribution. 17118 * 3. All advertising materials mentioning features or use of this software 17119 * must display the following acknowledgement: 17120 * "This product includes cryptographic software written by 17121 * Eric Young (eay@cryptsoft.com)" 17122 * The word 'cryptographic' can be left out if the rouines from the library 17123 * being used are not cryptographic related :-). 17124 * 4. If you include any Windows specific code (or a derivative thereof) from 17125 * the apps directory (application code) you must include an acknowledgement: 17126 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17127 * 17128 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17129 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17130 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17131 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17132 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17133 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17134 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17135 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17136 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17137 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17138 * SUCH DAMAGE. 17139 * 17140 * The licence and distribution terms for any publically available version or 17141 * derivative of this code cannot be changed. i.e. this code cannot simply be 17142 * copied and put under another distribution licence 17143 * [including the GNU Public Licence.] 17144 */ 17145 17146 /* 17147 * The DSS routines are based on patches supplied by 17148 * Steven Schoch <schoch@sheba.arc.nasa.gov>. He basically did the 17149 * work and I have just tweaked them a little to fit into my 17150 * stylistic vision for SSLeay :-) */ 17151 17152 17153 17154 17155 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 17156 /* e_os2.h */ 17157 /* ==================================================================== 17158 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 17159 * 17160 * Redistribution and use in source and binary forms, with or without 17161 * modification, are permitted provided that the following conditions 17162 * are met: 17163 * 17164 * 1. Redistributions of source code must retain the above copyright 17165 * notice, this list of conditions and the following disclaimer. 17166 * 17167 * 2. Redistributions in binary form must reproduce the above copyright 17168 * notice, this list of conditions and the following disclaimer in 17169 * the documentation and/or other materials provided with the 17170 * distribution. 17171 * 17172 * 3. All advertising materials mentioning features or use of this 17173 * software must display the following acknowledgment: 17174 * "This product includes software developed by the OpenSSL Project 17175 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17176 * 17177 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17178 * endorse or promote products derived from this software without 17179 * prior written permission. For written permission, please contact 17180 * openssl-core@openssl.org. 17181 * 17182 * 5. Products derived from this software may not be called "OpenSSL" 17183 * nor may "OpenSSL" appear in their names without prior written 17184 * permission of the OpenSSL Project. 17185 * 17186 * 6. Redistributions of any form whatsoever must retain the following 17187 * acknowledgment: 17188 * "This product includes software developed by the OpenSSL Project 17189 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17190 * 17191 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17192 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17193 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17194 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17195 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17196 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17197 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17198 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17199 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17200 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17201 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17202 * OF THE POSSIBILITY OF SUCH DAMAGE. 17203 * ==================================================================== 17204 * 17205 * This product includes cryptographic software written by Eric Young 17206 * (eay@cryptsoft.com). This product includes software written by Tim 17207 * Hudson (tjh@cryptsoft.com). 17208 * 17209 */ 17210 17211 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 17212 /* opensslconf.h */ 17213 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 17214 17215 17216 17217 17218 /* OpenSSL was configured with the following options: */ 17219 # 108 "/usr/include/openssl/opensslconf.h" 3 4 17220 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 17221 asks for it. This is a transient feature that is provided for those 17222 who haven't had the time to do the appropriate changes in their 17223 applications. */ 17224 # 204 "/usr/include/openssl/opensslconf.h" 3 4 17225 /* crypto/opensslconf.h.in */ 17226 17227 /* Generate 80386 code? */ 17228 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 17229 # 69 "/usr/include/openssl/dsa.h" 2 3 4 17230 17231 17232 17233 17234 17235 17236 # 1 "/usr/include/openssl/bio.h" 1 3 4 17237 /* crypto/bio/bio.h */ 17238 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17239 * All rights reserved. 17240 * 17241 * This package is an SSL implementation written 17242 * by Eric Young (eay@cryptsoft.com). 17243 * The implementation was written so as to conform with Netscapes SSL. 17244 * 17245 * This library is free for commercial and non-commercial use as long as 17246 * the following conditions are aheared to. The following conditions 17247 * apply to all code found in this distribution, be it the RC4, RSA, 17248 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17249 * included with this distribution is covered by the same copyright terms 17250 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17251 * 17252 * Copyright remains Eric Young's, and as such any Copyright notices in 17253 * the code are not to be removed. 17254 * If this package is used in a product, Eric Young should be given attribution 17255 * as the author of the parts of the library used. 17256 * This can be in the form of a textual message at program startup or 17257 * in documentation (online or textual) provided with the package. 17258 * 17259 * Redistribution and use in source and binary forms, with or without 17260 * modification, are permitted provided that the following conditions 17261 * are met: 17262 * 1. Redistributions of source code must retain the copyright 17263 * notice, this list of conditions and the following disclaimer. 17264 * 2. Redistributions in binary form must reproduce the above copyright 17265 * notice, this list of conditions and the following disclaimer in the 17266 * documentation and/or other materials provided with the distribution. 17267 * 3. All advertising materials mentioning features or use of this software 17268 * must display the following acknowledgement: 17269 * "This product includes cryptographic software written by 17270 * Eric Young (eay@cryptsoft.com)" 17271 * The word 'cryptographic' can be left out if the rouines from the library 17272 * being used are not cryptographic related :-). 17273 * 4. If you include any Windows specific code (or a derivative thereof) from 17274 * the apps directory (application code) you must include an acknowledgement: 17275 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17276 * 17277 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17278 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17279 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17280 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17281 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17282 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17283 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17284 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17285 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17286 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17287 * SUCH DAMAGE. 17288 * 17289 * The licence and distribution terms for any publically available version or 17290 * derivative of this code cannot be changed. i.e. this code cannot simply be 17291 * copied and put under another distribution licence 17292 * [including the GNU Public Licence.] 17293 */ 17294 # 76 "/usr/include/openssl/dsa.h" 2 3 4 17295 17296 # 1 "/usr/include/openssl/crypto.h" 1 3 4 17297 /* crypto/crypto.h */ 17298 /* ==================================================================== 17299 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 17300 * 17301 * Redistribution and use in source and binary forms, with or without 17302 * modification, are permitted provided that the following conditions 17303 * are met: 17304 * 17305 * 1. Redistributions of source code must retain the above copyright 17306 * notice, this list of conditions and the following disclaimer. 17307 * 17308 * 2. Redistributions in binary form must reproduce the above copyright 17309 * notice, this list of conditions and the following disclaimer in 17310 * the documentation and/or other materials provided with the 17311 * distribution. 17312 * 17313 * 3. All advertising materials mentioning features or use of this 17314 * software must display the following acknowledgment: 17315 * "This product includes software developed by the OpenSSL Project 17316 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17317 * 17318 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17319 * endorse or promote products derived from this software without 17320 * prior written permission. For written permission, please contact 17321 * openssl-core@openssl.org. 17322 * 17323 * 5. Products derived from this software may not be called "OpenSSL" 17324 * nor may "OpenSSL" appear in their names without prior written 17325 * permission of the OpenSSL Project. 17326 * 17327 * 6. Redistributions of any form whatsoever must retain the following 17328 * acknowledgment: 17329 * "This product includes software developed by the OpenSSL Project 17330 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17331 * 17332 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17333 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17334 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17335 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17336 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17337 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17338 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17339 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17340 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17341 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17342 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17343 * OF THE POSSIBILITY OF SUCH DAMAGE. 17344 * ==================================================================== 17345 * 17346 * This product includes cryptographic software written by Eric Young 17347 * (eay@cryptsoft.com). This product includes software written by Tim 17348 * Hudson (tjh@cryptsoft.com). 17349 * 17350 */ 17351 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17352 * All rights reserved. 17353 * 17354 * This package is an SSL implementation written 17355 * by Eric Young (eay@cryptsoft.com). 17356 * The implementation was written so as to conform with Netscapes SSL. 17357 * 17358 * This library is free for commercial and non-commercial use as long as 17359 * the following conditions are aheared to. The following conditions 17360 * apply to all code found in this distribution, be it the RC4, RSA, 17361 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17362 * included with this distribution is covered by the same copyright terms 17363 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17364 * 17365 * Copyright remains Eric Young's, and as such any Copyright notices in 17366 * the code are not to be removed. 17367 * If this package is used in a product, Eric Young should be given attribution 17368 * as the author of the parts of the library used. 17369 * This can be in the form of a textual message at program startup or 17370 * in documentation (online or textual) provided with the package. 17371 * 17372 * Redistribution and use in source and binary forms, with or without 17373 * modification, are permitted provided that the following conditions 17374 * are met: 17375 * 1. Redistributions of source code must retain the copyright 17376 * notice, this list of conditions and the following disclaimer. 17377 * 2. Redistributions in binary form must reproduce the above copyright 17378 * notice, this list of conditions and the following disclaimer in the 17379 * documentation and/or other materials provided with the distribution. 17380 * 3. All advertising materials mentioning features or use of this software 17381 * must display the following acknowledgement: 17382 * "This product includes cryptographic software written by 17383 * Eric Young (eay@cryptsoft.com)" 17384 * The word 'cryptographic' can be left out if the rouines from the library 17385 * being used are not cryptographic related :-). 17386 * 4. If you include any Windows specific code (or a derivative thereof) from 17387 * the apps directory (application code) you must include an acknowledgement: 17388 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17389 * 17390 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17391 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17392 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17393 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17394 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17395 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17396 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17397 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17398 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17399 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17400 * SUCH DAMAGE. 17401 * 17402 * The licence and distribution terms for any publically available version or 17403 * derivative of this code cannot be changed. i.e. this code cannot simply be 17404 * copied and put under another distribution licence 17405 * [including the GNU Public Licence.] 17406 */ 17407 /* ==================================================================== 17408 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17409 * ECDH support in OpenSSL originally developed by 17410 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 17411 */ 17412 # 78 "/usr/include/openssl/dsa.h" 2 3 4 17413 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17414 /* ==================================================================== 17415 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17416 * 17417 * Redistribution and use in source and binary forms, with or without 17418 * modification, are permitted provided that the following conditions 17419 * are met: 17420 * 17421 * 1. Redistributions of source code must retain the above copyright 17422 * notice, this list of conditions and the following disclaimer. 17423 * 17424 * 2. Redistributions in binary form must reproduce the above copyright 17425 * notice, this list of conditions and the following disclaimer in 17426 * the documentation and/or other materials provided with the 17427 * distribution. 17428 * 17429 * 3. All advertising materials mentioning features or use of this 17430 * software must display the following acknowledgment: 17431 * "This product includes software developed by the OpenSSL Project 17432 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17433 * 17434 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17435 * endorse or promote products derived from this software without 17436 * prior written permission. For written permission, please contact 17437 * openssl-core@openssl.org. 17438 * 17439 * 5. Products derived from this software may not be called "OpenSSL" 17440 * nor may "OpenSSL" appear in their names without prior written 17441 * permission of the OpenSSL Project. 17442 * 17443 * 6. Redistributions of any form whatsoever must retain the following 17444 * acknowledgment: 17445 * "This product includes software developed by the OpenSSL Project 17446 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17447 * 17448 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17449 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17450 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17451 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17452 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17453 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17454 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17455 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17456 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17457 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17458 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17459 * OF THE POSSIBILITY OF SUCH DAMAGE. 17460 * ==================================================================== 17461 * 17462 * This product includes cryptographic software written by Eric Young 17463 * (eay@cryptsoft.com). This product includes software written by Tim 17464 * Hudson (tjh@cryptsoft.com). 17465 * 17466 */ 17467 # 79 "/usr/include/openssl/dsa.h" 2 3 4 17468 17469 17470 # 1 "/usr/include/openssl/bn.h" 1 3 4 17471 /* crypto/bn/bn.h */ 17472 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17473 * All rights reserved. 17474 * 17475 * This package is an SSL implementation written 17476 * by Eric Young (eay@cryptsoft.com). 17477 * The implementation was written so as to conform with Netscapes SSL. 17478 * 17479 * This library is free for commercial and non-commercial use as long as 17480 * the following conditions are aheared to. The following conditions 17481 * apply to all code found in this distribution, be it the RC4, RSA, 17482 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17483 * included with this distribution is covered by the same copyright terms 17484 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17485 * 17486 * Copyright remains Eric Young's, and as such any Copyright notices in 17487 * the code are not to be removed. 17488 * If this package is used in a product, Eric Young should be given attribution 17489 * as the author of the parts of the library used. 17490 * This can be in the form of a textual message at program startup or 17491 * in documentation (online or textual) provided with the package. 17492 * 17493 * Redistribution and use in source and binary forms, with or without 17494 * modification, are permitted provided that the following conditions 17495 * are met: 17496 * 1. Redistributions of source code must retain the copyright 17497 * notice, this list of conditions and the following disclaimer. 17498 * 2. Redistributions in binary form must reproduce the above copyright 17499 * notice, this list of conditions and the following disclaimer in the 17500 * documentation and/or other materials provided with the distribution. 17501 * 3. All advertising materials mentioning features or use of this software 17502 * must display the following acknowledgement: 17503 * "This product includes cryptographic software written by 17504 * Eric Young (eay@cryptsoft.com)" 17505 * The word 'cryptographic' can be left out if the rouines from the library 17506 * being used are not cryptographic related :-). 17507 * 4. If you include any Windows specific code (or a derivative thereof) from 17508 * the apps directory (application code) you must include an acknowledgement: 17509 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17510 * 17511 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17512 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17513 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17514 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17515 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17516 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17517 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17518 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17519 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17520 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17521 * SUCH DAMAGE. 17522 * 17523 * The licence and distribution terms for any publically available version or 17524 * derivative of this code cannot be changed. i.e. this code cannot simply be 17525 * copied and put under another distribution licence 17526 * [including the GNU Public Licence.] 17527 */ 17528 /* ==================================================================== 17529 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17530 * 17531 * Redistribution and use in source and binary forms, with or without 17532 * modification, are permitted provided that the following conditions 17533 * are met: 17534 * 17535 * 1. Redistributions of source code must retain the above copyright 17536 * notice, this list of conditions and the following disclaimer. 17537 * 17538 * 2. Redistributions in binary form must reproduce the above copyright 17539 * notice, this list of conditions and the following disclaimer in 17540 * the documentation and/or other materials provided with the 17541 * distribution. 17542 * 17543 * 3. All advertising materials mentioning features or use of this 17544 * software must display the following acknowledgment: 17545 * "This product includes software developed by the OpenSSL Project 17546 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17547 * 17548 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17549 * endorse or promote products derived from this software without 17550 * prior written permission. For written permission, please contact 17551 * openssl-core@openssl.org. 17552 * 17553 * 5. Products derived from this software may not be called "OpenSSL" 17554 * nor may "OpenSSL" appear in their names without prior written 17555 * permission of the OpenSSL Project. 17556 * 17557 * 6. Redistributions of any form whatsoever must retain the following 17558 * acknowledgment: 17559 * "This product includes software developed by the OpenSSL Project 17560 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17561 * 17562 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17563 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17564 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17565 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17566 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17567 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17568 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17569 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17570 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17571 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17572 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17573 * OF THE POSSIBILITY OF SUCH DAMAGE. 17574 * ==================================================================== 17575 * 17576 * This product includes cryptographic software written by Eric Young 17577 * (eay@cryptsoft.com). This product includes software written by Tim 17578 * Hudson (tjh@cryptsoft.com). 17579 * 17580 */ 17581 /* ==================================================================== 17582 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17583 * 17584 * Portions of the attached software ("Contribution") are developed by 17585 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17586 * 17587 * The Contribution is licensed pursuant to the Eric Young open source 17588 * license provided above. 17589 * 17590 * The binary polynomial arithmetic software is originally written by 17591 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17592 * 17593 */ 17594 # 82 "/usr/include/openssl/dsa.h" 2 3 4 17595 17596 # 1 "/usr/include/openssl/dh.h" 1 3 4 17597 /* crypto/dh/dh.h */ 17598 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17599 * All rights reserved. 17600 * 17601 * This package is an SSL implementation written 17602 * by Eric Young (eay@cryptsoft.com). 17603 * The implementation was written so as to conform with Netscapes SSL. 17604 * 17605 * This library is free for commercial and non-commercial use as long as 17606 * the following conditions are aheared to. The following conditions 17607 * apply to all code found in this distribution, be it the RC4, RSA, 17608 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17609 * included with this distribution is covered by the same copyright terms 17610 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17611 * 17612 * Copyright remains Eric Young's, and as such any Copyright notices in 17613 * the code are not to be removed. 17614 * If this package is used in a product, Eric Young should be given attribution 17615 * as the author of the parts of the library used. 17616 * This can be in the form of a textual message at program startup or 17617 * in documentation (online or textual) provided with the package. 17618 * 17619 * Redistribution and use in source and binary forms, with or without 17620 * modification, are permitted provided that the following conditions 17621 * are met: 17622 * 1. Redistributions of source code must retain the copyright 17623 * notice, this list of conditions and the following disclaimer. 17624 * 2. Redistributions in binary form must reproduce the above copyright 17625 * notice, this list of conditions and the following disclaimer in the 17626 * documentation and/or other materials provided with the distribution. 17627 * 3. All advertising materials mentioning features or use of this software 17628 * must display the following acknowledgement: 17629 * "This product includes cryptographic software written by 17630 * Eric Young (eay@cryptsoft.com)" 17631 * The word 'cryptographic' can be left out if the rouines from the library 17632 * being used are not cryptographic related :-). 17633 * 4. If you include any Windows specific code (or a derivative thereof) from 17634 * the apps directory (application code) you must include an acknowledgement: 17635 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17636 * 17637 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17638 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17639 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17640 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17641 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17642 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17643 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17644 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17645 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17646 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17647 * SUCH DAMAGE. 17648 * 17649 * The licence and distribution terms for any publically available version or 17650 * derivative of this code cannot be changed. i.e. this code cannot simply be 17651 * copied and put under another distribution licence 17652 * [including the GNU Public Licence.] 17653 */ 17654 17655 17656 17657 17658 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 17659 /* e_os2.h */ 17660 /* ==================================================================== 17661 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 17662 * 17663 * Redistribution and use in source and binary forms, with or without 17664 * modification, are permitted provided that the following conditions 17665 * are met: 17666 * 17667 * 1. Redistributions of source code must retain the above copyright 17668 * notice, this list of conditions and the following disclaimer. 17669 * 17670 * 2. Redistributions in binary form must reproduce the above copyright 17671 * notice, this list of conditions and the following disclaimer in 17672 * the documentation and/or other materials provided with the 17673 * distribution. 17674 * 17675 * 3. All advertising materials mentioning features or use of this 17676 * software must display the following acknowledgment: 17677 * "This product includes software developed by the OpenSSL Project 17678 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17679 * 17680 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17681 * endorse or promote products derived from this software without 17682 * prior written permission. For written permission, please contact 17683 * openssl-core@openssl.org. 17684 * 17685 * 5. Products derived from this software may not be called "OpenSSL" 17686 * nor may "OpenSSL" appear in their names without prior written 17687 * permission of the OpenSSL Project. 17688 * 17689 * 6. Redistributions of any form whatsoever must retain the following 17690 * acknowledgment: 17691 * "This product includes software developed by the OpenSSL Project 17692 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17693 * 17694 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17695 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17696 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17697 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17698 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17699 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17700 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17701 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17702 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17703 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17704 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17705 * OF THE POSSIBILITY OF SUCH DAMAGE. 17706 * ==================================================================== 17707 * 17708 * This product includes cryptographic software written by Eric Young 17709 * (eay@cryptsoft.com). This product includes software written by Tim 17710 * Hudson (tjh@cryptsoft.com). 17711 * 17712 */ 17713 17714 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 17715 /* opensslconf.h */ 17716 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 17717 17718 17719 17720 17721 /* OpenSSL was configured with the following options: */ 17722 # 108 "/usr/include/openssl/opensslconf.h" 3 4 17723 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 17724 asks for it. This is a transient feature that is provided for those 17725 who haven't had the time to do the appropriate changes in their 17726 applications. */ 17727 # 204 "/usr/include/openssl/opensslconf.h" 3 4 17728 /* crypto/opensslconf.h.in */ 17729 17730 /* Generate 80386 code? */ 17731 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 17732 # 63 "/usr/include/openssl/dh.h" 2 3 4 17733 17734 17735 17736 17737 17738 17739 # 1 "/usr/include/openssl/bio.h" 1 3 4 17740 /* crypto/bio/bio.h */ 17741 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17742 * All rights reserved. 17743 * 17744 * This package is an SSL implementation written 17745 * by Eric Young (eay@cryptsoft.com). 17746 * The implementation was written so as to conform with Netscapes SSL. 17747 * 17748 * This library is free for commercial and non-commercial use as long as 17749 * the following conditions are aheared to. The following conditions 17750 * apply to all code found in this distribution, be it the RC4, RSA, 17751 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17752 * included with this distribution is covered by the same copyright terms 17753 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17754 * 17755 * Copyright remains Eric Young's, and as such any Copyright notices in 17756 * the code are not to be removed. 17757 * If this package is used in a product, Eric Young should be given attribution 17758 * as the author of the parts of the library used. 17759 * This can be in the form of a textual message at program startup or 17760 * in documentation (online or textual) provided with the package. 17761 * 17762 * Redistribution and use in source and binary forms, with or without 17763 * modification, are permitted provided that the following conditions 17764 * are met: 17765 * 1. Redistributions of source code must retain the copyright 17766 * notice, this list of conditions and the following disclaimer. 17767 * 2. Redistributions in binary form must reproduce the above copyright 17768 * notice, this list of conditions and the following disclaimer in the 17769 * documentation and/or other materials provided with the distribution. 17770 * 3. All advertising materials mentioning features or use of this software 17771 * must display the following acknowledgement: 17772 * "This product includes cryptographic software written by 17773 * Eric Young (eay@cryptsoft.com)" 17774 * The word 'cryptographic' can be left out if the rouines from the library 17775 * being used are not cryptographic related :-). 17776 * 4. If you include any Windows specific code (or a derivative thereof) from 17777 * the apps directory (application code) you must include an acknowledgement: 17778 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17779 * 17780 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17781 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17782 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17783 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17784 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17785 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17786 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17787 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17788 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17789 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17790 * SUCH DAMAGE. 17791 * 17792 * The licence and distribution terms for any publically available version or 17793 * derivative of this code cannot be changed. i.e. this code cannot simply be 17794 * copied and put under another distribution licence 17795 * [including the GNU Public Licence.] 17796 */ 17797 # 70 "/usr/include/openssl/dh.h" 2 3 4 17798 17799 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17800 /* ==================================================================== 17801 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17802 * 17803 * Redistribution and use in source and binary forms, with or without 17804 * modification, are permitted provided that the following conditions 17805 * are met: 17806 * 17807 * 1. Redistributions of source code must retain the above copyright 17808 * notice, this list of conditions and the following disclaimer. 17809 * 17810 * 2. Redistributions in binary form must reproduce the above copyright 17811 * notice, this list of conditions and the following disclaimer in 17812 * the documentation and/or other materials provided with the 17813 * distribution. 17814 * 17815 * 3. All advertising materials mentioning features or use of this 17816 * software must display the following acknowledgment: 17817 * "This product includes software developed by the OpenSSL Project 17818 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17819 * 17820 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17821 * endorse or promote products derived from this software without 17822 * prior written permission. For written permission, please contact 17823 * openssl-core@openssl.org. 17824 * 17825 * 5. Products derived from this software may not be called "OpenSSL" 17826 * nor may "OpenSSL" appear in their names without prior written 17827 * permission of the OpenSSL Project. 17828 * 17829 * 6. Redistributions of any form whatsoever must retain the following 17830 * acknowledgment: 17831 * "This product includes software developed by the OpenSSL Project 17832 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17833 * 17834 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17835 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17836 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17837 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17838 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17839 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17840 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17841 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17842 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17843 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17844 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17845 * OF THE POSSIBILITY OF SUCH DAMAGE. 17846 * ==================================================================== 17847 * 17848 * This product includes cryptographic software written by Eric Young 17849 * (eay@cryptsoft.com). This product includes software written by Tim 17850 * Hudson (tjh@cryptsoft.com). 17851 * 17852 */ 17853 # 72 "/usr/include/openssl/dh.h" 2 3 4 17854 17855 # 1 "/usr/include/openssl/bn.h" 1 3 4 17856 /* crypto/bn/bn.h */ 17857 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17858 * All rights reserved. 17859 * 17860 * This package is an SSL implementation written 17861 * by Eric Young (eay@cryptsoft.com). 17862 * The implementation was written so as to conform with Netscapes SSL. 17863 * 17864 * This library is free for commercial and non-commercial use as long as 17865 * the following conditions are aheared to. The following conditions 17866 * apply to all code found in this distribution, be it the RC4, RSA, 17867 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17868 * included with this distribution is covered by the same copyright terms 17869 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17870 * 17871 * Copyright remains Eric Young's, and as such any Copyright notices in 17872 * the code are not to be removed. 17873 * If this package is used in a product, Eric Young should be given attribution 17874 * as the author of the parts of the library used. 17875 * This can be in the form of a textual message at program startup or 17876 * in documentation (online or textual) provided with the package. 17877 * 17878 * Redistribution and use in source and binary forms, with or without 17879 * modification, are permitted provided that the following conditions 17880 * are met: 17881 * 1. Redistributions of source code must retain the copyright 17882 * notice, this list of conditions and the following disclaimer. 17883 * 2. Redistributions in binary form must reproduce the above copyright 17884 * notice, this list of conditions and the following disclaimer in the 17885 * documentation and/or other materials provided with the distribution. 17886 * 3. All advertising materials mentioning features or use of this software 17887 * must display the following acknowledgement: 17888 * "This product includes cryptographic software written by 17889 * Eric Young (eay@cryptsoft.com)" 17890 * The word 'cryptographic' can be left out if the rouines from the library 17891 * being used are not cryptographic related :-). 17892 * 4. If you include any Windows specific code (or a derivative thereof) from 17893 * the apps directory (application code) you must include an acknowledgement: 17894 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17895 * 17896 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17897 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17898 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17899 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17900 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17901 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17902 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17903 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17904 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17905 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17906 * SUCH DAMAGE. 17907 * 17908 * The licence and distribution terms for any publically available version or 17909 * derivative of this code cannot be changed. i.e. this code cannot simply be 17910 * copied and put under another distribution licence 17911 * [including the GNU Public Licence.] 17912 */ 17913 /* ==================================================================== 17914 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17915 * 17916 * Redistribution and use in source and binary forms, with or without 17917 * modification, are permitted provided that the following conditions 17918 * are met: 17919 * 17920 * 1. Redistributions of source code must retain the above copyright 17921 * notice, this list of conditions and the following disclaimer. 17922 * 17923 * 2. Redistributions in binary form must reproduce the above copyright 17924 * notice, this list of conditions and the following disclaimer in 17925 * the documentation and/or other materials provided with the 17926 * distribution. 17927 * 17928 * 3. All advertising materials mentioning features or use of this 17929 * software must display the following acknowledgment: 17930 * "This product includes software developed by the OpenSSL Project 17931 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17932 * 17933 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17934 * endorse or promote products derived from this software without 17935 * prior written permission. For written permission, please contact 17936 * openssl-core@openssl.org. 17937 * 17938 * 5. Products derived from this software may not be called "OpenSSL" 17939 * nor may "OpenSSL" appear in their names without prior written 17940 * permission of the OpenSSL Project. 17941 * 17942 * 6. Redistributions of any form whatsoever must retain the following 17943 * acknowledgment: 17944 * "This product includes software developed by the OpenSSL Project 17945 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17946 * 17947 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17948 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17949 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17950 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17951 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17952 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17953 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17954 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17955 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17956 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17957 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17958 * OF THE POSSIBILITY OF SUCH DAMAGE. 17959 * ==================================================================== 17960 * 17961 * This product includes cryptographic software written by Eric Young 17962 * (eay@cryptsoft.com). This product includes software written by Tim 17963 * Hudson (tjh@cryptsoft.com). 17964 * 17965 */ 17966 /* ==================================================================== 17967 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17968 * 17969 * Portions of the attached software ("Contribution") are developed by 17970 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17971 * 17972 * The Contribution is licensed pursuant to the Eric Young open source 17973 * license provided above. 17974 * 17975 * The binary polynomial arithmetic software is originally written by 17976 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17977 * 17978 */ 17979 # 74 "/usr/include/openssl/dh.h" 2 3 4 17980 # 82 "/usr/include/openssl/dh.h" 3 4 17981 /* 17982 * new with 0.9.7h; the built-in DH 17983 * implementation now uses constant time 17984 * modular exponentiation for secret exponents 17985 * by default. This flag causes the 17986 * faster variable sliding window method to 17987 * be used for all exponents. 17988 */ 17989 17990 17991 /* 17992 * If this flag is set the DH method is FIPS compliant and can be used in 17993 * FIPS mode. This is set in the validated module method. If an application 17994 * sets this flag in its own methods it is its reposibility to ensure the 17995 * result is compliant. 17996 */ 17997 17998 17999 18000 /* 18001 * If this flag is set the operations normally disabled in FIPS mode are 18002 * permitted it is then the applications responsibility to ensure that the 18003 * usage is compliant. 18004 */ 18005 18006 18007 18008 18009 18010 18011 18012 /* Already defined in ossl_typ.h */ 18013 /* typedef struct dh_st DH; */ 18014 /* typedef struct dh_method DH_METHOD; */ 18015 18016 struct dh_method { 18017 const char *name; 18018 /* Methods here */ 18019 int (*generate_key) (DH *dh); 18020 int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); 18021 /* Can be null */ 18022 int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, 18023 const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, 18024 BN_MONT_CTX *m_ctx); 18025 int (*init) (DH *dh); 18026 int (*finish) (DH *dh); 18027 int flags; 18028 char *app_data; 18029 /* If this is non-NULL, it will be used to generate parameters */ 18030 int (*generate_params) (DH *dh, int prime_len, int generator, 18031 BN_GENCB *cb); 18032 }; 18033 18034 struct dh_st { 18035 /* 18036 * This first argument is used to pick up errors when a DH is passed 18037 * instead of a EVP_PKEY 18038 */ 18039 int pad; 18040 int version; 18041 BIGNUM *p; 18042 BIGNUM *g; 18043 long length; /* optional */ 18044 BIGNUM *pub_key; /* g^x % p */ 18045 BIGNUM *priv_key; /* x */ 18046 int flags; 18047 BN_MONT_CTX *method_mont_p; 18048 /* Place holders if we want to do X9.42 DH */ 18049 BIGNUM *q; 18050 BIGNUM *j; 18051 unsigned char *seed; 18052 int seedlen; 18053 BIGNUM *counter; 18054 int references; 18055 CRYPTO_EX_DATA ex_data; 18056 const DH_METHOD *meth; 18057 ENGINE *engine; 18058 }; 18059 18060 18061 /* #define DH_GENERATOR_3 3 */ 18062 18063 18064 /* DH_check error codes */ 18065 # 174 "/usr/include/openssl/dh.h" 3 4 18066 /* DH_check_pub_key error codes */ 18067 18068 18069 18070 18071 /* 18072 * primes p where (p-1)/2 is prime too are called "safe"; we define this for 18073 * backward compatibility: 18074 */ 18075 # 209 "/usr/include/openssl/dh.h" 3 4 18076 DH *DHparams_dup(DH *); 18077 18078 const DH_METHOD *DH_OpenSSL(void); 18079 18080 void DH_set_default_method(const DH_METHOD *meth); 18081 const DH_METHOD *DH_get_default_method(void); 18082 int DH_set_method(DH *dh, const DH_METHOD *meth); 18083 DH *DH_new_method(ENGINE *engine); 18084 18085 DH *DH_new(void); 18086 void DH_free(DH *dh); 18087 int DH_up_ref(DH *dh); 18088 int DH_size(const DH *dh); 18089 int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 18090 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 18091 int DH_set_ex_data(DH *d, int idx, void *arg); 18092 void *DH_get_ex_data(DH *d, int idx); 18093 18094 /* Deprecated version */ 18095 18096 DH *DH_generate_parameters(int prime_len, int generator, 18097 void (*callback) (int, int, void *), void *cb_arg); 18098 18099 18100 /* New version */ 18101 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, 18102 BN_GENCB *cb); 18103 18104 int DH_check(const DH *dh, int *codes); 18105 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); 18106 int DH_generate_key(DH *dh); 18107 int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); 18108 int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); 18109 DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); 18110 int i2d_DHparams(const DH *a, unsigned char **pp); 18111 DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); 18112 int i2d_DHxparams(const DH *a, unsigned char **pp); 18113 18114 int DHparams_print_fp(FILE *fp, const DH *x); 18115 18116 18117 int DHparams_print(BIO *bp, const DH *x); 18118 18119 18120 18121 18122 /* RFC 5114 parameters */ 18123 DH *DH_get_1024_160(void); 18124 DH *DH_get_2048_224(void); 18125 DH *DH_get_2048_256(void); 18126 18127 18128 /* RFC2631 KDF */ 18129 int DH_KDF_X9_42(unsigned char *out, size_t outlen, 18130 const unsigned char *Z, size_t Zlen, 18131 ASN1_OBJECT *key_oid, 18132 const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); 18133 # 357 "/usr/include/openssl/dh.h" 3 4 18134 /* KDF types */ 18135 18136 18137 18138 /* BEGIN ERROR CODES */ 18139 /* 18140 * The following lines are auto generated by the script mkerr.pl. Any changes 18141 * made after this point may be overwritten when the script is next run. 18142 */ 18143 void ERR_load_DH_strings(void); 18144 18145 /* Error codes for the DH functions. */ 18146 18147 /* Function codes. */ 18148 # 392 "/usr/include/openssl/dh.h" 3 4 18149 /* Reason codes. */ 18150 # 84 "/usr/include/openssl/dsa.h" 2 3 4 18151 # 92 "/usr/include/openssl/dsa.h" 3 4 18152 /* 18153 * new with 0.9.7h; the built-in DSA implementation now uses constant time 18154 * modular exponentiation for secret exponents by default. This flag causes 18155 * the faster variable sliding window method to be used for all exponents. 18156 */ 18157 18158 18159 /* 18160 * If this flag is set the DSA method is FIPS compliant and can be used in 18161 * FIPS mode. This is set in the validated module method. If an application 18162 * sets this flag in its own methods it is its reposibility to ensure the 18163 * result is compliant. 18164 */ 18165 18166 18167 18168 /* 18169 * If this flag is set the operations normally disabled in FIPS mode are 18170 * permitted it is then the applications responsibility to ensure that the 18171 * usage is compliant. 18172 */ 18173 18174 18175 18176 18177 18178 18179 18180 /* Already defined in ossl_typ.h */ 18181 /* typedef struct dsa_st DSA; */ 18182 /* typedef struct dsa_method DSA_METHOD; */ 18183 18184 typedef struct DSA_SIG_st { 18185 BIGNUM *r; 18186 BIGNUM *s; 18187 } DSA_SIG; 18188 18189 struct dsa_method { 18190 const char *name; 18191 DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); 18192 int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, 18193 BIGNUM **rp); 18194 int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, 18195 DSA_SIG *sig, DSA *dsa); 18196 int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, 18197 BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, 18198 BN_MONT_CTX *in_mont); 18199 /* Can be null */ 18200 int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, 18201 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 18202 int (*init) (DSA *dsa); 18203 int (*finish) (DSA *dsa); 18204 int flags; 18205 char *app_data; 18206 /* If this is non-NULL, it is used to generate DSA parameters */ 18207 int (*dsa_paramgen) (DSA *dsa, int bits, 18208 const unsigned char *seed, int seed_len, 18209 int *counter_ret, unsigned long *h_ret, 18210 BN_GENCB *cb); 18211 /* If this is non-NULL, it is used to generate DSA keys */ 18212 int (*dsa_keygen) (DSA *dsa); 18213 }; 18214 18215 struct dsa_st { 18216 /* 18217 * This first variable is used to pick up errors where a DSA is passed 18218 * instead of of a EVP_PKEY 18219 */ 18220 int pad; 18221 long version; 18222 int write_params; 18223 BIGNUM *p; 18224 BIGNUM *q; /* == 20 */ 18225 BIGNUM *g; 18226 BIGNUM *pub_key; /* y public key */ 18227 BIGNUM *priv_key; /* x private key */ 18228 BIGNUM *kinv; /* Signing pre-calc */ 18229 BIGNUM *r; /* Signing pre-calc */ 18230 int flags; 18231 /* Normally used to cache montgomery values */ 18232 BN_MONT_CTX *method_mont_p; 18233 int references; 18234 CRYPTO_EX_DATA ex_data; 18235 const DSA_METHOD *meth; 18236 /* functional reference if 'meth' is ENGINE-provided */ 18237 ENGINE *engine; 18238 }; 18239 # 187 "/usr/include/openssl/dsa.h" 3 4 18240 DSA *DSAparams_dup(DSA *x); 18241 DSA_SIG *DSA_SIG_new(void); 18242 void DSA_SIG_free(DSA_SIG *a); 18243 int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); 18244 DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); 18245 18246 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 18247 int DSA_do_verify(const unsigned char *dgst, int dgst_len, 18248 DSA_SIG *sig, DSA *dsa); 18249 18250 const DSA_METHOD *DSA_OpenSSL(void); 18251 18252 void DSA_set_default_method(const DSA_METHOD *); 18253 const DSA_METHOD *DSA_get_default_method(void); 18254 int DSA_set_method(DSA *dsa, const DSA_METHOD *); 18255 18256 DSA *DSA_new(void); 18257 DSA *DSA_new_method(ENGINE *engine); 18258 void DSA_free(DSA *r); 18259 /* "up" the DSA object's reference count */ 18260 int DSA_up_ref(DSA *r); 18261 int DSA_size(const DSA *); 18262 /* next 4 return -1 on error */ 18263 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); 18264 int DSA_sign(int type, const unsigned char *dgst, int dlen, 18265 unsigned char *sig, unsigned int *siglen, DSA *dsa); 18266 int DSA_verify(int type, const unsigned char *dgst, int dgst_len, 18267 const unsigned char *sigbuf, int siglen, DSA *dsa); 18268 int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 18269 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 18270 int DSA_set_ex_data(DSA *d, int idx, void *arg); 18271 void *DSA_get_ex_data(DSA *d, int idx); 18272 18273 DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); 18274 DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); 18275 DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); 18276 18277 /* Deprecated version */ 18278 18279 DSA *DSA_generate_parameters(int bits, 18280 unsigned char *seed, int seed_len, 18281 int *counter_ret, unsigned long *h_ret, void 18282 (*callback) (int, int, void *), void *cb_arg); 18283 18284 18285 /* New version */ 18286 int DSA_generate_parameters_ex(DSA *dsa, int bits, 18287 const unsigned char *seed, int seed_len, 18288 int *counter_ret, unsigned long *h_ret, 18289 BN_GENCB *cb); 18290 18291 int DSA_generate_key(DSA *a); 18292 int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); 18293 int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); 18294 int i2d_DSAparams(const DSA *a, unsigned char **pp); 18295 18296 18297 int DSAparams_print(BIO *bp, const DSA *x); 18298 int DSA_print(BIO *bp, const DSA *x, int off); 18299 18300 18301 int DSAparams_print_fp(FILE *fp, const DSA *x); 18302 int DSA_print_fp(FILE *bp, const DSA *x, int off); 18303 18304 18305 18306 /* 18307 * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only 18308 * have one value here we set the number of checks to 64 which is the 128 bit 18309 * security level that is the highest level and valid for creating a 3072 bit 18310 * DSA key. 18311 */ 18312 18313 18314 18315 18316 /* 18317 * Convert DSA structure (key or just parameters) into DH structure (be 18318 * careful to avoid small subgroup attacks when using this!) 18319 */ 18320 DH *DSA_dup_DH(const DSA *r); 18321 # 278 "/usr/include/openssl/dsa.h" 3 4 18322 /* BEGIN ERROR CODES */ 18323 /* 18324 * The following lines are auto generated by the script mkerr.pl. Any changes 18325 * made after this point may be overwritten when the script is next run. 18326 */ 18327 void ERR_load_DSA_strings(void); 18328 18329 /* Error codes for the DSA functions. */ 18330 18331 /* Function codes. */ 18332 # 316 "/usr/include/openssl/dsa.h" 3 4 18333 /* Reason codes. */ 18334 # 100 "/usr/include/openssl/x509.h" 2 3 4 18335 18336 18337 # 1 "/usr/include/openssl/dh.h" 1 3 4 18338 /* crypto/dh/dh.h */ 18339 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18340 * All rights reserved. 18341 * 18342 * This package is an SSL implementation written 18343 * by Eric Young (eay@cryptsoft.com). 18344 * The implementation was written so as to conform with Netscapes SSL. 18345 * 18346 * This library is free for commercial and non-commercial use as long as 18347 * the following conditions are aheared to. The following conditions 18348 * apply to all code found in this distribution, be it the RC4, RSA, 18349 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18350 * included with this distribution is covered by the same copyright terms 18351 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18352 * 18353 * Copyright remains Eric Young's, and as such any Copyright notices in 18354 * the code are not to be removed. 18355 * If this package is used in a product, Eric Young should be given attribution 18356 * as the author of the parts of the library used. 18357 * This can be in the form of a textual message at program startup or 18358 * in documentation (online or textual) provided with the package. 18359 * 18360 * Redistribution and use in source and binary forms, with or without 18361 * modification, are permitted provided that the following conditions 18362 * are met: 18363 * 1. Redistributions of source code must retain the copyright 18364 * notice, this list of conditions and the following disclaimer. 18365 * 2. Redistributions in binary form must reproduce the above copyright 18366 * notice, this list of conditions and the following disclaimer in the 18367 * documentation and/or other materials provided with the distribution. 18368 * 3. All advertising materials mentioning features or use of this software 18369 * must display the following acknowledgement: 18370 * "This product includes cryptographic software written by 18371 * Eric Young (eay@cryptsoft.com)" 18372 * The word 'cryptographic' can be left out if the rouines from the library 18373 * being used are not cryptographic related :-). 18374 * 4. If you include any Windows specific code (or a derivative thereof) from 18375 * the apps directory (application code) you must include an acknowledgement: 18376 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18377 * 18378 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18379 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18380 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18381 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18382 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18383 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18384 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18385 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18386 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18387 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18388 * SUCH DAMAGE. 18389 * 18390 * The licence and distribution terms for any publically available version or 18391 * derivative of this code cannot be changed. i.e. this code cannot simply be 18392 * copied and put under another distribution licence 18393 * [including the GNU Public Licence.] 18394 */ 18395 # 103 "/usr/include/openssl/x509.h" 2 3 4 18396 18397 18398 18399 18400 # 1 "/usr/include/openssl/sha.h" 1 3 4 18401 /* crypto/sha/sha.h */ 18402 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18403 * All rights reserved. 18404 * 18405 * This package is an SSL implementation written 18406 * by Eric Young (eay@cryptsoft.com). 18407 * The implementation was written so as to conform with Netscapes SSL. 18408 * 18409 * This library is free for commercial and non-commercial use as long as 18410 * the following conditions are aheared to. The following conditions 18411 * apply to all code found in this distribution, be it the RC4, RSA, 18412 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18413 * included with this distribution is covered by the same copyright terms 18414 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18415 * 18416 * Copyright remains Eric Young's, and as such any Copyright notices in 18417 * the code are not to be removed. 18418 * If this package is used in a product, Eric Young should be given attribution 18419 * as the author of the parts of the library used. 18420 * This can be in the form of a textual message at program startup or 18421 * in documentation (online or textual) provided with the package. 18422 * 18423 * Redistribution and use in source and binary forms, with or without 18424 * modification, are permitted provided that the following conditions 18425 * are met: 18426 * 1. Redistributions of source code must retain the copyright 18427 * notice, this list of conditions and the following disclaimer. 18428 * 2. Redistributions in binary form must reproduce the above copyright 18429 * notice, this list of conditions and the following disclaimer in the 18430 * documentation and/or other materials provided with the distribution. 18431 * 3. All advertising materials mentioning features or use of this software 18432 * must display the following acknowledgement: 18433 * "This product includes cryptographic software written by 18434 * Eric Young (eay@cryptsoft.com)" 18435 * The word 'cryptographic' can be left out if the rouines from the library 18436 * being used are not cryptographic related :-). 18437 * 4. If you include any Windows specific code (or a derivative thereof) from 18438 * the apps directory (application code) you must include an acknowledgement: 18439 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18440 * 18441 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18442 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18443 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18444 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18445 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18446 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18447 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18448 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18449 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18450 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18451 * SUCH DAMAGE. 18452 * 18453 * The licence and distribution terms for any publically available version or 18454 * derivative of this code cannot be changed. i.e. this code cannot simply be 18455 * copied and put under another distribution licence 18456 * [including the GNU Public Licence.] 18457 */ 18458 18459 18460 18461 18462 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 18463 /* e_os2.h */ 18464 /* ==================================================================== 18465 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 18466 * 18467 * Redistribution and use in source and binary forms, with or without 18468 * modification, are permitted provided that the following conditions 18469 * are met: 18470 * 18471 * 1. Redistributions of source code must retain the above copyright 18472 * notice, this list of conditions and the following disclaimer. 18473 * 18474 * 2. Redistributions in binary form must reproduce the above copyright 18475 * notice, this list of conditions and the following disclaimer in 18476 * the documentation and/or other materials provided with the 18477 * distribution. 18478 * 18479 * 3. All advertising materials mentioning features or use of this 18480 * software must display the following acknowledgment: 18481 * "This product includes software developed by the OpenSSL Project 18482 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18483 * 18484 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18485 * endorse or promote products derived from this software without 18486 * prior written permission. For written permission, please contact 18487 * openssl-core@openssl.org. 18488 * 18489 * 5. Products derived from this software may not be called "OpenSSL" 18490 * nor may "OpenSSL" appear in their names without prior written 18491 * permission of the OpenSSL Project. 18492 * 18493 * 6. Redistributions of any form whatsoever must retain the following 18494 * acknowledgment: 18495 * "This product includes software developed by the OpenSSL Project 18496 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18497 * 18498 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18499 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18500 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18501 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18502 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18503 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18504 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18505 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18506 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18507 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18508 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18509 * OF THE POSSIBILITY OF SUCH DAMAGE. 18510 * ==================================================================== 18511 * 18512 * This product includes cryptographic software written by Eric Young 18513 * (eay@cryptsoft.com). This product includes software written by Tim 18514 * Hudson (tjh@cryptsoft.com). 18515 * 18516 */ 18517 18518 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 18519 /* opensslconf.h */ 18520 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 18521 18522 18523 18524 18525 /* OpenSSL was configured with the following options: */ 18526 # 108 "/usr/include/openssl/opensslconf.h" 3 4 18527 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 18528 asks for it. This is a transient feature that is provided for those 18529 who haven't had the time to do the appropriate changes in their 18530 applications. */ 18531 # 204 "/usr/include/openssl/opensslconf.h" 3 4 18532 /* crypto/opensslconf.h.in */ 18533 18534 /* Generate 80386 code? */ 18535 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 18536 # 63 "/usr/include/openssl/sha.h" 2 3 4 18537 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 18538 /* 18539 * CDDL HEADER START 18540 * 18541 * The contents of this file are subject to the terms of the 18542 * Common Development and Distribution License, Version 1.0 only 18543 * (the "License"). You may not use this file except in compliance 18544 * with the License. 18545 * 18546 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 18547 * or http://www.opensolaris.org/os/licensing. 18548 * See the License for the specific language governing permissions 18549 * and limitations under the License. 18550 * 18551 * When distributing Covered Code, include this CDDL HEADER in each 18552 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 18553 * If applicable, add the following below this CDDL HEADER, with the 18554 * fields enclosed by brackets "[]" replaced with your own identifying 18555 * information: Portions Copyright [yyyy] [name of copyright owner] 18556 * 18557 * CDDL HEADER END 18558 */ 18559 /* Copyright (c) 1988 AT&T */ 18560 /* All Rights Reserved */ 18561 18562 18563 /* 18564 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 18565 * Use is subject to license terms. 18566 */ 18567 # 64 "/usr/include/openssl/sha.h" 2 3 4 18568 # 77 "/usr/include/openssl/sha.h" 3 4 18569 /*- 18570 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18571 * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! 18572 * ! SHA_LONG_LOG2 has to be defined along. ! 18573 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18574 */ 18575 # 100 "/usr/include/openssl/sha.h" 3 4 18576 typedef struct SHAstate_st { 18577 unsigned int h0, h1, h2, h3, h4; 18578 unsigned int Nl, Nh; 18579 unsigned int data[16]; 18580 unsigned int num; 18581 } SHA_CTX; 18582 18583 18584 18585 18586 18587 int SHA_Init(SHA_CTX *c); 18588 int SHA_Update(SHA_CTX *c, const void *data, size_t len); 18589 int SHA_Final(unsigned char *md, SHA_CTX *c); 18590 unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); 18591 void SHA_Transform(SHA_CTX *c, const unsigned char *data); 18592 18593 18594 18595 18596 18597 int SHA1_Init(SHA_CTX *c); 18598 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); 18599 int SHA1_Final(unsigned char *md, SHA_CTX *c); 18600 unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); 18601 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); 18602 # 134 "/usr/include/openssl/sha.h" 3 4 18603 typedef struct SHA256state_st { 18604 unsigned int h[8]; 18605 unsigned int Nl, Nh; 18606 unsigned int data[16]; 18607 unsigned int num, md_len; 18608 } SHA256_CTX; 18609 18610 18611 18612 18613 18614 18615 int SHA224_Init(SHA256_CTX *c); 18616 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); 18617 int SHA224_Final(unsigned char *md, SHA256_CTX *c); 18618 unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); 18619 int SHA256_Init(SHA256_CTX *c); 18620 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); 18621 int SHA256_Final(unsigned char *md, SHA256_CTX *c); 18622 unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); 18623 void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); 18624 18625 18626 18627 18628 18629 18630 /* 18631 * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 18632 * being exactly 64-bit wide. See Implementation Notes in sha512.c 18633 * for further details. 18634 */ 18635 /* 18636 * SHA-512 treats input data as a 18637 * contiguous array of 64 bit 18638 * wide big-endian values. 18639 */ 18640 # 183 "/usr/include/openssl/sha.h" 3 4 18641 typedef struct SHA512state_st { 18642 unsigned long long h[8]; 18643 unsigned long long Nl, Nh; 18644 union { 18645 unsigned long long d[16]; 18646 unsigned char p[(16*8)]; 18647 } u; 18648 unsigned int num, md_len; 18649 } SHA512_CTX; 18650 18651 18652 18653 18654 18655 18656 18657 int SHA384_Init(SHA512_CTX *c); 18658 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); 18659 int SHA384_Final(unsigned char *md, SHA512_CTX *c); 18660 unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); 18661 int SHA512_Init(SHA512_CTX *c); 18662 int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); 18663 int SHA512_Final(unsigned char *md, SHA512_CTX *c); 18664 unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); 18665 void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); 18666 # 108 "/usr/include/openssl/x509.h" 2 3 4 18667 18668 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 18669 /* ==================================================================== 18670 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 18671 * 18672 * Redistribution and use in source and binary forms, with or without 18673 * modification, are permitted provided that the following conditions 18674 * are met: 18675 * 18676 * 1. Redistributions of source code must retain the above copyright 18677 * notice, this list of conditions and the following disclaimer. 18678 * 18679 * 2. Redistributions in binary form must reproduce the above copyright 18680 * notice, this list of conditions and the following disclaimer in 18681 * the documentation and/or other materials provided with the 18682 * distribution. 18683 * 18684 * 3. All advertising materials mentioning features or use of this 18685 * software must display the following acknowledgment: 18686 * "This product includes software developed by the OpenSSL Project 18687 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18688 * 18689 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18690 * endorse or promote products derived from this software without 18691 * prior written permission. For written permission, please contact 18692 * openssl-core@openssl.org. 18693 * 18694 * 5. Products derived from this software may not be called "OpenSSL" 18695 * nor may "OpenSSL" appear in their names without prior written 18696 * permission of the OpenSSL Project. 18697 * 18698 * 6. Redistributions of any form whatsoever must retain the following 18699 * acknowledgment: 18700 * "This product includes software developed by the OpenSSL Project 18701 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18702 * 18703 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18704 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18705 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18706 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18707 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18708 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18709 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18710 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18711 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18712 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18713 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18714 * OF THE POSSIBILITY OF SUCH DAMAGE. 18715 * ==================================================================== 18716 * 18717 * This product includes cryptographic software written by Eric Young 18718 * (eay@cryptsoft.com). This product includes software written by Tim 18719 * Hudson (tjh@cryptsoft.com). 18720 * 18721 */ 18722 # 110 "/usr/include/openssl/x509.h" 2 3 4 18723 # 137 "/usr/include/openssl/x509.h" 3 4 18724 typedef struct X509_objects_st { 18725 int nid; 18726 int (*a2i) (void); 18727 int (*i2a) (void); 18728 } X509_OBJECTS; 18729 18730 struct X509_algor_st { 18731 ASN1_OBJECT *algorithm; 18732 ASN1_TYPE *parameter; 18733 } /* X509_ALGOR */ ; 18734 18735 18736 18737 typedef struct stack_st_X509_ALGOR X509_ALGORS; 18738 18739 typedef struct X509_val_st { 18740 ASN1_TIME *notBefore; 18741 ASN1_TIME *notAfter; 18742 } X509_VAL; 18743 18744 struct X509_pubkey_st { 18745 X509_ALGOR *algor; 18746 ASN1_BIT_STRING *public_key; 18747 EVP_PKEY *pkey; 18748 }; 18749 18750 typedef struct X509_sig_st { 18751 X509_ALGOR *algor; 18752 ASN1_OCTET_STRING *digest; 18753 } X509_SIG; 18754 18755 typedef struct X509_name_entry_st { 18756 ASN1_OBJECT *object; 18757 ASN1_STRING *value; 18758 int set; 18759 int size; /* temp variable */ 18760 } X509_NAME_ENTRY; 18761 18762 struct stack_st_X509_NAME_ENTRY { _STACK stack; }; 18763 18764 18765 /* we always keep X509_NAMEs in 2 forms. */ 18766 struct X509_name_st { 18767 struct stack_st_X509_NAME_ENTRY *entries; 18768 int modified; /* true if 'bytes' needs to be built */ 18769 18770 BUF_MEM *bytes; 18771 18772 18773 18774 /* unsigned long hash; Keep the hash around for lookups */ 18775 unsigned char *canon_enc; 18776 int canon_enclen; 18777 } /* X509_NAME */ ; 18778 18779 struct stack_st_X509_NAME { _STACK stack; }; 18780 18781 18782 18783 typedef struct X509_extension_st { 18784 ASN1_OBJECT *object; 18785 ASN1_BOOLEAN critical; 18786 ASN1_OCTET_STRING *value; 18787 } X509_EXTENSION; 18788 18789 typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS; 18790 18791 struct stack_st_X509_EXTENSION { _STACK stack; }; 18792 18793 18794 /* a sequence of these are used */ 18795 typedef struct x509_attributes_st { 18796 ASN1_OBJECT *object; 18797 int single; /* 0 for a set, 1 for a single item (which is 18798 * wrong) */ 18799 union { 18800 char *ptr; 18801 /* 18802 * 0 18803 */ struct stack_st_ASN1_TYPE *set; 18804 /* 18805 * 1 18806 */ ASN1_TYPE *single; 18807 } value; 18808 } X509_ATTRIBUTE; 18809 18810 struct stack_st_X509_ATTRIBUTE { _STACK stack; }; 18811 18812 18813 typedef struct X509_req_info_st { 18814 ASN1_ENCODING enc; 18815 ASN1_INTEGER *version; 18816 X509_NAME *subject; 18817 X509_PUBKEY *pubkey; 18818 /* d=2 hl=2 l= 0 cons: cont: 00 */ 18819 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 18820 } X509_REQ_INFO; 18821 18822 typedef struct X509_req_st { 18823 X509_REQ_INFO *req_info; 18824 X509_ALGOR *sig_alg; 18825 ASN1_BIT_STRING *signature; 18826 int references; 18827 } X509_REQ; 18828 18829 typedef struct x509_cinf_st { 18830 ASN1_INTEGER *version; /* [ 0 ] default of v1 */ 18831 ASN1_INTEGER *serialNumber; 18832 X509_ALGOR *signature; 18833 X509_NAME *issuer; 18834 X509_VAL *validity; 18835 X509_NAME *subject; 18836 X509_PUBKEY *key; 18837 ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ 18838 ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ 18839 struct stack_st_X509_EXTENSION *extensions; /* [ 3 ] optional in v3 */ 18840 ASN1_ENCODING enc; 18841 } X509_CINF; 18842 18843 /* 18844 * This stuff is certificate "auxiliary info" it contains details which are 18845 * useful in certificate stores and databases. When used this is tagged onto 18846 * the end of the certificate itself 18847 */ 18848 18849 typedef struct x509_cert_aux_st { 18850 struct stack_st_ASN1_OBJECT *trust; /* trusted uses */ 18851 struct stack_st_ASN1_OBJECT *reject; /* rejected uses */ 18852 ASN1_UTF8STRING *alias; /* "friendly name" */ 18853 ASN1_OCTET_STRING *keyid; /* key id of private key */ 18854 struct stack_st_X509_ALGOR *other; /* other unspecified info */ 18855 } X509_CERT_AUX; 18856 18857 struct x509_st { 18858 X509_CINF *cert_info; 18859 X509_ALGOR *sig_alg; 18860 ASN1_BIT_STRING *signature; 18861 int valid; 18862 int references; 18863 char *name; 18864 CRYPTO_EX_DATA ex_data; 18865 /* These contain copies of various extension values */ 18866 long ex_pathlen; 18867 long ex_pcpathlen; 18868 unsigned long ex_flags; 18869 unsigned long ex_kusage; 18870 unsigned long ex_xkusage; 18871 unsigned long ex_nscert; 18872 ASN1_OCTET_STRING *skid; 18873 AUTHORITY_KEYID *akid; 18874 X509_POLICY_CACHE *policy_cache; 18875 struct stack_st_DIST_POINT *crldp; 18876 struct stack_st_GENERAL_NAME *altname; 18877 NAME_CONSTRAINTS *nc; 18878 18879 18880 18881 18882 18883 unsigned char sha1_hash[20]; 18884 18885 X509_CERT_AUX *aux; 18886 } /* X509 */ ; 18887 18888 struct stack_st_X509 { _STACK stack; }; 18889 18890 18891 /* This is used for a table of trust checking functions */ 18892 18893 typedef struct x509_trust_st { 18894 int trust; 18895 int flags; 18896 int (*check_trust) (struct x509_trust_st *, X509 *, int); 18897 char *name; 18898 int arg1; 18899 void *arg2; 18900 } X509_TRUST; 18901 18902 struct stack_st_X509_TRUST { _STACK stack; }; 18903 18904 typedef struct x509_cert_pair_st { 18905 X509 *forward; 18906 X509 *reverse; 18907 } X509_CERT_PAIR; 18908 18909 /* standard trust ids */ 18910 # 335 "/usr/include/openssl/x509.h" 3 4 18911 /* Keep these up to date! */ 18912 18913 18914 18915 /* trust_flags values */ 18916 18917 18918 18919 /* check_trust return codes */ 18920 18921 18922 18923 18924 18925 /* Flags for X509_print_ex() */ 18926 # 366 "/usr/include/openssl/x509.h" 3 4 18927 /* Flags specific to X509_NAME_print_ex() */ 18928 18929 /* The field separator information */ 18930 # 381 "/usr/include/openssl/x509.h" 3 4 18931 /* How the field name is shown */ 18932 # 392 "/usr/include/openssl/x509.h" 3 4 18933 /* 18934 * This determines if we dump fields we don't recognise: RFC2253 requires 18935 * this. 18936 */ 18937 18938 18939 18940 18941 18942 18943 /* Complete set of RFC2253 flags */ 18944 18945 18946 18947 18948 18949 18950 18951 /* readable oneline form */ 18952 18953 18954 18955 18956 18957 18958 18959 /* readable multiline form */ 18960 # 427 "/usr/include/openssl/x509.h" 3 4 18961 struct x509_revoked_st { 18962 ASN1_INTEGER *serialNumber; 18963 ASN1_TIME *revocationDate; 18964 struct stack_st_X509_EXTENSION /* optional */ *extensions; 18965 /* Set up if indirect CRL */ 18966 struct stack_st_GENERAL_NAME *issuer; 18967 /* Revocation reason */ 18968 int reason; 18969 int sequence; /* load sequence */ 18970 }; 18971 18972 struct stack_st_X509_REVOKED { _STACK stack; }; 18973 18974 18975 typedef struct X509_crl_info_st { 18976 ASN1_INTEGER *version; 18977 X509_ALGOR *sig_alg; 18978 X509_NAME *issuer; 18979 ASN1_TIME *lastUpdate; 18980 ASN1_TIME *nextUpdate; 18981 struct stack_st_X509_REVOKED *revoked; 18982 struct stack_st_X509_EXTENSION /* [0] */ *extensions; 18983 ASN1_ENCODING enc; 18984 } X509_CRL_INFO; 18985 18986 struct X509_crl_st { 18987 /* actual signature */ 18988 X509_CRL_INFO *crl; 18989 X509_ALGOR *sig_alg; 18990 ASN1_BIT_STRING *signature; 18991 int references; 18992 int flags; 18993 /* Copies of various extensions */ 18994 AUTHORITY_KEYID *akid; 18995 ISSUING_DIST_POINT *idp; 18996 /* Convenient breakdown of IDP */ 18997 int idp_flags; 18998 int idp_reasons; 18999 /* CRL and base CRL numbers for delta processing */ 19000 ASN1_INTEGER *crl_number; 19001 ASN1_INTEGER *base_crl_number; 19002 19003 unsigned char sha1_hash[20]; 19004 19005 struct stack_st_GENERAL_NAMES *issuers; 19006 const X509_CRL_METHOD *meth; 19007 void *meth_data; 19008 } /* X509_CRL */ ; 19009 19010 struct stack_st_X509_CRL { _STACK stack; }; 19011 19012 19013 typedef struct private_key_st { 19014 int version; 19015 /* The PKCS#8 data types */ 19016 X509_ALGOR *enc_algor; 19017 ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ 19018 /* When decrypted, the following will not be NULL */ 19019 EVP_PKEY *dec_pkey; 19020 /* used to encrypt and decrypt */ 19021 int key_length; 19022 char *key_data; 19023 int key_free; /* true if we should auto free key_data */ 19024 /* expanded version of 'enc_algor' */ 19025 EVP_CIPHER_INFO cipher; 19026 int references; 19027 } X509_PKEY; 19028 19029 19030 typedef struct X509_info_st { 19031 X509 *x509; 19032 X509_CRL *crl; 19033 X509_PKEY *x_pkey; 19034 EVP_CIPHER_INFO enc_cipher; 19035 int enc_len; 19036 char *enc_data; 19037 int references; 19038 } X509_INFO; 19039 19040 struct stack_st_X509_INFO { _STACK stack; }; 19041 19042 19043 /* 19044 * The next 2 structures and their 8 routines were sent to me by Pat Richard 19045 * <patr@x509.com> and are used to manipulate Netscapes spki structures - 19046 * useful if you are writing a CA web page 19047 */ 19048 typedef struct Netscape_spkac_st { 19049 X509_PUBKEY *pubkey; 19050 ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ 19051 } NETSCAPE_SPKAC; 19052 19053 typedef struct Netscape_spki_st { 19054 NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ 19055 X509_ALGOR *sig_algor; 19056 ASN1_BIT_STRING *signature; 19057 } NETSCAPE_SPKI; 19058 19059 /* Netscape certificate sequence structure */ 19060 typedef struct Netscape_certificate_sequence { 19061 ASN1_OBJECT *type; 19062 struct stack_st_X509 *certs; 19063 } NETSCAPE_CERT_SEQUENCE; 19064 19065 /*- Unused (and iv length is wrong) 19066 typedef struct CBCParameter_st 19067 { 19068 unsigned char iv[8]; 19069 } CBC_PARAM; 19070 */ 19071 19072 /* Password based encryption structure */ 19073 19074 typedef struct PBEPARAM_st { 19075 ASN1_OCTET_STRING *salt; 19076 ASN1_INTEGER *iter; 19077 } PBEPARAM; 19078 19079 /* Password based encryption V2 structures */ 19080 19081 typedef struct PBE2PARAM_st { 19082 X509_ALGOR *keyfunc; 19083 X509_ALGOR *encryption; 19084 } PBE2PARAM; 19085 19086 typedef struct PBKDF2PARAM_st { 19087 /* Usually OCTET STRING but could be anything */ 19088 ASN1_TYPE *salt; 19089 ASN1_INTEGER *iter; 19090 ASN1_INTEGER *keylength; 19091 X509_ALGOR *prf; 19092 } PBKDF2PARAM; 19093 19094 /* PKCS#8 private key info structure */ 19095 19096 struct pkcs8_priv_key_info_st { 19097 /* Flag for various broken formats */ 19098 int broken; 19099 19100 19101 19102 19103 19104 ASN1_INTEGER *version; 19105 X509_ALGOR *pkeyalg; 19106 /* Should be OCTET STRING but some are broken */ 19107 ASN1_TYPE *pkey; 19108 struct stack_st_X509_ATTRIBUTE *attributes; 19109 }; 19110 19111 19112 19113 19114 19115 # 1 "/usr/include/openssl/x509_vfy.h" 1 3 4 19116 /* crypto/x509/x509_vfy.h */ 19117 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19118 * All rights reserved. 19119 * 19120 * This package is an SSL implementation written 19121 * by Eric Young (eay@cryptsoft.com). 19122 * The implementation was written so as to conform with Netscapes SSL. 19123 * 19124 * This library is free for commercial and non-commercial use as long as 19125 * the following conditions are aheared to. The following conditions 19126 * apply to all code found in this distribution, be it the RC4, RSA, 19127 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19128 * included with this distribution is covered by the same copyright terms 19129 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19130 * 19131 * Copyright remains Eric Young's, and as such any Copyright notices in 19132 * the code are not to be removed. 19133 * If this package is used in a product, Eric Young should be given attribution 19134 * as the author of the parts of the library used. 19135 * This can be in the form of a textual message at program startup or 19136 * in documentation (online or textual) provided with the package. 19137 * 19138 * Redistribution and use in source and binary forms, with or without 19139 * modification, are permitted provided that the following conditions 19140 * are met: 19141 * 1. Redistributions of source code must retain the copyright 19142 * notice, this list of conditions and the following disclaimer. 19143 * 2. Redistributions in binary form must reproduce the above copyright 19144 * notice, this list of conditions and the following disclaimer in the 19145 * documentation and/or other materials provided with the distribution. 19146 * 3. All advertising materials mentioning features or use of this software 19147 * must display the following acknowledgement: 19148 * "This product includes cryptographic software written by 19149 * Eric Young (eay@cryptsoft.com)" 19150 * The word 'cryptographic' can be left out if the rouines from the library 19151 * being used are not cryptographic related :-). 19152 * 4. If you include any Windows specific code (or a derivative thereof) from 19153 * the apps directory (application code) you must include an acknowledgement: 19154 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19155 * 19156 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19157 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19158 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19159 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19160 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19161 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19162 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19163 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19164 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19165 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19166 * SUCH DAMAGE. 19167 * 19168 * The licence and distribution terms for any publically available version or 19169 * derivative of this code cannot be changed. i.e. this code cannot simply be 19170 * copied and put under another distribution licence 19171 * [including the GNU Public Licence.] 19172 */ 19173 # 70 "/usr/include/openssl/x509_vfy.h" 3 4 19174 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 19175 /* opensslconf.h */ 19176 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 19177 19178 19179 19180 19181 /* OpenSSL was configured with the following options: */ 19182 # 108 "/usr/include/openssl/opensslconf.h" 3 4 19183 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 19184 asks for it. This is a transient feature that is provided for those 19185 who haven't had the time to do the appropriate changes in their 19186 applications. */ 19187 # 204 "/usr/include/openssl/opensslconf.h" 3 4 19188 /* crypto/opensslconf.h.in */ 19189 19190 /* Generate 80386 code? */ 19191 # 71 "/usr/include/openssl/x509_vfy.h" 2 3 4 19192 19193 # 1 "/usr/include/openssl/lhash.h" 1 3 4 19194 /* crypto/lhash/lhash.h */ 19195 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19196 * All rights reserved. 19197 * 19198 * This package is an SSL implementation written 19199 * by Eric Young (eay@cryptsoft.com). 19200 * The implementation was written so as to conform with Netscapes SSL. 19201 * 19202 * This library is free for commercial and non-commercial use as long as 19203 * the following conditions are aheared to. The following conditions 19204 * apply to all code found in this distribution, be it the RC4, RSA, 19205 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19206 * included with this distribution is covered by the same copyright terms 19207 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19208 * 19209 * Copyright remains Eric Young's, and as such any Copyright notices in 19210 * the code are not to be removed. 19211 * If this package is used in a product, Eric Young should be given attribution 19212 * as the author of the parts of the library used. 19213 * This can be in the form of a textual message at program startup or 19214 * in documentation (online or textual) provided with the package. 19215 * 19216 * Redistribution and use in source and binary forms, with or without 19217 * modification, are permitted provided that the following conditions 19218 * are met: 19219 * 1. Redistributions of source code must retain the copyright 19220 * notice, this list of conditions and the following disclaimer. 19221 * 2. Redistributions in binary form must reproduce the above copyright 19222 * notice, this list of conditions and the following disclaimer in the 19223 * documentation and/or other materials provided with the distribution. 19224 * 3. All advertising materials mentioning features or use of this software 19225 * must display the following acknowledgement: 19226 * "This product includes cryptographic software written by 19227 * Eric Young (eay@cryptsoft.com)" 19228 * The word 'cryptographic' can be left out if the rouines from the library 19229 * being used are not cryptographic related :-). 19230 * 4. If you include any Windows specific code (or a derivative thereof) from 19231 * the apps directory (application code) you must include an acknowledgement: 19232 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19233 * 19234 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19235 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19236 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19237 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19238 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19239 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19240 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19241 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19242 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19243 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19244 * SUCH DAMAGE. 19245 * 19246 * The licence and distribution terms for any publically available version or 19247 * derivative of this code cannot be changed. i.e. this code cannot simply be 19248 * copied and put under another distribution licence 19249 * [including the GNU Public Licence.] 19250 */ 19251 19252 /* 19253 * Header for dynamic hash table routines Author - Eric Young 19254 */ 19255 19256 19257 19258 19259 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 19260 /* e_os2.h */ 19261 /* ==================================================================== 19262 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 19263 * 19264 * Redistribution and use in source and binary forms, with or without 19265 * modification, are permitted provided that the following conditions 19266 * are met: 19267 * 19268 * 1. Redistributions of source code must retain the above copyright 19269 * notice, this list of conditions and the following disclaimer. 19270 * 19271 * 2. Redistributions in binary form must reproduce the above copyright 19272 * notice, this list of conditions and the following disclaimer in 19273 * the documentation and/or other materials provided with the 19274 * distribution. 19275 * 19276 * 3. All advertising materials mentioning features or use of this 19277 * software must display the following acknowledgment: 19278 * "This product includes software developed by the OpenSSL Project 19279 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19280 * 19281 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19282 * endorse or promote products derived from this software without 19283 * prior written permission. For written permission, please contact 19284 * openssl-core@openssl.org. 19285 * 19286 * 5. Products derived from this software may not be called "OpenSSL" 19287 * nor may "OpenSSL" appear in their names without prior written 19288 * permission of the OpenSSL Project. 19289 * 19290 * 6. Redistributions of any form whatsoever must retain the following 19291 * acknowledgment: 19292 * "This product includes software developed by the OpenSSL Project 19293 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19294 * 19295 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19296 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19297 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19298 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19299 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19300 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19301 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19302 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19303 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19304 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19305 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19306 * OF THE POSSIBILITY OF SUCH DAMAGE. 19307 * ==================================================================== 19308 * 19309 * This product includes cryptographic software written by Eric Young 19310 * (eay@cryptsoft.com). This product includes software written by Tim 19311 * Hudson (tjh@cryptsoft.com). 19312 * 19313 */ 19314 19315 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 19316 /* opensslconf.h */ 19317 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 19318 19319 19320 19321 19322 /* OpenSSL was configured with the following options: */ 19323 # 108 "/usr/include/openssl/opensslconf.h" 3 4 19324 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 19325 asks for it. This is a transient feature that is provided for those 19326 who haven't had the time to do the appropriate changes in their 19327 applications. */ 19328 # 204 "/usr/include/openssl/opensslconf.h" 3 4 19329 /* crypto/opensslconf.h.in */ 19330 19331 /* Generate 80386 code? */ 19332 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 19333 # 67 "/usr/include/openssl/lhash.h" 2 3 4 19334 19335 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 19336 /* 19337 * CDDL HEADER START 19338 * 19339 * The contents of this file are subject to the terms of the 19340 * Common Development and Distribution License (the "License"). 19341 * You may not use this file except in compliance with the License. 19342 * 19343 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 19344 * or http://www.opensolaris.org/os/licensing. 19345 * See the License for the specific language governing permissions 19346 * and limitations under the License. 19347 * 19348 * When distributing Covered Code, include this CDDL HEADER in each 19349 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19350 * If applicable, add the following below this CDDL HEADER, with the 19351 * fields enclosed by brackets "[]" replaced with your own identifying 19352 * information: Portions Copyright [yyyy] [name of copyright owner] 19353 * 19354 * CDDL HEADER END 19355 */ 19356 19357 /* 19358 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 19359 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 19360 */ 19361 19362 /* Copyright (c) 1988 AT&T */ 19363 /* All Rights Reserved */ 19364 19365 /* 19366 * User-visible pieces of the ANSI C standard I/O package. 19367 */ 19368 # 69 "/usr/include/openssl/lhash.h" 2 3 4 19369 19370 19371 19372 # 1 "/usr/include/openssl/bio.h" 1 3 4 19373 /* crypto/bio/bio.h */ 19374 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19375 * All rights reserved. 19376 * 19377 * This package is an SSL implementation written 19378 * by Eric Young (eay@cryptsoft.com). 19379 * The implementation was written so as to conform with Netscapes SSL. 19380 * 19381 * This library is free for commercial and non-commercial use as long as 19382 * the following conditions are aheared to. The following conditions 19383 * apply to all code found in this distribution, be it the RC4, RSA, 19384 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19385 * included with this distribution is covered by the same copyright terms 19386 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19387 * 19388 * Copyright remains Eric Young's, and as such any Copyright notices in 19389 * the code are not to be removed. 19390 * If this package is used in a product, Eric Young should be given attribution 19391 * as the author of the parts of the library used. 19392 * This can be in the form of a textual message at program startup or 19393 * in documentation (online or textual) provided with the package. 19394 * 19395 * Redistribution and use in source and binary forms, with or without 19396 * modification, are permitted provided that the following conditions 19397 * are met: 19398 * 1. Redistributions of source code must retain the copyright 19399 * notice, this list of conditions and the following disclaimer. 19400 * 2. Redistributions in binary form must reproduce the above copyright 19401 * notice, this list of conditions and the following disclaimer in the 19402 * documentation and/or other materials provided with the distribution. 19403 * 3. All advertising materials mentioning features or use of this software 19404 * must display the following acknowledgement: 19405 * "This product includes cryptographic software written by 19406 * Eric Young (eay@cryptsoft.com)" 19407 * The word 'cryptographic' can be left out if the rouines from the library 19408 * being used are not cryptographic related :-). 19409 * 4. If you include any Windows specific code (or a derivative thereof) from 19410 * the apps directory (application code) you must include an acknowledgement: 19411 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19412 * 19413 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19414 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19415 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19416 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19417 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19418 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19419 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19420 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19421 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19422 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19423 * SUCH DAMAGE. 19424 * 19425 * The licence and distribution terms for any publically available version or 19426 * derivative of this code cannot be changed. i.e. this code cannot simply be 19427 * copied and put under another distribution licence 19428 * [including the GNU Public Licence.] 19429 */ 19430 # 73 "/usr/include/openssl/lhash.h" 2 3 4 19431 19432 19433 19434 19435 19436 19437 typedef struct lhash_node_st { 19438 void *data; 19439 struct lhash_node_st *next; 19440 19441 unsigned long hash; 19442 19443 } LHASH_NODE; 19444 19445 typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); 19446 typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); 19447 typedef void (*LHASH_DOALL_FN_TYPE) (void *); 19448 typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); 19449 19450 /* 19451 * Macros for declaring and implementing type-safe wrappers for LHASH 19452 * callbacks. This way, callbacks can be provided to LHASH structures without 19453 * function pointer casting and the macro-defined callbacks provide 19454 * per-variable casting before deferring to the underlying type-specific 19455 * callbacks. NB: It is possible to place a "static" in front of both the 19456 * DECLARE and IMPLEMENT macros if the functions are strictly internal. 19457 */ 19458 19459 /* First: "hash" functions */ 19460 # 110 "/usr/include/openssl/lhash.h" 3 4 19461 /* Second: "compare" functions */ 19462 # 120 "/usr/include/openssl/lhash.h" 3 4 19463 /* Third: "doall" functions */ 19464 # 129 "/usr/include/openssl/lhash.h" 3 4 19465 /* Fourth: "doall_arg" functions */ 19466 # 139 "/usr/include/openssl/lhash.h" 3 4 19467 typedef struct lhash_st { 19468 LHASH_NODE **b; 19469 LHASH_COMP_FN_TYPE comp; 19470 LHASH_HASH_FN_TYPE hash; 19471 unsigned int num_nodes; 19472 unsigned int num_alloc_nodes; 19473 unsigned int p; 19474 unsigned int pmax; 19475 unsigned long up_load; /* load times 256 */ 19476 unsigned long down_load; /* load times 256 */ 19477 unsigned long num_items; 19478 unsigned long num_expands; 19479 unsigned long num_expand_reallocs; 19480 unsigned long num_contracts; 19481 unsigned long num_contract_reallocs; 19482 unsigned long num_hash_calls; 19483 unsigned long num_comp_calls; 19484 unsigned long num_insert; 19485 unsigned long num_replace; 19486 unsigned long num_delete; 19487 unsigned long num_no_delete; 19488 unsigned long num_retrieve; 19489 unsigned long num_retrieve_miss; 19490 unsigned long num_hash_comps; 19491 int error; 19492 } _LHASH; /* Do not use _LHASH directly, use LHASH_OF 19493 * and friends */ 19494 19495 19496 19497 /* 19498 * Indicates a malloc() error in the last call, this is only bad in 19499 * lh_insert(). 19500 */ 19501 19502 19503 _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); 19504 void lh_free(_LHASH *lh); 19505 void *lh_insert(_LHASH *lh, void *data); 19506 void *lh_delete(_LHASH *lh, const void *data); 19507 void *lh_retrieve(_LHASH *lh, const void *data); 19508 void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); 19509 void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); 19510 unsigned long lh_strhash(const char *c); 19511 unsigned long lh_num_items(const _LHASH *lh); 19512 19513 19514 void lh_stats(const _LHASH *lh, FILE *out); 19515 void lh_node_stats(const _LHASH *lh, FILE *out); 19516 void lh_node_usage_stats(const _LHASH *lh, FILE *out); 19517 19518 19519 19520 void lh_stats_bio(const _LHASH *lh, BIO *out); 19521 void lh_node_stats_bio(const _LHASH *lh, BIO *out); 19522 void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); 19523 19524 19525 /* Type checking... */ 19526 # 206 "/usr/include/openssl/lhash.h" 3 4 19527 /* Define wrapper functions. */ 19528 # 233 "/usr/include/openssl/lhash.h" 3 4 19529 struct lhash_st_OPENSSL_STRING { int dummy; }; 19530 struct lhash_st_OPENSSL_CSTRING { int dummy; }; 19531 # 73 "/usr/include/openssl/x509_vfy.h" 2 3 4 19532 19533 # 1 "/usr/include/openssl/bio.h" 1 3 4 19534 /* crypto/bio/bio.h */ 19535 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19536 * All rights reserved. 19537 * 19538 * This package is an SSL implementation written 19539 * by Eric Young (eay@cryptsoft.com). 19540 * The implementation was written so as to conform with Netscapes SSL. 19541 * 19542 * This library is free for commercial and non-commercial use as long as 19543 * the following conditions are aheared to. The following conditions 19544 * apply to all code found in this distribution, be it the RC4, RSA, 19545 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19546 * included with this distribution is covered by the same copyright terms 19547 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19548 * 19549 * Copyright remains Eric Young's, and as such any Copyright notices in 19550 * the code are not to be removed. 19551 * If this package is used in a product, Eric Young should be given attribution 19552 * as the author of the parts of the library used. 19553 * This can be in the form of a textual message at program startup or 19554 * in documentation (online or textual) provided with the package. 19555 * 19556 * Redistribution and use in source and binary forms, with or without 19557 * modification, are permitted provided that the following conditions 19558 * are met: 19559 * 1. Redistributions of source code must retain the copyright 19560 * notice, this list of conditions and the following disclaimer. 19561 * 2. Redistributions in binary form must reproduce the above copyright 19562 * notice, this list of conditions and the following disclaimer in the 19563 * documentation and/or other materials provided with the distribution. 19564 * 3. All advertising materials mentioning features or use of this software 19565 * must display the following acknowledgement: 19566 * "This product includes cryptographic software written by 19567 * Eric Young (eay@cryptsoft.com)" 19568 * The word 'cryptographic' can be left out if the rouines from the library 19569 * being used are not cryptographic related :-). 19570 * 4. If you include any Windows specific code (or a derivative thereof) from 19571 * the apps directory (application code) you must include an acknowledgement: 19572 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19573 * 19574 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19575 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19576 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19577 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19578 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19579 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19580 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19581 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19582 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19583 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19584 * SUCH DAMAGE. 19585 * 19586 * The licence and distribution terms for any publically available version or 19587 * derivative of this code cannot be changed. i.e. this code cannot simply be 19588 * copied and put under another distribution licence 19589 * [including the GNU Public Licence.] 19590 */ 19591 # 75 "/usr/include/openssl/x509_vfy.h" 2 3 4 19592 # 1 "/usr/include/openssl/crypto.h" 1 3 4 19593 /* crypto/crypto.h */ 19594 /* ==================================================================== 19595 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 19596 * 19597 * Redistribution and use in source and binary forms, with or without 19598 * modification, are permitted provided that the following conditions 19599 * are met: 19600 * 19601 * 1. Redistributions of source code must retain the above copyright 19602 * notice, this list of conditions and the following disclaimer. 19603 * 19604 * 2. Redistributions in binary form must reproduce the above copyright 19605 * notice, this list of conditions and the following disclaimer in 19606 * the documentation and/or other materials provided with the 19607 * distribution. 19608 * 19609 * 3. All advertising materials mentioning features or use of this 19610 * software must display the following acknowledgment: 19611 * "This product includes software developed by the OpenSSL Project 19612 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19613 * 19614 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19615 * endorse or promote products derived from this software without 19616 * prior written permission. For written permission, please contact 19617 * openssl-core@openssl.org. 19618 * 19619 * 5. Products derived from this software may not be called "OpenSSL" 19620 * nor may "OpenSSL" appear in their names without prior written 19621 * permission of the OpenSSL Project. 19622 * 19623 * 6. Redistributions of any form whatsoever must retain the following 19624 * acknowledgment: 19625 * "This product includes software developed by the OpenSSL Project 19626 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19627 * 19628 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19629 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19630 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19631 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19632 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19633 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19634 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19635 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19636 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19637 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19638 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19639 * OF THE POSSIBILITY OF SUCH DAMAGE. 19640 * ==================================================================== 19641 * 19642 * This product includes cryptographic software written by Eric Young 19643 * (eay@cryptsoft.com). This product includes software written by Tim 19644 * Hudson (tjh@cryptsoft.com). 19645 * 19646 */ 19647 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19648 * All rights reserved. 19649 * 19650 * This package is an SSL implementation written 19651 * by Eric Young (eay@cryptsoft.com). 19652 * The implementation was written so as to conform with Netscapes SSL. 19653 * 19654 * This library is free for commercial and non-commercial use as long as 19655 * the following conditions are aheared to. The following conditions 19656 * apply to all code found in this distribution, be it the RC4, RSA, 19657 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19658 * included with this distribution is covered by the same copyright terms 19659 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19660 * 19661 * Copyright remains Eric Young's, and as such any Copyright notices in 19662 * the code are not to be removed. 19663 * If this package is used in a product, Eric Young should be given attribution 19664 * as the author of the parts of the library used. 19665 * This can be in the form of a textual message at program startup or 19666 * in documentation (online or textual) provided with the package. 19667 * 19668 * Redistribution and use in source and binary forms, with or without 19669 * modification, are permitted provided that the following conditions 19670 * are met: 19671 * 1. Redistributions of source code must retain the copyright 19672 * notice, this list of conditions and the following disclaimer. 19673 * 2. Redistributions in binary form must reproduce the above copyright 19674 * notice, this list of conditions and the following disclaimer in the 19675 * documentation and/or other materials provided with the distribution. 19676 * 3. All advertising materials mentioning features or use of this software 19677 * must display the following acknowledgement: 19678 * "This product includes cryptographic software written by 19679 * Eric Young (eay@cryptsoft.com)" 19680 * The word 'cryptographic' can be left out if the rouines from the library 19681 * being used are not cryptographic related :-). 19682 * 4. If you include any Windows specific code (or a derivative thereof) from 19683 * the apps directory (application code) you must include an acknowledgement: 19684 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19685 * 19686 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19687 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19688 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19689 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19690 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19691 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19692 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19693 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19694 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19695 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19696 * SUCH DAMAGE. 19697 * 19698 * The licence and distribution terms for any publically available version or 19699 * derivative of this code cannot be changed. i.e. this code cannot simply be 19700 * copied and put under another distribution licence 19701 * [including the GNU Public Licence.] 19702 */ 19703 /* ==================================================================== 19704 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 19705 * ECDH support in OpenSSL originally developed by 19706 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 19707 */ 19708 # 76 "/usr/include/openssl/x509_vfy.h" 2 3 4 19709 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 19710 /* ==================================================================== 19711 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 19712 * 19713 * Redistribution and use in source and binary forms, with or without 19714 * modification, are permitted provided that the following conditions 19715 * are met: 19716 * 19717 * 1. Redistributions of source code must retain the above copyright 19718 * notice, this list of conditions and the following disclaimer. 19719 * 19720 * 2. Redistributions in binary form must reproduce the above copyright 19721 * notice, this list of conditions and the following disclaimer in 19722 * the documentation and/or other materials provided with the 19723 * distribution. 19724 * 19725 * 3. All advertising materials mentioning features or use of this 19726 * software must display the following acknowledgment: 19727 * "This product includes software developed by the OpenSSL Project 19728 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19729 * 19730 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19731 * endorse or promote products derived from this software without 19732 * prior written permission. For written permission, please contact 19733 * openssl-core@openssl.org. 19734 * 19735 * 5. Products derived from this software may not be called "OpenSSL" 19736 * nor may "OpenSSL" appear in their names without prior written 19737 * permission of the OpenSSL Project. 19738 * 19739 * 6. Redistributions of any form whatsoever must retain the following 19740 * acknowledgment: 19741 * "This product includes software developed by the OpenSSL Project 19742 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19743 * 19744 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19745 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19746 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19747 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19748 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19749 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19750 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19751 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19752 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19753 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19754 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19755 * OF THE POSSIBILITY OF SUCH DAMAGE. 19756 * ==================================================================== 19757 * 19758 * This product includes cryptographic software written by Eric Young 19759 * (eay@cryptsoft.com). This product includes software written by Tim 19760 * Hudson (tjh@cryptsoft.com). 19761 * 19762 */ 19763 # 77 "/usr/include/openssl/x509_vfy.h" 2 3 4 19764 # 92 "/usr/include/openssl/x509_vfy.h" 3 4 19765 typedef struct x509_file_st { 19766 int num_paths; /* number of paths to files or directories */ 19767 int num_alloced; 19768 char **paths; /* the list of paths or directories */ 19769 int *path_type; 19770 } X509_CERT_FILE_CTX; 19771 19772 /*******************************/ 19773 /*- 19774 SSL_CTX -> X509_STORE 19775 -> X509_LOOKUP 19776 ->X509_LOOKUP_METHOD 19777 -> X509_LOOKUP 19778 ->X509_LOOKUP_METHOD 19779 19780 SSL -> X509_STORE_CTX 19781 ->X509_STORE 19782 19783 The X509_STORE holds the tables etc for verification stuff. 19784 A X509_STORE_CTX is used while validating a single certificate. 19785 The X509_STORE has X509_LOOKUPs for looking up certs. 19786 The X509_STORE then calls a function to actually verify the 19787 certificate chain. 19788 */ 19789 19790 19791 19792 19793 19794 19795 19796 typedef struct x509_object_st { 19797 /* one of the above types */ 19798 int type; 19799 union { 19800 char *ptr; 19801 X509 *x509; 19802 X509_CRL *crl; 19803 EVP_PKEY *pkey; 19804 } data; 19805 } X509_OBJECT; 19806 19807 typedef struct x509_lookup_st X509_LOOKUP; 19808 19809 struct stack_st_X509_LOOKUP { _STACK stack; }; 19810 struct stack_st_X509_OBJECT { _STACK stack; }; 19811 19812 /* This is a static that defines the function interface */ 19813 typedef struct x509_lookup_method_st { 19814 const char *name; 19815 int (*new_item) (X509_LOOKUP *ctx); 19816 void (*free) (X509_LOOKUP *ctx); 19817 int (*init) (X509_LOOKUP *ctx); 19818 int (*shutdown) (X509_LOOKUP *ctx); 19819 int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, 19820 char **ret); 19821 int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, 19822 X509_OBJECT *ret); 19823 int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, 19824 ASN1_INTEGER *serial, X509_OBJECT *ret); 19825 int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, 19826 unsigned char *bytes, int len, 19827 X509_OBJECT *ret); 19828 int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, 19829 X509_OBJECT *ret); 19830 } X509_LOOKUP_METHOD; 19831 19832 typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; 19833 19834 /* 19835 * This structure hold all parameters associated with a verify operation by 19836 * including an X509_VERIFY_PARAM structure in related structures the 19837 * parameters used can be customized 19838 */ 19839 19840 typedef struct X509_VERIFY_PARAM_st { 19841 char *name; 19842 time_t check_time; /* Time to use */ 19843 unsigned long inh_flags; /* Inheritance flags */ 19844 unsigned long flags; /* Various verify flags */ 19845 int purpose; /* purpose to check untrusted certificates */ 19846 int trust; /* trust setting to check */ 19847 int depth; /* Verify depth */ 19848 struct stack_st_ASN1_OBJECT *policies; /* Permissible policies */ 19849 X509_VERIFY_PARAM_ID *id; /* opaque ID data */ 19850 } X509_VERIFY_PARAM; 19851 19852 struct stack_st_X509_VERIFY_PARAM { _STACK stack; }; 19853 19854 /* 19855 * This is used to hold everything. It is used for all certificate 19856 * validation. Once we have a certificate chain, the 'verify' function is 19857 * then called to actually check the cert chain. 19858 */ 19859 struct x509_store_st { 19860 /* The following is a cache of trusted certs */ 19861 int cache; /* if true, stash any hits */ 19862 struct stack_st_X509_OBJECT *objs; /* Cache of all objects */ 19863 /* These are external lookup methods */ 19864 struct stack_st_X509_LOOKUP *get_cert_methods; 19865 X509_VERIFY_PARAM *param; 19866 /* Callbacks for various operations */ 19867 /* called to verify a certificate */ 19868 int (*verify) (X509_STORE_CTX *ctx); 19869 /* error callback */ 19870 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 19871 /* get issuers cert from ctx */ 19872 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 19873 /* check issued */ 19874 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 19875 /* Check revocation status of chain */ 19876 int (*check_revocation) (X509_STORE_CTX *ctx); 19877 /* retrieve CRL */ 19878 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 19879 /* Check CRL validity */ 19880 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 19881 /* Check certificate against CRL */ 19882 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 19883 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 19884 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 19885 int (*cleanup) (X509_STORE_CTX *ctx); 19886 CRYPTO_EX_DATA ex_data; 19887 int references; 19888 } /* X509_STORE */ ; 19889 19890 int X509_STORE_set_depth(X509_STORE *store, int depth); 19891 19892 19893 19894 19895 /* This is the functions plus an instance of the local variables. */ 19896 struct x509_lookup_st { 19897 int init; /* have we been started */ 19898 int skip; /* don't use us. */ 19899 X509_LOOKUP_METHOD *method; /* the functions */ 19900 char *method_data; /* method data */ 19901 X509_STORE *store_ctx; /* who owns us */ 19902 } /* X509_LOOKUP */ ; 19903 19904 /* 19905 * This is a used when verifying cert chains. Since the gathering of the 19906 * cert chain can take some time (and have to be 'retried', this needs to be 19907 * kept and passed around. 19908 */ 19909 struct x509_store_ctx_st { /* X509_STORE_CTX */ 19910 X509_STORE *ctx; 19911 /* used when looking up certs */ 19912 int current_method; 19913 /* The following are set by the caller */ 19914 /* The cert to check */ 19915 X509 *cert; 19916 /* chain of X509s - untrusted - passed in */ 19917 struct stack_st_X509 *untrusted; 19918 /* set of CRLs passed in */ 19919 struct stack_st_X509_CRL *crls; 19920 X509_VERIFY_PARAM *param; 19921 /* Other info for use with get_issuer() */ 19922 void *other_ctx; 19923 /* Callbacks for various operations */ 19924 /* called to verify a certificate */ 19925 int (*verify) (X509_STORE_CTX *ctx); 19926 /* error callback */ 19927 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 19928 /* get issuers cert from ctx */ 19929 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 19930 /* check issued */ 19931 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 19932 /* Check revocation status of chain */ 19933 int (*check_revocation) (X509_STORE_CTX *ctx); 19934 /* retrieve CRL */ 19935 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 19936 /* Check CRL validity */ 19937 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 19938 /* Check certificate against CRL */ 19939 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 19940 int (*check_policy) (X509_STORE_CTX *ctx); 19941 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 19942 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 19943 int (*cleanup) (X509_STORE_CTX *ctx); 19944 /* The following is built up */ 19945 /* if 0, rebuild chain */ 19946 int valid; 19947 /* index of last untrusted cert */ 19948 int last_untrusted; 19949 /* chain of X509s - built up and trusted */ 19950 struct stack_st_X509 *chain; 19951 /* Valid policy tree */ 19952 X509_POLICY_TREE *tree; 19953 /* Require explicit policy value */ 19954 int explicit_policy; 19955 /* When something goes wrong, this is why */ 19956 int error_depth; 19957 int error; 19958 X509 *current_cert; 19959 /* cert currently being tested as valid issuer */ 19960 X509 *current_issuer; 19961 /* current CRL */ 19962 X509_CRL *current_crl; 19963 /* score of current CRL */ 19964 int current_crl_score; 19965 /* Reason mask */ 19966 unsigned int current_reasons; 19967 /* For CRL path validation: parent context */ 19968 X509_STORE_CTX *parent; 19969 CRYPTO_EX_DATA ex_data; 19970 } /* X509_STORE_CTX */ ; 19971 19972 void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); 19973 # 345 "/usr/include/openssl/x509_vfy.h" 3 4 19974 /* These are 'informational' when looking for issuer cert */ 19975 # 377 "/usr/include/openssl/x509_vfy.h" 3 4 19976 /* Suite B mode algorithm violation */ 19977 19978 19979 19980 19981 19982 19983 19984 /* Host, email and IP check errors */ 19985 19986 19987 19988 19989 /* Caller error */ 19990 19991 /* Issuer lookup error */ 19992 19993 19994 19995 19996 /* Certificate verify flags */ 19997 19998 /* Send issuer+subject checks to verify_cb */ 19999 20000 /* Use check time instead of current time */ 20001 20002 /* Lookup CRLs */ 20003 20004 /* Lookup CRLs for whole chain */ 20005 20006 /* Ignore unhandled critical extensions */ 20007 20008 /* Disable workarounds for broken certificates */ 20009 20010 /* Enable proxy certificate validation */ 20011 20012 /* Enable policy checking */ 20013 20014 /* Policy variable require-explicit-policy */ 20015 20016 /* Policy variable inhibit-any-policy */ 20017 20018 /* Policy variable inhibit-policy-mapping */ 20019 20020 /* Notify callback that policy is OK */ 20021 20022 /* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ 20023 20024 /* Delta CRL support */ 20025 20026 /* Check selfsigned CA signature */ 20027 20028 /* Use trusted store first */ 20029 20030 /* Suite B 128 bit only mode: not normally used */ 20031 20032 /* Suite B 192 bit only mode */ 20033 20034 /* Suite B 128 bit mode allowing 192 bit algorithms */ 20035 20036 20037 /* Allow partial chains if at least one certificate is in trusted store */ 20038 20039 /* 20040 * If the initial chain is not trusted, do not attempt to build an alternative 20041 * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag 20042 * will force the behaviour to match that of previous versions. 20043 */ 20044 # 453 "/usr/include/openssl/x509_vfy.h" 3 4 20045 /* Internal use: mask of policy related options */ 20046 20047 20048 20049 20050 20051 int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, int type, 20052 X509_NAME *name); 20053 X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h, 20054 int type, X509_NAME *name); 20055 X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h, 20056 X509_OBJECT *x); 20057 void X509_OBJECT_up_ref_count(X509_OBJECT *a); 20058 void X509_OBJECT_free_contents(X509_OBJECT *a); 20059 X509_STORE *X509_STORE_new(void); 20060 void X509_STORE_free(X509_STORE *v); 20061 20062 struct stack_st_X509 *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); 20063 struct stack_st_X509_CRL *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); 20064 int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); 20065 int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); 20066 int X509_STORE_set_trust(X509_STORE *ctx, int trust); 20067 int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); 20068 20069 void X509_STORE_set_verify_cb(X509_STORE *ctx, 20070 int (*verify_cb) (int, X509_STORE_CTX *)); 20071 20072 void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, 20073 struct stack_st_X509_CRL *(*cb) (X509_STORE_CTX 20074 *ctx, 20075 X509_NAME *nm)); 20076 20077 X509_STORE_CTX *X509_STORE_CTX_new(void); 20078 20079 int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 20080 20081 void X509_STORE_CTX_free(X509_STORE_CTX *ctx); 20082 int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, 20083 X509 *x509, struct stack_st_X509 *chain); 20084 void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); 20085 void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); 20086 20087 X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); 20088 20089 X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); 20090 20091 X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); 20092 X509_LOOKUP_METHOD *X509_LOOKUP_file(void); 20093 20094 int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); 20095 int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); 20096 20097 int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, 20098 X509_OBJECT *ret); 20099 20100 int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, 20101 long argl, char **ret); 20102 20103 20104 int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); 20105 int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); 20106 int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); 20107 20108 20109 X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); 20110 void X509_LOOKUP_free(X509_LOOKUP *ctx); 20111 int X509_LOOKUP_init(X509_LOOKUP *ctx); 20112 int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, 20113 X509_OBJECT *ret); 20114 int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, 20115 ASN1_INTEGER *serial, X509_OBJECT *ret); 20116 int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, 20117 unsigned char *bytes, int len, 20118 X509_OBJECT *ret); 20119 int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, 20120 X509_OBJECT *ret); 20121 int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); 20122 20123 20124 int X509_STORE_load_locations(X509_STORE *ctx, 20125 const char *file, const char *dir); 20126 int X509_STORE_set_default_paths(X509_STORE *ctx); 20127 20128 20129 int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, 20130 CRYPTO_EX_new *new_func, 20131 CRYPTO_EX_dup *dup_func, 20132 CRYPTO_EX_free *free_func); 20133 int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); 20134 void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); 20135 int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); 20136 void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); 20137 int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); 20138 X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); 20139 X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); 20140 X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); 20141 X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); 20142 struct stack_st_X509 *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); 20143 struct stack_st_X509 *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); 20144 void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); 20145 void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk); 20146 void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, struct stack_st_X509_CRL *sk); 20147 int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); 20148 int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); 20149 int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, 20150 int purpose, int trust); 20151 void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); 20152 void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, 20153 time_t t); 20154 void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, 20155 int (*verify_cb) (int, X509_STORE_CTX *)); 20156 20157 X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); 20158 int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); 20159 20160 X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); 20161 void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); 20162 int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); 20163 20164 /* X509_VERIFY_PARAM functions */ 20165 20166 X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); 20167 void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); 20168 int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, 20169 const X509_VERIFY_PARAM *from); 20170 int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, 20171 const X509_VERIFY_PARAM *from); 20172 int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); 20173 int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, 20174 unsigned long flags); 20175 int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, 20176 unsigned long flags); 20177 unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); 20178 int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); 20179 int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); 20180 void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); 20181 void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); 20182 int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, 20183 ASN1_OBJECT *policy); 20184 int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 20185 struct stack_st_ASN1_OBJECT *policies); 20186 20187 int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, 20188 const char *name, size_t namelen); 20189 int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, 20190 const char *name, size_t namelen); 20191 void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, 20192 unsigned int flags); 20193 char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); 20194 int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, 20195 const char *email, size_t emaillen); 20196 int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, 20197 const unsigned char *ip, size_t iplen); 20198 int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, 20199 const char *ipasc); 20200 20201 int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); 20202 const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); 20203 20204 int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); 20205 int X509_VERIFY_PARAM_get_count(void); 20206 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); 20207 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); 20208 void X509_VERIFY_PARAM_table_cleanup(void); 20209 20210 int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, 20211 struct stack_st_X509 *certs, 20212 struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags); 20213 20214 void X509_policy_tree_free(X509_POLICY_TREE *tree); 20215 20216 int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); 20217 X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, 20218 int i); 20219 20220 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_policies(const 20221 X509_POLICY_TREE 20222 *tree); 20223 20224 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_user_policies(const 20225 X509_POLICY_TREE 20226 *tree); 20227 20228 int X509_policy_level_node_count(X509_POLICY_LEVEL *level); 20229 20230 X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, 20231 int i); 20232 20233 const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); 20234 20235 struct stack_st_POLICYQUALINFO *X509_policy_node_get0_qualifiers(const 20236 X509_POLICY_NODE 20237 *node); 20238 const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE 20239 *node); 20240 # 582 "/usr/include/openssl/x509.h" 2 3 4 20241 # 1 "/usr/include/openssl/pkcs7.h" 1 3 4 20242 /* crypto/pkcs7/pkcs7.h */ 20243 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20244 * All rights reserved. 20245 * 20246 * This package is an SSL implementation written 20247 * by Eric Young (eay@cryptsoft.com). 20248 * The implementation was written so as to conform with Netscapes SSL. 20249 * 20250 * This library is free for commercial and non-commercial use as long as 20251 * the following conditions are aheared to. The following conditions 20252 * apply to all code found in this distribution, be it the RC4, RSA, 20253 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20254 * included with this distribution is covered by the same copyright terms 20255 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20256 * 20257 * Copyright remains Eric Young's, and as such any Copyright notices in 20258 * the code are not to be removed. 20259 * If this package is used in a product, Eric Young should be given attribution 20260 * as the author of the parts of the library used. 20261 * This can be in the form of a textual message at program startup or 20262 * in documentation (online or textual) provided with the package. 20263 * 20264 * Redistribution and use in source and binary forms, with or without 20265 * modification, are permitted provided that the following conditions 20266 * are met: 20267 * 1. Redistributions of source code must retain the copyright 20268 * notice, this list of conditions and the following disclaimer. 20269 * 2. Redistributions in binary form must reproduce the above copyright 20270 * notice, this list of conditions and the following disclaimer in the 20271 * documentation and/or other materials provided with the distribution. 20272 * 3. All advertising materials mentioning features or use of this software 20273 * must display the following acknowledgement: 20274 * "This product includes cryptographic software written by 20275 * Eric Young (eay@cryptsoft.com)" 20276 * The word 'cryptographic' can be left out if the rouines from the library 20277 * being used are not cryptographic related :-). 20278 * 4. If you include any Windows specific code (or a derivative thereof) from 20279 * the apps directory (application code) you must include an acknowledgement: 20280 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20281 * 20282 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20283 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20284 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20285 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20286 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20287 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20288 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20289 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20290 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20291 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20292 * SUCH DAMAGE. 20293 * 20294 * The licence and distribution terms for any publically available version or 20295 * derivative of this code cannot be changed. i.e. this code cannot simply be 20296 * copied and put under another distribution licence 20297 * [including the GNU Public Licence.] 20298 */ 20299 20300 20301 20302 20303 # 1 "/usr/include/openssl/asn1.h" 1 3 4 20304 /* crypto/asn1/asn1.h */ 20305 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20306 * All rights reserved. 20307 * 20308 * This package is an SSL implementation written 20309 * by Eric Young (eay@cryptsoft.com). 20310 * The implementation was written so as to conform with Netscapes SSL. 20311 * 20312 * This library is free for commercial and non-commercial use as long as 20313 * the following conditions are aheared to. The following conditions 20314 * apply to all code found in this distribution, be it the RC4, RSA, 20315 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20316 * included with this distribution is covered by the same copyright terms 20317 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20318 * 20319 * Copyright remains Eric Young's, and as such any Copyright notices in 20320 * the code are not to be removed. 20321 * If this package is used in a product, Eric Young should be given attribution 20322 * as the author of the parts of the library used. 20323 * This can be in the form of a textual message at program startup or 20324 * in documentation (online or textual) provided with the package. 20325 * 20326 * Redistribution and use in source and binary forms, with or without 20327 * modification, are permitted provided that the following conditions 20328 * are met: 20329 * 1. Redistributions of source code must retain the copyright 20330 * notice, this list of conditions and the following disclaimer. 20331 * 2. Redistributions in binary form must reproduce the above copyright 20332 * notice, this list of conditions and the following disclaimer in the 20333 * documentation and/or other materials provided with the distribution. 20334 * 3. All advertising materials mentioning features or use of this software 20335 * must display the following acknowledgement: 20336 * "This product includes cryptographic software written by 20337 * Eric Young (eay@cryptsoft.com)" 20338 * The word 'cryptographic' can be left out if the rouines from the library 20339 * being used are not cryptographic related :-). 20340 * 4. If you include any Windows specific code (or a derivative thereof) from 20341 * the apps directory (application code) you must include an acknowledgement: 20342 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20343 * 20344 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20345 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20346 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20347 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20348 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20349 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20350 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20351 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20352 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20353 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20354 * SUCH DAMAGE. 20355 * 20356 * The licence and distribution terms for any publically available version or 20357 * derivative of this code cannot be changed. i.e. this code cannot simply be 20358 * copied and put under another distribution licence 20359 * [including the GNU Public Licence.] 20360 */ 20361 # 63 "/usr/include/openssl/pkcs7.h" 2 3 4 20362 # 1 "/usr/include/openssl/bio.h" 1 3 4 20363 /* crypto/bio/bio.h */ 20364 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20365 * All rights reserved. 20366 * 20367 * This package is an SSL implementation written 20368 * by Eric Young (eay@cryptsoft.com). 20369 * The implementation was written so as to conform with Netscapes SSL. 20370 * 20371 * This library is free for commercial and non-commercial use as long as 20372 * the following conditions are aheared to. The following conditions 20373 * apply to all code found in this distribution, be it the RC4, RSA, 20374 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20375 * included with this distribution is covered by the same copyright terms 20376 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20377 * 20378 * Copyright remains Eric Young's, and as such any Copyright notices in 20379 * the code are not to be removed. 20380 * If this package is used in a product, Eric Young should be given attribution 20381 * as the author of the parts of the library used. 20382 * This can be in the form of a textual message at program startup or 20383 * in documentation (online or textual) provided with the package. 20384 * 20385 * Redistribution and use in source and binary forms, with or without 20386 * modification, are permitted provided that the following conditions 20387 * are met: 20388 * 1. Redistributions of source code must retain the copyright 20389 * notice, this list of conditions and the following disclaimer. 20390 * 2. Redistributions in binary form must reproduce the above copyright 20391 * notice, this list of conditions and the following disclaimer in the 20392 * documentation and/or other materials provided with the distribution. 20393 * 3. All advertising materials mentioning features or use of this software 20394 * must display the following acknowledgement: 20395 * "This product includes cryptographic software written by 20396 * Eric Young (eay@cryptsoft.com)" 20397 * The word 'cryptographic' can be left out if the rouines from the library 20398 * being used are not cryptographic related :-). 20399 * 4. If you include any Windows specific code (or a derivative thereof) from 20400 * the apps directory (application code) you must include an acknowledgement: 20401 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20402 * 20403 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20404 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20405 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20406 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20407 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20408 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20409 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20410 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20411 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20412 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20413 * SUCH DAMAGE. 20414 * 20415 * The licence and distribution terms for any publically available version or 20416 * derivative of this code cannot be changed. i.e. this code cannot simply be 20417 * copied and put under another distribution licence 20418 * [including the GNU Public Licence.] 20419 */ 20420 # 64 "/usr/include/openssl/pkcs7.h" 2 3 4 20421 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 20422 /* e_os2.h */ 20423 /* ==================================================================== 20424 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 20425 * 20426 * Redistribution and use in source and binary forms, with or without 20427 * modification, are permitted provided that the following conditions 20428 * are met: 20429 * 20430 * 1. Redistributions of source code must retain the above copyright 20431 * notice, this list of conditions and the following disclaimer. 20432 * 20433 * 2. Redistributions in binary form must reproduce the above copyright 20434 * notice, this list of conditions and the following disclaimer in 20435 * the documentation and/or other materials provided with the 20436 * distribution. 20437 * 20438 * 3. All advertising materials mentioning features or use of this 20439 * software must display the following acknowledgment: 20440 * "This product includes software developed by the OpenSSL Project 20441 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20442 * 20443 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20444 * endorse or promote products derived from this software without 20445 * prior written permission. For written permission, please contact 20446 * openssl-core@openssl.org. 20447 * 20448 * 5. Products derived from this software may not be called "OpenSSL" 20449 * nor may "OpenSSL" appear in their names without prior written 20450 * permission of the OpenSSL Project. 20451 * 20452 * 6. Redistributions of any form whatsoever must retain the following 20453 * acknowledgment: 20454 * "This product includes software developed by the OpenSSL Project 20455 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20456 * 20457 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20458 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20459 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20460 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20461 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20462 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20463 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20464 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20465 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20466 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20467 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20468 * OF THE POSSIBILITY OF SUCH DAMAGE. 20469 * ==================================================================== 20470 * 20471 * This product includes cryptographic software written by Eric Young 20472 * (eay@cryptsoft.com). This product includes software written by Tim 20473 * Hudson (tjh@cryptsoft.com). 20474 * 20475 */ 20476 20477 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 20478 /* opensslconf.h */ 20479 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 20480 20481 20482 20483 20484 /* OpenSSL was configured with the following options: */ 20485 # 108 "/usr/include/openssl/opensslconf.h" 3 4 20486 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 20487 asks for it. This is a transient feature that is provided for those 20488 who haven't had the time to do the appropriate changes in their 20489 applications. */ 20490 # 204 "/usr/include/openssl/opensslconf.h" 3 4 20491 /* crypto/opensslconf.h.in */ 20492 20493 /* Generate 80386 code? */ 20494 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 20495 # 65 "/usr/include/openssl/pkcs7.h" 2 3 4 20496 20497 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 20498 /* ==================================================================== 20499 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 20500 * 20501 * Redistribution and use in source and binary forms, with or without 20502 * modification, are permitted provided that the following conditions 20503 * are met: 20504 * 20505 * 1. Redistributions of source code must retain the above copyright 20506 * notice, this list of conditions and the following disclaimer. 20507 * 20508 * 2. Redistributions in binary form must reproduce the above copyright 20509 * notice, this list of conditions and the following disclaimer in 20510 * the documentation and/or other materials provided with the 20511 * distribution. 20512 * 20513 * 3. All advertising materials mentioning features or use of this 20514 * software must display the following acknowledgment: 20515 * "This product includes software developed by the OpenSSL Project 20516 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20517 * 20518 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20519 * endorse or promote products derived from this software without 20520 * prior written permission. For written permission, please contact 20521 * openssl-core@openssl.org. 20522 * 20523 * 5. Products derived from this software may not be called "OpenSSL" 20524 * nor may "OpenSSL" appear in their names without prior written 20525 * permission of the OpenSSL Project. 20526 * 20527 * 6. Redistributions of any form whatsoever must retain the following 20528 * acknowledgment: 20529 * "This product includes software developed by the OpenSSL Project 20530 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20531 * 20532 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20533 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20534 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20535 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20536 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20537 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20538 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20539 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20540 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20541 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20542 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20543 * OF THE POSSIBILITY OF SUCH DAMAGE. 20544 * ==================================================================== 20545 * 20546 * This product includes cryptographic software written by Eric Young 20547 * (eay@cryptsoft.com). This product includes software written by Tim 20548 * Hudson (tjh@cryptsoft.com). 20549 * 20550 */ 20551 # 67 "/usr/include/openssl/pkcs7.h" 2 3 4 20552 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 20553 /* ==================================================================== 20554 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 20555 * 20556 * Redistribution and use in source and binary forms, with or without 20557 * modification, are permitted provided that the following conditions 20558 * are met: 20559 * 20560 * 1. Redistributions of source code must retain the above copyright 20561 * notice, this list of conditions and the following disclaimer. 20562 * 20563 * 2. Redistributions in binary form must reproduce the above copyright 20564 * notice, this list of conditions and the following disclaimer in 20565 * the documentation and/or other materials provided with the 20566 * distribution. 20567 * 20568 * 3. All advertising materials mentioning features or use of this 20569 * software must display the following acknowledgment: 20570 * "This product includes software developed by the OpenSSL Project 20571 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20572 * 20573 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20574 * endorse or promote products derived from this software without 20575 * prior written permission. For written permission, please contact 20576 * openssl-core@openssl.org. 20577 * 20578 * 5. Products derived from this software may not be called "OpenSSL" 20579 * nor may "OpenSSL" appear in their names without prior written 20580 * permission of the OpenSSL Project. 20581 * 20582 * 6. Redistributions of any form whatsoever must retain the following 20583 * acknowledgment: 20584 * "This product includes software developed by the OpenSSL Project 20585 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20586 * 20587 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20588 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20589 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20590 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20591 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20592 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20593 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20594 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20595 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20596 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20597 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20598 * OF THE POSSIBILITY OF SUCH DAMAGE. 20599 * ==================================================================== 20600 * 20601 * This product includes cryptographic software written by Eric Young 20602 * (eay@cryptsoft.com). This product includes software written by Tim 20603 * Hudson (tjh@cryptsoft.com). 20604 * 20605 */ 20606 # 68 "/usr/include/openssl/pkcs7.h" 2 3 4 20607 # 79 "/usr/include/openssl/pkcs7.h" 3 4 20608 /*- 20609 Encryption_ID DES-CBC 20610 Digest_ID MD5 20611 Digest_Encryption_ID rsaEncryption 20612 Key_Encryption_ID rsaEncryption 20613 */ 20614 20615 typedef struct pkcs7_issuer_and_serial_st { 20616 X509_NAME *issuer; 20617 ASN1_INTEGER *serial; 20618 } PKCS7_ISSUER_AND_SERIAL; 20619 20620 typedef struct pkcs7_signer_info_st { 20621 ASN1_INTEGER *version; /* version 1 */ 20622 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 20623 X509_ALGOR *digest_alg; 20624 struct stack_st_X509_ATTRIBUTE *auth_attr; /* [ 0 ] */ 20625 X509_ALGOR *digest_enc_alg; 20626 ASN1_OCTET_STRING *enc_digest; 20627 struct stack_st_X509_ATTRIBUTE *unauth_attr; /* [ 1 ] */ 20628 /* The private key to sign with */ 20629 EVP_PKEY *pkey; 20630 } PKCS7_SIGNER_INFO; 20631 20632 struct stack_st_PKCS7_SIGNER_INFO { _STACK stack; }; 20633 20634 20635 typedef struct pkcs7_recip_info_st { 20636 ASN1_INTEGER *version; /* version 0 */ 20637 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 20638 X509_ALGOR *key_enc_algor; 20639 ASN1_OCTET_STRING *enc_key; 20640 X509 *cert; /* get the pub-key from this */ 20641 } PKCS7_RECIP_INFO; 20642 20643 struct stack_st_PKCS7_RECIP_INFO { _STACK stack; }; 20644 20645 20646 typedef struct pkcs7_signed_st { 20647 ASN1_INTEGER *version; /* version 1 */ 20648 struct stack_st_X509_ALGOR *md_algs; /* md used */ 20649 struct stack_st_X509 *cert; /* [ 0 ] */ 20650 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 20651 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 20652 struct pkcs7_st *contents; 20653 } PKCS7_SIGNED; 20654 /* 20655 * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about 20656 * merging the two 20657 */ 20658 20659 typedef struct pkcs7_enc_content_st { 20660 ASN1_OBJECT *content_type; 20661 X509_ALGOR *algorithm; 20662 ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ 20663 const EVP_CIPHER *cipher; 20664 } PKCS7_ENC_CONTENT; 20665 20666 typedef struct pkcs7_enveloped_st { 20667 ASN1_INTEGER *version; /* version 0 */ 20668 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 20669 PKCS7_ENC_CONTENT *enc_data; 20670 } PKCS7_ENVELOPE; 20671 20672 typedef struct pkcs7_signedandenveloped_st { 20673 ASN1_INTEGER *version; /* version 1 */ 20674 struct stack_st_X509_ALGOR *md_algs; /* md used */ 20675 struct stack_st_X509 *cert; /* [ 0 ] */ 20676 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 20677 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 20678 PKCS7_ENC_CONTENT *enc_data; 20679 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 20680 } PKCS7_SIGN_ENVELOPE; 20681 20682 typedef struct pkcs7_digest_st { 20683 ASN1_INTEGER *version; /* version 0 */ 20684 X509_ALGOR *md; /* md used */ 20685 struct pkcs7_st *contents; 20686 ASN1_OCTET_STRING *digest; 20687 } PKCS7_DIGEST; 20688 20689 typedef struct pkcs7_encrypted_st { 20690 ASN1_INTEGER *version; /* version 0 */ 20691 PKCS7_ENC_CONTENT *enc_data; 20692 } PKCS7_ENCRYPT; 20693 20694 typedef struct pkcs7_st { 20695 /* 20696 * The following is non NULL if it contains ASN1 encoding of this 20697 * structure 20698 */ 20699 unsigned char *asn1; 20700 long length; 20701 20702 20703 20704 int state; /* used during processing */ 20705 int detached; 20706 ASN1_OBJECT *type; 20707 /* content as defined by the type */ 20708 /* 20709 * all encryption/message digests are applied to the 'contents', leaving 20710 * out the 'type' field. 20711 */ 20712 union { 20713 char *ptr; 20714 /* NID_pkcs7_data */ 20715 ASN1_OCTET_STRING *data; 20716 /* NID_pkcs7_signed */ 20717 PKCS7_SIGNED *sign; 20718 /* NID_pkcs7_enveloped */ 20719 PKCS7_ENVELOPE *enveloped; 20720 /* NID_pkcs7_signedAndEnveloped */ 20721 PKCS7_SIGN_ENVELOPE *signed_and_enveloped; 20722 /* NID_pkcs7_digest */ 20723 PKCS7_DIGEST *digest; 20724 /* NID_pkcs7_encrypted */ 20725 PKCS7_ENCRYPT *encrypted; 20726 /* Anything else */ 20727 ASN1_TYPE *other; 20728 } d; 20729 } PKCS7; 20730 20731 struct stack_st_PKCS7 { _STACK stack; }; 20732 20733 20734 # 227 "/usr/include/openssl/pkcs7.h" 3 4 20735 /* S/MIME related flags */ 20736 # 246 "/usr/include/openssl/pkcs7.h" 3 4 20737 /* Flags: for compatibility with older code */ 20738 # 258 "/usr/include/openssl/pkcs7.h" 3 4 20739 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; 20740 20741 int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, 20742 const EVP_MD *type, unsigned char *md, 20743 unsigned int *len); 20744 20745 PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); 20746 int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); 20747 20748 PKCS7 *PKCS7_dup(PKCS7 *p7); 20749 PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); 20750 int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); 20751 int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 20752 int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 20753 20754 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; 20755 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; 20756 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; 20757 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; 20758 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; 20759 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; 20760 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; 20761 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; 20762 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; 20763 20764 extern const ASN1_ITEM PKCS7_ATTR_SIGN_it; 20765 extern const ASN1_ITEM PKCS7_ATTR_VERIFY_it; 20766 20767 int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out); 20768 int PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx); 20769 20770 long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); 20771 20772 int PKCS7_set_type(PKCS7 *p7, int type); 20773 int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); 20774 int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); 20775 int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, 20776 const EVP_MD *dgst); 20777 int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); 20778 int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); 20779 int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); 20780 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); 20781 int PKCS7_content_new(PKCS7 *p7, int nid); 20782 int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, 20783 BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); 20784 int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, 20785 X509 *x509); 20786 20787 BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); 20788 int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); 20789 BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); 20790 20791 PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, 20792 EVP_PKEY *pkey, const EVP_MD *dgst); 20793 X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); 20794 int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); 20795 struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7); 20796 20797 PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); 20798 void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, 20799 X509_ALGOR **pdig, X509_ALGOR **psig); 20800 void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); 20801 int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); 20802 int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); 20803 int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); 20804 int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); 20805 20806 PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); 20807 ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk); 20808 int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, 20809 void *data); 20810 int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, 20811 void *value); 20812 ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); 20813 ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); 20814 int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, 20815 struct stack_st_X509_ATTRIBUTE *sk); 20816 int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, 20817 struct stack_st_X509_ATTRIBUTE *sk); 20818 20819 PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, 20820 BIO *data, int flags); 20821 20822 PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, 20823 X509 *signcert, EVP_PKEY *pkey, 20824 const EVP_MD *md, int flags); 20825 20826 int PKCS7_final(PKCS7 *p7, BIO *data, int flags); 20827 int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, 20828 BIO *indata, BIO *out, int flags); 20829 struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, 20830 int flags); 20831 PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, 20832 int flags); 20833 int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, 20834 int flags); 20835 20836 int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, 20837 struct stack_st_X509_ALGOR *cap); 20838 struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); 20839 int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg); 20840 20841 int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); 20842 int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); 20843 int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, 20844 const unsigned char *md, int mdlen); 20845 20846 int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); 20847 PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); 20848 20849 BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); 20850 20851 /* BEGIN ERROR CODES */ 20852 /* 20853 * The following lines are auto generated by the script mkerr.pl. Any changes 20854 * made after this point may be overwritten when the script is next run. 20855 */ 20856 void ERR_load_PKCS7_strings(void); 20857 20858 /* Error codes for the PKCS7 functions. */ 20859 20860 /* Function codes. */ 20861 # 421 "/usr/include/openssl/pkcs7.h" 3 4 20862 /* Reason codes. */ 20863 # 583 "/usr/include/openssl/x509.h" 2 3 4 20864 # 592 "/usr/include/openssl/x509.h" 3 4 20865 /* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ 20866 # 608 "/usr/include/openssl/x509.h" 3 4 20867 void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); 20868 X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), 20869 int (*crl_free) (X509_CRL *crl), 20870 int (*crl_lookup) (X509_CRL *crl, 20871 X509_REVOKED **ret, 20872 ASN1_INTEGER *ser, 20873 X509_NAME *issuer), 20874 int (*crl_verify) (X509_CRL *crl, 20875 EVP_PKEY *pk)); 20876 void X509_CRL_METHOD_free(X509_CRL_METHOD *m); 20877 20878 void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); 20879 void *X509_CRL_get_meth_data(X509_CRL *crl); 20880 20881 /* 20882 * This one is only used so that a binary form can output, as in 20883 * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) 20884 */ 20885 20886 20887 const char *X509_verify_cert_error_string(long n); 20888 20889 20890 int X509_verify(X509 *a, EVP_PKEY *r); 20891 20892 int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); 20893 int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); 20894 int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); 20895 20896 NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); 20897 char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); 20898 EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); 20899 int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); 20900 20901 int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); 20902 20903 int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); 20904 int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); 20905 20906 int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 20907 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); 20908 int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); 20909 int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); 20910 int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); 20911 int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); 20912 int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); 20913 int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); 20914 int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); 20915 20916 int X509_pubkey_digest(const X509 *data, const EVP_MD *type, 20917 unsigned char *md, unsigned int *len); 20918 int X509_digest(const X509 *data, const EVP_MD *type, 20919 unsigned char *md, unsigned int *len); 20920 int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, 20921 unsigned char *md, unsigned int *len); 20922 int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, 20923 unsigned char *md, unsigned int *len); 20924 int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, 20925 unsigned char *md, unsigned int *len); 20926 20927 20928 20929 X509 *d2i_X509_fp(FILE *fp, X509 **x509); 20930 int i2d_X509_fp(FILE *fp, X509 *x509); 20931 X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); 20932 int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); 20933 X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); 20934 int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); 20935 20936 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); 20937 int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); 20938 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); 20939 int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); 20940 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); 20941 int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); 20942 20943 20944 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); 20945 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); 20946 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); 20947 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); 20948 20949 20950 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); 20951 int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); 20952 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); 20953 int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); 20954 20955 X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); 20956 int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); 20957 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, 20958 PKCS8_PRIV_KEY_INFO **p8inf); 20959 int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); 20960 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); 20961 int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); 20962 EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); 20963 int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); 20964 EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); 20965 20966 20967 20968 X509 *d2i_X509_bio(BIO *bp, X509 **x509); 20969 int i2d_X509_bio(BIO *bp, X509 *x509); 20970 X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); 20971 int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); 20972 X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); 20973 int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); 20974 20975 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); 20976 int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); 20977 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); 20978 int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); 20979 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); 20980 int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); 20981 20982 20983 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); 20984 int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); 20985 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); 20986 int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); 20987 20988 20989 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); 20990 int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); 20991 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); 20992 int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); 20993 20994 X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); 20995 int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); 20996 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, 20997 PKCS8_PRIV_KEY_INFO **p8inf); 20998 int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); 20999 int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); 21000 int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); 21001 EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); 21002 int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); 21003 EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); 21004 21005 21006 X509 *X509_dup(X509 *x509); 21007 X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); 21008 X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); 21009 X509_CRL *X509_CRL_dup(X509_CRL *crl); 21010 X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); 21011 X509_REQ *X509_REQ_dup(X509_REQ *req); 21012 X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); 21013 int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, 21014 void *pval); 21015 void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, 21016 X509_ALGOR *algor); 21017 void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); 21018 int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); 21019 21020 X509_NAME *X509_NAME_dup(X509_NAME *xn); 21021 X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); 21022 21023 int X509_cmp_time(const ASN1_TIME *s, time_t *t); 21024 int X509_cmp_current_time(const ASN1_TIME *s); 21025 ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); 21026 ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, 21027 int offset_day, long offset_sec, time_t *t); 21028 ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); 21029 21030 const char *X509_get_default_cert_area(void); 21031 const char *X509_get_default_cert_dir(void); 21032 const char *X509_get_default_cert_file(void); 21033 const char *X509_get_default_cert_dir_env(void); 21034 const char *X509_get_default_cert_file_env(void); 21035 const char *X509_get_default_private_dir(void); 21036 21037 X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 21038 X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); 21039 21040 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; 21041 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; 21042 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; 21043 21044 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; 21045 21046 int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); 21047 EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); 21048 int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain); 21049 int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); 21050 EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); 21051 21052 int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); 21053 RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); 21054 21055 21056 int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); 21057 DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); 21058 21059 21060 int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); 21061 EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); 21062 21063 21064 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; 21065 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; 21066 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; 21067 21068 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; 21069 X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); 21070 21071 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; 21072 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; 21073 21074 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; 21075 21076 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; 21077 21078 int X509_NAME_set(X509_NAME **xn, X509_NAME *name); 21079 21080 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; 21081 21082 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; 21083 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; 21084 21085 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; 21086 21087 int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 21088 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 21089 int X509_set_ex_data(X509 *r, int idx, void *arg); 21090 void *X509_get_ex_data(X509 *r, int idx); 21091 int i2d_X509_AUX(X509 *a, unsigned char **pp); 21092 X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); 21093 21094 int i2d_re_X509_tbs(X509 *x, unsigned char **pp); 21095 21096 void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, 21097 const X509 *x); 21098 int X509_get_signature_nid(const X509 *x); 21099 21100 int X509_alias_set1(X509 *x, unsigned char *name, int len); 21101 int X509_keyid_set1(X509 *x, unsigned char *id, int len); 21102 unsigned char *X509_alias_get0(X509 *x, int *len); 21103 unsigned char *X509_keyid_get0(X509 *x, int *len); 21104 int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, 21105 int); 21106 int X509_TRUST_set(int *t, int trust); 21107 int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); 21108 int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); 21109 void X509_trust_clear(X509 *x); 21110 void X509_reject_clear(X509 *x); 21111 21112 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; 21113 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; 21114 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; 21115 21116 int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); 21117 int X509_CRL_get0_by_serial(X509_CRL *crl, 21118 X509_REVOKED **ret, ASN1_INTEGER *serial); 21119 int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); 21120 21121 X509_PKEY *X509_PKEY_new(void); 21122 void X509_PKEY_free(X509_PKEY *a); 21123 int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); 21124 X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, 21125 long length); 21126 21127 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; 21128 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; 21129 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; 21130 21131 21132 X509_INFO *X509_INFO_new(void); 21133 void X509_INFO_free(X509_INFO *a); 21134 char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); 21135 21136 int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, 21137 ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); 21138 21139 int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, 21140 unsigned char *md, unsigned int *len); 21141 21142 int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, 21143 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 21144 char *data, EVP_PKEY *pkey, const EVP_MD *type); 21145 21146 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, 21147 unsigned char *md, unsigned int *len); 21148 21149 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, 21150 ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); 21151 21152 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, 21153 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, 21154 EVP_PKEY *pkey, const EVP_MD *type); 21155 int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, 21156 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 21157 void *asn, EVP_MD_CTX *ctx); 21158 21159 21160 int X509_set_version(X509 *x, long version); 21161 int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); 21162 ASN1_INTEGER *X509_get_serialNumber(X509 *x); 21163 int X509_set_issuer_name(X509 *x, X509_NAME *name); 21164 X509_NAME *X509_get_issuer_name(X509 *a); 21165 int X509_set_subject_name(X509 *x, X509_NAME *name); 21166 X509_NAME *X509_get_subject_name(X509 *a); 21167 int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); 21168 int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); 21169 int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); 21170 EVP_PKEY *X509_get_pubkey(X509 *x); 21171 ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); 21172 int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); 21173 21174 int X509_REQ_set_version(X509_REQ *x, long version); 21175 int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); 21176 int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); 21177 EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); 21178 int X509_REQ_extension_nid(int nid); 21179 int *X509_REQ_get_extension_nids(void); 21180 void X509_REQ_set_extension_nids(int *nids); 21181 struct stack_st_X509_EXTENSION *X509_REQ_get_extensions(X509_REQ *req); 21182 int X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts, 21183 int nid); 21184 int X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts); 21185 int X509_REQ_get_attr_count(const X509_REQ *req); 21186 int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); 21187 int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, 21188 int lastpos); 21189 X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); 21190 X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); 21191 int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); 21192 int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, 21193 const ASN1_OBJECT *obj, int type, 21194 const unsigned char *bytes, int len); 21195 int X509_REQ_add1_attr_by_NID(X509_REQ *req, 21196 int nid, int type, 21197 const unsigned char *bytes, int len); 21198 int X509_REQ_add1_attr_by_txt(X509_REQ *req, 21199 const char *attrname, int type, 21200 const unsigned char *bytes, int len); 21201 21202 int X509_CRL_set_version(X509_CRL *x, long version); 21203 int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); 21204 int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); 21205 int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); 21206 int X509_CRL_sort(X509_CRL *crl); 21207 21208 int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); 21209 int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); 21210 21211 X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, 21212 EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); 21213 21214 int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); 21215 21216 int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); 21217 int X509_chain_check_suiteb(int *perror_depth, 21218 X509 *x, struct stack_st_X509 *chain, 21219 unsigned long flags); 21220 int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); 21221 struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain); 21222 21223 int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); 21224 unsigned long X509_issuer_and_serial_hash(X509 *a); 21225 21226 int X509_issuer_name_cmp(const X509 *a, const X509 *b); 21227 unsigned long X509_issuer_name_hash(X509 *a); 21228 21229 int X509_subject_name_cmp(const X509 *a, const X509 *b); 21230 unsigned long X509_subject_name_hash(X509 *x); 21231 21232 21233 unsigned long X509_issuer_name_hash_old(X509 *a); 21234 unsigned long X509_subject_name_hash_old(X509 *x); 21235 21236 21237 int X509_cmp(const X509 *a, const X509 *b); 21238 int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); 21239 unsigned long X509_NAME_hash(X509_NAME *x); 21240 unsigned long X509_NAME_hash_old(X509_NAME *x); 21241 21242 int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); 21243 int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); 21244 21245 int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, 21246 unsigned long cflag); 21247 int X509_print_fp(FILE *bp, X509 *x); 21248 int X509_CRL_print_fp(FILE *bp, X509_CRL *x); 21249 int X509_REQ_print_fp(FILE *bp, X509_REQ *req); 21250 int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, 21251 unsigned long flags); 21252 21253 21254 21255 int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); 21256 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, 21257 unsigned long flags); 21258 int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, 21259 unsigned long cflag); 21260 int X509_print(BIO *bp, X509 *x); 21261 int X509_ocspid_print(BIO *bp, X509 *x); 21262 int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); 21263 int X509_CRL_print(BIO *bp, X509_CRL *x); 21264 int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, 21265 unsigned long cflag); 21266 int X509_REQ_print(BIO *bp, X509_REQ *req); 21267 21268 21269 int X509_NAME_entry_count(X509_NAME *name); 21270 int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); 21271 int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 21272 char *buf, int len); 21273 21274 /* 21275 * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use 21276 * lastpos, search after that position on. 21277 */ 21278 int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); 21279 int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 21280 int lastpos); 21281 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); 21282 X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); 21283 int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, 21284 int loc, int set); 21285 int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, 21286 unsigned char *bytes, int len, int loc, 21287 int set); 21288 int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, 21289 unsigned char *bytes, int len, int loc, 21290 int set); 21291 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 21292 const char *field, int type, 21293 const unsigned char *bytes, 21294 int len); 21295 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, 21296 int type, unsigned char *bytes, 21297 int len); 21298 int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, 21299 const unsigned char *bytes, int len, int loc, 21300 int set); 21301 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 21302 ASN1_OBJECT *obj, int type, 21303 const unsigned char *bytes, 21304 int len); 21305 int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); 21306 int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 21307 const unsigned char *bytes, int len); 21308 ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); 21309 ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); 21310 21311 int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x); 21312 int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x, 21313 int nid, int lastpos); 21314 int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x, 21315 ASN1_OBJECT *obj, int lastpos); 21316 int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x, 21317 int crit, int lastpos); 21318 X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc); 21319 X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc); 21320 struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x, 21321 X509_EXTENSION *ex, int loc); 21322 21323 int X509_get_ext_count(X509 *x); 21324 int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); 21325 int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); 21326 int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); 21327 X509_EXTENSION *X509_get_ext(X509 *x, int loc); 21328 X509_EXTENSION *X509_delete_ext(X509 *x, int loc); 21329 int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); 21330 void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); 21331 int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, 21332 unsigned long flags); 21333 21334 int X509_CRL_get_ext_count(X509_CRL *x); 21335 int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); 21336 int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); 21337 int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); 21338 X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); 21339 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); 21340 int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); 21341 void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); 21342 int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, 21343 unsigned long flags); 21344 21345 int X509_REVOKED_get_ext_count(X509_REVOKED *x); 21346 int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); 21347 int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, 21348 int lastpos); 21349 int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); 21350 X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); 21351 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); 21352 int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); 21353 void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); 21354 int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, 21355 unsigned long flags); 21356 21357 X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, 21358 int nid, int crit, 21359 ASN1_OCTET_STRING *data); 21360 X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, 21361 ASN1_OBJECT *obj, int crit, 21362 ASN1_OCTET_STRING *data); 21363 int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); 21364 int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); 21365 int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); 21366 ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); 21367 ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); 21368 int X509_EXTENSION_get_critical(X509_EXTENSION *ex); 21369 21370 int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x); 21371 int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid, 21372 int lastpos); 21373 int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk, 21374 ASN1_OBJECT *obj, int lastpos); 21375 X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc); 21376 X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc); 21377 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x, 21378 X509_ATTRIBUTE *attr); 21379 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE 21380 **x, const ASN1_OBJECT *obj, 21381 int type, 21382 const unsigned char *bytes, 21383 int len); 21384 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE 21385 **x, int nid, int type, 21386 const unsigned char *bytes, 21387 int len); 21388 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE 21389 **x, const char *attrname, 21390 int type, 21391 const unsigned char *bytes, 21392 int len); 21393 void *X509at_get0_data_by_OBJ(struct stack_st_X509_ATTRIBUTE *x, ASN1_OBJECT *obj, 21394 int lastpos, int type); 21395 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, 21396 int atrtype, const void *data, 21397 int len); 21398 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, 21399 const ASN1_OBJECT *obj, 21400 int atrtype, const void *data, 21401 int len); 21402 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, 21403 const char *atrname, int type, 21404 const unsigned char *bytes, 21405 int len); 21406 int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); 21407 int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, 21408 const void *data, int len); 21409 void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, 21410 void *data); 21411 int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); 21412 ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); 21413 ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); 21414 21415 int EVP_PKEY_get_attr_count(const EVP_PKEY *key); 21416 int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); 21417 int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, 21418 int lastpos); 21419 X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); 21420 X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); 21421 int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); 21422 int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, 21423 const ASN1_OBJECT *obj, int type, 21424 const unsigned char *bytes, int len); 21425 int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, 21426 int nid, int type, 21427 const unsigned char *bytes, int len); 21428 int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, 21429 const char *attrname, int type, 21430 const unsigned char *bytes, int len); 21431 21432 int X509_verify_cert(X509_STORE_CTX *ctx); 21433 21434 /* lookup a cert from a X509 STACK */ 21435 X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name, 21436 ASN1_INTEGER *serial); 21437 X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name); 21438 21439 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; 21440 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; 21441 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; 21442 21443 int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, 21444 const unsigned char *salt, int saltlen); 21445 21446 X509_ALGOR *PKCS5_pbe_set(int alg, int iter, 21447 const unsigned char *salt, int saltlen); 21448 X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, 21449 unsigned char *salt, int saltlen); 21450 X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, 21451 unsigned char *salt, int saltlen, 21452 unsigned char *aiv, int prf_nid); 21453 21454 X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, 21455 int prf_nid, int keylen); 21456 21457 /* PKCS#8 utilities */ 21458 21459 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; 21460 21461 EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); 21462 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); 21463 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); 21464 PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); 21465 21466 int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, 21467 int version, int ptype, void *pval, 21468 unsigned char *penc, int penclen); 21469 int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, 21470 const unsigned char **pk, int *ppklen, 21471 X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); 21472 21473 int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, 21474 int ptype, void *pval, 21475 unsigned char *penc, int penclen); 21476 int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, 21477 const unsigned char **pk, int *ppklen, 21478 X509_ALGOR **pa, X509_PUBKEY *pub); 21479 21480 int X509_check_trust(X509 *x, int id, int flags); 21481 int X509_TRUST_get_count(void); 21482 X509_TRUST *X509_TRUST_get0(int idx); 21483 int X509_TRUST_get_by_id(int id); 21484 int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), 21485 char *name, int arg1, void *arg2); 21486 void X509_TRUST_cleanup(void); 21487 int X509_TRUST_get_flags(X509_TRUST *xp); 21488 char *X509_TRUST_get0_name(X509_TRUST *xp); 21489 int X509_TRUST_get_trust(X509_TRUST *xp); 21490 21491 /* BEGIN ERROR CODES */ 21492 /* 21493 * The following lines are auto generated by the script mkerr.pl. Any changes 21494 * made after this point may be overwritten when the script is next run. 21495 */ 21496 21497 void ERR_load_X509_strings(void); 21498 21499 /* Error codes for the X509 functions. */ 21500 21501 /* Function codes. */ 21502 # 1291 "/usr/include/openssl/x509.h" 3 4 21503 /* Reason codes. */ 21504 # 45 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 21505 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 1 21506 /* 21507 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 21508 * 21509 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21510 * Use is subject to license terms. 21511 */ 21512 21513 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21514 /* All Rights Reserved */ 21515 21516 /* 21517 * BIND 4.9.3: 21518 * 21519 * Copyright (c) 1980, 1983, 1988, 1993 21520 * The Regents of the University of California. All rights reserved. 21521 * 21522 * Redistribution and use in source and binary forms, with or without 21523 * modification, are permitted provided that the following conditions 21524 * are met: 21525 * 1. Redistributions of source code must retain the above copyright 21526 * notice, this list of conditions and the following disclaimer. 21527 * 2. Redistributions in binary form must reproduce the above copyright 21528 * notice, this list of conditions and the following disclaimer in the 21529 * documentation and/or other materials provided with the distribution. 21530 * 3. All advertising materials mentioning features or use of this software 21531 * must display the following acknowledgement: 21532 * This product includes software developed by the University of 21533 * California, Berkeley and its contributors. 21534 * 4. Neither the name of the University nor the names of its contributors 21535 * may be used to endorse or promote products derived from this software 21536 * without specific prior written permission. 21537 * 21538 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21539 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21540 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21541 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21542 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21543 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21544 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21545 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21546 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21547 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21548 * SUCH DAMAGE. 21549 * - 21550 * Portions Copyright (c) 1993 by Digital Equipment Corporation. 21551 * 21552 * Permission to use, copy, modify, and distribute this software for any 21553 * purpose with or without fee is hereby granted, provided that the above 21554 * copyright notice and this permission notice appear in all copies, and that 21555 * the name of Digital Equipment Corporation not be used in advertising or 21556 * publicity pertaining to distribution of the document or software without 21557 * specific, written prior permission. 21558 * 21559 * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 21560 * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 21561 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 21562 * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 21563 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 21564 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 21565 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 21566 * SOFTWARE. 21567 * --Copyright-- 21568 * 21569 * End BIND 4.9.3 21570 */ 21571 21572 /* 21573 * Structures returned by network data base library. 21574 * All addresses are supplied in host order, and 21575 * returned in network order (suitable for use in system calls). 21576 */ 21577 21578 21579 21580 21581 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 21582 /* 21583 * CDDL HEADER START 21584 * 21585 * The contents of this file are subject to the terms of the 21586 * Common Development and Distribution License (the "License"). 21587 * You may not use this file except in compliance with the License. 21588 * 21589 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21590 * or http://www.opensolaris.org/os/licensing. 21591 * See the License for the specific language governing permissions 21592 * and limitations under the License. 21593 * 21594 * When distributing Covered Code, include this CDDL HEADER in each 21595 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21596 * If applicable, add the following below this CDDL HEADER, with the 21597 * fields enclosed by brackets "[]" replaced with your own identifying 21598 * information: Portions Copyright [yyyy] [name of copyright owner] 21599 * 21600 * CDDL HEADER END 21601 */ 21602 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21603 /* All Rights Reserved */ 21604 21605 21606 /* 21607 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21608 * Use is subject to license terms. 21609 * 21610 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 21611 * Copyright 2016 Joyent, Inc. 21612 */ 21613 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 21614 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 21615 /* 21616 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21617 * Use is subject to license terms. 21618 * 21619 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 21620 */ 21621 /* 21622 * Copyright (c) 1982, 1986 Regents of the University of California. 21623 * All rights reserved. 21624 * 21625 * Redistribution and use in source and binary forms are permitted 21626 * provided that this notice is preserved and that due credit is given 21627 * to the University of California at Berkeley. The name of the University 21628 * may not be used to endorse or promote products derived from this 21629 * software without specific prior written permission. This software 21630 * is provided ``as is'' without express or implied warranty. 21631 */ 21632 21633 /* 21634 * Constants and structures defined by the internet system, 21635 * according to following documents 21636 * 21637 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 21638 * http://www.iana.org/assignments/protocol-numbers 21639 * http://www.iana.org/assignments/port-numbers 21640 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 21641 * 21642 */ 21643 21644 21645 21646 21647 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 21648 /* 21649 * CDDL HEADER START 21650 * 21651 * The contents of this file are subject to the terms of the 21652 * Common Development and Distribution License (the "License"). 21653 * You may not use this file except in compliance with the License. 21654 * 21655 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21656 * or http://www.opensolaris.org/os/licensing. 21657 * See the License for the specific language governing permissions 21658 * and limitations under the License. 21659 * 21660 * When distributing Covered Code, include this CDDL HEADER in each 21661 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21662 * If applicable, add the following below this CDDL HEADER, with the 21663 * fields enclosed by brackets "[]" replaced with your own identifying 21664 * information: Portions Copyright [yyyy] [name of copyright owner] 21665 * 21666 * CDDL HEADER END 21667 */ 21668 21669 /* 21670 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 21671 * Copyright 2016 Joyent, Inc. 21672 * 21673 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 21674 * Use is subject to license terms. 21675 */ 21676 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21677 21678 21679 21680 21681 21682 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 21683 /* 21684 * CDDL HEADER START 21685 * 21686 * The contents of this file are subject to the terms of the 21687 * Common Development and Distribution License (the "License"). 21688 * You may not use this file except in compliance with the License. 21689 * 21690 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21691 * or http://www.opensolaris.org/os/licensing. 21692 * See the License for the specific language governing permissions 21693 * and limitations under the License. 21694 * 21695 * When distributing Covered Code, include this CDDL HEADER in each 21696 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21697 * If applicable, add the following below this CDDL HEADER, with the 21698 * fields enclosed by brackets "[]" replaced with your own identifying 21699 * information: Portions Copyright [yyyy] [name of copyright owner] 21700 * 21701 * CDDL HEADER END 21702 */ 21703 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21704 /* All Rights Reserved */ 21705 21706 21707 /* 21708 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21709 * Use is subject to license terms. 21710 * 21711 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 21712 * Copyright 2016 Joyent, Inc. 21713 */ 21714 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21715 21716 21717 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 21718 /* 21719 * CDDL HEADER START 21720 * 21721 * The contents of this file are subject to the terms of the 21722 * Common Development and Distribution License (the "License"). 21723 * You may not use this file except in compliance with the License. 21724 * 21725 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21726 * or http://www.opensolaris.org/os/licensing. 21727 * See the License for the specific language governing permissions 21728 * and limitations under the License. 21729 * 21730 * When distributing Covered Code, include this CDDL HEADER in each 21731 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21732 * If applicable, add the following below this CDDL HEADER, with the 21733 * fields enclosed by brackets "[]" replaced with your own identifying 21734 * information: Portions Copyright [yyyy] [name of copyright owner] 21735 * 21736 * CDDL HEADER END 21737 */ 21738 /* 21739 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21740 * Use is subject to license terms. 21741 */ 21742 21743 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21744 /* All Rights Reserved */ 21745 21746 /* 21747 * Portions of this source code were derived from Berkeley 4.3 BSD 21748 * under license from the Regents of the University of California. 21749 */ 21750 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 21751 typedef uint16_t sa_family_t; 21752 21753 21754 /* 21755 * Structure used by kernel to store most 21756 * addresses. 21757 */ 21758 struct sockaddr { 21759 sa_family_t sa_family; /* address family */ 21760 char sa_data[14]; /* up to 14 bytes of direct address */ 21761 }; 21762 21763 21764 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1 21765 /* 21766 * CDDL HEADER START 21767 * 21768 * The contents of this file are subject to the terms of the 21769 * Common Development and Distribution License (the "License"). 21770 * You may not use this file except in compliance with the License. 21771 * 21772 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21773 * or http://www.opensolaris.org/os/licensing. 21774 * See the License for the specific language governing permissions 21775 * and limitations under the License. 21776 * 21777 * When distributing Covered Code, include this CDDL HEADER in each 21778 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21779 * If applicable, add the following below this CDDL HEADER, with the 21780 * fields enclosed by brackets "[]" replaced with your own identifying 21781 * information: Portions Copyright [yyyy] [name of copyright owner] 21782 * 21783 * CDDL HEADER END 21784 */ 21785 /* 21786 * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. 21787 */ 21788 21789 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21790 /* All Rights Reserved */ 21791 21792 /* 21793 * University Copyright- Copyright (c) 1982, 1986, 1988 21794 * The Regents of the University of California 21795 * All Rights Reserved 21796 * 21797 * University Acknowledgment- Portions of this document are derived from 21798 * software developed by the University of California, Berkeley, and its 21799 * contributors. 21800 */ 21801 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 21802 /* 21803 * Definitions for UNIX IPC domain. 21804 */ 21805 struct sockaddr_un { 21806 sa_family_t sun_family; /* AF_UNIX */ 21807 char sun_path[108]; /* path name (gag) */ 21808 }; 21809 21810 21811 21812 /* 21813 * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to 21814 * change. 21815 * 21816 * Also, include a strlen() prototype, and we have to protect it w.r.t. 21817 * UNIX{98,03}. And because there's strlen, we need size_t as well. 21818 */ 21819 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 21820 extern size_t strlen(const char *); 21821 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 21822 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1 21823 /* 21824 * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. 21825 * Use is subject to license terms. 21826 */ 21827 /* 21828 * Copyright (c) 1990, 1993 21829 * The Regents of the University of California. All rights reserved. 21830 * 21831 * Redistribution and use in source and binary forms, with or without 21832 * modification, are permitted provided that the following conditions 21833 * are met: 21834 * 1. Redistributions of source code must retain the above copyright 21835 * notice, this list of conditions and the following disclaimer. 21836 * 2. Redistributions in binary form must reproduce the above copyright 21837 * notice, this list of conditions and the following disclaimer in the 21838 * documentation and/or other materials provided with the distribution. 21839 * 3. All advertising materials mentioning features or use of this software 21840 * must display the following acknowledgement: 21841 * This product includes software developed by the University of 21842 * California, Berkeley and its contributors. 21843 * 4. Neither the name of the University nor the names of its contributors 21844 * may be used to endorse or promote products derived from this software 21845 * without specific prior written permission. 21846 * 21847 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21848 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21849 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21850 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21851 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21852 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21853 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21854 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21855 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21856 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21857 * SUCH DAMAGE. 21858 */ 21859 21860 21861 21862 21863 #pragma ident "%Z%%M% %I% %E% SMI" 21864 /* from UCB 8.1 (Berkeley) 6/10/93 */ 21865 21866 21867 21868 21869 21870 /* 21871 * A Link-Level Sockaddr may specify the interface in one of two 21872 * ways: either by means of a system-provided index number (computed 21873 * anew and possibly differently on every reboot), or by a human-readable 21874 * string such as "il0" (for managerial convenience). 21875 * 21876 * Census taking actions, such as something akin to SIOCGCONF would return 21877 * both the index and the human name. 21878 * 21879 * High volume transactions (such as giving a link-level ``from'' address 21880 * in a recvfrom or recvmsg call) may be likely only to provide the indexed 21881 * form, (which requires fewer copy operations and less space). 21882 * 21883 * The form and interpretation of the link-level address is purely a matter 21884 * of convention between the device driver and its consumers; however, it is 21885 * expected that all drivers for an interface of a given if_type will agree. 21886 */ 21887 21888 /* 21889 * Structure of a Link-Level sockaddr: 21890 */ 21891 struct sockaddr_dl { 21892 ushort_t sdl_family; /* AF_LINK */ 21893 ushort_t sdl_index; /* if != 0, system given index for interface */ 21894 uchar_t sdl_type; /* interface type */ 21895 uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */ 21896 uchar_t sdl_alen; /* link level address length */ 21897 uchar_t sdl_slen; /* link layer selector length */ 21898 char sdl_data[244]; /* contains both if name and ll address */ 21899 }; 21900 21901 21902 21903 21904 extern char *_link_ntoa(const unsigned char *, char *, int, int); 21905 extern unsigned char *_link_aton(const char *, int *); 21906 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 21907 21908 21909 21910 /* 21911 * sockaddr_storage: 21912 * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr 21913 * structures. Has sufficient size and alignment for those sockaddrs. 21914 */ 21915 21916 /* 21917 * Desired maximum size, alignment size and related types. 21918 */ 21919 21920 21921 /* 21922 * To represent desired sockaddr max alignment for platform, a 21923 * type is chosen which may depend on implementation platform architecture. 21924 * Type chosen based on alignment size restrictions from <sys/isa_defs.h>. 21925 * We desire to force up to (but no more than) 64-bit (8 byte) alignment, 21926 * on platforms where it is possible to do so. (e.g not possible on ia32). 21927 * For all currently supported platforms by our implementation 21928 * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64) 21929 * type "double" is suitable for that intent. 21930 * 21931 * Note: Type "double" is chosen over the more obvious integer type int64_t. 21932 * int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32. 21933 */ 21934 typedef double sockaddr_maxalign_t; 21935 21936 21937 21938 /* 21939 * Definitions used for sockaddr_storage structure paddings design. 21940 */ 21941 21942 21943 21944 21945 struct sockaddr_storage { 21946 sa_family_t ss_family; /* Address family */ 21947 /* Following fields are implementation specific */ 21948 char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))]; 21949 sockaddr_maxalign_t _ss_align; 21950 char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))]; 21951 }; 21952 21953 21954 /* 21955 * To be compatible with the Linux interfaces used, this structure is 21956 * placed in socket_impl.h so that an include for <sys/socket.h> will 21957 * pickup this structure. This structure is for use with PF_PACKET 21958 * sockets. 21959 */ 21960 struct sockaddr_ll { 21961 uint16_t sll_family; 21962 uint16_t sll_protocol; 21963 int32_t sll_ifindex; 21964 uint16_t sll_hatype; 21965 uint8_t sll_pkttype; 21966 uint8_t sll_halen; 21967 uint8_t sll_addr[8]; 21968 }; 21969 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21970 21971 21972 21973 21974 21975 /* 21976 * The socklen definitions are reproduced here from sys/socket.h so as to 21977 * not introduce that namespace into existing users of netinet/in.h. 21978 */ 21979 21980 21981 21982 typedef uint32_t socklen_t; 21983 21984 21985 21986 21987 21988 typedef void *Psocklen_t; 21989 21990 21991 21992 21993 21994 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1 21995 /* 21996 * CDDL HEADER START 21997 * 21998 * The contents of this file are subject to the terms of the 21999 * Common Development and Distribution License (the "License"). 22000 * You may not use this file except in compliance with the License. 22001 * 22002 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22003 * or http://www.opensolaris.org/os/licensing. 22004 * See the License for the specific language governing permissions 22005 * and limitations under the License. 22006 * 22007 * When distributing Covered Code, include this CDDL HEADER in each 22008 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22009 * If applicable, add the following below this CDDL HEADER, with the 22010 * fields enclosed by brackets "[]" replaced with your own identifying 22011 * information: Portions Copyright [yyyy] [name of copyright owner] 22012 * 22013 * CDDL HEADER END 22014 */ 22015 /* 22016 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22017 * Use is subject to license terms. 22018 */ 22019 22020 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22021 /* All Rights Reserved */ 22022 22023 22024 22025 22026 22027 /* 22028 * For source compatibility 22029 */ 22030 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 22031 /* 22032 * CDDL HEADER START 22033 * 22034 * The contents of this file are subject to the terms of the 22035 * Common Development and Distribution License (the "License"). 22036 * You may not use this file except in compliance with the License. 22037 * 22038 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22039 * or http://www.opensolaris.org/os/licensing. 22040 * See the License for the specific language governing permissions 22041 * and limitations under the License. 22042 * 22043 * 22044 * When distributing Covered Code, include this CDDL HEADER in each 22045 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22046 * If applicable, add the following below this CDDL HEADER, with the 22047 * fields enclosed by brackets "[]" replaced with your own identifying 22048 * information: Portions Copyright [yyyy] [name of copyright owner] 22049 * 22050 * CDDL HEADER END 22051 */ 22052 22053 /* 22054 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 22055 * Use is subject to license terms. 22056 * Copyright 2016 Joyent, Inc. 22057 */ 22058 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22059 22060 22061 22062 22063 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1 22064 /* 22065 * CDDL HEADER START 22066 * 22067 * The contents of this file are subject to the terms of the 22068 * Common Development and Distribution License, Version 1.0 only 22069 * (the "License"). You may not use this file except in compliance 22070 * with the License. 22071 * 22072 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22073 * or http://www.opensolaris.org/os/licensing. 22074 * See the License for the specific language governing permissions 22075 * and limitations under the License. 22076 * 22077 * When distributing Covered Code, include this CDDL HEADER in each 22078 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22079 * If applicable, add the following below this CDDL HEADER, with the 22080 * fields enclosed by brackets "[]" replaced with your own identifying 22081 * information: Portions Copyright [yyyy] [name of copyright owner] 22082 * 22083 * CDDL HEADER END 22084 */ 22085 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22086 /* All Rights Reserved */ 22087 22088 22089 /* 22090 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 22091 * 22092 * Copyright (c) 1995, 1998 by Sun Microsystems, Inc. 22093 * All rights reserved. 22094 */ 22095 22096 /* 22097 * Copyright 2015, Joyent, Inc. 22098 */ 22099 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 22100 /* 22101 * Structure of file descriptor/event pairs supplied in 22102 * the poll arrays. 22103 */ 22104 typedef struct pollfd { 22105 int fd; /* file desc to poll */ 22106 short events; /* events of interest on fd */ 22107 short revents; /* events that occurred on fd */ 22108 } pollfd_t; 22109 22110 typedef unsigned long nfds_t; 22111 22112 /* 22113 * Testable select events 22114 */ 22115 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 22116 /* 22117 * Non-testable poll events (may not be specified in events field, 22118 * but may be returned in revents field). 22119 */ 22120 22121 22122 22123 22124 /* 22125 * These events will never be specified in revents, but may be specified in 22126 * events to control /dev/poll behavior. 22127 */ 22128 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 22129 int poll(struct pollfd *, nfds_t, int); 22130 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22131 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1 22132 /* 22133 * CDDL HEADER START 22134 * 22135 * The contents of this file are subject to the terms of the 22136 * Common Development and Distribution License, Version 1.0 only 22137 * (the "License"). You may not use this file except in compliance 22138 * with the License. 22139 * 22140 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22141 * or http://www.opensolaris.org/os/licensing. 22142 * See the License for the specific language governing permissions 22143 * and limitations under the License. 22144 * 22145 * When distributing Covered Code, include this CDDL HEADER in each 22146 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22147 * If applicable, add the following below this CDDL HEADER, with the 22148 * fields enclosed by brackets "[]" replaced with your own identifying 22149 * information: Portions Copyright [yyyy] [name of copyright owner] 22150 * 22151 * CDDL HEADER END 22152 */ 22153 /* 22154 * Copyright (c) 1997-1998 by Sun Microsystems, Inc. 22155 * All rights reserved. 22156 */ 22157 22158 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22159 /* All Rights Reserved */ 22160 22161 22162 22163 22164 22165 #pragma ident "%Z%%M% %I% %E% SMI" 22166 22167 22168 22169 22170 22171 /* 22172 * This file contains all machine-dependent declarations 22173 * in STREAMS. 22174 */ 22175 22176 /* 22177 * Copy data from one data buffer to another. 22178 * The addresses must be word aligned - if not, use bcopy! 22179 */ 22180 22181 22182 /* 22183 * save the address of the calling function on the 3b2 to 22184 * enable tracking of who is allocating message blocks 22185 */ 22186 22187 22188 /* 22189 * macro to check pointer alignment 22190 * (true if alignment is sufficient for worst case) 22191 */ 22192 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22193 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1 22194 /* 22195 * CDDL HEADER START 22196 * 22197 * The contents of this file are subject to the terms of the 22198 * Common Development and Distribution License (the "License"). 22199 * You may not use this file except in compliance with the License. 22200 * 22201 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22202 * or http://www.opensolaris.org/os/licensing. 22203 * See the License for the specific language governing permissions 22204 * and limitations under the License. 22205 * 22206 * When distributing Covered Code, include this CDDL HEADER in each 22207 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22208 * If applicable, add the following below this CDDL HEADER, with the 22209 * fields enclosed by brackets "[]" replaced with your own identifying 22210 * information: Portions Copyright [yyyy] [name of copyright owner] 22211 * 22212 * CDDL HEADER END 22213 */ 22214 /* 22215 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22216 * Use is subject to license terms. 22217 */ 22218 22219 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22220 /* All Rights Reserved */ 22221 22222 /* 22223 * Portions of this source code were derived from Berkeley 4.3 BSD 22224 * under license from the Regents of the University of California. 22225 */ 22226 22227 22228 22229 22230 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22231 /* 22232 * CDDL HEADER START 22233 * 22234 * The contents of this file are subject to the terms of the 22235 * Common Development and Distribution License (the "License"). 22236 * You may not use this file except in compliance with the License. 22237 * 22238 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22239 * or http://www.opensolaris.org/os/licensing. 22240 * See the License for the specific language governing permissions 22241 * and limitations under the License. 22242 * 22243 * When distributing Covered Code, include this CDDL HEADER in each 22244 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22245 * If applicable, add the following below this CDDL HEADER, with the 22246 * fields enclosed by brackets "[]" replaced with your own identifying 22247 * information: Portions Copyright [yyyy] [name of copyright owner] 22248 * 22249 * CDDL HEADER END 22250 */ 22251 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22252 /* All Rights Reserved */ 22253 22254 22255 /* 22256 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22257 * Use is subject to license terms. 22258 * 22259 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22260 * Copyright 2016 Joyent, Inc. 22261 */ 22262 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2 22263 22264 22265 22266 22267 22268 /* 22269 * The credential is an opaque kernel private data structure defined in 22270 * <sys/cred_impl.h>. 22271 */ 22272 22273 typedef struct cred cred_t; 22274 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22275 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1 22276 /* 22277 * CDDL HEADER START 22278 * 22279 * The contents of this file are subject to the terms of the 22280 * Common Development and Distribution License, Version 1.0 only 22281 * (the "License"). You may not use this file except in compliance 22282 * with the License. 22283 * 22284 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22285 * or http://www.opensolaris.org/os/licensing. 22286 * See the License for the specific language governing permissions 22287 * and limitations under the License. 22288 * 22289 * When distributing Covered Code, include this CDDL HEADER in each 22290 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22291 * If applicable, add the following below this CDDL HEADER, with the 22292 * fields enclosed by brackets "[]" replaced with your own identifying 22293 * information: Portions Copyright [yyyy] [name of copyright owner] 22294 * 22295 * CDDL HEADER END 22296 */ 22297 /* 22298 * Copyright (c) 1991-1998 by Sun Microsystems, Inc. 22299 * All rights reserved. 22300 */ 22301 22302 /* 22303 * t_lock.h: Prototypes for disp_locks, plus include files 22304 * that describe the interfaces to kernel synch. 22305 * objects. 22306 */ 22307 22308 22309 22310 22311 #pragma ident "%Z%%M% %I% %E% SMI" 22312 22313 22314 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1 22315 /* 22316 * CDDL HEADER START 22317 * 22318 * The contents of this file are subject to the terms of the 22319 * Common Development and Distribution License (the "License"). 22320 * You may not use this file except in compliance with the License. 22321 * 22322 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22323 * or http://www.opensolaris.org/os/licensing. 22324 * See the License for the specific language governing permissions 22325 * and limitations under the License. 22326 * 22327 * When distributing Covered Code, include this CDDL HEADER in each 22328 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22329 * If applicable, add the following below this CDDL HEADER, with the 22330 * fields enclosed by brackets "[]" replaced with your own identifying 22331 * information: Portions Copyright [yyyy] [name of copyright owner] 22332 * 22333 * CDDL HEADER END 22334 */ 22335 /* 22336 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 22337 * Use is subject to license terms. 22338 * Copyright 2016 Joyent, Inc. 22339 */ 22340 22341 22342 22343 22344 #pragma ident "%Z%%M% %I% %E% SMI" 22345 22346 22347 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22348 /* 22349 * CDDL HEADER START 22350 * 22351 * The contents of this file are subject to the terms of the 22352 * Common Development and Distribution License (the "License"). 22353 * You may not use this file except in compliance with the License. 22354 * 22355 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22356 * or http://www.opensolaris.org/os/licensing. 22357 * See the License for the specific language governing permissions 22358 * and limitations under the License. 22359 * 22360 * When distributing Covered Code, include this CDDL HEADER in each 22361 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22362 * If applicable, add the following below this CDDL HEADER, with the 22363 * fields enclosed by brackets "[]" replaced with your own identifying 22364 * information: Portions Copyright [yyyy] [name of copyright owner] 22365 * 22366 * CDDL HEADER END 22367 */ 22368 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22369 /* All Rights Reserved */ 22370 22371 22372 /* 22373 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22374 * Use is subject to license terms. 22375 * 22376 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22377 * Copyright 2016 Joyent, Inc. 22378 */ 22379 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 22380 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 22381 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22382 /* All Rights Reserved */ 22383 22384 22385 /* 22386 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 22387 * All rights reserved. The Berkeley software License Agreement 22388 * specifies the terms and conditions for redistribution. 22389 */ 22390 22391 /* 22392 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 22393 * 22394 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22395 * Use is subject to license terms. 22396 * 22397 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22398 */ 22399 22400 /* 22401 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 22402 */ 22403 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 22404 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 22405 typedef lock_t disp_lock_t; /* dispatcher lock type */ 22406 22407 /* 22408 * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or 22409 * an adaptive mutex, depending on what interrupt levels use it. 22410 */ 22411 22412 22413 /* 22414 * Macro to control loops which spin on a lock and then check state 22415 * periodically. Its passed an integer, and returns a boolean value 22416 * that if true indicates its a good time to get the scheduler lock and 22417 * check the state of the current owner of the lock. 22418 */ 22419 22420 22421 /* 22422 * Externs for CLOCK_LOCK and clock resolution 22423 */ 22424 extern volatile uint32_t hres_lock; 22425 extern hrtime_t hrtime_base; 22426 extern int clock_res; 22427 22428 22429 22430 /* 22431 * The definitions of the symbolic interrupt levels: 22432 * 22433 * CLOCK_LEVEL => The level at which one must be to block the clock. 22434 * 22435 * LOCK_LEVEL => The highest level at which one may block (and thus the 22436 * highest level at which one may acquire adaptive locks) 22437 * Also the highest level at which one may be preempted. 22438 * 22439 * DISP_LEVEL => The level at which one must be to perform dispatcher 22440 * operations. 22441 * 22442 * The constraints on the platform: 22443 * 22444 * - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL 22445 * - LOCK_LEVEL must be less than DISP_LEVEL 22446 * - DISP_LEVEL should be as close to LOCK_LEVEL as possible 22447 * 22448 * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal; 22449 * changing this relationship is probably possible but not advised. 22450 * 22451 */ 22452 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 22453 /* 22454 * The following mask is for the cpu_intr_actv bits corresponding to 22455 * high-level PILs. It should equal: 22456 * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1) 22457 */ 22458 22459 22460 /* 22461 * The semaphore code depends on being able to represent a lock plus 22462 * owner in a single 32-bit word. (Mutexes used to have a similar 22463 * dependency, but no longer.) Thus the owner must contain at most 22464 * 24 significant bits. At present only threads and semaphores 22465 * must be aware of this vile constraint. Different ISAs may handle this 22466 * differently depending on their capabilities (e.g. compare-and-swap) 22467 * and limitations (e.g. constraints on alignment and/or KERNELBASE). 22468 */ 22469 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22470 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 22471 /* 22472 * CDDL HEADER START 22473 * 22474 * The contents of this file are subject to the terms of the 22475 * Common Development and Distribution License (the "License"). 22476 * You may not use this file except in compliance with the License. 22477 * 22478 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22479 * or http://www.opensolaris.org/os/licensing. 22480 * See the License for the specific language governing permissions 22481 * and limitations under the License. 22482 * 22483 * When distributing Covered Code, include this CDDL HEADER in each 22484 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22485 * If applicable, add the following below this CDDL HEADER, with the 22486 * fields enclosed by brackets "[]" replaced with your own identifying 22487 * information: Portions Copyright [yyyy] [name of copyright owner] 22488 * 22489 * CDDL HEADER END 22490 */ 22491 22492 /* 22493 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 22494 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 22495 */ 22496 22497 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22498 /* All Rights Reserved */ 22499 22500 /* 22501 * University Copyright- Copyright (c) 1982, 1986, 1988 22502 * The Regents of the University of California 22503 * All Rights Reserved 22504 * 22505 * University Acknowledgment- Portions of this document are derived from 22506 * software developed by the University of California, Berkeley, and its 22507 * contributors. 22508 */ 22509 22510 22511 22512 22513 22514 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22515 /* 22516 * CDDL HEADER START 22517 * 22518 * The contents of this file are subject to the terms of the 22519 * Common Development and Distribution License (the "License"). 22520 * You may not use this file except in compliance with the License. 22521 * 22522 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22523 * or http://www.opensolaris.org/os/licensing. 22524 * See the License for the specific language governing permissions 22525 * and limitations under the License. 22526 * 22527 * When distributing Covered Code, include this CDDL HEADER in each 22528 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22529 * If applicable, add the following below this CDDL HEADER, with the 22530 * fields enclosed by brackets "[]" replaced with your own identifying 22531 * information: Portions Copyright [yyyy] [name of copyright owner] 22532 * 22533 * CDDL HEADER END 22534 */ 22535 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22536 /* All Rights Reserved */ 22537 22538 22539 /* 22540 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22541 * Use is subject to license terms. 22542 * 22543 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22544 * Copyright 2016 Joyent, Inc. 22545 */ 22546 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22547 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 22548 /* 22549 * CDDL HEADER START 22550 * 22551 * The contents of this file are subject to the terms of the 22552 * Common Development and Distribution License (the "License"). 22553 * You may not use this file except in compliance with the License. 22554 * 22555 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22556 * or http://www.opensolaris.org/os/licensing. 22557 * See the License for the specific language governing permissions 22558 * and limitations under the License. 22559 * 22560 * 22561 * When distributing Covered Code, include this CDDL HEADER in each 22562 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22563 * If applicable, add the following below this CDDL HEADER, with the 22564 * fields enclosed by brackets "[]" replaced with your own identifying 22565 * information: Portions Copyright [yyyy] [name of copyright owner] 22566 * 22567 * CDDL HEADER END 22568 */ 22569 22570 /* 22571 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 22572 * Use is subject to license terms. 22573 * Copyright 2016 Joyent, Inc. 22574 */ 22575 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22576 22577 22578 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 22579 /* 22580 * This file and its contents are supplied under the terms of the 22581 * Common Development and Distribution License ("CDDL"), version 1.0. 22582 * You may only use this file in accordance with the terms of version 22583 * 1.0 of the CDDL. 22584 * 22585 * A full copy of the text of the CDDL should have accompanied this 22586 * source. A copy of the CDDL is also available via the Internet at 22587 * http://www.illumos.org/license/CDDL. 22588 */ 22589 22590 /* 22591 * Copyright 2014-2016 PALO, Richard. 22592 */ 22593 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22594 22595 22596 22597 22598 22599 /* 22600 * Fundamental variables; don't change too often. 22601 */ 22602 22603 /* 22604 * _POSIX_VDISABLE has historically been defined in <sys/param.h> since 22605 * an early merge with AT&T source. It has also historically been defined 22606 * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially 22607 * required the existence of _POSIX_VDISABLE in <sys/termios.h>. 22608 * Subsequent versions of the IEEE Standard as well as the X/Open 22609 * specifications required that _POSIX_VDISABLE be defined in <unistd.h> 22610 * while still allowing for it's existence in other headers. With the 22611 * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>. 22612 */ 22613 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22614 /* compatibility purposes only */ 22615 /* and will be removed in a */ 22616 /* later release */ 22617 22618 /* 22619 * These define the maximum and minimum allowable values of the 22620 * configurable parameter NGROUPS_MAX. 22621 */ 22622 22623 22624 22625 22626 /* 22627 * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h. 22628 */ 22629 22630 22631 /* 22632 * Default process priority. Keep it in sync with limits.h. 22633 */ 22634 22635 22636 /* 22637 * Fundamental constants of the implementation--cannot be changed easily. 22638 */ 22639 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22640 /* REMOTE -- whether machine is primary, secondary, or regular */ 22641 22642 22643 22644 /* 22645 * MAXPATHLEN defines the longest permissible path length, 22646 * including the terminating null, after expanding symbolic links. 22647 * TYPICALMAXPATHLEN is used in a few places as an optimization 22648 * with a local buffer on the stack to avoid kmem_alloc(). 22649 * MAXSYMLINKS defines the maximum number of symbolic links 22650 * that may be expanded in a path name. It should be set high 22651 * enough to allow all legitimate uses, but halt infinite loops 22652 * reasonably quickly. 22653 * MAXNAMELEN is the length (including the terminating null) of 22654 * the longest permissible file (component) name. 22655 */ 22656 22657 22658 22659 22660 22661 /* 22662 * MAXLINKNAMELEN defines the longest possible permitted datalink name, 22663 * including the terminating NUL. Note that this must not be larger 22664 * than related networking constants such as LIFNAMSIZ. 22665 */ 22666 22667 22668 22669 22670 22671 22672 /* 22673 * The following are defined to be the same as 22674 * defined in /usr/include/limits.h. They are 22675 * needed for pipe and FIFO compatibility. 22676 */ 22677 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22678 /* macros replacing interleaving functions */ 22679 22680 22681 22682 /* 22683 * File system parameters and macros. 22684 * 22685 * The file system is made out of blocks of at most MAXBSIZE units, 22686 * with smaller units (fragments) only in the last direct block. 22687 * MAXBSIZE primarily determines the size of buffers in the buffer 22688 * pool. It may be made larger without any effect on existing 22689 * file systems; however making it smaller make make some file 22690 * systems unmountable. 22691 * 22692 * Note that the blocked devices are assumed to have DEV_BSIZE 22693 * "sectors" and that fragments must be some multiple of this size. 22694 */ 22695 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22696 /* 64 bit versions of btodb and dbtob */ 22697 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22698 /* 22699 * Size of arg list passed in by user. 22700 */ 22701 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22702 /* 22703 * Scale factor for scaled integers used to count 22704 * %cpu time and load averages. 22705 */ 22706 22707 22708 22709 /* 22710 * Delay units are in microseconds. 22711 * 22712 * XXX These macros are not part of the DDI! 22713 */ 22714 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22715 /* 22716 * The following is to free utilities from machine dependencies within 22717 * an architecture. Must be included after definition of DEV_BSIZE. 22718 */ 22719 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22720 /* 22721 * The following are assorted machine dependent values which can be 22722 * obtained in a machine independent manner through sysconf(2) or 22723 * sysinfo(2). In order to guarantee that these provide the expected 22724 * value at all times, the System Private interface (leading underscore) 22725 * is used. 22726 */ 22727 22728 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 22729 /* 22730 * CDDL HEADER START 22731 * 22732 * The contents of this file are subject to the terms of the 22733 * Common Development and Distribution License (the "License"). 22734 * You may not use this file except in compliance with the License. 22735 * 22736 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22737 * or http://www.opensolaris.org/os/licensing. 22738 * See the License for the specific language governing permissions 22739 * and limitations under the License. 22740 * 22741 * When distributing Covered Code, include this CDDL HEADER in each 22742 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22743 * If applicable, add the following below this CDDL HEADER, with the 22744 * fields enclosed by brackets "[]" replaced with your own identifying 22745 * information: Portions Copyright [yyyy] [name of copyright owner] 22746 * 22747 * CDDL HEADER END 22748 */ 22749 22750 /* 22751 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 22752 * All Rights Reserved 22753 * 22754 */ 22755 22756 /* 22757 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22758 * Use is subject to license terms. 22759 */ 22760 22761 /* 22762 * WARNING: This is an implementation-specific header, 22763 * its contents are not guaranteed. Applications 22764 * should include <unistd.h> and not this header. 22765 */ 22766 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22767 22768 22769 22770 22771 22772 22773 extern long _sysconf(int); /* System Private interface to sysconf() */ 22774 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22775 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1 22776 /* 22777 * CDDL HEADER START 22778 * 22779 * The contents of this file are subject to the terms of the 22780 * Common Development and Distribution License (the "License"). 22781 * You may not use this file except in compliance with the License. 22782 * 22783 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22784 * or http://www.opensolaris.org/os/licensing. 22785 * See the License for the specific language governing permissions 22786 * and limitations under the License. 22787 * 22788 * When distributing Covered Code, include this CDDL HEADER in each 22789 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22790 * If applicable, add the following below this CDDL HEADER, with the 22791 * fields enclosed by brackets "[]" replaced with your own identifying 22792 * information: Portions Copyright [yyyy] [name of copyright owner] 22793 * 22794 * CDDL HEADER END 22795 */ 22796 /* 22797 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved. 22798 */ 22799 22800 22801 22802 22803 22804 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22805 /* 22806 * CDDL HEADER START 22807 * 22808 * The contents of this file are subject to the terms of the 22809 * Common Development and Distribution License (the "License"). 22810 * You may not use this file except in compliance with the License. 22811 * 22812 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22813 * or http://www.opensolaris.org/os/licensing. 22814 * See the License for the specific language governing permissions 22815 * and limitations under the License. 22816 * 22817 * When distributing Covered Code, include this CDDL HEADER in each 22818 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22819 * If applicable, add the following below this CDDL HEADER, with the 22820 * fields enclosed by brackets "[]" replaced with your own identifying 22821 * information: Portions Copyright [yyyy] [name of copyright owner] 22822 * 22823 * CDDL HEADER END 22824 */ 22825 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22826 /* All Rights Reserved */ 22827 22828 22829 /* 22830 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22831 * Use is subject to license terms. 22832 * 22833 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22834 * Copyright 2016 Joyent, Inc. 22835 */ 22836 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2 22837 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 22838 /* 22839 * Public interface to mutual exclusion locks. See mutex(9F) for details. 22840 * 22841 * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used 22842 * in almost all of the kernel. MUTEX_SPIN provides interrupt blocking 22843 * and must be used in interrupt handlers above LOCK_LEVEL. The iblock 22844 * cookie argument to mutex_init() encodes the interrupt level to block. 22845 * The iblock cookie must be NULL for adaptive locks. 22846 * 22847 * MUTEX_DEFAULT is the type usually specified (except in drivers) to 22848 * mutex_init(). It is identical to MUTEX_ADAPTIVE. 22849 * 22850 * MUTEX_DRIVER is always used by drivers. mutex_init() converts this to 22851 * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie. 22852 * 22853 * Mutex statistics can be gathered on the fly, without rebooting or 22854 * recompiling the kernel, via the lockstat driver (lockstat(7D)). 22855 */ 22856 typedef enum { 22857 MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */ 22858 MUTEX_SPIN = 1, /* block interrupts and spin */ 22859 MUTEX_DRIVER = 4, /* driver (DDI) mutex */ 22860 MUTEX_DEFAULT = 6 /* kernel default mutex */ 22861 } kmutex_type_t; 22862 22863 typedef struct mutex { 22864 22865 22866 22867 void *_opaque[2]; 22868 22869 } kmutex_t; 22870 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22871 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1 22872 /* 22873 * CDDL HEADER START 22874 * 22875 * The contents of this file are subject to the terms of the 22876 * Common Development and Distribution License (the "License"). 22877 * You may not use this file except in compliance with the License. 22878 * 22879 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22880 * or http://www.opensolaris.org/os/licensing. 22881 * See the License for the specific language governing permissions 22882 * and limitations under the License. 22883 * 22884 * When distributing Covered Code, include this CDDL HEADER in each 22885 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22886 * If applicable, add the following below this CDDL HEADER, with the 22887 * fields enclosed by brackets "[]" replaced with your own identifying 22888 * information: Portions Copyright [yyyy] [name of copyright owner] 22889 * 22890 * CDDL HEADER END 22891 */ 22892 /* 22893 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 22894 * Use is subject to license terms. 22895 */ 22896 22897 /* 22898 * Copyright (c) 2013, Joyent, Inc. All rights reserved. 22899 */ 22900 22901 22902 22903 22904 /* 22905 * Public interface to readers/writer locks. See rwlock(9F) for details. 22906 */ 22907 22908 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22909 /* 22910 * CDDL HEADER START 22911 * 22912 * The contents of this file are subject to the terms of the 22913 * Common Development and Distribution License (the "License"). 22914 * You may not use this file except in compliance with the License. 22915 * 22916 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22917 * or http://www.opensolaris.org/os/licensing. 22918 * See the License for the specific language governing permissions 22919 * and limitations under the License. 22920 * 22921 * When distributing Covered Code, include this CDDL HEADER in each 22922 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22923 * If applicable, add the following below this CDDL HEADER, with the 22924 * fields enclosed by brackets "[]" replaced with your own identifying 22925 * information: Portions Copyright [yyyy] [name of copyright owner] 22926 * 22927 * CDDL HEADER END 22928 */ 22929 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22930 /* All Rights Reserved */ 22931 22932 22933 /* 22934 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22935 * Use is subject to license terms. 22936 * 22937 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22938 * Copyright 2016 Joyent, Inc. 22939 */ 22940 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2 22941 22942 22943 22944 22945 22946 22947 22948 typedef enum { 22949 RW_DRIVER = 2, /* driver (DDI) rwlock */ 22950 RW_DEFAULT = 4 /* kernel default rwlock */ 22951 } krw_type_t; 22952 22953 typedef enum { 22954 RW_WRITER, 22955 RW_READER, 22956 RW_READER_STARVEWRITER 22957 } krw_t; 22958 22959 typedef struct _krwlock { 22960 void *_opaque[1]; 22961 } krwlock_t; 22962 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22963 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1 22964 /* 22965 * CDDL HEADER START 22966 * 22967 * The contents of this file are subject to the terms of the 22968 * Common Development and Distribution License, Version 1.0 only 22969 * (the "License"). You may not use this file except in compliance 22970 * with the License. 22971 * 22972 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22973 * or http://www.opensolaris.org/os/licensing. 22974 * See the License for the specific language governing permissions 22975 * and limitations under the License. 22976 * 22977 * When distributing Covered Code, include this CDDL HEADER in each 22978 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22979 * If applicable, add the following below this CDDL HEADER, with the 22980 * fields enclosed by brackets "[]" replaced with your own identifying 22981 * information: Portions Copyright [yyyy] [name of copyright owner] 22982 * 22983 * CDDL HEADER END 22984 */ 22985 /* 22986 * Copyright (c) 1993-1998 by Sun Microsystems, Inc. 22987 * All rights reserved. 22988 */ 22989 22990 22991 22992 22993 #pragma ident "%Z%%M% %I% %E% SMI" 22994 22995 /* 22996 * Public interface to semaphores. See semaphore(9F) for details. 22997 */ 22998 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 22999 typedef enum { 23000 SEMA_DEFAULT, 23001 SEMA_DRIVER 23002 } ksema_type_t; 23003 23004 typedef struct _ksema { 23005 void * _opaque[2]; /* 2 words on 4 byte alignment */ 23006 } ksema_t; 23007 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 23008 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1 23009 /* 23010 * CDDL HEADER START 23011 * 23012 * The contents of this file are subject to the terms of the 23013 * Common Development and Distribution License (the "License"). 23014 * You may not use this file except in compliance with the License. 23015 * 23016 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23017 * or http://www.opensolaris.org/os/licensing. 23018 * See the License for the specific language governing permissions 23019 * and limitations under the License. 23020 * 23021 * When distributing Covered Code, include this CDDL HEADER in each 23022 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23023 * If applicable, add the following below this CDDL HEADER, with the 23024 * fields enclosed by brackets "[]" replaced with your own identifying 23025 * information: Portions Copyright [yyyy] [name of copyright owner] 23026 * 23027 * CDDL HEADER END 23028 */ 23029 /* 23030 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23031 * Use is subject to license terms. 23032 */ 23033 23034 /* 23035 * Copyright (c) 2012 by Delphix. All rights reserved. 23036 */ 23037 23038 /* 23039 * condvar.h: 23040 * 23041 * definitions for thread synchronization primitives: condition variables 23042 * This is the public part of the interface to condition variables. The 23043 * private (implementation-specific) part is in <arch>/sys/condvar_impl.h. 23044 */ 23045 23046 23047 23048 23049 23050 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 23051 /* 23052 * CDDL HEADER START 23053 * 23054 * The contents of this file are subject to the terms of the 23055 * Common Development and Distribution License (the "License"). 23056 * You may not use this file except in compliance with the License. 23057 * 23058 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23059 * or http://www.opensolaris.org/os/licensing. 23060 * See the License for the specific language governing permissions 23061 * and limitations under the License. 23062 * 23063 * When distributing Covered Code, include this CDDL HEADER in each 23064 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23065 * If applicable, add the following below this CDDL HEADER, with the 23066 * fields enclosed by brackets "[]" replaced with your own identifying 23067 * information: Portions Copyright [yyyy] [name of copyright owner] 23068 * 23069 * CDDL HEADER END 23070 */ 23071 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23072 /* All Rights Reserved */ 23073 23074 23075 /* 23076 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23077 * Use is subject to license terms. 23078 * 23079 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23080 * Copyright 2016 Joyent, Inc. 23081 */ 23082 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 23083 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 23084 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23085 /* All Rights Reserved */ 23086 23087 23088 /* 23089 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 23090 * All rights reserved. The Berkeley software License Agreement 23091 * specifies the terms and conditions for redistribution. 23092 */ 23093 23094 /* 23095 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 23096 * 23097 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23098 * Use is subject to license terms. 23099 * 23100 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23101 */ 23102 23103 /* 23104 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 23105 */ 23106 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 23107 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 23108 /* 23109 * Condtion variables. 23110 */ 23111 23112 typedef struct _kcondvar { 23113 ushort_t _opaque; 23114 } kcondvar_t; 23115 23116 typedef enum { 23117 CV_DEFAULT, 23118 CV_DRIVER 23119 } kcv_type_t; 23120 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 23121 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 23122 /* 23123 * Mutual exclusion locks described in common/sys/mutex.h. 23124 * 23125 * Semaphores described in common/sys/semaphore.h. 23126 * 23127 * Readers/Writer locks described in common/sys/rwlock.h. 23128 * 23129 * Condition variables described in common/sys/condvar.h 23130 */ 23131 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23132 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1 23133 /* 23134 * CDDL HEADER START 23135 * 23136 * The contents of this file are subject to the terms of the 23137 * Common Development and Distribution License, Version 1.0 only 23138 * (the "License"). You may not use this file except in compliance 23139 * 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 2005 Sun Microsystems, Inc. All rights reserved. 23156 * Use is subject to license terms. 23157 */ 23158 23159 23160 23161 23162 #pragma ident "%Z%%M% %I% %E% SMI" 23163 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 23164 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23165 /* 23166 * CDDL HEADER START 23167 * 23168 * The contents of this file are subject to the terms of the 23169 * Common Development and Distribution License (the "License"). 23170 * You may not use this file except in compliance with the License. 23171 * 23172 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23173 * or http://www.opensolaris.org/os/licensing. 23174 * See the License for the specific language governing permissions 23175 * and limitations under the License. 23176 * 23177 * 23178 * When distributing Covered Code, include this CDDL HEADER in each 23179 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23180 * If applicable, add the following below this CDDL HEADER, with the 23181 * fields enclosed by brackets "[]" replaced with your own identifying 23182 * information: Portions Copyright [yyyy] [name of copyright owner] 23183 * 23184 * CDDL HEADER END 23185 */ 23186 23187 /* 23188 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23189 * Use is subject to license terms. 23190 * Copyright 2016 Joyent, Inc. 23191 */ 23192 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2 23193 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 23194 /* 23195 * XXX Ick. This type needs to be visible outside the above guard because 23196 * the proc structure is visible outside the _KERNEL | _KMEMUSER guard. 23197 * If we can make proc internals less visible, (which we obviously should) 23198 * then this can be invisible too. 23199 */ 23200 typedef unsigned int model_t; 23201 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23202 23203 23204 23205 23206 23207 /* 23208 * Data queue. 23209 * 23210 * NOTE: The *only* public fields are documented in queue(9S). 23211 * Everything else is implementation-private. 23212 * 23213 * The locking rules for the queue_t structure are extremely subtle and vary 23214 * widely depending on the field in question. As such, each field is 23215 * annotated according to the following legend: 23216 * 23217 * Q9S: The field is documented in queue(9S) and may be accessed without 23218 * locks by a STREAMS module when inside an entry point (e.g., put(9E)). 23219 * However, no fields can be directly modified unless q_lock is held 23220 * (which is not possible in a DDI compliant STREAMS module), with the 23221 * following exceptions: 23222 * 23223 * - q_ptr: can be modified as per the rules of the STREAMS module. 23224 * The STREAMS framework ignores q_ptr and thus imposes *no* 23225 * locking rules on it. 23226 * - q_qinfo: can be modified before qprocson(). 23227 * 23228 * - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the 23229 * rules of the STREAMS module. The STREAMS framework never 23230 * modifies these fields, and is tolerant of temporarily 23231 * stale field values. 23232 * 23233 * In general, the STREAMS framework employs one of the following 23234 * techniques to ensure STREAMS modules can safely access Q9S fields: 23235 * 23236 * - The field is only modified by the framework when the stream is 23237 * locked with strlock() (q_next). 23238 * 23239 * - The field is modified by the framework, but the modifies are 23240 * atomic, and temporarily stale values are harmless (q_count, 23241 * q_first, q_last). 23242 * 23243 * - The field is modified by the framework, but the field's visible 23244 * values are either constant or directly under the control 23245 * of the STREAMS module itself (q_flag). 23246 * 23247 * QLK: The field must be accessed or modified under q_lock, except when 23248 * the stream has been locked with strlock(). If multiple q_locks must 23249 * be acquired, q_locks at higher addresses must be taken first. 23250 * 23251 * STR: The field can be accessed without a lock, but must be modified under 23252 * strlock(). 23253 * 23254 * SQLK: The field must be accessed or modified under SQLOCK(). 23255 * 23256 * NOLK: The field can be accessed without a lock, but can only be modified 23257 * when the queue_t is not known to any other threads. 23258 * 23259 * SVLK: The field must be accessed or modified under the service_queue lock. 23260 * Note that service_lock must be taken after any needed q_locks, 23261 * and that no other lock should be taken while service_lock is held. 23262 * 23263 * In addition, it is always acceptable to modify a field that is not yet 23264 * known to any other threads -- and other special case exceptions exist in 23265 * the code. Also, q_lock is used with q_wait to implement a stream head 23266 * monitor for reads and writes. 23267 */ 23268 typedef struct queue { 23269 struct qinit *q_qinfo; /* Q9S: Q processing procedure */ 23270 struct msgb *q_first; /* Q9S: first message in Q */ 23271 struct msgb *q_last; /* Q9S: last message in Q */ 23272 struct queue *q_next; /* Q9S: next Q in stream */ 23273 struct queue *q_link; /* SVLK: next Q for scheduling */ 23274 void *q_ptr; /* Q9S: module-specific data */ 23275 size_t q_count; /* Q9S: number of bytes on Q */ 23276 uint_t q_flag; /* Q9S: Q state */ 23277 ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */ 23278 ssize_t q_maxpsz; /* Q9S: largest packet OK on Q */ 23279 size_t q_hiwat; /* Q9S: Q high water mark */ 23280 size_t q_lowat; /* Q9S: Q low water mark */ 23281 struct qband *q_bandp; /* QLK: band flow information */ 23282 kmutex_t q_lock; /* NOLK: structure lock */ 23283 struct stdata *q_stream; /* NOLK: stream backpointer */ 23284 struct syncq *q_syncq; /* NOLK: associated syncq */ 23285 unsigned char q_nband; /* QLK: number of bands */ 23286 kcondvar_t q_wait; /* NOLK: read/write sleep CV */ 23287 struct queue *q_nfsrv; /* STR: next Q with svc routine */ 23288 ushort_t q_draining; /* QLK: Q is draining */ 23289 short q_struiot; /* QLK: sync streams Q UIO mode */ 23290 clock_t q_qtstamp; /* QLK: when Q was enabled */ 23291 size_t q_mblkcnt; /* QLK: mblk count */ 23292 uint_t q_syncqmsgs; /* QLK: syncq message count */ 23293 size_t q_rwcnt; /* QLK: # threads in rwnext() */ 23294 pri_t q_spri; /* QLK: Q scheduling priority */ 23295 23296 /* 23297 * Syncq scheduling 23298 */ 23299 struct msgb *q_sqhead; /* QLK: first syncq message */ 23300 struct msgb *q_sqtail; /* QLK: last syncq message */ 23301 struct queue *q_sqnext; /* SQLK: next Q on syncq list */ 23302 struct queue *q_sqprev; /* SQLK: prev Q on syncq list */ 23303 uint_t q_sqflags; /* SQLK: syncq flags */ 23304 clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */ 23305 23306 /* 23307 * NOLK: Reference to the queue's module's implementation 23308 * structure. This will be NULL for queues associated with drivers. 23309 */ 23310 struct fmodsw_impl *q_fp; 23311 } queue_t; 23312 23313 /* 23314 * Queue flags; unused flags not documented in queue(9S) can be recycled. 23315 */ 23316 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23317 /* UNUSED 0x00000200 was QHLIST */ 23318 /* UNUSED 0x00000400 was QUNSAFE */ 23319 23320 23321 23322 23323 23324 23325 /* all MT type flags */ 23326 23327 23328 23329 23330 23331 23332 /* UNUSED 0x00400000 was QHOT */ 23333 /* UNUSED 0x00800000 was QNEXTHOT */ 23334 /* UNUSED 0x01000000 was _QNEXTLESS */ 23335 23336 23337 23338 23339 /* direct interface to/from sockfs */ 23340 23341 /* queue sqflags (protected by SQLOCK). */ 23342 23343 23344 /* This is also noted by the */ 23345 /* q_draining field, but this one is */ 23346 /* protected by SQLOCK */ 23347 23348 /* 23349 * Structure that describes the separate information 23350 * for each priority band in the queue. 23351 */ 23352 typedef struct qband { 23353 struct qband *qb_next; /* next band's info */ 23354 size_t qb_count; /* number of bytes in band */ 23355 struct msgb *qb_first; /* beginning of band's data */ 23356 struct msgb *qb_last; /* end of band's data */ 23357 size_t qb_hiwat; /* high water mark for band */ 23358 size_t qb_lowat; /* low water mark for band */ 23359 uint_t qb_flag; /* see below */ 23360 size_t qb_mblkcnt; /* mblk counter for runaway msgs */ 23361 } qband_t; 23362 23363 /* 23364 * qband flags 23365 */ 23366 23367 23368 23369 23370 /* 23371 * Maximum number of bands. 23372 */ 23373 23374 23375 /* 23376 * Fields that can be manipulated through strqset() and strqget(). 23377 */ 23378 typedef enum qfields { 23379 QHIWAT = 0, /* q_hiwat or qb_hiwat */ 23380 QLOWAT = 1, /* q_lowat or qb_lowat */ 23381 QMAXPSZ = 2, /* q_maxpsz */ 23382 QMINPSZ = 3, /* q_minpsz */ 23383 QCOUNT = 4, /* q_count or qb_count */ 23384 QFIRST = 5, /* q_first or qb_first */ 23385 QLAST = 6, /* q_last or qb_last */ 23386 QFLAG = 7, /* q_flag or qb_flag */ 23387 QSTRUIOT = 8, /* q_struiot */ 23388 QBAD = 9 23389 } qfields_t; 23390 23391 /* 23392 * Module information structure 23393 */ 23394 struct module_info { 23395 ushort_t mi_idnum; /* module id number */ 23396 char *mi_idname; /* module name */ 23397 ssize_t mi_minpsz; /* min packet size accepted */ 23398 ssize_t mi_maxpsz; /* max packet size accepted */ 23399 size_t mi_hiwat; /* hi-water mark */ 23400 size_t mi_lowat; /* lo-water mark */ 23401 }; 23402 23403 /* 23404 * queue information structure (with Synchronous STREAMS extensions) 23405 */ 23406 struct qinit { 23407 int (*qi_putp)(); /* put procedure */ 23408 int (*qi_srvp)(); /* service procedure */ 23409 int (*qi_qopen)(); /* called on startup */ 23410 int (*qi_qclose)(); /* called on finish */ 23411 int (*qi_qadmin)(); /* for future use */ 23412 struct module_info *qi_minfo; /* module information structure */ 23413 struct module_stat *qi_mstat; /* module statistics structure */ 23414 int (*qi_rwp)(); /* r/w procedure */ 23415 int (*qi_infop)(); /* information procedure */ 23416 int qi_struiot; /* stream uio type for struio() */ 23417 }; 23418 23419 /* 23420 * Values for qi_struiot and q_struiot: 23421 */ 23422 23423 23424 23425 23426 /* 23427 * Streamtab (used in cdevsw and fmodsw to point to module or driver) 23428 */ 23429 struct streamtab { 23430 struct qinit *st_rdinit; 23431 struct qinit *st_wrinit; 23432 struct qinit *st_muxrinit; 23433 struct qinit *st_muxwinit; 23434 }; 23435 23436 /* 23437 * Structure sent to mux drivers to indicate a link. 23438 */ 23439 struct linkblk { 23440 queue_t *l_qtop; /* lowest level write queue of upper stream */ 23441 /* (set to NULL for persistent links) */ 23442 queue_t *l_qbot; /* highest level write queue of lower stream */ 23443 int l_index; /* index for lower stream. */ 23444 }; 23445 23446 /* 23447 * Esballoc data buffer freeing routine 23448 */ 23449 typedef struct free_rtn { 23450 void (*free_func)(); 23451 caddr_t free_arg; 23452 } frtn_t; 23453 23454 /* 23455 * Data block descriptor 23456 * 23457 * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields, 23458 * as described in datab(9S). Everything else is implementation-private. 23459 */ 23460 23461 23462 23463 typedef struct datab { 23464 frtn_t *db_frtnp; 23465 unsigned char *db_base; 23466 unsigned char *db_lim; 23467 unsigned char db_ref; 23468 unsigned char db_type; 23469 unsigned char db_flags; 23470 unsigned char db_struioflag; 23471 pid_t db_cpid; /* cached pid, needs verification */ 23472 void *db_cache; /* kmem cache descriptor */ 23473 struct msgb *db_mblk; 23474 void (*db_free)(struct msgb *, struct datab *); 23475 void (*db_lastfree)(struct msgb *, struct datab *); 23476 intptr_t db_cksumstart; 23477 intptr_t db_cksumend; 23478 intptr_t db_cksumstuff; 23479 union { 23480 double enforce_alignment; 23481 unsigned char data[8]; 23482 struct { 23483 union { 23484 uint32_t u32; 23485 uint16_t u16; 23486 } cksum_val; /* used to store calculated cksum */ 23487 uint16_t flags; 23488 uint16_t pad; 23489 } cksum; 23490 /* 23491 * Union used for future extensions (pointer to data ?). 23492 */ 23493 } db_struioun; 23494 struct fthdr *db_fthdr; 23495 cred_t *db_credp; /* credential */ 23496 } dblk_t; 23497 23498 23499 23500 23501 /* 23502 * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>). 23503 */ 23504 23505 23506 23507 /* 23508 * Used by GLDv2 to store the TCI information. 23509 */ 23510 23511 23512 /* 23513 * Message block descriptor 23514 */ 23515 typedef struct msgb { 23516 struct msgb *b_next; 23517 struct msgb *b_prev; 23518 struct msgb *b_cont; 23519 unsigned char *b_rptr; 23520 unsigned char *b_wptr; 23521 struct datab *b_datap; 23522 unsigned char b_band; 23523 unsigned char b_tag; 23524 unsigned short b_flag; 23525 queue_t *b_queue; /* for sync queues */ 23526 } mblk_t; 23527 23528 /* 23529 * bcache descriptor 23530 */ 23531 typedef struct bcache { 23532 kmutex_t mutex; 23533 struct kmem_cache *buffer_cache; 23534 struct kmem_cache *dblk_cache; 23535 int alloc; 23536 int destroy; 23537 size_t size; 23538 uint_t align; 23539 } bcache_t; 23540 23541 /* 23542 * db_flags values (all implementation private!) 23543 */ 23544 23545 23546 23547 23548 /* 23549 * db_struioflag values: 23550 */ 23551 23552 23553 23554 23555 23556 23557 /* 23558 * Message flags. These are interpreted by the stream head. 23559 */ 23560 23561 23562 /* write side of stream */ 23563 23564 /* UNUSED 0x08 was MSGNOGET (can be recycled) */ 23565 23566 23567 23568 23569 /* 23570 * Streams message types. 23571 */ 23572 23573 /* 23574 * Data and protocol messages (regular and priority) 23575 */ 23576 23577 23578 23579 23580 /* 23581 * Control messages (regular and priority) 23582 */ 23583 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23584 /* 23585 * Control messages (high priority; go to head of queue) 23586 */ 23587 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23588 /* 23589 * Queue message class definitions. 23590 */ 23591 23592 23593 23594 /* 23595 * IOCTL structure - this structure is the format of the M_IOCTL message type. 23596 */ 23597 # 488 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23598 struct iocblk { 23599 int ioc_cmd; /* ioctl command type */ 23600 cred_t *ioc_cr; /* full credentials */ 23601 uint_t ioc_id; /* ioctl id */ 23602 size_t ioc_count; /* count of bytes in data field */ 23603 int ioc_error; /* error code */ 23604 int ioc_rval; /* return value */ 23605 int ioc_fill1; 23606 uint_t ioc_flag; /* see below */ 23607 int ioc_filler[2]; /* reserved for future use */ 23608 }; 23609 23610 23611 typedef struct iocblk *IOCP; 23612 23613 /* {ioc,cp}_flags values */ 23614 23615 23616 23617 23618 23619 23620 23621 /* 23622 * Is the ioctl data formatted for our native model? 23623 */ 23624 23625 23626 23627 /* 23628 * structure for the M_COPYIN and M_COPYOUT message types. 23629 */ 23630 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23631 struct copyreq { 23632 int cq_cmd; /* ioctl command (from ioc_cmd) */ 23633 cred_t *cq_cr; /* full credentials */ 23634 uint_t cq_id; /* ioctl id (from ioc_id) */ 23635 caddr_t cq_addr; /* address to copy data to/from */ 23636 size_t cq_size; /* number of bytes to copy */ 23637 uint_t cq_flag; /* must be zero */ 23638 mblk_t *cq_private; /* private state information */ 23639 int cq_filler[4]; /* reserved for future use */ 23640 }; 23641 23642 23643 /* 23644 * structure for the M_IOCDATA message type. 23645 */ 23646 # 557 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23647 struct copyresp { 23648 int cp_cmd; /* ioctl command (from ioc_cmd) */ 23649 cred_t *cp_cr; /* full credentials */ 23650 uint_t cp_id; /* ioctl id (from ioc_id) */ 23651 caddr_t cp_rval; /* status of request: 0 -> success */ 23652 /* non-zero -> failure */ 23653 size_t cp_pad1; 23654 uint_t cp_pad2; 23655 mblk_t *cp_private; /* private state information */ 23656 uint_t cp_flag; /* datamodel IOC_ flags; see above */ 23657 int cp_filler[3]; 23658 }; 23659 23660 23661 /* 23662 * Since these structures are all intended to travel in the same message 23663 * at different stages of a STREAMS ioctl, this union is used to determine 23664 * the message size in strdoioctl(). 23665 */ 23666 union ioctypes { 23667 struct iocblk iocblk; 23668 struct copyreq copyreq; 23669 struct copyresp copyresp; 23670 }; 23671 23672 /* 23673 * Options structure for M_SETOPTS message. This is sent upstream 23674 * by a module or driver to set stream head options. 23675 */ 23676 struct stroptions { 23677 uint_t so_flags; /* options to set */ 23678 short so_readopt; /* read option */ 23679 ushort_t so_wroff; /* write offset */ 23680 ssize_t so_minpsz; /* minimum read packet size */ 23681 ssize_t so_maxpsz; /* maximum read packet size */ 23682 size_t so_hiwat; /* read queue high water mark */ 23683 size_t so_lowat; /* read queue low water mark */ 23684 unsigned char so_band; /* band for water marks */ 23685 ushort_t so_erropt; /* error option */ 23686 ssize_t so_maxblk; /* maximum message block size */ 23687 ushort_t so_copyopt; /* copy options (see stropts.h) */ 23688 ushort_t so_tail; /* space available at the end */ 23689 }; 23690 23691 /* flags for stream options set message */ 23692 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23693 /* 23694 * Miscellaneous parameters and flags. 23695 */ 23696 23697 /* 23698 * Values for stream flag in open to indicate module open, clone open, 23699 * and the return value for failure. 23700 */ 23701 23702 23703 23704 23705 /* 23706 * Priority definitions for block allocation. 23707 */ 23708 23709 23710 23711 23712 /* 23713 * Value for packet size that denotes infinity 23714 */ 23715 23716 23717 /* 23718 * Flags for flushq() 23719 */ 23720 23721 23722 23723 /* 23724 * Flag for transparent ioctls 23725 */ 23726 23727 23728 /* 23729 * Stream head default high/low water marks 23730 */ 23731 23732 23733 23734 /* 23735 * qwriter perimeter types 23736 */ 23737 23738 23739 23740 /* 23741 * Definitions of Streams macros and function interfaces. 23742 */ 23743 23744 /* 23745 * canenable - check if queue can be enabled by putq(). 23746 */ 23747 23748 23749 /* 23750 * Test if data block type is one of the data messages (i.e. not a control 23751 * message). 23752 */ 23753 23754 23755 23756 23757 23758 23759 23760 /* 23761 * Extract queue class of message block. 23762 */ 23763 23764 23765 /* 23766 * Align address on next lower word boundary. 23767 */ 23768 23769 23770 /* 23771 * Find the max size of data block. 23772 */ 23773 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 23774 23775 /* 23776 * Symbols such as htonl() are required to be exposed through this file, 23777 * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h> 23778 */ 23779 23780 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1 23781 /* 23782 * CDDL HEADER START 23783 * 23784 * The contents of this file are subject to the terms of the 23785 * Common Development and Distribution License (the "License"). 23786 * You may not use this file except in compliance with the License. 23787 * 23788 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23789 * or http://www.opensolaris.org/os/licensing. 23790 * See the License for the specific language governing permissions 23791 * and limitations under the License. 23792 * 23793 * When distributing Covered Code, include this CDDL HEADER in each 23794 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23795 * If applicable, add the following below this CDDL HEADER, with the 23796 * fields enclosed by brackets "[]" replaced with your own identifying 23797 * information: Portions Copyright [yyyy] [name of copyright owner] 23798 * 23799 * CDDL HEADER END 23800 */ 23801 23802 /* 23803 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23804 * Use is subject to license terms. 23805 */ 23806 23807 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 23808 /* All Rights Reserved */ 23809 23810 /* 23811 * University Copyright- Copyright (c) 1982, 1986, 1988 23812 * The Regents of the University of California 23813 * All Rights Reserved 23814 * 23815 * University Acknowledgment- Portions of this document are derived from 23816 * software developed by the University of California, Berkeley, and its 23817 * contributors. 23818 */ 23819 23820 23821 23822 23823 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23824 /* 23825 * CDDL HEADER START 23826 * 23827 * The contents of this file are subject to the terms of the 23828 * Common Development and Distribution License (the "License"). 23829 * You may not use this file except in compliance with the License. 23830 * 23831 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23832 * or http://www.opensolaris.org/os/licensing. 23833 * See the License for the specific language governing permissions 23834 * and limitations under the License. 23835 * 23836 * 23837 * When distributing Covered Code, include this CDDL HEADER in each 23838 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23839 * If applicable, add the following below this CDDL HEADER, with the 23840 * fields enclosed by brackets "[]" replaced with your own identifying 23841 * information: Portions Copyright [yyyy] [name of copyright owner] 23842 * 23843 * CDDL HEADER END 23844 */ 23845 23846 /* 23847 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23848 * Use is subject to license terms. 23849 * Copyright 2016 Joyent, Inc. 23850 */ 23851 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 23852 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 23853 /* 23854 * CDDL HEADER START 23855 * 23856 * The contents of this file are subject to the terms of the 23857 * Common Development and Distribution License, Version 1.0 only 23858 * (the "License"). You may not use this file except in compliance 23859 * with the License. 23860 * 23861 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23862 * or http://www.opensolaris.org/os/licensing. 23863 * See the License for the specific language governing permissions 23864 * and limitations under the License. 23865 * 23866 * When distributing Covered Code, include this CDDL HEADER in each 23867 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23868 * If applicable, add the following below this CDDL HEADER, with the 23869 * fields enclosed by brackets "[]" replaced with your own identifying 23870 * information: Portions Copyright [yyyy] [name of copyright owner] 23871 * 23872 * CDDL HEADER END 23873 */ 23874 /* 23875 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 23876 * 23877 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 23878 * Use is subject to license terms. 23879 */ 23880 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 23881 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23882 /* 23883 * macros for conversion between host and (internet) network byte order 23884 */ 23885 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23886 typedef uint16_t in_port_t; 23887 23888 23889 23890 23891 typedef uint32_t in_addr_t; 23892 23893 23894 23895 extern uint32_t htonl(uint32_t); 23896 extern uint16_t htons(uint16_t); 23897 extern uint32_t ntohl(uint32_t); 23898 extern uint16_t ntohs(uint16_t); 23899 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23900 extern uint64_t htonll(uint64_t); 23901 extern uint64_t ntohll(uint64_t); 23902 23903 23904 23905 23906 23907 23908 /* 23909 * Macros to reverse byte order 23910 */ 23911 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23912 /* 23913 * Macros to convert from a specific byte order to/from native byte order 23914 */ 23915 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23916 /* 23917 * Macros to read unaligned values from a specific byte order to 23918 * native byte order 23919 */ 23920 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23921 /* 23922 * Macros to write unaligned values from native byte order to a specific byte 23923 * order. 23924 */ 23925 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 23926 23927 23928 23929 23930 23931 23932 23933 /* 23934 * Note: IPv4 address data structures usage conventions. 23935 * The "in_addr_t" type below (required by Unix standards) 23936 * is NOT a typedef of "struct in_addr" and violates the usual 23937 * conventions where "struct <name>" and <name>_t are corresponding 23938 * typedefs. 23939 * To minimize confusion, kernel data structures/usage prefers use 23940 * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t" 23941 * The user level APIs continue to follow the historic popular 23942 * practice of using "struct in_addr". 23943 */ 23944 23945 23946 23947 23948 23949 23950 23951 typedef uint32_t ipaddr_t; 23952 23953 23954 23955 23956 struct in6_addr { 23957 union { 23958 /* 23959 * Note: Static initalizers of "union" type assume 23960 * the constant on the RHS is the type of the first member 23961 * of union. 23962 * To make static initializers (and efficient usage) work, 23963 * the order of members exposed to user and kernel view of 23964 * this data structure is different. 23965 * User environment sees specified uint8_t type as first 23966 * member whereas kernel sees most efficient type as 23967 * first member. 23968 */ 23969 23970 23971 23972 23973 uint8_t _S6_u8[16]; /* IPv6 address */ 23974 uint32_t _S6_u32[4]; /* IPv6 address */ 23975 23976 uint32_t __S6_align; /* Align on 32 bit boundary */ 23977 } _S6_un; 23978 }; 23979 23980 23981 23982 23983 23984 23985 23986 typedef struct in6_addr in6_addr_t; 23987 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23988 /* 23989 * Protocols 23990 * 23991 * Some of these constant names are copied for the DTrace IP provider in 23992 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 23993 * in sync. 23994 */ 23995 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23996 /* Transmission Protocol */ 23997 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23998 /* 23999 * Port/socket numbers: network standard functions 24000 * 24001 * Entries should exist here for each port number compiled into an ON 24002 * component, such as snoop. 24003 */ 24004 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24005 /* 24006 * Port/socket numbers: host specific functions 24007 */ 24008 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24009 /* 24010 * Internet Key Exchange (IKE) ports 24011 */ 24012 24013 24014 24015 /* 24016 * UNIX TCP sockets 24017 */ 24018 24019 24020 24021 24022 24023 24024 /* 24025 * UNIX UDP sockets 24026 */ 24027 24028 24029 24030 24031 24032 24033 24034 /* 24035 * DHCPv6 UDP ports 24036 */ 24037 24038 24039 24040 24041 24042 /* 24043 * Ports < IPPORT_RESERVED are reserved for 24044 * privileged processes (e.g. root). 24045 * Ports > IPPORT_USERRESERVED are reserved 24046 * for servers, not necessarily privileged. 24047 */ 24048 24049 24050 24051 /* 24052 * Link numbers 24053 */ 24054 24055 24056 24057 24058 /* 24059 * IPv4 Internet address 24060 * This definition contains obsolete fields for compatibility 24061 * with SunOS 3.x and 4.2bsd. The presence of subnets renders 24062 * divisions into fixed fields misleading at best. New code 24063 * should use only the s_addr field. 24064 */ 24065 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24066 struct in_addr { 24067 union { 24068 struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b; 24069 struct { uint16_t s_w1, s_w2; } S_un_w; 24070 24071 uint32_t S_addr; 24072 24073 24074 24075 } S_un; 24076 24077 24078 24079 24080 24081 24082 }; 24083 24084 /* 24085 * Definitions of bits in internet address integers. 24086 * On subnets, the decomposition of addresses to host and net parts 24087 * is done according to subnet mask, not the masks here. 24088 * 24089 * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB, 24090 * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto 24091 * obsolete". IN_MULTICAST macro should be used to test if a address 24092 * is a multicast address. 24093 */ 24094 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24095 /* 24096 * We have removed CLASS E checks from the kernel 24097 * But we preserve these defines for userland in order 24098 * to avoid compile breakage of some 3rd party piece of software 24099 */ 24100 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24101 /* Scoped IPv4 prefixes (in host byte-order) */ 24102 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24103 /* RFC 3927 IPv4 link local address (i in host byte-order) */ 24104 24105 24106 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */ 24107 24108 24109 24110 24111 24112 24113 /* 24114 * Define a macro to stuff the loopback address into an Internet address 24115 */ 24116 24117 24118 24119 24120 24121 24122 /* 24123 * IPv4 Socket address. 24124 */ 24125 struct sockaddr_in { 24126 sa_family_t sin_family; 24127 in_port_t sin_port; 24128 struct in_addr sin_addr; 24129 24130 char sin_zero[8]; 24131 24132 24133 24134 }; 24135 24136 24137 /* 24138 * IPv6 socket address. 24139 */ 24140 struct sockaddr_in6 { 24141 sa_family_t sin6_family; 24142 in_port_t sin6_port; 24143 uint32_t sin6_flowinfo; 24144 struct in6_addr sin6_addr; 24145 uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */ 24146 uint32_t __sin6_src_id; /* Impl. specific - UDP replies */ 24147 }; 24148 24149 /* 24150 * Macros for accessing the traffic class and flow label fields from 24151 * sin6_flowinfo. 24152 * These are designed to be applied to a 32-bit value. 24153 */ 24154 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24155 /* masks */ 24156 24157 24158 24159 24160 24161 /* 24162 * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for 24163 * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t) 24164 * only. They need to be different for User/Kernel versions because union 24165 * component data structure is defined differently (it is identical at 24166 * binary representation level). 24167 * 24168 * const struct in6_addr IN6ADDR_ANY_INIT; 24169 * const struct in6_addr IN6ADDR_LOOPBACK_INIT; 24170 */ 24171 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24172 /* 24173 * RFC 2553 specifies the following macros. Their type is defined 24174 * as "int" in the RFC but they only have boolean significance 24175 * (zero or non-zero). For the purposes of our comment notation, 24176 * we assume a hypothetical type "bool" defined as follows to 24177 * write the prototypes assumed for macros in our comments better. 24178 * 24179 * typedef int bool; 24180 */ 24181 24182 /* 24183 * IN6 macros used to test for special IPv6 addresses 24184 * (Mostly from spec) 24185 * 24186 * bool IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *); 24187 * bool IN6_IS_ADDR_LOOPBACK (const struct in6_addr *); 24188 * bool IN6_IS_ADDR_MULTICAST (const struct in6_addr *); 24189 * bool IN6_IS_ADDR_LINKLOCAL (const struct in6_addr *); 24190 * bool IN6_IS_ADDR_SITELOCAL (const struct in6_addr *); 24191 * bool IN6_IS_ADDR_V4MAPPED (const struct in6_addr *); 24192 * bool IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553 24193 * bool IN6_IS_ADDR_V4COMPAT (const struct in6_addr *); 24194 * bool IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553 24195 * bool IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *); 24196 * bool IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *); 24197 * bool IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *); 24198 * bool IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *); 24199 * bool IN6_IS_ADDR_MC_GLOBAL (const struct in6_addr *); 24200 * bool IN6_IS_ADDR_6TO4 (const struct in6_addr *); -- Not from RFC2553 24201 * bool IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *, 24202 * const struct in6_addr *); -- Not from RFC2553 24203 * bool IN6_IS_ADDR_LINKSCOPE (const struct in6addr *); -- Not from RFC2553 24204 */ 24205 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24206 /* 24207 * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY 24208 * Note: This macro is currently NOT defined in RFC2553 specification 24209 * and not a standard macro that portable applications should use. 24210 */ 24211 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24212 /* Exclude loopback and unspecified address */ 24213 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24214 /* 24215 * Note: 24216 * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553 24217 * specification and not a standard macro that portable applications 24218 * should use. 24219 */ 24220 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24221 /* 24222 * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or 24223 * RFC, and shouldn't be used by portable applications. It is used to see 24224 * if an address is a solicited-node multicast address, which is prefixed 24225 * with ff02:0:0:0:0:1:ff00::/104. 24226 */ 24227 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24228 /* 24229 * Macros to a) test for 6to4 IPv6 address, and b) to test if two 24230 * 6to4 addresses have the same /48 prefix, and, hence, are from the 24231 * same 6to4 site. 24232 */ 24233 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24234 /* 24235 * IN6_IS_ADDR_LINKSCOPE 24236 * Identifies an address as being either link-local, link-local multicast or 24237 * node-local multicast. All types of addresses are considered to be unique 24238 * within the scope of a given link. 24239 */ 24240 24241 24242 24243 24244 /* 24245 * Useful utility macros for operations with IPv6 addresses 24246 * Note: These macros are NOT defined in the RFC2553 or any other 24247 * standard specification and are not standard macros that portable 24248 * applications should use. 24249 */ 24250 24251 /* 24252 * IN6_V4MAPPED_TO_INADDR 24253 * IN6_V4MAPPED_TO_IPADDR 24254 * Assign a IPv4-Mapped IPv6 address to an IPv4 address. 24255 * Note: These macros are NOT defined in RFC2553 or any other standard 24256 * specification and are not macros that portable applications should 24257 * use. 24258 * 24259 * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4); 24260 * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4); 24261 * 24262 */ 24263 24264 24265 24266 24267 24268 /* 24269 * IN6_INADDR_TO_V4MAPPED 24270 * IN6_IPADDR_TO_V4MAPPED 24271 * Assign a IPv4 address address to an IPv6 address as a IPv4-mapped 24272 * address. 24273 * Note: These macros are NOT defined in RFC2553 or any other standard 24274 * specification and are not macros that portable applications should 24275 * use. 24276 * 24277 * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6); 24278 * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6); 24279 * 24280 */ 24281 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24282 /* 24283 * IN6_6TO4_TO_V4ADDR 24284 * Extract the embedded IPv4 address from the prefix to a 6to4 IPv6 24285 * address. 24286 * Note: This macro is NOT defined in RFC2553 or any other standard 24287 * specification and is not a macro that portable applications should 24288 * use. 24289 * Note: we don't use the IPADDR form of the macro because we need 24290 * to do a bytewise copy; the V4ADDR in the 6to4 address is not 24291 * 32-bit aligned. 24292 * 24293 * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4); 24294 * 24295 */ 24296 24297 24298 24299 24300 24301 24302 /* 24303 * IN6_V4ADDR_TO_6TO4 24304 * Given an IPv4 address and an IPv6 address for output, a 6to4 address 24305 * will be created from the IPv4 Address. 24306 * Note: This method for creating 6to4 addresses is not standardized 24307 * outside of Solaris. The newly created 6to4 address will be of the form 24308 * 2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and 24309 * HOSTID will equal 1. 24310 * 24311 * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6) 24312 * 24313 */ 24314 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24315 /* 24316 * IN6_ARE_ADDR_EQUAL (defined in RFC2292) 24317 * Compares if IPv6 addresses are equal. 24318 * Note: Compares in order of high likelyhood of a miss so we minimize 24319 * compares. (Current heuristic order, compare in reverse order of 24320 * uint32_t units) 24321 * 24322 * bool IN6_ARE_ADDR_EQUAL(const struct in6_addr *, 24323 * const struct in6_addr *); 24324 */ 24325 24326 24327 24328 24329 24330 24331 /* 24332 * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs) 24333 * Compares if prefixed parts of IPv6 addresses are equal. 24334 * 24335 * uint32_t IN6_MASK_FROM_PREFIX(int, int); 24336 * bool IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *, 24337 * const struct in6_addr *, 24338 * int); 24339 */ 24340 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24341 /* 24342 * Options for use with [gs]etsockopt at the IP level. 24343 * 24344 * Note: Some of the IP_ namespace has conflict with and 24345 * and is exposed through <xti.h>. (It also requires exposing 24346 * options not implemented). The options with potential 24347 * for conflicts use #ifndef guards. 24348 */ 24349 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24350 /* 24351 * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in 24352 * is used to differentiate b/w the two. 24353 */ 24354 24355 24356 24357 24358 24359 /* 24360 * Different preferences that can be requested from IPSEC protocols. 24361 */ 24362 24363 24364 24365 24366 /* 24367 * This can be used with the setsockopt() call to set per socket security 24368 * options. When the application uses per-socket API, we will reflect 24369 * the request on both outbound and inbound packets. 24370 */ 24371 24372 typedef struct ipsec_req { 24373 uint_t ipsr_ah_req; /* AH request */ 24374 uint_t ipsr_esp_req; /* ESP request */ 24375 uint_t ipsr_self_encap_req; /* Self-Encap request */ 24376 uint8_t ipsr_auth_alg; /* Auth algs for AH */ 24377 uint8_t ipsr_esp_alg; /* Encr algs for ESP */ 24378 uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */ 24379 } ipsec_req_t; 24380 24381 /* 24382 * MCAST_* options are protocol-independent. The actual definitions 24383 * are with the v6 options below; this comment is here to note the 24384 * namespace usage. 24385 * 24386 * #define MCAST_JOIN_GROUP 0x29 24387 * #define MCAST_LEAVE_GROUP 0x2a 24388 * #define MCAST_BLOCK_SOURCE 0x2b 24389 * #define MCAST_UNBLOCK_SOURCE 0x2c 24390 * #define MCAST_JOIN_SOURCE_GROUP 0x2d 24391 * #define MCAST_LEAVE_SOURCE_GROUP 0x2e 24392 */ 24393 24394 24395 /* 24396 * SunOS private (potentially not portable) IP_ option names 24397 */ 24398 24399 24400 24401 /* can be reused 0x44 */ 24402 24403 24404 /* 24405 * Option values and names (when !_XPG5) shared with <xti_inet.h> 24406 */ 24407 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24408 /* 24409 * The following option values are reserved by <xti_inet.h> 24410 * 24411 * T_IP_OPTIONS 0x107 - IP per-packet options 24412 * T_IP_TOS 0x108 - IP per packet type of service 24413 */ 24414 24415 /* 24416 * Default value constants for multicast attributes controlled by 24417 * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options. 24418 */ 24419 24420 24421 24422 24423 /* 24424 * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. 24425 */ 24426 struct ip_mreq { 24427 struct in_addr imr_multiaddr; /* IP multicast address of group */ 24428 struct in_addr imr_interface; /* local IP address of interface */ 24429 }; 24430 24431 /* 24432 * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE, 24433 * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP. 24434 */ 24435 struct ip_mreq_source { 24436 struct in_addr imr_multiaddr; /* IP address of group */ 24437 struct in_addr imr_sourceaddr; /* IP address of source */ 24438 struct in_addr imr_interface; /* IP address of interface */ 24439 }; 24440 24441 /* 24442 * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on 24443 * IPv6 addresses. 24444 */ 24445 struct ipv6_mreq { 24446 struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */ 24447 unsigned int ipv6mr_interface; /* interface index */ 24448 }; 24449 24450 /* 24451 * Use #pragma pack() construct to force 32-bit alignment on amd64. 24452 * This is needed to keep the structure size and offsets consistent 24453 * between a 32-bit app and the 64-bit amd64 kernel in structures 24454 * where 64-bit alignment would create gaps (in this case, structures 24455 * which have a uint32_t followed by a struct sockaddr_storage). 24456 */ 24457 24458 24459 24460 24461 /* 24462 * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP. 24463 */ 24464 struct group_req { 24465 uint32_t gr_interface; /* interface index */ 24466 struct sockaddr_storage gr_group; /* group address */ 24467 }; 24468 24469 /* 24470 * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, 24471 * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP. 24472 */ 24473 struct group_source_req { 24474 uint32_t gsr_interface; /* interface index */ 24475 struct sockaddr_storage gsr_group; /* group address */ 24476 struct sockaddr_storage gsr_source; /* source address */ 24477 }; 24478 24479 /* 24480 * Argument for SIOC[GS]MSFILTER ioctls 24481 */ 24482 struct group_filter { 24483 uint32_t gf_interface; /* interface index */ 24484 struct sockaddr_storage gf_group; /* multicast address */ 24485 uint32_t gf_fmode; /* filter mode */ 24486 uint32_t gf_numsrc; /* number of sources */ 24487 struct sockaddr_storage gf_slist[1]; /* source address */ 24488 }; 24489 # 1078 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24490 /* 24491 * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific) 24492 */ 24493 struct ip_msfilter { 24494 struct in_addr imsf_multiaddr; /* IP multicast address of group */ 24495 struct in_addr imsf_interface; /* local IP address of interface */ 24496 uint32_t imsf_fmode; /* filter mode */ 24497 uint32_t imsf_numsrc; /* number of sources in src_list */ 24498 struct in_addr imsf_slist[1]; /* start of source list */ 24499 }; 24500 24501 24502 24503 24504 24505 /* 24506 * Multicast source filter manipulation functions in libsocket; 24507 * defined in RFC 3678. 24508 */ 24509 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t, 24510 uint_t, struct sockaddr_storage *); 24511 24512 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *, 24513 uint_t *, struct sockaddr_storage *); 24514 24515 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t, 24516 uint32_t, struct in_addr *); 24517 24518 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *, 24519 uint32_t *, struct in_addr *); 24520 24521 /* 24522 * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter() 24523 */ 24524 24525 24526 24527 /* 24528 * Argument struct for IP_PKTINFO option 24529 */ 24530 typedef struct in_pktinfo { 24531 unsigned int ipi_ifindex; /* send/recv interface index */ 24532 struct in_addr ipi_spec_dst; /* matched source address */ 24533 struct in_addr ipi_addr; /* src/dst address in IP hdr */ 24534 } in_pktinfo_t; 24535 24536 /* 24537 * Argument struct for IPV6_PKTINFO option 24538 */ 24539 struct in6_pktinfo { 24540 struct in6_addr ipi6_addr; /* src/dst IPv6 address */ 24541 unsigned int ipi6_ifindex; /* send/recv interface index */ 24542 }; 24543 24544 /* 24545 * Argument struct for IPV6_MTUINFO option 24546 */ 24547 struct ip6_mtuinfo { 24548 struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */ 24549 uint32_t ip6m_mtu; /* path MTU in host byte order */ 24550 }; 24551 24552 /* 24553 * IPv6 routing header types 24554 */ 24555 24556 24557 extern socklen_t inet6_rth_space(int type, int segments); 24558 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments); 24559 extern int inet6_rth_add(void *bp, const struct in6_addr *addr); 24560 extern int inet6_rth_reverse(const void *in, void *out); 24561 extern int inet6_rth_segments(const void *bp); 24562 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index); 24563 24564 extern int inet6_opt_init(void *extbuf, socklen_t extlen); 24565 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset, 24566 uint8_t type, socklen_t len, uint_t align, void **databufp); 24567 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset); 24568 extern int inet6_opt_set_val(void *databuf, int offset, void *val, 24569 socklen_t vallen); 24570 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset, 24571 uint8_t *typep, socklen_t *lenp, void **databufp); 24572 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset, 24573 uint8_t type, socklen_t *lenp, void **databufp); 24574 extern int inet6_opt_get_val(void *databuf, int offset, void *val, 24575 socklen_t vallen); 24576 24577 24578 /* 24579 * Argument structure for IP_ADD_PROXY_ADDR. 24580 * Note that this is an unstable, experimental interface. It may change 24581 * later. Don't use it unless you know what it is. 24582 */ 24583 typedef struct { 24584 struct in_addr in_prefix_addr; 24585 unsigned int in_prefix_len; 24586 } in_prefix_t; 24587 24588 24589 24590 /* 24591 * IPv6 options 24592 */ 24593 24594 /* packets. */ 24595 /* argument type: uint_t */ 24596 24597 /* multicast packets. */ 24598 /* argument type: struct in6_addr */ 24599 24600 /* multicast packets. */ 24601 /* argument type: uint_t */ 24602 24603 /* multicast packets on same socket. */ 24604 /* argument type: uint_t */ 24605 24606 /* argument type: struct ipv6_mreq */ 24607 24608 /* argument type: struct ipv6_mreq */ 24609 24610 /* 24611 * Other XPG6 constants. 24612 */ 24613 24614 /* decimal notation. */ 24615 24616 /* standard colon-hex notation. */ 24617 24618 24619 24620 24621 24622 /* 24623 * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept 24624 * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP 24625 * and IPV6_LEAVE_GROUP respectively. 24626 */ 24627 24628 /* argument type: struct ipv6_mreq */ 24629 24630 /* argument type: struct ipv6_mreq */ 24631 24632 24633 /* arg type: "struct in6_pktingo" - */ 24634 24635 24636 24637 24638 /* the routing header */ 24639 24640 24641 /* the routing header */ 24642 24643 24644 24645 24646 /* 24647 * This options exists for backwards compatability and should no longer be 24648 * used. Use IPV6_RECVDSTOPTS instead. 24649 */ 24650 24651 24652 24653 24654 /* 24655 * enable/disable IPV6_RTHDRDSTOPTS. Now obsolete. IPV6_RECVDSTOPTS enables 24656 * the receipt of both headers. 24657 */ 24658 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24659 /* 24660 * enable/disable receipt of both both IPV6_DSTOPTS headers. 24661 */ 24662 24663 24664 /* 24665 * protocol-independent multicast membership options. 24666 */ 24667 24668 24669 24670 24671 24672 24673 24674 /* 32Bit field for IPV6_SRC_PREFERENCES */ 24675 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24676 /* 24677 * SunOS private (potentially not portable) IPV6_ option names 24678 */ 24679 24680 24681 /* unspecified (all zeros) */ 24682 24683 /* 24684 * Miscellaneous IPv6 constants. 24685 */ 24686 24687 24688 24689 24690 /* 24691 * Extern declarations for pre-defined global const variables 24692 */ 24693 24694 24695 24696 extern const struct in6_addr in6addr_any; 24697 extern const struct in6_addr in6addr_loopback; 24698 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 24699 24700 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1 24701 /* 24702 * CDDL HEADER START 24703 * 24704 * The contents of this file are subject to the terms of the 24705 * Common Development and Distribution License (the "License"). 24706 * You may not use this file except in compliance with the License. 24707 * 24708 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24709 * or http://www.opensolaris.org/os/licensing. 24710 * See the License for the specific language governing permissions 24711 * and limitations under the License. 24712 * 24713 * When distributing Covered Code, include this CDDL HEADER in each 24714 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24715 * If applicable, add the following below this CDDL HEADER, with the 24716 * fields enclosed by brackets "[]" replaced with your own identifying 24717 * information: Portions Copyright [yyyy] [name of copyright owner] 24718 * 24719 * CDDL HEADER END 24720 */ 24721 /* 24722 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24723 * 24724 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 24725 */ 24726 24727 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 24728 /* All Rights Reserved */ 24729 24730 /* 24731 * University Copyright- Copyright (c) 1982, 1986, 1988 24732 * The Regents of the University of California 24733 * All Rights Reserved 24734 * 24735 * University Acknowledgment- Portions of this document are derived from 24736 * software developed by the University of California, Berkeley, and its 24737 * contributors. 24738 */ 24739 24740 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 24741 24742 24743 24744 24745 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24746 /* 24747 * CDDL HEADER START 24748 * 24749 * The contents of this file are subject to the terms of the 24750 * Common Development and Distribution License (the "License"). 24751 * You may not use this file except in compliance with the License. 24752 * 24753 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24754 * or http://www.opensolaris.org/os/licensing. 24755 * See the License for the specific language governing permissions 24756 * and limitations under the License. 24757 * 24758 * When distributing Covered Code, include this CDDL HEADER in each 24759 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24760 * If applicable, add the following below this CDDL HEADER, with the 24761 * fields enclosed by brackets "[]" replaced with your own identifying 24762 * information: Portions Copyright [yyyy] [name of copyright owner] 24763 * 24764 * CDDL HEADER END 24765 */ 24766 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24767 /* All Rights Reserved */ 24768 24769 24770 /* 24771 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24772 * Use is subject to license terms. 24773 * 24774 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24775 * Copyright 2016 Joyent, Inc. 24776 */ 24777 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 24778 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1 24779 /* 24780 * CDDL HEADER START 24781 * 24782 * The contents of this file are subject to the terms of the 24783 * Common Development and Distribution License (the "License"). 24784 * You may not use this file except in compliance with the License. 24785 * 24786 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24787 * or http://www.opensolaris.org/os/licensing. 24788 * See the License for the specific language governing permissions 24789 * and limitations under the License. 24790 * 24791 * When distributing Covered Code, include this CDDL HEADER in each 24792 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24793 * If applicable, add the following below this CDDL HEADER, with the 24794 * fields enclosed by brackets "[]" replaced with your own identifying 24795 * information: Portions Copyright [yyyy] [name of copyright owner] 24796 * 24797 * CDDL HEADER END 24798 */ 24799 /* 24800 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24801 * 24802 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 24803 * Use is subject to license terms. 24804 * 24805 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24806 * Copyright (c) 2015, Joyent, Inc. All rights reserved. 24807 */ 24808 24809 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24810 /* All Rights Reserved */ 24811 24812 /* 24813 * University Copyright- Copyright (c) 1982, 1986, 1988 24814 * The Regents of the University of California 24815 * All Rights Reserved 24816 * 24817 * University Acknowledgment- Portions of this document are derived from 24818 * software developed by the University of California, Berkeley, and its 24819 * contributors. 24820 */ 24821 24822 24823 24824 24825 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 24826 /* 24827 * CDDL HEADER START 24828 * 24829 * The contents of this file are subject to the terms of the 24830 * Common Development and Distribution License (the "License"). 24831 * You may not use this file except in compliance with the License. 24832 * 24833 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24834 * or http://www.opensolaris.org/os/licensing. 24835 * See the License for the specific language governing permissions 24836 * and limitations under the License. 24837 * 24838 * When distributing Covered Code, include this CDDL HEADER in each 24839 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24840 * If applicable, add the following below this CDDL HEADER, with the 24841 * fields enclosed by brackets "[]" replaced with your own identifying 24842 * information: Portions Copyright [yyyy] [name of copyright owner] 24843 * 24844 * CDDL HEADER END 24845 */ 24846 24847 /* 24848 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 24849 * Copyright 2016 Joyent, Inc. 24850 * 24851 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24852 * Use is subject to license terms. 24853 */ 24854 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 24855 24856 24857 24858 24859 24860 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24861 /* 24862 * CDDL HEADER START 24863 * 24864 * The contents of this file are subject to the terms of the 24865 * Common Development and Distribution License (the "License"). 24866 * You may not use this file except in compliance with the License. 24867 * 24868 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24869 * or http://www.opensolaris.org/os/licensing. 24870 * See the License for the specific language governing permissions 24871 * and limitations under the License. 24872 * 24873 * When distributing Covered Code, include this CDDL HEADER in each 24874 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24875 * If applicable, add the following below this CDDL HEADER, with the 24876 * fields enclosed by brackets "[]" replaced with your own identifying 24877 * information: Portions Copyright [yyyy] [name of copyright owner] 24878 * 24879 * CDDL HEADER END 24880 */ 24881 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24882 /* All Rights Reserved */ 24883 24884 24885 /* 24886 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24887 * Use is subject to license terms. 24888 * 24889 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24890 * Copyright 2016 Joyent, Inc. 24891 */ 24892 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 24893 24894 /* 24895 * I/O parameter information. A uio structure describes the I/O which 24896 * is to be performed by an operation. Typically the data movement will 24897 * be performed by a routine such as uiomove(), which updates the uio 24898 * structure to reflect what was done. 24899 */ 24900 24901 24902 24903 24904 24905 24906 24907 typedef struct iovec { 24908 caddr_t iov_base; 24909 24910 24911 24912 long iov_len; 24913 24914 } iovec_t; 24915 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24916 /* 24917 * Segment flag values. 24918 */ 24919 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t; 24920 24921 typedef struct uio { 24922 iovec_t *uio_iov; /* pointer to array of iovecs */ 24923 int uio_iovcnt; /* number of iovecs */ 24924 lloff_t _uio_offset; /* file offset */ 24925 uio_seg_t uio_segflg; /* address space (kernel or user) */ 24926 uint16_t uio_fmode; /* file mode flags */ 24927 uint16_t uio_extflg; /* extended flags */ 24928 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 24929 ssize_t uio_resid; /* residual count */ 24930 } uio_t; 24931 24932 /* 24933 * Extended uio_t uioa_t used for asynchronous uio. 24934 * 24935 * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c" 24936 * as there isn't a formal definition of IOV_MAX for the kernel. 24937 */ 24938 24939 24940 typedef struct uioa_page_s { /* locked uio_iov state */ 24941 int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */ 24942 void **uioa_ppp; /* page_t or pfn_t arrary */ 24943 caddr_t uioa_base; /* address base */ 24944 size_t uioa_len; /* span length */ 24945 } uioa_page_t; 24946 24947 typedef struct uioa_s { 24948 iovec_t *uio_iov; /* pointer to array of iovecs */ 24949 int uio_iovcnt; /* number of iovecs */ 24950 lloff_t _uio_offset; /* file offset */ 24951 uio_seg_t uio_segflg; /* address space (kernel or user) */ 24952 uint16_t uio_fmode; /* file mode flags */ 24953 uint16_t uio_extflg; /* extended flags */ 24954 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 24955 ssize_t uio_resid; /* residual count */ 24956 /* 24957 * uioa extended members. 24958 */ 24959 uint32_t uioa_state; /* state of asynch i/o */ 24960 ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */ 24961 uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */ 24962 void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */ 24963 void *uioa_hwst[4]; /* opaque hardware state */ 24964 uioa_page_t uioa_locked[16]; /* Per iov locked pages */ 24965 } uioa_t; 24966 24967 /* 24968 * uio extensions 24969 * 24970 * PSARC 2009/478: Copy Reduction Interfaces 24971 */ 24972 typedef enum xuio_type { 24973 UIOTYPE_ASYNCIO, 24974 UIOTYPE_ZEROCOPY 24975 } xuio_type_t; 24976 24977 typedef struct xuio { 24978 uio_t xu_uio; /* Embedded UIO structure */ 24979 24980 /* Extended uio fields */ 24981 enum xuio_type xu_type; /* What kind of uio structure? */ 24982 union { 24983 /* Async I/O Support, intend to replace uioa_t. */ 24984 struct { 24985 uint32_t xu_a_state; /* state of async i/o */ 24986 /* bytes that have been uioamove()ed */ 24987 ssize_t xu_a_mbytes; 24988 uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */ 24989 /* pointer into lcur->uioa_ppp[] */ 24990 void **xu_a_lppp; 24991 void *xu_a_hwst[4]; /* opaque hardware state */ 24992 /* Per iov locked pages */ 24993 uioa_page_t xu_a_locked[16]; 24994 } xu_aio; 24995 24996 /* 24997 * Copy Reduction Support -- facilate loaning / returning of 24998 * filesystem cache buffers. 24999 */ 25000 struct { 25001 int xu_zc_rw; /* read or write buffer */ 25002 void *xu_zc_priv; /* fs specific */ 25003 } xu_zc; 25004 } xu_ext; 25005 } xuio_t; 25006 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25007 /* 25008 * I/O direction. 25009 */ 25010 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t; 25011 25012 /* 25013 * uio_extflg: extended flags 25014 * 25015 * NOTE: This flag will be used in uiomove to determine if non-temporal 25016 * access, ie, access bypassing caches, should be used. Filesystems that 25017 * don't initialize this field could experience suboptimal performance due to 25018 * the random data the field contains. 25019 * 25020 * NOTE: This flag is also used by uioasync callers to pass an extended 25021 * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all 25022 * consumers of a uioa_t require the uio_extflg to be initialized. 25023 */ 25024 25025 25026 25027 25028 25029 25030 /* 25031 * Global uioasync capability shadow state. 25032 */ 25033 typedef struct uioasync_s { 25034 boolean_t enabled; /* Is uioasync enabled? */ 25035 size_t mincnt; /* Minimum byte count for use of */ 25036 } uioasync_t; 25037 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25038 extern ssize_t readv(int, const struct iovec *, int); 25039 extern ssize_t writev(int, const struct iovec *, int); 25040 25041 /* 25042 * When in the large file compilation environment, 25043 * map preadv/pwritev to their 64 bit offset versions 25044 */ 25045 25046 25047 25048 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25049 #pragma redefine_extname preadv preadv64 25050 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25051 25052 25053 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25054 #pragma redefine_extname pwritev pwritev64 25055 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25056 25057 25058 25059 25060 25061 25062 25063 /* In the LP64 compilation environment, the APIs are already large file */ 25064 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 25065 extern ssize_t preadv(int, const struct iovec *, int, off_t); 25066 extern ssize_t pwritev(int, const struct iovec *, int, off_t); 25067 25068 /* 25069 * preadv64 and pwritev64 should be defined when: 25070 * - Using the transitional compilation environment, and not 25071 * the large file compilation environment. 25072 */ 25073 25074 25075 extern ssize_t preadv64(int, const struct iovec *, int, off64_t); 25076 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t); 25077 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25078 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 25079 /* 25080 * CDDL HEADER START 25081 * 25082 * The contents of this file are subject to the terms of the 25083 * Common Development and Distribution License (the "License"). 25084 * You may not use this file except in compliance with the License. 25085 * 25086 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25087 * or http://www.opensolaris.org/os/licensing. 25088 * See the License for the specific language governing permissions 25089 * and limitations under the License. 25090 * 25091 * When distributing Covered Code, include this CDDL HEADER in each 25092 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25093 * If applicable, add the following below this CDDL HEADER, with the 25094 * fields enclosed by brackets "[]" replaced with your own identifying 25095 * information: Portions Copyright [yyyy] [name of copyright owner] 25096 * 25097 * CDDL HEADER END 25098 */ 25099 25100 /* 25101 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 25102 * Copyright 2016 Joyent, Inc. 25103 * 25104 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25105 * Use is subject to license terms. 25106 */ 25107 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25108 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 25109 /* 25110 * CDDL HEADER START 25111 * 25112 * The contents of this file are subject to the terms of the 25113 * Common Development and Distribution License (the "License"). 25114 * You may not use this file except in compliance with the License. 25115 * 25116 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25117 * or http://www.opensolaris.org/os/licensing. 25118 * See the License for the specific language governing permissions 25119 * and limitations under the License. 25120 * 25121 * When distributing Covered Code, include this CDDL HEADER in each 25122 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25123 * If applicable, add the following below this CDDL HEADER, with the 25124 * fields enclosed by brackets "[]" replaced with your own identifying 25125 * information: Portions Copyright [yyyy] [name of copyright owner] 25126 * 25127 * CDDL HEADER END 25128 */ 25129 /* 25130 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25131 * Use is subject to license terms. 25132 */ 25133 25134 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25135 /* All Rights Reserved */ 25136 25137 /* 25138 * Portions of this source code were derived from Berkeley 4.3 BSD 25139 * under license from the Regents of the University of California. 25140 */ 25141 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25142 25143 25144 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1 25145 /* 25146 * CDDL HEADER START 25147 * 25148 * The contents of this file are subject to the terms of the 25149 * Common Development and Distribution License, Version 1.0 only 25150 * (the "License"). You may not use this file except in compliance 25151 * with the License. 25152 * 25153 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25154 * or http://www.opensolaris.org/os/licensing. 25155 * See the License for the specific language governing permissions 25156 * and limitations under the License. 25157 * 25158 * When distributing Covered Code, include this CDDL HEADER in each 25159 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25160 * If applicable, add the following below this CDDL HEADER, with the 25161 * fields enclosed by brackets "[]" replaced with your own identifying 25162 * information: Portions Copyright [yyyy] [name of copyright owner] 25163 * 25164 * CDDL HEADER END 25165 */ 25166 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25167 /* All Rights Reserved */ 25168 25169 25170 /* 25171 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25172 * 25173 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 25174 * Use is subject to license terms. 25175 */ 25176 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 25177 struct netconfig { 25178 char *nc_netid; /* network identifier */ 25179 unsigned int nc_semantics; /* defined below */ 25180 unsigned int nc_flag; /* defined below */ 25181 char *nc_protofmly; /* protocol family name */ 25182 char *nc_proto; /* protocol name */ 25183 char *nc_device; /* device name for network id */ 25184 unsigned int nc_nlookups; /* # of entries in nc_lookups */ 25185 char **nc_lookups; /* list of lookup directories */ 25186 unsigned int nc_unused[8]; /* borrowed for lockd etc. */ 25187 }; 25188 25189 typedef struct { 25190 struct netconfig **nc_head; 25191 struct netconfig **nc_curr; 25192 } NCONF_HANDLE; 25193 25194 /* 25195 * Values of nc_semantics 25196 */ 25197 25198 25199 25200 25201 25202 /* 25203 * NOT FOR PUBLIC USE, Solaris internal only. 25204 * This value of nc_semantics is strictly for use of Remote Direct 25205 * Memory Access provider interfaces in Solaris only and not for 25206 * general use. Do not use this value for general purpose user or 25207 * kernel programming. If used the behavior is undefined. 25208 * This is a PRIVATE interface to be used by Solaris kRPC only. 25209 */ 25210 25211 25212 /* 25213 * Values of nc_flag 25214 */ 25215 25216 25217 25218 25219 25220 /* 25221 * Values of nc_protofmly 25222 */ 25223 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 25224 /* 25225 * NOT FOR PUBLIC USE, Solaris internal only. 25226 * This value of nc_semantics is strictly for use of Remote Direct 25227 * Memory Access provider interfaces in Solaris only and not for 25228 * general use. Do not use this value for general purpose user or 25229 * kernel programming. If used the behavior is undefined. 25230 * This is a PRIVATE interface to be used by Solaris kRPC only. 25231 */ 25232 25233 25234 /* 25235 * Values for nc_proto 25236 */ 25237 25238 25239 25240 25241 25242 25243 /* 25244 * Values for nc_proto for "rdma" protofmly 25245 */ 25246 25247 25248 25249 25250 extern void *setnetconfig(void); 25251 extern int endnetconfig(void *); 25252 extern struct netconfig *getnetconfig(void *); 25253 extern struct netconfig *getnetconfigent(const char *); 25254 extern void freenetconfigent(struct netconfig *); 25255 extern void *setnetpath(void); 25256 extern int endnetpath(void *); 25257 extern struct netconfig *getnetpath(void *); 25258 extern void nc_perror(const char *); 25259 extern char *nc_sperror(void); 25260 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25261 25262 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 25263 /* 25264 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25265 * Use is subject to license terms. 25266 * 25267 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 25268 */ 25269 /* 25270 * Copyright (c) 1982, 1986 Regents of the University of California. 25271 * All rights reserved. 25272 * 25273 * Redistribution and use in source and binary forms are permitted 25274 * provided that this notice is preserved and that due credit is given 25275 * to the University of California at Berkeley. The name of the University 25276 * may not be used to endorse or promote products derived from this 25277 * software without specific prior written permission. This software 25278 * is provided ``as is'' without express or implied warranty. 25279 */ 25280 25281 /* 25282 * Constants and structures defined by the internet system, 25283 * according to following documents 25284 * 25285 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 25286 * http://www.iana.org/assignments/protocol-numbers 25287 * http://www.iana.org/assignments/port-numbers 25288 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 25289 * 25290 */ 25291 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25292 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25293 /* 25294 * Definitions related to sockets: types, address families, options. 25295 */ 25296 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25297 /* 25298 * Types 25299 */ 25300 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25301 /* 25302 * Flags for socket() and accept4() 25303 */ 25304 25305 25306 25307 25308 /* 25309 * Option flags per-socket. 25310 */ 25311 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25312 /* 25313 * Socket options are passed using a signed integer, but it is also rare 25314 * for more than one to ever be passed at the same time with setsockopt 25315 * and only one at a time can be retrieved with getsockopt. 25316 * 25317 * Since the lower numbers cannot be renumbered for compatibility reasons, 25318 * it would seem that we need to start a new number space (0x40000000 - 25319 * 0x7fffffff) for those that don't need to be stored as a bit flag 25320 * somewhere. This limits the flag options to 30 but that seems to be 25321 * plenty, anyway. 0x40000000 is reserved for future use. 25322 */ 25323 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25324 /* 25325 * N.B.: The following definition is present only for compatibility 25326 * with release 3.0. It will disappear in later releases. 25327 */ 25328 25329 25330 /* 25331 * Additional options, not kept in so_options. 25332 */ 25333 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25334 /* "Socket"-level control message types: */ 25335 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25336 /* 25337 * Socket filter options 25338 */ 25339 25340 25341 25342 25343 25344 /* 25345 * Structure returned by FIL_LIST 25346 */ 25347 struct fil_info { 25348 int fi_flags; /* see below (FILF_*) */ 25349 int fi_pos; /* position (0 is bottom) */ 25350 char fi_name[32]; /* filter name */ 25351 }; 25352 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25353 /* 25354 * Structure used for manipulating linger option. 25355 */ 25356 struct linger { 25357 int l_onoff; /* option on/off */ 25358 int l_linger; /* linger time */ 25359 }; 25360 25361 /* 25362 * Levels for (get/set)sockopt() that don't apply to a specific protocol. 25363 */ 25364 25365 25366 25367 25368 25369 25370 25371 /* 25372 * Address families. 25373 * 25374 * Some of these constant names are copied for the DTrace IP provider in 25375 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 25376 * in sync. 25377 */ 25378 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25379 /* 25380 * Protocol families, same as address families for now. 25381 */ 25382 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25383 /* 25384 * Maximum queue length specifiable by listen. 25385 */ 25386 25387 25388 /* 25389 * Message header for recvmsg and sendmsg calls. 25390 */ 25391 struct msghdr { 25392 void *msg_name; /* optional address */ 25393 socklen_t msg_namelen; /* size of address */ 25394 struct iovec *msg_iov; /* scatter/gather array */ 25395 int msg_iovlen; /* # elements in msg_iov */ 25396 25397 25398 25399 25400 25401 25402 caddr_t msg_accrights; /* access rights sent/received */ 25403 int msg_accrightslen; 25404 25405 }; 25406 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25407 /* Added for XPGv2 compliance */ 25408 25409 25410 25411 25412 25413 /* with left over data */ 25414 /* End of XPGv2 compliance */ 25415 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25416 /* Added for XPGv2 compliance */ 25417 25418 25419 25420 25421 struct cmsghdr { 25422 socklen_t cmsg_len; /* data byte count, including hdr */ 25423 int cmsg_level; /* originating protocol */ 25424 int cmsg_type; /* protocol-specific type */ 25425 }; 25426 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25427 extern int accept(int, struct sockaddr *, Psocklen_t); 25428 extern int accept4(int, struct sockaddr *, Psocklen_t, int); 25429 extern int bind(int, const struct sockaddr *, socklen_t); 25430 extern int connect(int, const struct sockaddr *, socklen_t); 25431 extern int getpeername(int, struct sockaddr *, Psocklen_t); 25432 extern int getsockname(int, struct sockaddr *, Psocklen_t); 25433 extern int getsockopt(int, int, int, void *, Psocklen_t); 25434 extern int listen(int, int); /* XXX - fixme??? where do I go */ 25435 extern int socketpair(int, int, int, int *); 25436 extern ssize_t recv(int, void *, size_t, int); 25437 extern ssize_t recvfrom(int, void *, size_t, int, 25438 struct sockaddr *, Psocklen_t); 25439 extern ssize_t recvmsg(int, struct msghdr *, int); 25440 extern ssize_t send(int, const void *, size_t, int); 25441 extern ssize_t sendmsg(int, const struct msghdr *, int); 25442 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, 25443 socklen_t); 25444 extern int setsockopt(int, int, int, const void *, socklen_t); 25445 extern int shutdown(int, int); 25446 extern int socket(int, int, int); 25447 25448 25449 extern int sockatmark(int); 25450 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 25451 25452 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 25453 /* 25454 * CDDL HEADER START 25455 * 25456 * The contents of this file are subject to the terms of the 25457 * Common Development and Distribution License (the "License"). 25458 * You may not use this file except in compliance with the License. 25459 * 25460 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25461 * or http://www.opensolaris.org/os/licensing. 25462 * See the License for the specific language governing permissions 25463 * and limitations under the License. 25464 * 25465 * When distributing Covered Code, include this CDDL HEADER in each 25466 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25467 * If applicable, add the following below this CDDL HEADER, with the 25468 * fields enclosed by brackets "[]" replaced with your own identifying 25469 * information: Portions Copyright [yyyy] [name of copyright owner] 25470 * 25471 * CDDL HEADER END 25472 */ 25473 25474 /* 25475 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 25476 * Copyright 2016 Joyent, Inc. 25477 * 25478 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25479 * Use is subject to license terms. 25480 */ 25481 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 25482 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25483 struct hostent { 25484 char *h_name; /* official name of host */ 25485 char **h_aliases; /* alias list */ 25486 int h_addrtype; /* host address type */ 25487 int h_length; /* length of address */ 25488 char **h_addr_list; /* list of addresses from name server */ 25489 25490 }; 25491 25492 25493 /* 25494 * addrinfo introduced with IPv6 for Protocol-Independent Hostname 25495 * and Service Name Translation. 25496 */ 25497 25498 25499 struct addrinfo { 25500 int ai_flags; /* AI_PASSIVE, AI_CANONNAME, ... */ 25501 int ai_family; /* PF_xxx */ 25502 int ai_socktype; /* SOCK_xxx */ 25503 int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ 25504 25505 25506 25507 socklen_t ai_addrlen; 25508 char *ai_canonname; /* canonical name for hostname */ 25509 struct sockaddr *ai_addr; /* binary address */ 25510 struct addrinfo *ai_next; /* next structure in linked list */ 25511 }; 25512 25513 /* 25514 * The flag 0x8000 is currently reserved for private use between libnsl and 25515 * libsocket. See lib/libsocket/inet/getaddrinfo.c for more information. 25516 */ 25517 /* addrinfo flags */ 25518 25519 25520 25521 25522 25523 /* getipnodebyname() flags */ 25524 25525 25526 25527 25528 25529 /* 25530 * These were defined in RFC 2553 but not SUSv3 25531 * or RFC 3493 which obsoleted 2553. 25532 */ 25533 25534 25535 25536 /* addrinfo errors */ 25537 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25538 /* getnameinfo flags */ 25539 25540 25541 25542 25543 25544 25545 25546 /* Not listed in any standards document */ 25547 25548 25549 25550 /* getnameinfo max sizes as defined in RFC 2553 obsoleted in RFC 3493 */ 25551 25552 25553 25554 25555 25556 /* 25557 * Scope delimit character 25558 */ 25559 25560 25561 25562 /* 25563 * Algorithm entry for /etc/inet/ipsecalgs which defines IPsec protocols 25564 * and algorithms. 25565 */ 25566 25567 typedef struct ipsecalgent { 25568 char **a_names; /* algorithm names */ 25569 int a_proto_num; /* protocol number */ 25570 int a_alg_num; /* algorithm number */ 25571 char *a_mech_name; /* encryption framework mechanism name */ 25572 int *a_block_sizes; /* supported block sizes */ 25573 int *a_key_sizes; /* supported key sizes */ 25574 int a_key_increment; /* key size increment */ 25575 int *a_mech_params; /* mechanism specific parameters */ 25576 int a_alg_flags; /* algorithm flags */ 25577 } ipsecalgent_t; 25578 25579 /* well-known IPsec protocol numbers */ 25580 25581 25582 25583 25584 25585 /* 25586 * Assumption here is that a network number 25587 * fits in 32 bits -- probably a poor one. 25588 */ 25589 struct netent { 25590 char *n_name; /* official name of net */ 25591 char **n_aliases; /* alias list */ 25592 int n_addrtype; /* net address type */ 25593 in_addr_t n_net; /* network # */ 25594 }; 25595 25596 struct protoent { 25597 char *p_name; /* official protocol name */ 25598 char **p_aliases; /* alias list */ 25599 int p_proto; /* protocol # */ 25600 }; 25601 25602 struct servent { 25603 char *s_name; /* official service name */ 25604 char **s_aliases; /* alias list */ 25605 int s_port; /* port # */ 25606 char *s_proto; /* protocol to use */ 25607 }; 25608 25609 25610 struct hostent *gethostbyname_r 25611 (const char *, struct hostent *, char *, int, int *h_errnop); 25612 struct hostent *gethostbyaddr_r 25613 (const char *, int, int, struct hostent *, char *, int, int *h_errnop); 25614 struct hostent *getipnodebyname(const char *, int, int, int *); 25615 struct hostent *getipnodebyaddr(const void *, size_t, int, int *); 25616 void freehostent(struct hostent *); 25617 struct hostent *gethostent_r(struct hostent *, char *, int, int *h_errnop); 25618 25619 struct servent *getservbyname_r 25620 (const char *name, const char *, struct servent *, char *, int); 25621 struct servent *getservbyport_r 25622 (int port, const char *, struct servent *, char *, int); 25623 struct servent *getservent_r(struct servent *, char *, int); 25624 25625 struct netent *getnetbyname_r 25626 (const char *, struct netent *, char *, int); 25627 struct netent *getnetbyaddr_r(long, int, struct netent *, char *, int); 25628 struct netent *getnetent_r(struct netent *, char *, int); 25629 25630 struct protoent *getprotobyname_r 25631 (const char *, struct protoent *, char *, int); 25632 struct protoent *getprotobynumber_r 25633 (int, struct protoent *, char *, int); 25634 struct protoent *getprotoent_r(struct protoent *, char *, int); 25635 25636 int getnetgrent_r(char **, char **, char **, char *, int); 25637 int innetgr(const char *, const char *, const char *, const char *); 25638 25639 25640 /* Old interfaces that return a pointer to a static area; MT-unsafe */ 25641 struct hostent *gethostbyname(const char *); 25642 struct hostent *gethostent(void); 25643 struct netent *getnetbyaddr(in_addr_t, int); 25644 struct netent *getnetbyname(const char *); 25645 struct netent *getnetent(void); 25646 struct protoent *getprotobyname(const char *); 25647 struct protoent *getprotobynumber(int); 25648 struct protoent *getprotoent(void); 25649 struct servent *getservbyname(const char *, const char *); 25650 struct servent *getservbyport(int, const char *); 25651 struct servent *getservent(void); 25652 25653 /* gethostbyaddr() second argument is a size_t only in unix95/unix98 */ 25654 25655 struct hostent *gethostbyaddr(const void *, socklen_t, int); 25656 25657 25658 25659 25660 25661 int endhostent(void); 25662 int endnetent(void); 25663 int endprotoent(void); 25664 int endservent(void); 25665 int sethostent(int); 25666 int setnetent(int); 25667 int setprotoent(int); 25668 int setservent(int); 25669 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25670 int getaddrinfo(const char *, 25671 const char *, 25672 const struct addrinfo *, 25673 struct addrinfo **); 25674 void freeaddrinfo(struct addrinfo *); 25675 const char *gai_strerror(int); 25676 int getnameinfo(const struct sockaddr *, 25677 socklen_t, char *, socklen_t, 25678 char *, socklen_t, int); 25679 25680 25681 25682 int getnetgrent(char **, char **, char **); 25683 int setnetgrent(const char *); 25684 int endnetgrent(void); 25685 int rcmd(char **, unsigned short, 25686 const char *, const char *, const char *, int *); 25687 int rcmd_af(char **, unsigned short, 25688 const char *, const char *, const char *, int *, int); 25689 int rresvport_af(int *, int); 25690 int rresvport_addr(int *, struct sockaddr_storage *); 25691 int rexec(char **, unsigned short, 25692 const char *, const char *, const char *, int *); 25693 int rexec_af(char **, unsigned short, 25694 const char *, const char *, const char *, int *, int); 25695 int rresvport(int *); 25696 int ruserok(const char *, int, const char *, const char *); 25697 /* BIND */ 25698 struct hostent *gethostbyname2(const char *, int); 25699 void herror(const char *); 25700 const char *hstrerror(int); 25701 /* End BIND */ 25702 25703 /* IPsec algorithm prototype definitions */ 25704 struct ipsecalgent *getipsecalgbyname(const char *, int, int *); 25705 struct ipsecalgent *getipsecalgbynum(int, int, int *); 25706 int getipsecprotobyname(const char *doi_name); 25707 char *getipsecprotobynum(int doi_domain); 25708 void freeipsecalgent(struct ipsecalgent *ptr); 25709 /* END IPsec algorithm prototype definitions */ 25710 25711 25712 25713 /* 25714 * Error return codes from gethostbyname() and gethostbyaddr() 25715 * (when using the resolver) 25716 */ 25717 25718 extern int h_errno; 25719 # 377 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25720 /* 25721 * Error return codes from gethostbyname() and gethostbyaddr() 25722 * (left in extern int h_errno). 25723 */ 25724 # 389 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25725 /* BIND */ 25726 25727 25728 /* End BIND */ 25729 # 46 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 25730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 1 25731 /* 25732 * CDDL HEADER START 25733 * 25734 * The contents of this file are subject to the terms of the 25735 * Common Development and Distribution License, Version 1.0 only 25736 * (the "License"). You may not use this file except in compliance 25737 * with the License. 25738 * 25739 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25740 * or http://www.opensolaris.org/os/licensing. 25741 * See the License for the specific language governing permissions 25742 * and limitations under the License. 25743 * 25744 * When distributing Covered Code, include this CDDL HEADER in each 25745 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25746 * If applicable, add the following below this CDDL HEADER, with the 25747 * fields enclosed by brackets "[]" replaced with your own identifying 25748 * information: Portions Copyright [yyyy] [name of copyright owner] 25749 * 25750 * CDDL HEADER END 25751 */ 25752 /* 25753 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25754 * Use is subject to license terms. 25755 */ 25756 25757 25758 25759 25760 #pragma ident "%Z%%M% %I% %E% SMI" 25761 25762 25763 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 25764 /* 25765 * CDDL HEADER START 25766 * 25767 * The contents of this file are subject to the terms of the 25768 * Common Development and Distribution License (the "License"). 25769 * You may not use this file except in compliance with the License. 25770 * 25771 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25772 * or http://www.opensolaris.org/os/licensing. 25773 * See the License for the specific language governing permissions 25774 * and limitations under the License. 25775 * 25776 * When distributing Covered Code, include this CDDL HEADER in each 25777 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25778 * If applicable, add the following below this CDDL HEADER, with the 25779 * fields enclosed by brackets "[]" replaced with your own identifying 25780 * information: Portions Copyright [yyyy] [name of copyright owner] 25781 * 25782 * CDDL HEADER END 25783 */ 25784 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25785 /* All Rights Reserved */ 25786 25787 25788 /* 25789 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25790 * Use is subject to license terms. 25791 * 25792 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 25793 * Copyright 2016 Joyent, Inc. 25794 */ 25795 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25796 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1 25797 /* 25798 * CDDL HEADER START 25799 * 25800 * The contents of this file are subject to the terms of the 25801 * Common Development and Distribution License, Version 1.0 only 25802 * (the "License"). You may not use this file except in compliance 25803 * with the License. 25804 * 25805 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25806 * or http://www.opensolaris.org/os/licensing. 25807 * See the License for the specific language governing permissions 25808 * and limitations under the License. 25809 * 25810 * When distributing Covered Code, include this CDDL HEADER in each 25811 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25812 * If applicable, add the following below this CDDL HEADER, with the 25813 * fields enclosed by brackets "[]" replaced with your own identifying 25814 * information: Portions Copyright [yyyy] [name of copyright owner] 25815 * 25816 * CDDL HEADER END 25817 */ 25818 /* 25819 * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 25820 * Use is subject to license terms. 25821 */ 25822 25823 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25824 /* All Rights Reserved */ 25825 25826 /* 25827 * University Copyright- Copyright (c) 1982, 1986, 1988 25828 * The Regents of the University of California 25829 * All Rights Reserved 25830 * 25831 * University Acknowledgment- Portions of this document are derived from 25832 * software developed by the University of California, Berkeley, and its 25833 * contributors. 25834 */ 25835 25836 25837 25838 25839 #pragma ident "%Z%%M% %I% %E% SMI" 25840 25841 25842 25843 25844 25845 /* 25846 * Error codes 25847 */ 25848 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25849 /* Filesystem Quotas */ 25850 25851 25852 /* Convergent Error Returns */ 25853 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25854 /* Interprocess Robust Locks */ 25855 25856 25857 25858 /* stream problems */ 25859 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25860 /* Interprocess Robust Locks */ 25861 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25862 /* shared library problems */ 25863 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25864 /* BSD Networking Software */ 25865 /* argument errors */ 25866 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25867 /* protocol family */ 25868 25869 25870 /* operational errors */ 25871 25872 25873 25874 /* of reset */ 25875 25876 25877 25878 25879 25880 /* XENIX has 135 - 142 */ 25881 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25882 /* SUN Network File System */ 25883 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.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, Version 1.0 only 25890 * (the "License"). You may not use this file except in compliance 25891 * with the License. 25892 * 25893 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25894 * or http://www.opensolaris.org/os/licensing. 25895 * See the License for the specific language governing permissions 25896 * and limitations under the License. 25897 * 25898 * When distributing Covered Code, include this CDDL HEADER in each 25899 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25900 * If applicable, add the following below this CDDL HEADER, with the 25901 * fields enclosed by brackets "[]" replaced with your own identifying 25902 * information: Portions Copyright [yyyy] [name of copyright owner] 25903 * 25904 * CDDL HEADER END 25905 */ 25906 /* 25907 * Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved. 25908 * Use is subject to license terms. 25909 */ 25910 25911 25912 25913 25914 #pragma ident "%Z%%M% %I% %E% SMI" 25915 25916 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 25917 /* 25918 * CDDL HEADER START 25919 * 25920 * The contents of this file are subject to the terms of the 25921 * Common Development and Distribution License (the "License"). 25922 * You may not use this file except in compliance with the License. 25923 * 25924 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25925 * or http://www.opensolaris.org/os/licensing. 25926 * See the License for the specific language governing permissions 25927 * and limitations under the License. 25928 * 25929 * When distributing Covered Code, include this CDDL HEADER in each 25930 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25931 * If applicable, add the following below this CDDL HEADER, with the 25932 * fields enclosed by brackets "[]" replaced with your own identifying 25933 * information: Portions Copyright [yyyy] [name of copyright owner] 25934 * 25935 * CDDL HEADER END 25936 */ 25937 25938 /* 25939 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 25940 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 25941 */ 25942 25943 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25944 /* All Rights Reserved */ 25945 25946 /* 25947 * University Copyright- Copyright (c) 1982, 1986, 1988 25948 * The Regents of the University of California 25949 * All Rights Reserved 25950 * 25951 * University Acknowledgment- Portions of this document are derived from 25952 * software developed by the University of California, Berkeley, and its 25953 * contributors. 25954 */ 25955 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 2 25956 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 25957 typedef struct { 25958 char hostname[256]; 25959 ushort_t port; 25960 } url_hport_t; 25961 25962 typedef struct { 25963 boolean_t https; 25964 url_hport_t hport; 25965 char abspath[1024]; 25966 } url_t; 25967 25968 extern int url_parse_hostport(const char *, url_hport_t *, ushort_t); 25969 extern int url_parse(const char *, url_t *); 25970 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25971 25972 25973 25974 25975 25976 /* State information returned by http_conn_info() */ 25977 typedef struct { 25978 url_t uri; /* URI last loaded */ 25979 url_hport_t proxy; /* proxy, if any being used */ 25980 boolean_t keepalive; /* Keepalive setting being used */ 25981 uint_t read_timeout; /* Timeout to use for socket reads */ 25982 } http_conninfo_t; 25983 25984 25985 /* Structure for version of the http file */ 25986 typedef struct { 25987 uint_t maj_ver; /* Major version */ 25988 uint_t min_ver; /* Minor version */ 25989 uint_t micro_ver; /* Micro version */ 25990 } boot_http_ver_t; 25991 25992 /* Internal Libhttp errors */ 25993 25994 25995 25996 /* necessarily the underlying transport */ 25997 /* connection). */ 25998 25999 /* error. */ 26000 26001 26002 26003 /* No matching entry */ 26004 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 26005 /* Sources of errors */ 26006 26007 26008 26009 26010 26011 26012 26013 typedef struct { 26014 uint_t code; /* status code */ 26015 char *statusmsg; /* status message */ 26016 uint_t nresphdrs; /* number of response headers */ 26017 } http_respinfo_t; 26018 26019 26020 typedef void *http_handle_t; 26021 26022 boot_http_ver_t const *http_get_version(void); 26023 void http_set_p12_format(int); 26024 void http_set_verbose(boolean_t); 26025 int http_set_cipher_list(const char *); 26026 http_handle_t http_srv_init(const url_t *); 26027 int http_set_proxy(http_handle_t, const url_hport_t *); 26028 int http_set_keepalive(http_handle_t, boolean_t); 26029 int http_set_socket_read_timeout(http_handle_t, uint_t); 26030 int http_set_basic_auth(http_handle_t, const char *, const char *); 26031 int http_set_random_file(http_handle_t, const char *); 26032 int http_set_certificate_authority_file(const char *); 26033 int http_set_client_certificate_file(http_handle_t, const char *); 26034 int http_set_password(http_handle_t, const char *); 26035 int http_set_key_file_password(http_handle_t, const char *); 26036 int http_set_private_key_file(http_handle_t, const char *); 26037 26038 int http_srv_connect(http_handle_t); 26039 int http_head_request(http_handle_t, const char *); 26040 int http_get_request(http_handle_t, const char *); 26041 int http_get_range_request(http_handle_t, const char *, offset_t, offset_t); 26042 void http_free_respinfo(http_respinfo_t *); 26043 int http_process_headers(http_handle_t, http_respinfo_t **); 26044 int http_process_part_headers(http_handle_t, http_respinfo_t **); 26045 char *http_get_header_value(http_handle_t, const char *); 26046 char *http_get_response_header(http_handle_t, uint_t); 26047 int http_read_body(http_handle_t, char *, size_t); 26048 int http_srv_disconnect(http_handle_t); 26049 int http_srv_close(http_handle_t); 26050 http_conninfo_t *http_get_conn_info(http_handle_t); 26051 int http_conn_is_https(http_handle_t, boolean_t *); 26052 ulong_t http_get_lasterr(http_handle_t, uint_t *); 26053 void http_decode_err(ulong_t, int *, int *, int *); 26054 char const *http_errorstr(uint_t, ulong_t); 26055 # 47 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26056 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 26057 /* 26058 * CDDL HEADER START 26059 * 26060 * The contents of this file are subject to the terms of the 26061 * Common Development and Distribution License (the "License"). 26062 * You may not use this file except in compliance with the License. 26063 * 26064 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26065 * or http://www.opensolaris.org/os/licensing. 26066 * See the License for the specific language governing permissions 26067 * and limitations under the License. 26068 * 26069 * When distributing Covered Code, include this CDDL HEADER in each 26070 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26071 * If applicable, add the following below this CDDL HEADER, with the 26072 * fields enclosed by brackets "[]" replaced with your own identifying 26073 * information: Portions Copyright [yyyy] [name of copyright owner] 26074 * 26075 * CDDL HEADER END 26076 */ 26077 26078 /* 26079 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 26080 * Use is subject to license terms. 26081 */ 26082 26083 26084 26085 26086 26087 /* 26088 * Module: pkgerr.h 26089 * Description: 26090 * 26091 * Implements error routines to handle the creation, 26092 * management, and destruction of error objects, which 26093 * hold error messages and codes returned from libpkg 26094 * routines that support the objects defined herein. 26095 */ 26096 26097 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 26098 /* 26099 * CDDL HEADER START 26100 * 26101 * The contents of this file are subject to the terms of the 26102 * Common Development and Distribution License (the "License"). 26103 * You may not use this file except in compliance with the License. 26104 * 26105 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26106 * or http://www.opensolaris.org/os/licensing. 26107 * See the License for the specific language governing permissions 26108 * and limitations under the License. 26109 * 26110 * When distributing Covered Code, include this CDDL HEADER in each 26111 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26112 * If applicable, add the following below this CDDL HEADER, with the 26113 * fields enclosed by brackets "[]" replaced with your own identifying 26114 * information: Portions Copyright [yyyy] [name of copyright owner] 26115 * 26116 * CDDL HEADER END 26117 */ 26118 26119 /* 26120 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 26121 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 26122 */ 26123 26124 /* Copyright (c) 1988 AT&T */ 26125 /* All Rights Reserved */ 26126 26127 /* 26128 * User-visible pieces of the ANSI C standard I/O package. 26129 */ 26130 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 2 26131 26132 26133 26134 26135 26136 /* 26137 * Public Definitions 26138 */ 26139 26140 typedef enum { 26141 PKGERR_OK = 0, 26142 PKGERR_EXIST, 26143 PKGERR_READ, 26144 PKGERR_CORRUPT, 26145 PKGERR_PARSE, 26146 PKGERR_BADPASS, 26147 PKGERR_BADALIAS, 26148 PKGERR_INTERNAL, 26149 PKGERR_UNSUP, 26150 PKGERR_NOALIAS, 26151 PKGERR_NOALIASMATCH, 26152 PKGERR_MULTIPLE, 26153 PKGERR_INCOMPLETE, 26154 PKGERR_NOPRIVKEY, 26155 PKGERR_NOPUBKEY, 26156 PKGERR_NOCACERT, 26157 PKGERR_NOMEM, 26158 PKGERR_CHAIN, 26159 PKGERR_LOCKED, 26160 PKGERR_WRITE, 26161 PKGERR_UNLOCK, 26162 PKGERR_TIME, 26163 PKGERR_DUPLICATE, 26164 PKGERR_WEB, 26165 PKGERR_VERIFY 26166 } PKG_ERR_CODE; 26167 26168 /* 26169 * Public Structures 26170 */ 26171 26172 /* external reference to PKG_ERR object (contents private) */ 26173 typedef PKG_ERR_CODE pkg_err_t; 26174 26175 typedef struct _pkg_err_struct PKG_ERR; 26176 26177 /* 26178 * Public Methods 26179 */ 26180 26181 PKG_ERR *pkgerr_new(); 26182 void pkgerr_add(PKG_ERR *, PKG_ERR_CODE, char *, ...); 26183 void pkgerr_clear(PKG_ERR *); 26184 int pkgerr_dump(PKG_ERR *, FILE *); 26185 int pkgerr_num(PKG_ERR *); 26186 char *pkgerr_get(PKG_ERR *, int); 26187 void pkgerr_free(PKG_ERR *); 26188 # 48 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26189 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 1 26190 /* 26191 * CDDL HEADER START 26192 * 26193 * The contents of this file are subject to the terms of the 26194 * Common Development and Distribution License (the "License"). 26195 * You may not use this file except in compliance with the License. 26196 * 26197 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26198 * or http://www.opensolaris.org/os/licensing. 26199 * See the License for the specific language governing permissions 26200 * and limitations under the License. 26201 * 26202 * When distributing Covered Code, include this CDDL HEADER in each 26203 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26204 * If applicable, add the following below this CDDL HEADER, with the 26205 * fields enclosed by brackets "[]" replaced with your own identifying 26206 * information: Portions Copyright [yyyy] [name of copyright owner] 26207 * 26208 * CDDL HEADER END 26209 */ 26210 26211 /* 26212 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 26213 * Use is subject to license terms. 26214 */ 26215 26216 26217 26218 26219 26220 /* 26221 * Module: keystore.h 26222 * Description: This module contains the structure definitions for processing 26223 * package keystore files. 26224 */ 26225 26226 26227 26228 26229 26230 # 1 "/usr/include/openssl/evp.h" 1 3 4 26231 /* crypto/evp/evp.h */ 26232 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 26233 * All rights reserved. 26234 * 26235 * This package is an SSL implementation written 26236 * by Eric Young (eay@cryptsoft.com). 26237 * The implementation was written so as to conform with Netscapes SSL. 26238 * 26239 * This library is free for commercial and non-commercial use as long as 26240 * the following conditions are aheared to. The following conditions 26241 * apply to all code found in this distribution, be it the RC4, RSA, 26242 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 26243 * included with this distribution is covered by the same copyright terms 26244 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 26245 * 26246 * Copyright remains Eric Young's, and as such any Copyright notices in 26247 * the code are not to be removed. 26248 * If this package is used in a product, Eric Young should be given attribution 26249 * as the author of the parts of the library used. 26250 * This can be in the form of a textual message at program startup or 26251 * in documentation (online or textual) provided with the package. 26252 * 26253 * Redistribution and use in source and binary forms, with or without 26254 * modification, are permitted provided that the following conditions 26255 * are met: 26256 * 1. Redistributions of source code must retain the copyright 26257 * notice, this list of conditions and the following disclaimer. 26258 * 2. Redistributions in binary form must reproduce the above copyright 26259 * notice, this list of conditions and the following disclaimer in the 26260 * documentation and/or other materials provided with the distribution. 26261 * 3. All advertising materials mentioning features or use of this software 26262 * must display the following acknowledgement: 26263 * "This product includes cryptographic software written by 26264 * Eric Young (eay@cryptsoft.com)" 26265 * The word 'cryptographic' can be left out if the rouines from the library 26266 * being used are not cryptographic related :-). 26267 * 4. If you include any Windows specific code (or a derivative thereof) from 26268 * the apps directory (application code) you must include an acknowledgement: 26269 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 26270 * 26271 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 26272 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26273 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26274 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 26275 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26276 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26277 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26278 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26279 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26280 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26281 * SUCH DAMAGE. 26282 * 26283 * The licence and distribution terms for any publically available version or 26284 * derivative of this code cannot be changed. i.e. this code cannot simply be 26285 * copied and put under another distribution licence 26286 * [including the GNU Public Licence.] 26287 */ 26288 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26289 # 1 "/usr/include/openssl/x509.h" 1 3 4 26290 /* crypto/x509/x509.h */ 26291 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 26292 * All rights reserved. 26293 * 26294 * This package is an SSL implementation written 26295 * by Eric Young (eay@cryptsoft.com). 26296 * The implementation was written so as to conform with Netscapes SSL. 26297 * 26298 * This library is free for commercial and non-commercial use as long as 26299 * the following conditions are aheared to. The following conditions 26300 * apply to all code found in this distribution, be it the RC4, RSA, 26301 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 26302 * included with this distribution is covered by the same copyright terms 26303 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 26304 * 26305 * Copyright remains Eric Young's, and as such any Copyright notices in 26306 * the code are not to be removed. 26307 * If this package is used in a product, Eric Young should be given attribution 26308 * as the author of the parts of the library used. 26309 * This can be in the form of a textual message at program startup or 26310 * in documentation (online or textual) provided with the package. 26311 * 26312 * Redistribution and use in source and binary forms, with or without 26313 * modification, are permitted provided that the following conditions 26314 * are met: 26315 * 1. Redistributions of source code must retain the copyright 26316 * notice, this list of conditions and the following disclaimer. 26317 * 2. Redistributions in binary form must reproduce the above copyright 26318 * notice, this list of conditions and the following disclaimer in the 26319 * documentation and/or other materials provided with the distribution. 26320 * 3. All advertising materials mentioning features or use of this software 26321 * must display the following acknowledgement: 26322 * "This product includes cryptographic software written by 26323 * Eric Young (eay@cryptsoft.com)" 26324 * The word 'cryptographic' can be left out if the rouines from the library 26325 * being used are not cryptographic related :-). 26326 * 4. If you include any Windows specific code (or a derivative thereof) from 26327 * the apps directory (application code) you must include an acknowledgement: 26328 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 26329 * 26330 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 26331 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26332 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26333 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 26334 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26335 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26336 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26337 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26338 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26339 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26340 * SUCH DAMAGE. 26341 * 26342 * The licence and distribution terms for any publically available version or 26343 * derivative of this code cannot be changed. i.e. this code cannot simply be 26344 * copied and put under another distribution licence 26345 * [including the GNU Public Licence.] 26346 */ 26347 /* ==================================================================== 26348 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 26349 * ECDH support in OpenSSL originally developed by 26350 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 26351 */ 26352 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26353 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 26354 /* 26355 * CDDL HEADER START 26356 * 26357 * The contents of this file are subject to the terms of the 26358 * Common Development and Distribution License (the "License"). 26359 * You may not use this file except in compliance with the License. 26360 * 26361 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26362 * or http://www.opensolaris.org/os/licensing. 26363 * See the License for the specific language governing permissions 26364 * and limitations under the License. 26365 * 26366 * When distributing Covered Code, include this CDDL HEADER in each 26367 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26368 * If applicable, add the following below this CDDL HEADER, with the 26369 * fields enclosed by brackets "[]" replaced with your own identifying 26370 * information: Portions Copyright [yyyy] [name of copyright owner] 26371 * 26372 * CDDL HEADER END 26373 */ 26374 26375 /* 26376 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 26377 * Use is subject to license terms. 26378 */ 26379 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26380 26381 /* keystore structures */ 26382 26383 /* this opaque type represents a keystore */ 26384 typedef void *keystore_handle_t; 26385 26386 /* flags passed to open_keystore */ 26387 26388 /* opens keystore read-only. Attempts to modify results in an error */ 26389 26390 26391 /* opens keystore read-write */ 26392 26393 26394 /* 26395 * tells open_keystore to fall back to app-generic paths in the case that 26396 * the app-specific paths do not exist. 26397 */ 26398 26399 26400 /* 26401 * tells open_keystore to use the app-specific paths no matter what, 26402 * failing if they cannot be used for any reason. 26403 */ 26404 26405 26406 /* masks off various types of flags */ 26407 26408 26409 26410 /* default is read-only, soft */ 26411 26412 26413 26414 /* 26415 * possible encoding formats used by the library, used 26416 * by print_cert 26417 */ 26418 typedef enum { 26419 KEYSTORE_FORMAT_PEM, 26420 KEYSTORE_FORMAT_DER, 26421 KEYSTORE_FORMAT_TEXT 26422 } keystore_encoding_format_t; 26423 26424 /* 26425 * structure passed back to password callback for determining how 26426 * to prompt for passphrase, and where to record errors 26427 */ 26428 typedef struct { 26429 PKG_ERR *err; 26430 } keystore_passphrase_data; 26431 26432 26433 /* max length of a passphrase. One could use a short story! */ 26434 26435 26436 /* callback for collecting passphrase when open_keystore() is called */ 26437 typedef int keystore_passphrase_cb(char *, int, int, void *); 26438 26439 /* names of the individual files within the keystore path */ 26440 26441 26442 26443 26444 /* keystore.c */ 26445 extern int open_keystore(PKG_ERR *, char *, char *, 26446 keystore_passphrase_cb, long flags, keystore_handle_t *); 26447 26448 extern int print_certs(PKG_ERR *, keystore_handle_t, char *, 26449 keystore_encoding_format_t, FILE *); 26450 26451 extern int check_cert(PKG_ERR *, X509 *); 26452 26453 extern int check_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *); 26454 26455 extern int print_cert(PKG_ERR *, X509 *, 26456 keystore_encoding_format_t, char *, boolean_t, FILE *); 26457 26458 extern int close_keystore(PKG_ERR *, keystore_handle_t, 26459 keystore_passphrase_cb); 26460 26461 extern int merge_ca_cert(PKG_ERR *, X509 *, keystore_handle_t); 26462 extern int merge_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *, 26463 char *, keystore_handle_t); 26464 26465 extern int delete_cert_and_keys(PKG_ERR *, keystore_handle_t, 26466 char *); 26467 26468 extern int find_key_cert_pair(PKG_ERR *, keystore_handle_t, 26469 char *, EVP_PKEY **, X509 **); 26470 26471 extern int find_ca_certs(PKG_ERR *, keystore_handle_t, 26472 struct stack_st_X509 **); 26473 26474 extern int find_cl_certs(PKG_ERR *, keystore_handle_t, 26475 struct stack_st_X509 **); 26476 # 49 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26477 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1 26478 /* 26479 * CDDL HEADER START 26480 * 26481 * The contents of this file are subject to the terms of the 26482 * Common Development and Distribution License (the "License"). 26483 * You may not use this file except in compliance with the License. 26484 * 26485 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26486 * or http://www.opensolaris.org/os/licensing. 26487 * See the License for the specific language governing permissions 26488 * and limitations under the License. 26489 * 26490 * When distributing Covered Code, include this CDDL HEADER in each 26491 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26492 * If applicable, add the following below this CDDL HEADER, with the 26493 * fields enclosed by brackets "[]" replaced with your own identifying 26494 * information: Portions Copyright [yyyy] [name of copyright owner] 26495 * 26496 * CDDL HEADER END 26497 */ 26498 26499 /* 26500 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26501 * Use is subject to license terms. 26502 */ 26503 # 35 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 26504 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 26505 /* 26506 * CDDL HEADER START 26507 * 26508 * The contents of this file are subject to the terms of the 26509 * Common Development and Distribution License (the "License"). 26510 * You may not use this file except in compliance with the License. 26511 * 26512 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26513 * or http://www.opensolaris.org/os/licensing. 26514 * See the License for the specific language governing permissions 26515 * and limitations under the License. 26516 * 26517 * When distributing Covered Code, include this CDDL HEADER in each 26518 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26519 * If applicable, add the following below this CDDL HEADER, with the 26520 * fields enclosed by brackets "[]" replaced with your own identifying 26521 * information: Portions Copyright [yyyy] [name of copyright owner] 26522 * 26523 * CDDL HEADER END 26524 */ 26525 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 26526 /* All Rights Reserved */ 26527 26528 /* 26529 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 26530 * Use is subject to license terms. 26531 */ 26532 # 36 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 2 26533 26534 struct mergstat { 26535 unsigned setuid:1; /* pkgmap entry has setuid */ 26536 unsigned setgid:1; /* ... and/or setgid bit set */ 26537 unsigned contchg:1; /* contents of the files different */ 26538 unsigned attrchg:1; /* attributes are different */ 26539 unsigned shared:1; /* > 1 pkg associated with this */ 26540 unsigned osetuid:1; /* installed set[ug]id process ... */ 26541 unsigned osetgid:1; /* ... being overwritten by pkg. */ 26542 unsigned rogue:1; /* conflicting file not owned by a package */ 26543 unsigned dir2nondir:1; /* was a directory & now a non-directory */ 26544 unsigned replace:1; /* merge makes no sense for this object pair */ 26545 unsigned denied:1; /* for some reason this was not allowed in */ 26546 unsigned preloaded:1; /* already checked in a prior pkg op */ 26547 unsigned processed:1; /* already installed or removed */ 26548 unsigned parentsyml2dir:1; 26549 /* parent directory changed from symlink to a directory */ 26550 }; 26551 26552 /* 26553 * This is information required by pkgadd for fast operation. A 26554 * cfextra struct is tagged to each cfent structure requiring 26555 * processing. This is how we avoid some unneeded repetition. The 26556 * entries incorporating the word 'local' refer to the path that 26557 * gets us to the delivered package file. In other words, to install 26558 * a file we usually copy from 'local' to 'path' below. In the case 26559 * of a link, where no actual copying takes place, local is the source 26560 * of the link. Note that environment variables are not evaluated in 26561 * the locals unless they are links since the literal path is how 26562 * pkgadd finds the entry under the reloc directory. 26563 */ 26564 struct cfextra { 26565 struct cfent cf_ent; /* basic contents file entry */ 26566 struct mergstat mstat; /* merge status for installs */ 26567 uint32_t fsys_value; /* fstab[] entry index */ 26568 uint32_t fsys_base; /* actual base filesystem in fs_tab[] */ 26569 char *client_path; /* the client-relative path */ 26570 char *server_path; /* the server-relative path */ 26571 char *map_path; /* as read from the pkgmap */ 26572 char *client_local; /* client_relative local */ 26573 char *server_local; /* server relative local */ 26574 }; 26575 # 50 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26576 26577 /* 26578 * The contents database file interface. 26579 */ 26580 26581 typedef struct pkg_server *PKGserver; 26582 26583 /* Some commands modify the internal database: add them here */ 26584 # 82 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26585 typedef enum { 26586 INVALID, /* Not initialized */ 26587 NEVER, /* Don't start, does check if it is running. */ 26588 FLUSH_LOG, /* Run it once to incorporate the log. */ 26589 RUN_ONCE, /* Run until the current client stops. */ 26590 TIMEOUT, /* Run until a timeout occurs. */ 26591 PERMANENT, /* Run until it is externally terminated. */ 26592 DEFAULTMODE = TIMEOUT /* The default mode, must come last */ 26593 } start_mode_t; 26594 26595 typedef struct pkgcmd { 26596 int cmd; 26597 char buf[1]; 26598 } pkgcmd_t; 26599 26600 typedef struct pkgfilter { 26601 int cmd; 26602 int len; 26603 char buf[1]; 26604 } pkgfilter_t; 26605 26606 /* 26607 * Virtual File Protocol definitions 26608 */ 26609 26610 /* 26611 * flags associated with virtual file protocol operations; note that these flags 26612 * may only occupy the low order 16 bits of the 32-bit unsigned flag. 26613 */ 26614 26615 typedef unsigned long VFPFLAGS_T; 26616 # 121 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26617 /* virtual file protocol object */ 26618 26619 typedef struct _vfp VFP_T; 26620 26621 /* structure behind the virtual file protocol object */ 26622 26623 struct _vfp { 26624 FILE *_vfpFile; /* -> opened FILE */ 26625 char *_vfpCurr; /* -> current byte to read/write */ 26626 char *_vfpHighWater; /* -> last byte modified */ 26627 char *_vfpEnd; /* -> last data byte */ 26628 char *_vfpPath; /* -> path associated with FILE */ 26629 char *_vfpStart; /* -> first data byte */ 26630 void *_vfpExtra; /* undefined */ 26631 size_t _vfpSize; /* size of mapped/allocated area */ 26632 size_t _vfpMapSize; /* # mapped bytes */ 26633 VFPFLAGS_T _vfpFlags; /* flags associated with vfp/data */ 26634 int _vfpOverflow; /* non-zero if buffer write overflow */ 26635 blkcnt_t _vfpCkStBlocks; /* checkpoint # blocks */ 26636 dev_t _vfpCkDev; /* checkpoint device i.d. */ 26637 ino_t _vfpCkIno; /* checkpoint inode # */ 26638 off_t _vfpCkSize; /* checkpoint size */ 26639 time_t _vfpCkMtime; /* checkpoint modification time */ 26640 }; 26641 26642 /* 26643 * get highest modified byte (length) contained in vfp 26644 * 26645 * determine number of bytes to write - it will be the highest of: 26646 * -- the current pointer into the file - this is updated whenever 26647 * the location of the file is changed by a single byte 26648 * -- the last "high water mark" - the last known location that 26649 * was written to the file - updated only when the location 26650 * of the file is directly changed - e.g. vfpSetCurrCharPtr, 26651 * vfpTruncate, vfpRewind. 26652 * this reduces the "bookkeeping" that needs to be done to know 26653 * how many bytes to write out to the file - typically a file is 26654 * written sequentially so the current file pointer is sufficient 26655 * to determine how many bytes to write out. 26656 */ 26657 # 169 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26658 /* 26659 * increment current pointer by specified delta 26660 * if the delta exceeds the buffer size, set pointer to buffer end 26661 */ 26662 # 185 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26663 /* get the path associated with the vfp */ 26664 26665 26666 /* get a string from the vfp into a fixed size buffer */ 26667 # 207 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26668 /* get number of bytes remaining to read */ 26669 26670 26671 26672 26673 /* get number of bytes remaining to write */ 26674 26675 26676 26677 26678 /* put current character and increment to next */ 26679 26680 26681 26682 26683 26684 26685 /* put integer to current character and increment */ 26686 26687 26688 /* put long to current character and increment */ 26689 26690 26691 /* get current character and increment to next */ 26692 26693 26694 /* get current character - do not increment */ 26695 26696 26697 /* get pointer to current character */ 26698 26699 26700 /* increment current character pointer */ 26701 26702 26703 /* decrement current character pointer */ 26704 26705 26706 /* get pointer to first data byte in buffer */ 26707 26708 26709 /* get pointer to last data byte in buffer */ 26710 26711 26712 /* set pointer to current character */ 26713 26714 26715 26716 26717 26718 26719 /* set pointer to last data byte in buffer */ 26720 # 267 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26721 /* seek to end of file - one past last data byte in file */ 26722 26723 26724 /* get number of bytes between current char and specified char */ 26725 26726 26727 26728 /* put string to current character and increment */ 26729 # 284 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26730 /* put fixed number of bytes to current character and increment */ 26731 # 298 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26732 /* put format one arg to current character and increment */ 26733 26734 26735 26736 26737 26738 26739 26740 struct dm_buf { 26741 char *text_buffer; /* start of allocated buffer */ 26742 int offset; /* number of bytes into the text_buffer */ 26743 int allocation; /* size of buffer in bytes */ 26744 }; 26745 26746 /* This structure is used to hold a dynamically growing string */ 26747 26748 struct dstr { 26749 char *pc; 26750 int len; 26751 int max; 26752 }; 26753 26754 /* setmapmode() defines */ 26755 # 330 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26756 /* max length for printed attributes */ 26757 26758 26759 /* 26760 * These three defines indicate that the prototype file contains a '?' 26761 * meaning do not specify this data in the pkgmap entry. 26762 */ 26763 # 366 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26764 /* Settings for network admin defaults */ 26765 # 377 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26766 /* package header magic tokens */ 26767 26768 26769 26770 /* name of security files */ 26771 26772 26773 26774 26775 26776 26777 /* 26778 * The next three mean that no mode, owner or group was specified or that the 26779 * one specified is invalid for some reason. Sometimes this is an error in 26780 * which case it is generally converted to CUR* with a warning. Other times 26781 * it means "look it up" by stating the existing file system object pointred 26782 * to in the prototype file. 26783 */ 26784 26785 26786 26787 26788 /* string comparitor abbreviators */ 26789 26790 26791 26792 26793 26794 26795 extern FILE *epopen(char *cmd, char *mode); 26796 extern char **gpkglist(char *dir, char **pkg, char **catg); 26797 extern int is_not_valid_length(char **category); 26798 extern int is_not_valid_category(char **category, char *progname); 26799 extern int is_same_CATEGORY(char **category, char *installed_category); 26800 extern char **get_categories(char *catg_arg); 26801 26802 extern void pkglist_cont(char *keyword); 26803 extern char **pkgalias(char *pkg); 26804 extern char *get_prog_name(void); 26805 extern char *set_prog_name(char *name); 26806 extern int averify(int fix, char *ftype, char *path, struct ainfo *ainfo); 26807 extern int ckparam(char *param, char *value); 26808 extern int ckvolseq(char *dir, int part, int nparts); 26809 extern int cverify(int fix, char *ftype, char *path, struct cinfo *cinfo, 26810 int allow_checksum); 26811 extern unsigned long compute_checksum(int *r_cksumerr, char *a_path); 26812 extern int fverify(int fix, char *ftype, char *path, struct ainfo *ainfo, 26813 struct cinfo *cinfo); 26814 extern char *getErrbufAddr(void); 26815 extern int getErrbufSize(void); 26816 extern char *getErrstr(void); 26817 extern void setErrstr(char *errstr); 26818 extern int devtype(char *alias, struct pkgdev *devp); 26819 extern int ds_totread; /* total number of parts read */ 26820 extern int ds_close(int pkgendflg); 26821 extern int ds_findpkg(char *device, char *pkg); 26822 extern int ds_getinfo(char *string); 26823 extern int ds_getpkg(char *device, int n, char *dstdir); 26824 extern int ds_ginit(char *device); 26825 extern boolean_t ds_fd_open(void); 26826 extern int ds_init(char *device, char **pkg, char *norewind); 26827 extern int BIO_ds_dump_header(PKG_ERR *, BIO *); 26828 extern int BIO_ds_dump(PKG_ERR *, char *, BIO *); 26829 extern int BIO_dump_cmd(char *cmd, BIO *bio); 26830 extern int ds_next(char *, char *); 26831 extern int ds_readbuf(char *device); 26832 extern int epclose(FILE *pp); 26833 extern int esystem(char *cmd, int ifd, int ofd); 26834 extern int e_ExecCmdArray(int *r_status, char **r_results, 26835 char *a_inputFile, char *a_cmd, char **a_args); 26836 extern int e_ExecCmdList(int *r_status, char **r_results, 26837 char *a_inputFile, char *a_cmd, ...); 26838 extern int gpkgmap(struct cfent *ept, FILE *fp); 26839 extern int gpkgmapvfp(struct cfent *ept, VFP_T *fpv); 26840 extern void setmapmode(int mode_no); 26841 extern int isFdRemote(int a_fd); 26842 extern int isFstypeRemote(char *a_fstype); 26843 extern int isPathRemote(char *a_path); 26844 extern int iscpio(char *path, int *iscomp); 26845 extern int isdir(char *path); 26846 extern int isfile(char *dir, char *file); 26847 extern int fmkdir(char *a_path, int a_mode); 26848 extern int pkgexecl(char *filein, char *fileout, char *uname, char *gname, 26849 ...); 26850 extern int pkgexecv(char *filein, char *fileout, char *uname, char *gname, 26851 char *arg[]); 26852 extern int pkghead(char *device); 26853 extern int pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, 26854 int getvolflg); 26855 extern int pkgtrans(char *device1, char *device2, char **pkg, 26856 int options, keystore_handle_t, char *); 26857 extern int pkgumount(struct pkgdev *devp); 26858 extern int ppkgmap(struct cfent *ept, FILE *fp); 26859 extern int putcfile(struct cfent *ept, FILE *fp); 26860 extern int putcvfpfile(struct cfent *ept, VFP_T *vfp); 26861 extern int rrmdir(char *path); 26862 extern void set_memalloc_failure_func(void (*)(int)); 26863 extern void *xmalloc(size_t size); 26864 extern void *xrealloc(void *ptr, size_t size); 26865 extern char *xstrdup(char *str); 26866 extern void set_passphrase_prompt(char *); 26867 extern void set_passphrase_passarg(char *); 26868 extern int pkg_passphrase_cb(char *, int, int, void *); 26869 26870 extern int srchcfile(struct cfent *ept, char *path, PKGserver server); 26871 extern struct group *cgrgid(gid_t gid); 26872 extern struct group *cgrnam(char *nam); 26873 extern struct passwd *cpwnam(char *nam); 26874 extern struct passwd *cpwuid(uid_t uid); 26875 extern struct group *clgrgid(gid_t gid); 26876 extern struct group *clgrnam(char *nam); 26877 extern struct passwd *clpwnam(char *nam); 26878 extern struct passwd *clpwuid(uid_t uid); 26879 extern void basepath(char *path, char *basedir, char *ir); 26880 extern void canonize(char *file); 26881 extern void canonize_slashes(char *file); 26882 extern void checksum_off(void); 26883 extern void checksum_on(void); 26884 extern void cvtpath(char *path, char *copy); 26885 extern void ds_order(char *list[]); 26886 extern void ds_putinfo(char *buf, size_t); 26887 extern void ds_skiptoend(char *device); 26888 extern void ecleanup(void); 26889 /*PRINTFLIKE1*/ 26890 extern void logerr(char *fmt, ...); 26891 extern int mappath(int flag, char *path); 26892 extern int mapvar(int flag, char *varname); 26893 /*PRINTFLIKE1*/ 26894 extern void progerr(char *fmt, ...); 26895 extern void pkgerr(PKG_ERR *); 26896 extern void rpterr(void); 26897 extern void tputcfent(struct cfent *ept, FILE *fp); 26898 extern void set_nonABI_symlinks(void); 26899 extern int nonABI_symlinks(void); 26900 extern void disable_attribute_check(void); 26901 extern int get_disable_attribute_check(void); 26902 26903 /* security.c */ 26904 extern void sec_init(void); 26905 extern char *get_subject_display_name(X509 *); 26906 extern char *get_issuer_display_name(X509 *); 26907 extern char *get_serial_num(X509 *); 26908 extern char *get_fingerprint(X509 *, const EVP_MD *); 26909 extern int get_cert_chain(PKG_ERR *, X509 *, struct stack_st_X509 *, 26910 struct stack_st_X509 *, struct stack_st_X509 **); 26911 26912 /* pkgstr.c */ 26913 void pkgstrConvertUllToTimeString_r(unsigned long long a_time, 26914 char *a_buf, int a_bufLen); 26915 char *pkgstrConvertPathToBasename(char *a_path); 26916 char *pkgstrConvertPathToDirname(char *a_path); 26917 char *pkgstrDup(char *a_str); 26918 char *pkgstrLocatePathBasename(char *a_path); 26919 void pkgstrScaleNumericString(char *a_buf, unsigned long long scale); 26920 void pkgstrAddToken(char **a_old, char *a_new, char a_separator); 26921 boolean_t pkgstrContainsToken(char *a_string, char *a_token, 26922 char *a_separators); 26923 void pkgstrExpandTokens(char **a_old, char *a_string, 26924 char a_separator, char *a_separators); 26925 char *pkgstrGetToken(char *r_sep, char *a_string, int a_index, 26926 char *a_separators); 26927 void pkgstrGetToken_r(char *r_sep, char *a_string, int a_index, 26928 char *a_separators, char *a_buf, int a_bufLen); 26929 unsigned long pkgstrNumTokens(char *a_string, char *a_separators); 26930 char *pkgstrPrintf(char *a_format, ...); 26931 void pkgstrPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...); 26932 void pkgstrRemoveToken(char **r_string, char *a_token, 26933 char *a_separators, int a_index); 26934 void pkgstrRemoveLeadingWhitespace(char **a_str); 26935 /* vfpops.c */ 26936 extern int vfpCheckpointFile(VFP_T **r_destVfp, VFP_T **a_vfp, 26937 char *a_path); 26938 extern int vfpCheckpointOpen(VFP_T **a_cvfp, VFP_T **r_vfp, char *a_path, 26939 char *a_mode, VFPFLAGS_T a_flags); 26940 extern int vfpClearModified(VFP_T *a_vfp); 26941 extern int vfpClose(VFP_T **r_vfp); 26942 extern int vfpGetModified(VFP_T *a_vfp); 26943 extern int vfpOpen(VFP_T **r_vfp, char *a_path, char *a_mode, 26944 VFPFLAGS_T a_flags); 26945 extern void vfpRewind(VFP_T *a_vfp); 26946 extern ssize_t vfpSafePwrite(int a_fildes, void *a_buf, 26947 size_t a_nbyte, off_t a_offset); 26948 extern ssize_t vfpSafeWrite(int a_fildes, void *a_buf, size_t a_nbyte); 26949 extern int vfpSetFlags(VFP_T *a_vfp, VFPFLAGS_T a_flags); 26950 extern int vfpSetModified(VFP_T *a_vfp); 26951 extern int vfpSetSize(VFP_T *a_vfp, size_t a_size); 26952 extern void vfpTruncate(VFP_T *a_vfp); 26953 extern int vfpWriteToFile(VFP_T *a_vfp, char *a_path); 26954 26955 /* handlelocalfs.c */ 26956 boolean_t enable_local_fs(void); 26957 boolean_t restore_local_fs(void); 26958 26959 /* pkgserv.c */ 26960 extern PKGserver pkgopenserver(const char *, const char *, boolean_t); 26961 extern void pkgcloseserver(PKGserver); 26962 extern int pkgcmd(PKGserver, void *, size_t, char **, size_t *, 26963 int *); 26964 extern boolean_t pkgsync_needed(const char *, const char *, boolean_t); 26965 extern int pkgsync(const char *, const char *, boolean_t); 26966 extern int pkgservercommitfile(VFP_T *, PKGserver); 26967 extern int pkgopenfilter(PKGserver server, const char *pkginst); 26968 extern void pkgclosefilter(PKGserver); 26969 extern char *pkggetentry(PKGserver, int *, int *); 26970 extern char *pkggetentry_named(PKGserver, const char *, int *, 26971 int *); 26972 extern void pkgserversetmode(start_mode_t); 26973 extern start_mode_t pkgservergetmode(void); 26974 extern start_mode_t pkgparsemode(const char *); 26975 extern char *pkgmodeargument(start_mode_t); 26976 # 51 "sortmap.c" 2 26977 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 1 26978 /* 26979 * CDDL HEADER START 26980 * 26981 * The contents of this file are subject to the terms of the 26982 * Common Development and Distribution License (the "License"). 26983 * You may not use this file except in compliance with the License. 26984 * 26985 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26986 * or http://www.opensolaris.org/os/licensing. 26987 * See the License for the specific language governing permissions 26988 * and limitations under the License. 26989 * 26990 * When distributing Covered Code, include this CDDL HEADER in each 26991 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26992 * If applicable, add the following below this CDDL HEADER, with the 26993 * fields enclosed by brackets "[]" replaced with your own identifying 26994 * information: Portions Copyright [yyyy] [name of copyright owner] 26995 * 26996 * CDDL HEADER END 26997 */ 26998 26999 /* 27000 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 27001 * Use is subject to license terms. 27002 */ 27003 27004 27005 27006 27007 27008 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 27009 /* 27010 * CDDL HEADER START 27011 * 27012 * The contents of this file are subject to the terms of the 27013 * Common Development and Distribution License (the "License"). 27014 * You may not use this file except in compliance with the License. 27015 * 27016 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27017 * or http://www.opensolaris.org/os/licensing. 27018 * See the License for the specific language governing permissions 27019 * and limitations under the License. 27020 * 27021 * When distributing Covered Code, include this CDDL HEADER in each 27022 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27023 * If applicable, add the following below this CDDL HEADER, with the 27024 * fields enclosed by brackets "[]" replaced with your own identifying 27025 * information: Portions Copyright [yyyy] [name of copyright owner] 27026 * 27027 * CDDL HEADER END 27028 */ 27029 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27030 /* All Rights Reserved */ 27031 27032 27033 /* 27034 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 27035 * Use is subject to license terms. 27036 * 27037 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 27038 * Copyright 2016 Joyent, Inc. 27039 */ 27040 # 32 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27041 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 1 27042 /* 27043 * CDDL HEADER START 27044 * 27045 * The contents of this file are subject to the terms of the 27046 * Common Development and Distribution License (the "License"). 27047 * You may not use this file except in compliance with the License. 27048 * 27049 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27050 * or http://www.opensolaris.org/os/licensing. 27051 * See the License for the specific language governing permissions 27052 * and limitations under the License. 27053 * 27054 * When distributing Covered Code, include this CDDL HEADER in each 27055 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27056 * If applicable, add the following below this CDDL HEADER, with the 27057 * fields enclosed by brackets "[]" replaced with your own identifying 27058 * information: Portions Copyright [yyyy] [name of copyright owner] 27059 * 27060 * CDDL HEADER END 27061 */ 27062 27063 /* 27064 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 27065 * 27066 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 27067 * Use is subject to license terms. 27068 * Copyright 2015 Nexenta Systems, Inc. All rights reserved. 27069 * Copyright 2016 Toomas Soome <tsoome@me.com> 27070 */ 27071 27072 27073 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27074 /* All Rights Reserved */ 27075 27076 27077 27078 27079 27080 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 1 27081 /* 27082 * CDDL HEADER START 27083 * 27084 * The contents of this file are subject to the terms of the 27085 * Common Development and Distribution License (the "License"). 27086 * You may not use this file except in compliance with the License. 27087 * 27088 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27089 * or http://www.opensolaris.org/os/licensing. 27090 * See the License for the specific language governing permissions 27091 * and limitations under the License. 27092 * 27093 * When distributing Covered Code, include this CDDL HEADER in each 27094 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27095 * If applicable, add the following below this CDDL HEADER, with the 27096 * fields enclosed by brackets "[]" replaced with your own identifying 27097 * information: Portions Copyright [yyyy] [name of copyright owner] 27098 * 27099 * CDDL HEADER END 27100 */ 27101 27102 /* 27103 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 27104 * Use is subject to license terms. 27105 */ 27106 27107 27108 27109 27110 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 27111 /* 27112 * CDDL HEADER START 27113 * 27114 * The contents of this file are subject to the terms of the 27115 * Common Development and Distribution License (the "License"). 27116 * You may not use this file except in compliance with the License. 27117 * 27118 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27119 * or http://www.opensolaris.org/os/licensing. 27120 * See the License for the specific language governing permissions 27121 * and limitations under the License. 27122 * 27123 * 27124 * When distributing Covered Code, include this CDDL HEADER in each 27125 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27126 * If applicable, add the following below this CDDL HEADER, with the 27127 * fields enclosed by brackets "[]" replaced with your own identifying 27128 * information: Portions Copyright [yyyy] [name of copyright owner] 27129 * 27130 * CDDL HEADER END 27131 */ 27132 27133 /* 27134 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 27135 * Use is subject to license terms. 27136 * Copyright 2016 Joyent, Inc. 27137 */ 27138 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 27139 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1 27140 /* 27141 * CDDL HEADER START 27142 * 27143 * The contents of this file are subject to the terms of the 27144 * Common Development and Distribution License (the "License"). 27145 * You may not use this file except in compliance with the License. 27146 * 27147 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27148 * or http://www.opensolaris.org/os/licensing. 27149 * See the License for the specific language governing permissions 27150 * and limitations under the License. 27151 * 27152 * When distributing Covered Code, include this CDDL HEADER in each 27153 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27154 * If applicable, add the following below this CDDL HEADER, with the 27155 * fields enclosed by brackets "[]" replaced with your own identifying 27156 * information: Portions Copyright [yyyy] [name of copyright owner] 27157 * 27158 * CDDL HEADER END 27159 */ 27160 /* 27161 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 27162 * Use is subject to license terms. 27163 * Copyright 2015 Nexenta Systems, Inc. 27164 */ 27165 27166 27167 27168 27169 #pragma ident "%Z%%M% %I% %E% SMI" 27170 27171 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 27172 /* 27173 * CDDL HEADER START 27174 * 27175 * The contents of this file are subject to the terms of the 27176 * Common Development and Distribution License, Version 1.0 only 27177 * (the "License"). You may not use this file except in compliance 27178 * with the License. 27179 * 27180 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27181 * or http://www.opensolaris.org/os/licensing. 27182 * See the License for the specific language governing permissions 27183 * and limitations under the License. 27184 * 27185 * When distributing Covered Code, include this CDDL HEADER in each 27186 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27187 * If applicable, add the following below this CDDL HEADER, with the 27188 * fields enclosed by brackets "[]" replaced with your own identifying 27189 * information: Portions Copyright [yyyy] [name of copyright owner] 27190 * 27191 * CDDL HEADER END 27192 */ 27193 /* 27194 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 27195 * 27196 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 27197 * Use is subject to license terms. 27198 */ 27199 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 2 27200 27201 27202 27203 27204 27205 /* 27206 * Interoperability types for programs. Used for: 27207 * 27208 * Crossing between 32-bit and 64-bit domains. 27209 * 27210 * On disk data formats such as filesystem meta data 27211 * and disk label. 27212 * 27213 * Note: Applications should never include this 27214 * header file. 27215 */ 27216 typedef uint32_t caddr32_t; 27217 typedef int32_t daddr32_t; 27218 typedef int32_t off32_t; 27219 typedef uint32_t ino32_t; 27220 typedef int32_t blkcnt32_t; 27221 typedef uint32_t fsblkcnt32_t; 27222 typedef uint32_t fsfilcnt32_t; 27223 typedef int32_t id32_t; 27224 typedef uint32_t major32_t; 27225 typedef uint32_t minor32_t; 27226 typedef int32_t key32_t; 27227 typedef uint32_t mode32_t; 27228 typedef uint32_t uid32_t; 27229 typedef uint32_t gid32_t; 27230 typedef uint32_t nlink32_t; 27231 typedef uint32_t dev32_t; 27232 typedef int32_t pid32_t; 27233 typedef uint32_t size32_t; 27234 typedef int32_t ssize32_t; 27235 typedef int32_t time32_t; 27236 typedef int32_t clock32_t; 27237 typedef uint32_t uintptr32_t; 27238 typedef int32_t intptr32_t; 27239 27240 struct timeval32 { 27241 time32_t tv_sec; /* seconds */ 27242 int32_t tv_usec; /* and microseconds */ 27243 }; 27244 27245 typedef struct timespec32 { 27246 time32_t tv_sec; /* seconds */ 27247 int32_t tv_nsec; /* and nanoseconds */ 27248 } timespec32_t; 27249 27250 typedef struct timespec32 timestruc32_t; 27251 27252 typedef struct itimerspec32 { 27253 struct timespec32 it_interval; 27254 struct timespec32 it_value; 27255 } itimerspec32_t; 27256 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 27257 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 27258 /* 27259 * CDDL HEADER START 27260 * 27261 * The contents of this file are subject to the terms of the 27262 * Common Development and Distribution License (the "License"). 27263 * You may not use this file except in compliance with the License. 27264 * 27265 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27266 * or http://www.opensolaris.org/os/licensing. 27267 * See the License for the specific language governing permissions 27268 * and limitations under the License. 27269 * 27270 * 27271 * When distributing Covered Code, include this CDDL HEADER in each 27272 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27273 * If applicable, add the following below this CDDL HEADER, with the 27274 * fields enclosed by brackets "[]" replaced with your own identifying 27275 * information: Portions Copyright [yyyy] [name of copyright owner] 27276 * 27277 * CDDL HEADER END 27278 */ 27279 27280 /* 27281 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 27282 * Use is subject to license terms. 27283 * Copyright 2016 Joyent, Inc. 27284 */ 27285 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 27286 27287 27288 27289 27290 27291 /* 27292 * Miscellaneous defines 27293 */ 27294 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 27295 /* 27296 * Reserve two cylinders on SCSI disks. 27297 * One is for the backup disk label and the other is for the deviceid. 27298 * 27299 * IPI disks only reserve one cylinder, but they will go away soon. 27300 * CDROMs do not reserve any cylinders. 27301 */ 27302 27303 27304 /* 27305 * Format of a Sun disk label. 27306 * Resides in cylinder 0, head 0, sector 0. 27307 * 27308 * sizeof (struct dk_label) should be 512 (the current sector size), 27309 * but should the sector size increase, this structure should remain 27310 * at the beginning of the sector. 27311 */ 27312 27313 27314 27315 27316 27317 27318 27319 typedef daddr_t blkaddr_t; 27320 typedef daddr32_t blkaddr32_t; 27321 27322 27323 27324 /* 27325 * partition headers: section 1 27326 * Returned in struct dk_allmap by ioctl DKIOC[SG]APART (dkio(7I)) 27327 */ 27328 struct dk_map { 27329 blkaddr_t dkl_cylno; /* starting cylinder */ 27330 blkaddr_t dkl_nblk; /* number of blocks; if == 0, */ 27331 /* partition is undefined */ 27332 }; 27333 27334 /* 27335 * partition headers: section 1 27336 * Fixed size for on-disk dk_label 27337 */ 27338 struct dk_map32 { 27339 blkaddr32_t dkl_cylno; /* starting cylinder */ 27340 blkaddr32_t dkl_nblk; /* number of blocks; if == 0, */ 27341 /* partition is undefined */ 27342 }; 27343 27344 /* 27345 * partition headers: section 2, 27346 * brought over from AT&T SVr4 vtoc structure. 27347 */ 27348 struct dk_map2 { 27349 uint16_t p_tag; /* ID tag of partition */ 27350 uint16_t p_flag; /* permission flag */ 27351 }; 27352 27353 struct dkl_partition { 27354 uint16_t p_tag; /* ID tag of partition */ 27355 uint16_t p_flag; /* permision flags */ 27356 blkaddr32_t p_start; /* start sector no of partition */ 27357 blkaddr32_t p_size; /* # of blocks in partition */ 27358 }; 27359 27360 27361 /* 27362 * VTOC inclusions from AT&T SVr4 27363 * Fixed sized types for on-disk VTOC 27364 */ 27365 27366 struct dk_vtoc { 27367 27368 uint32_t v_bootinfo[3]; /* info for mboot (unsupported) */ 27369 uint32_t v_sanity; /* to verify vtoc sanity */ 27370 uint32_t v_version; /* layout version */ 27371 char v_volume[8]; /* volume name */ 27372 uint16_t v_sectorsz; /* sector size in bytes */ 27373 uint16_t v_nparts; /* number of partitions */ 27374 uint32_t v_reserved[10]; /* free space */ 27375 struct dkl_partition v_part[16]; /* partition headers */ 27376 time32_t timestamp[16]; /* partition timestamp (unsupported) */ 27377 char v_asciilabel[128]; /* for compatibility */ 27378 # 154 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 27379 }; 27380 27381 /* 27382 * define the amount of disk label padding needed to make 27383 * the entire structure occupy 512 bytes. 27384 */ 27385 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 27386 struct dk_label { 27387 27388 struct dk_vtoc dkl_vtoc; /* vtoc inclusions from AT&T SVr4 */ 27389 uint32_t dkl_pcyl; /* # of physical cylinders */ 27390 uint32_t dkl_ncyl; /* # of data cylinders */ 27391 uint16_t dkl_acyl; /* # of alternate cylinders */ 27392 uint16_t dkl_bcyl; /* cyl offset (for fixed head area) */ 27393 uint32_t dkl_nhead; /* # of heads */ 27394 uint32_t dkl_nsect; /* # of data sectors per track */ 27395 uint16_t dkl_intrlv; /* interleave factor */ 27396 uint16_t dkl_skew; /* skew factor */ 27397 uint16_t dkl_apc; /* alternates per cyl (SCSI only) */ 27398 uint16_t dkl_rpm; /* revolutions per minute */ 27399 uint16_t dkl_write_reinstruct; /* # sectors to skip, writes */ 27400 uint16_t dkl_read_reinstruct; /* # sectors to skip, reads */ 27401 uint16_t dkl_extra[4]; /* for compatible expansion */ 27402 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 */ 27403 # 217 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 27404 uint16_t dkl_magic; /* identifies this label format */ 27405 uint16_t dkl_cksum; /* xor checksum of sector */ 27406 }; 27407 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 27408 struct fk_label { /* DOS floppy label */ 27409 uchar_t fkl_type; 27410 uchar_t fkl_magich; 27411 uchar_t fkl_magicl; 27412 uchar_t filler; 27413 }; 27414 27415 /* 27416 * Layout of stored fabricated device id (on-disk) 27417 */ 27418 27419 27420 27421 27422 27423 struct dk_devid { 27424 uchar_t dkd_rev_hi; /* revision (MSB) */ 27425 uchar_t dkd_rev_lo; /* revision (LSB) */ 27426 uchar_t dkd_flags; /* flags (not used yet) */ 27427 uchar_t dkd_devid[((512) - ((sizeof (uchar_t) * 7)))]; /* devid stored here */ 27428 uchar_t dkd_checksum3; /* checksum (MSB) */ 27429 uchar_t dkd_checksum2; 27430 uchar_t dkd_checksum1; 27431 uchar_t dkd_checksum0; /* checksum (LSB) */ 27432 }; 27433 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 2 27434 27435 27436 27437 27438 27439 /* 27440 * Note: the VTOC is not implemented fully, nor in the manner 27441 * that AT&T implements it. AT&T puts the vtoc structure 27442 * into a sector, usually the second sector (pdsector is first). 27443 * 27444 * Sun incorporates the tag, flag, version, and volume vtoc fields into 27445 * its Disk Label, which already has some vtoc-equivalent fields. 27446 * Upon reading the vtoc with read_vtoc(), the following exceptions 27447 * occur: 27448 * v_bootinfo [all] returned as zero 27449 * v_sanity returned as VTOC_SANE 27450 * if Disk Label was sane 27451 * v_sectorsz returned as 512 27452 * v_reserved [all] retunred as zero 27453 * timestamp [all] returned as zero 27454 * 27455 * See dklabel.h, read_vtoc(), and write_vtoc(). 27456 */ 27457 27458 27459 /* (from dkio.h) */ 27460 27461 27462 27463 27464 27465 /* 27466 * Partition identification tags 27467 */ 27468 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 27469 /* Tags for EFI/GPT labels */ 27470 27471 27472 27473 27474 27475 27476 /* 27477 * Partition permission flags 27478 */ 27479 27480 27481 27482 /* 27483 * error codes for reading & writing vtoc 27484 */ 27485 27486 27487 27488 27489 27490 27491 27492 struct partition { 27493 ushort_t p_tag; /* ID tag of partition */ 27494 ushort_t p_flag; /* permission flags */ 27495 daddr_t p_start; /* start sector no of partition */ 27496 long p_size; /* # of blocks in partition */ 27497 }; 27498 27499 struct vtoc { 27500 unsigned long v_bootinfo[3]; /* info needed by mboot (unsupported) */ 27501 unsigned long v_sanity; /* to verify vtoc sanity */ 27502 unsigned long v_version; /* layout version */ 27503 char v_volume[8]; /* volume name */ 27504 ushort_t v_sectorsz; /* sector size in bytes */ 27505 ushort_t v_nparts; /* number of partitions */ 27506 unsigned long v_reserved[10]; /* free space */ 27507 struct partition v_part[16]; /* partition headers */ 27508 time_t timestamp[16]; /* partition timestamp (unsupported) */ 27509 char v_asciilabel[128]; /* for compatibility */ 27510 }; 27511 27512 struct extpartition { 27513 ushort_t p_tag; /* ID tag of partition */ 27514 ushort_t p_flag; /* permission flags */ 27515 ushort_t p_pad[2]; 27516 diskaddr_t p_start; /* start sector no of partition */ 27517 diskaddr_t p_size; /* # of blocks in partition */ 27518 }; 27519 27520 27521 struct extvtoc { 27522 uint64_t v_bootinfo[3]; /* info needed by mboot (unsupported) */ 27523 uint64_t v_sanity; /* to verify vtoc sanity */ 27524 uint64_t v_version; /* layout version */ 27525 char v_volume[8]; /* volume name */ 27526 ushort_t v_sectorsz; /* sector size in bytes */ 27527 ushort_t v_nparts; /* number of partitions */ 27528 ushort_t pad[2]; 27529 uint64_t v_reserved[10]; 27530 struct extpartition v_part[16]; /* partition headers */ 27531 uint64_t timestamp[16]; /* partition timestamp (unsupported) */ 27532 char v_asciilabel[128]; /* for compatibility */ 27533 }; 27534 # 334 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 27535 /* 27536 * These defines are the mode parameter for the checksum routines. 27537 */ 27538 27539 27540 27541 extern int read_vtoc(int, struct vtoc *); 27542 extern int write_vtoc(int, struct vtoc *); 27543 extern int read_extvtoc(int, struct extvtoc *); 27544 extern int write_extvtoc(int, struct extvtoc *); 27545 # 33 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27546 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 27547 /* 27548 * CDDL HEADER START 27549 * 27550 * The contents of this file are subject to the terms of the 27551 * Common Development and Distribution License (the "License"). 27552 * You may not use this file except in compliance with the License. 27553 * 27554 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27555 * or http://www.opensolaris.org/os/licensing. 27556 * See the License for the specific language governing permissions 27557 * and limitations under the License. 27558 * 27559 * When distributing Covered Code, include this CDDL HEADER in each 27560 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27561 * If applicable, add the following below this CDDL HEADER, with the 27562 * fields enclosed by brackets "[]" replaced with your own identifying 27563 * information: Portions Copyright [yyyy] [name of copyright owner] 27564 * 27565 * CDDL HEADER END 27566 */ 27567 27568 /* 27569 * Copyright (c) 2013 Gary Mills 27570 * 27571 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 27572 * Use is subject to license terms. 27573 */ 27574 27575 /* Copyright (c) 1988 AT&T */ 27576 /* All Rights Reserved */ 27577 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27578 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 27579 /* 27580 * CDDL HEADER START 27581 * 27582 * The contents of this file are subject to the terms of the 27583 * Common Development and Distribution License (the "License"). 27584 * You may not use this file except in compliance with the License. 27585 * 27586 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27587 * or http://www.opensolaris.org/os/licensing. 27588 * See the License for the specific language governing permissions 27589 * and limitations under the License. 27590 * 27591 * When distributing Covered Code, include this CDDL HEADER in each 27592 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27593 * If applicable, add the following below this CDDL HEADER, with the 27594 * fields enclosed by brackets "[]" replaced with your own identifying 27595 * information: Portions Copyright [yyyy] [name of copyright owner] 27596 * 27597 * CDDL HEADER END 27598 */ 27599 27600 /* 27601 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 27602 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 27603 */ 27604 27605 /* Copyright (c) 1988 AT&T */ 27606 /* All Rights Reserved */ 27607 27608 /* 27609 * User-visible pieces of the ANSI C standard I/O package. 27610 */ 27611 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27612 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 27613 /* 27614 * CDDL HEADER START 27615 * 27616 * The contents of this file are subject to the terms of the 27617 * Common Development and Distribution License (the "License"). 27618 * You may not use this file except in compliance with the License. 27619 * 27620 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27621 * or http://www.opensolaris.org/os/licensing. 27622 * See the License for the specific language governing permissions 27623 * and limitations under the License. 27624 * 27625 * When distributing Covered Code, include this CDDL HEADER in each 27626 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27627 * If applicable, add the following below this CDDL HEADER, with the 27628 * fields enclosed by brackets "[]" replaced with your own identifying 27629 * information: Portions Copyright [yyyy] [name of copyright owner] 27630 * 27631 * CDDL HEADER END 27632 */ 27633 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27634 /* All Rights Reserved */ 27635 27636 /* 27637 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 27638 * Use is subject to license terms. 27639 */ 27640 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27641 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1 27642 /* 27643 * CDDL HEADER START 27644 * 27645 * The contents of this file are subject to the terms of the 27646 * Common Development and Distribution License, Version 1.0 only 27647 * (the "License"). You may not use this file except in compliance 27648 * with the License. 27649 * 27650 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27651 * or http://www.opensolaris.org/os/licensing. 27652 * See the License for the specific language governing permissions 27653 * and limitations under the License. 27654 * 27655 * When distributing Covered Code, include this CDDL HEADER in each 27656 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27657 * If applicable, add the following below this CDDL HEADER, with the 27658 * fields enclosed by brackets "[]" replaced with your own identifying 27659 * information: Portions Copyright [yyyy] [name of copyright owner] 27660 * 27661 * CDDL HEADER END 27662 */ 27663 /* 27664 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 27665 */ 27666 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27667 /* All Rights Reserved */ 27668 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 27669 struct pkginfo { 27670 char *pkginst; 27671 char *name; 27672 char *arch; 27673 char *version; 27674 char *vendor; 27675 char *basedir; 27676 char *catg; 27677 char status; 27678 }; 27679 27680 extern char *pkgdir; 27681 27682 extern char *pkgparam(char *, char *); 27683 extern int pkginfo(struct pkginfo *, char *, ...), 27684 pkgnmchk(char *, char *, int); 27685 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27686 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/valtools.h" 1 27687 /* 27688 * CDDL HEADER START 27689 * 27690 * The contents of this file are subject to the terms of the 27691 * Common Development and Distribution License, Version 1.0 only 27692 * (the "License"). You may not use this file except in compliance 27693 * with the License. 27694 * 27695 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27696 * or http://www.opensolaris.org/os/licensing. 27697 * See the License for the specific language governing permissions 27698 * and limitations under the License. 27699 * 27700 * When distributing Covered Code, include this CDDL HEADER in each 27701 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27702 * If applicable, add the following below this CDDL HEADER, with the 27703 * fields enclosed by brackets "[]" replaced with your own identifying 27704 * information: Portions Copyright [yyyy] [name of copyright owner] 27705 * 27706 * CDDL HEADER END 27707 */ 27708 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27709 /* All Rights Reserved */ 27710 27711 27712 27713 27714 27715 #pragma ident "%Z%%M% %I% %E% SMI" 27716 27717 27718 27719 27720 27721 struct _choice_ { 27722 char *token; 27723 char *text; 27724 struct _choice_ *next; 27725 }; 27726 27727 struct _menu_ { 27728 char *label; 27729 int attr; 27730 short longest; 27731 short nchoices; 27732 struct _choice_ 27733 *choice; 27734 char **invis; 27735 }; 27736 27737 typedef struct _menu_ CKMENU; 27738 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27739 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 27740 /* 27741 * CDDL HEADER START 27742 * 27743 * The contents of this file are subject to the terms of the 27744 * Common Development and Distribution License (the "License"). 27745 * You may not use this file except in compliance with the License. 27746 * 27747 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27748 * or http://www.opensolaris.org/os/licensing. 27749 * See the License for the specific language governing permissions 27750 * and limitations under the License. 27751 * 27752 * When distributing Covered Code, include this CDDL HEADER in each 27753 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27754 * If applicable, add the following below this CDDL HEADER, with the 27755 * fields enclosed by brackets "[]" replaced with your own identifying 27756 * information: Portions Copyright [yyyy] [name of copyright owner] 27757 * 27758 * CDDL HEADER END 27759 */ 27760 27761 /* 27762 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 27763 * Use is subject to license terms. 27764 */ 27765 27766 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27767 /* All Rights Reserved */ 27768 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 27769 # 47 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 27770 /* 27771 * ckdate.c 27772 */ 27773 extern int ckdate_err (char *fmt, char *error); 27774 extern int ckdate_hlp (char *fmt, char *help); 27775 extern int ckdate_val (char *fmt, char *input); 27776 extern int ckdate (char *date, char *fmt, char *defstr, char *error, char *help, char *prompt); 27777 27778 27779 /* 27780 * ckgid.c 27781 */ 27782 extern int ckgid_dsp (void); 27783 extern int ckgid_val (char *grpnm); 27784 extern int ckgrpfile (void); 27785 extern void ckgid_err (int disp, char *error); 27786 extern void ckgid_hlp (int disp, char *help); 27787 extern int ckgid (char *gid, short disp, char *defstr, char *error, char *help, char *prompt); 27788 27789 27790 /* 27791 * ckint.c 27792 */ 27793 extern int ckint_val (char *value, short base); 27794 extern void ckint_err (short base, char *error); 27795 extern void ckint_hlp (short base, char *help); 27796 extern int ckint (long *intval, short base, char *defstr, char *error, char *help, char *prompt); 27797 27798 27799 /* 27800 * ckitem.c 27801 */ 27802 extern CKMENU *allocmenu (char *label, int attr); 27803 extern void ckitem_err (CKMENU *menup, char *error); 27804 extern void ckitem_hlp (CKMENU *menup, char *help); 27805 extern int ckitem (CKMENU *menup, char *item[], short max, char *defstr, char *error, char *help, char *prompt); 27806 27807 27808 extern int setitem (CKMENU *menup, char *choice); 27809 extern int setinvis (CKMENU *menup, char *choice); 27810 extern void printmenu (CKMENU *menup); 27811 27812 /* 27813 * ckkeywd.c 27814 */ 27815 extern int ckkeywd (char *strval, char *keyword[], char *defstr, char *error, char *help, char *prompt); 27816 27817 27818 /* 27819 * ckpath.c 27820 */ 27821 extern int ckpath_stx (int pflags); 27822 extern int ckpath_val (char *path, int pflags); 27823 extern void ckpath_err (int pflags, char *error, char *input); 27824 extern void ckpath_hlp (int pflags, char *help); 27825 extern int ckpath (char *pathval, int pflags, char *defstr, char *error, char *help, char *prompt); 27826 27827 27828 /* 27829 * ckrange.c 27830 */ 27831 extern void ckrange_err (long lower, long upper, int base, char *error); 27832 27833 extern void ckrange_hlp (long lower, long upper, int base, char *help); 27834 extern int ckrange_val (long lower, long upper, int base, char *input); 27835 27836 extern int ckrange (long *rngval, long lower, long upper, short base, char *defstr, char *error, char *help, char *prompt); 27837 27838 27839 27840 /* 27841 * ckstr.c 27842 */ 27843 extern int ckstr_val (char *regexp[], int length, char *input); 27844 extern void ckstr_err (char *regexp[], int length, char *error, char *input); 27845 27846 extern void ckstr_hlp (char *regexp[], int length, char *help); 27847 extern int ckstr (char *strval, char *regexp[], int length, char *defstr, char *error, char *help, char *prompt); 27848 27849 27850 27851 /* 27852 * cktime.c 27853 */ 27854 extern int cktime_val (char *fmt, char *input); 27855 extern int cktime_err (char *fmt, char *error); 27856 extern int cktime_hlp (char *fmt, char *help); 27857 extern int fmtcheck (char *fmt); 27858 extern int cktime (char *tod, char *fmt, char *defstr, char *error, char *help, char *prompt); 27859 27860 27861 /* 27862 * ckuid.c 27863 */ 27864 extern int ckuid_dsp (void); 27865 extern int ckuid_val (char *usrnm); 27866 extern int ckpwdfile (void); 27867 extern void ckuid_err (short disp, char *error); 27868 extern void ckuid_hlp (int disp, char *help); 27869 extern int ckuid (char *uid, short disp, char *defstr, char *error, char *help, char *prompt); 27870 27871 27872 /* 27873 * ckyorn.c 27874 */ 27875 extern int ckyorn_val (char *str); 27876 extern void ckyorn_err (char *error); 27877 extern void ckyorn_hlp (char *help); 27878 extern int ckyorn (char *yorn, char *defstr, char *error, char *help, char *prompt); 27879 27880 27881 /* 27882 * devattr.c 27883 */ 27884 extern char *devattr (char *device, char *attribute); 27885 27886 /* 27887 * devreserv.c 27888 */ 27889 extern char *_rsvtabpath (void); 27890 extern int _openlkfile (void); 27891 extern int _closelkfile (void); 27892 extern int unreserv (long key, char *device); 27893 extern char **devreserv (long key, char **rsvlst[]); 27894 extern int devfree (long key, char *device); 27895 extern struct reservdev **reservdev (void); 27896 27897 /* 27898 * devtab.c 27899 */ 27900 extern void _setdevtab (void); 27901 extern void _enddevtab (void); 27902 extern char *_devtabpath (void); 27903 extern int _opendevtab (char *mode); 27904 extern int _validalias (char *alias); 27905 extern struct devtabent *_getdevtabent (void); 27906 extern void _freedevtabent (struct devtabent *ent); 27907 extern struct devtabent *_getdevrec (char *device); 27908 27909 /* 27910 * dgrpent.c 27911 */ 27912 extern void _setdgrptab (void); 27913 extern void _enddgrptab (void); 27914 extern char *_dgrptabpath (void); 27915 extern int _opendgrptab (char *mode); 27916 extern struct dgrptabent *_getdgrptabent (void); 27917 extern void _freedgrptabent (struct dgrptabent *ent); 27918 extern struct dgrptabent *_getdgrprec (char *dgroup); 27919 27920 /* 27921 * fulldevnm.c 27922 */ 27923 extern char *getfullblkname (char *cp); 27924 extern char *getfullrawname (char *cp); 27925 27926 /* 27927 * getdev.c 27928 */ 27929 extern char **getdev (char **devices, char **criteria, int options); 27930 27931 /* 27932 * getdgrp.c 27933 */ 27934 extern char **getdgrp (char **dgroups, char **criteria, int options); 27935 27936 /* 27937 * getinput.c 27938 */ 27939 extern int getinput (char *s); 27940 27941 /* 27942 * getvol.c 27943 */ 27944 extern int getvol (char *device, char *label, int options, char *prompt); 27945 27946 extern int _getvol (char *device, char *label, int options, char *prompt, char *norewind); 27947 27948 extern void doremovecmd (char *device, int echo); 27949 27950 /* 27951 * listdev.c 27952 */ 27953 extern char **listdev (char *device); 27954 27955 /* 27956 * listdgrp.c 27957 */ 27958 extern char **listdgrp (char *dgroup); 27959 27960 /* 27961 * memory.c 27962 */ 27963 extern long sysmem (void); 27964 extern long asysmem (void); 27965 27966 /* 27967 * pkginfo.c 27968 */ 27969 extern int pkginfo (struct pkginfo *info, char *pkginst, ...); 27970 extern int fpkginfo (struct pkginfo *info, char *pkginst); 27971 extern char *fpkginst (char *pkg, ...); 27972 27973 /* 27974 * pkgnmchk.c 27975 */ 27976 extern int pkgnmchk (register char *pkg, register char *spec, int presvr4flg); 27977 27978 extern void set_ABI_namelngth (void); 27979 extern int get_ABI_namelngth (void); 27980 27981 /* 27982 * pkgparam.c 27983 */ 27984 extern char *fpkgparam (FILE *fp, char *param); 27985 extern char *pkgparam (char *pkg, char *param); 27986 extern void set_PKGpaths (char *path); 27987 extern char *get_PKGLOC (void); 27988 extern char *get_PKGADM (void); 27989 extern void set_PKGADM(char *newpath); 27990 extern void set_PKGLOC(char *newpath); 27991 27992 /* 27993 * putdev.c 27994 */ 27995 extern int _putdevtabrec (FILE *stream, struct devtabent *rec); 27996 extern int _adddevtabrec (char *alias, char **attrval); 27997 extern int _moddevtabrec (char *device, char **attrval); 27998 extern int _rmdevtabrec (char *device); 27999 extern int _rmdevtabattrs (char *device, char **attributes, char ***notfounds); 28000 28001 28002 /* 28003 * putdgrp.c 28004 */ 28005 extern int _putdgrptabrec (FILE *stream, struct dgrptabent *rec); 28006 extern int _adddgrptabrec (char *dgrp, char **members); 28007 extern int _rmdgrptabrec (char *dgrp); 28008 extern int _rmdgrpmems (char *dgrp, char **mems, char ***notfounds); 28009 28010 /* 28011 * puterror.c 28012 */ 28013 extern void puterror (FILE *fp, char *defmesg, char *error); 28014 28015 /* 28016 * puthelp.c 28017 */ 28018 extern void puthelp (FILE *fp, char *defmesg, char *help); 28019 28020 /* 28021 * putprmpt.c 28022 */ 28023 extern void putprmpt (FILE *fp, char *prompt, char *choices[], char *defstr); 28024 28025 28026 /* 28027 * puttext.c 28028 */ 28029 extern int puttext (FILE *fp, char *str, int lmarg, int rmarg); 28030 28031 /* 28032 * rdwr_vtoc.c 28033 */ 28034 extern int read_vtoc (int fd, struct vtoc *vtoc); 28035 extern int write_vtoc (int fd, struct vtoc *vtoc); 28036 # 52 "sortmap.c" 2 28037 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 1 28038 /* 28039 * CDDL HEADER START 28040 * 28041 * The contents of this file are subject to the terms of the 28042 * Common Development and Distribution License (the "License"). 28043 * You may not use this file except in compliance with the License. 28044 * 28045 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28046 * or http://www.opensolaris.org/os/licensing. 28047 * See the License for the specific language governing permissions 28048 * and limitations under the License. 28049 * 28050 * When distributing Covered Code, include this CDDL HEADER in each 28051 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28052 * If applicable, add the following below this CDDL HEADER, with the 28053 * fields enclosed by brackets "[]" replaced with your own identifying 28054 * information: Portions Copyright [yyyy] [name of copyright owner] 28055 * 28056 * CDDL HEADER END 28057 */ 28058 28059 /* 28060 * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved. 28061 */ 28062 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 28063 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 28064 /* 28065 * CDDL HEADER START 28066 * 28067 * The contents of this file are subject to the terms of the 28068 * Common Development and Distribution License (the "License"). 28069 * You may not use this file except in compliance with the License. 28070 * 28071 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28072 * or http://www.opensolaris.org/os/licensing. 28073 * See the License for the specific language governing permissions 28074 * and limitations under the License. 28075 * 28076 * When distributing Covered Code, include this CDDL HEADER in each 28077 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28078 * If applicable, add the following below this CDDL HEADER, with the 28079 * fields enclosed by brackets "[]" replaced with your own identifying 28080 * information: Portions Copyright [yyyy] [name of copyright owner] 28081 * 28082 * CDDL HEADER END 28083 */ 28084 28085 /* 28086 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28087 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 28088 */ 28089 28090 /* Copyright (c) 1988 AT&T */ 28091 /* All Rights Reserved */ 28092 28093 /* 28094 * User-visible pieces of the ANSI C standard I/O package. 28095 */ 28096 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28097 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1 28098 /* 28099 * CDDL HEADER START 28100 * 28101 * The contents of this file are subject to the terms of the 28102 * Common Development and Distribution License (the "License"). 28103 * You may not use this file except in compliance with the License. 28104 * 28105 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28106 * or http://www.opensolaris.org/os/licensing. 28107 * See the License for the specific language governing permissions 28108 * and limitations under the License. 28109 * 28110 * When distributing Covered Code, include this CDDL HEADER in each 28111 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28112 * If applicable, add the following below this CDDL HEADER, with the 28113 * fields enclosed by brackets "[]" replaced with your own identifying 28114 * information: Portions Copyright [yyyy] [name of copyright owner] 28115 * 28116 * CDDL HEADER END 28117 */ 28118 28119 /* 28120 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28121 * 28122 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 28123 * Use is subject to license terms. 28124 */ 28125 28126 /* Copyright (c) 1988 AT&T */ 28127 /* All Rights Reserved */ 28128 28129 28130 28131 28132 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 28133 /* 28134 * CDDL HEADER START 28135 * 28136 * The contents of this file are subject to the terms of the 28137 * Common Development and Distribution License (the "License"). 28138 * You may not use this file except in compliance with the License. 28139 * 28140 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28141 * or http://www.opensolaris.org/os/licensing. 28142 * See the License for the specific language governing permissions 28143 * and limitations under the License. 28144 * 28145 * When distributing Covered Code, include this CDDL HEADER in each 28146 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28147 * If applicable, add the following below this CDDL HEADER, with the 28148 * fields enclosed by brackets "[]" replaced with your own identifying 28149 * information: Portions Copyright [yyyy] [name of copyright owner] 28150 * 28151 * CDDL HEADER END 28152 */ 28153 28154 /* 28155 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 28156 * Copyright 2016 Joyent, Inc. 28157 * 28158 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 28159 * Use is subject to license terms. 28160 */ 28161 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 28162 28163 28164 28165 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28166 /* 28167 * CDDL HEADER START 28168 * 28169 * The contents of this file are subject to the terms of the 28170 * Common Development and Distribution License (the "License"). 28171 * You may not use this file except in compliance with the License. 28172 * 28173 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28174 * or http://www.opensolaris.org/os/licensing. 28175 * See the License for the specific language governing permissions 28176 * and limitations under the License. 28177 * 28178 * When distributing Covered Code, include this CDDL HEADER in each 28179 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28180 * If applicable, add the following below this CDDL HEADER, with the 28181 * fields enclosed by brackets "[]" replaced with your own identifying 28182 * information: Portions Copyright [yyyy] [name of copyright owner] 28183 * 28184 * CDDL HEADER END 28185 */ 28186 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28187 /* All Rights Reserved */ 28188 28189 28190 /* 28191 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28192 * Use is subject to license terms. 28193 * 28194 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28195 * Copyright 2016 Joyent, Inc. 28196 */ 28197 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 28198 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 1 28199 /* 28200 * CDDL HEADER START 28201 * 28202 * The contents of this file are subject to the terms of the 28203 * Common Development and Distribution License (the "License"). 28204 * You may not use this file except in compliance with the License. 28205 * 28206 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28207 * or http://www.opensolaris.org/os/licensing. 28208 * See the License for the specific language governing permissions 28209 * and limitations under the License. 28210 * 28211 * When distributing Covered Code, include this CDDL HEADER in each 28212 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28213 * If applicable, add the following below this CDDL HEADER, with the 28214 * fields enclosed by brackets "[]" replaced with your own identifying 28215 * information: Portions Copyright [yyyy] [name of copyright owner] 28216 * 28217 * CDDL HEADER END 28218 */ 28219 28220 /* 28221 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 28222 */ 28223 28224 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28225 /* All Rights Reserved */ 28226 28227 /* 28228 * University Copyright- Copyright (c) 1982, 1986, 1988 28229 * The Regents of the University of California 28230 * All Rights Reserved 28231 * 28232 * University Acknowledgment- Portions of this document are derived from 28233 * software developed by the University of California, Berkeley, and its 28234 * contributors. 28235 */ 28236 28237 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 28238 /* Copyright 2015, Joyent, Inc. */ 28239 28240 28241 28242 28243 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 28244 /* 28245 * CDDL HEADER START 28246 * 28247 * The contents of this file are subject to the terms of the 28248 * Common Development and Distribution License (the "License"). 28249 * You may not use this file except in compliance with the License. 28250 * 28251 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28252 * or http://www.opensolaris.org/os/licensing. 28253 * See the License for the specific language governing permissions 28254 * and limitations under the License. 28255 * 28256 * When distributing Covered Code, include this CDDL HEADER in each 28257 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28258 * If applicable, add the following below this CDDL HEADER, with the 28259 * fields enclosed by brackets "[]" replaced with your own identifying 28260 * information: Portions Copyright [yyyy] [name of copyright owner] 28261 * 28262 * CDDL HEADER END 28263 */ 28264 28265 /* 28266 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 28267 * Copyright 2016 Joyent, Inc. 28268 * 28269 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 28270 * Use is subject to license terms. 28271 */ 28272 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2 28273 28274 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28275 /* 28276 * CDDL HEADER START 28277 * 28278 * The contents of this file are subject to the terms of the 28279 * Common Development and Distribution License (the "License"). 28280 * You may not use this file except in compliance with the License. 28281 * 28282 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28283 * or http://www.opensolaris.org/os/licensing. 28284 * See the License for the specific language governing permissions 28285 * and limitations under the License. 28286 * 28287 * When distributing Covered Code, include this CDDL HEADER in each 28288 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28289 * If applicable, add the following below this CDDL HEADER, with the 28290 * fields enclosed by brackets "[]" replaced with your own identifying 28291 * information: Portions Copyright [yyyy] [name of copyright owner] 28292 * 28293 * CDDL HEADER END 28294 */ 28295 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28296 /* All Rights Reserved */ 28297 28298 28299 /* 28300 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28301 * Use is subject to license terms. 28302 * 28303 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28304 * Copyright 2016 Joyent, Inc. 28305 */ 28306 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2 28307 28308 28309 28310 28311 28312 /* 28313 * Flag values accessible to open(2) and fcntl(2) 28314 * The first five can only be set (exclusively) by open(2). 28315 */ 28316 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28317 /* defines read/write file integrity */ 28318 28319 28320 28321 28322 28323 28324 /* 28325 * Flag values accessible only to open(2). 28326 */ 28327 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28328 /* 28329 * fcntl(2) requests 28330 * 28331 * N.B.: values are not necessarily assigned sequentially below. 28332 */ 28333 28334 28335 28336 28337 28338 28339 28340 /* 28341 * Applications that read /dev/mem must be built like the kernel. A 28342 * new symbol "_KMEMUSER" is defined for this purpose. 28343 */ 28344 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28345 /* EINVAL is fildes matches arg1 */ 28346 # 137 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28347 /* 28348 * Numbers 20-22 have been removed and should not be reused. 28349 */ 28350 28351 28352 28353 28354 28355 /* manager */ 28356 28357 /* 28358 * Commands that refer to flock structures. The argument types differ between 28359 * the large and small file environments; therefore, the #defined values must 28360 * as well. 28361 * The NBMAND forms are private and should not be used. 28362 * The FLOCK forms are also private and should not be used. 28363 */ 28364 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28365 /* ILP32 large file application compilation environment version */ 28366 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28367 /* 28368 * transitional large file interface version 28369 * These are only valid in a 32 bit application compiled with large files 28370 * option, for source compatibility, the 64-bit versions are mapped back 28371 * to the native versions. 28372 */ 28373 # 233 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28374 /* 28375 * File segment locking set data type - information passed to system by user. 28376 */ 28377 28378 /* regular version, for both small and large file compilation environment */ 28379 typedef struct flock { 28380 short l_type; 28381 short l_whence; 28382 off_t l_start; 28383 off_t l_len; /* len == 0 means until end of file */ 28384 int l_sysid; 28385 pid_t l_pid; 28386 long l_pad[4]; /* reserve area */ 28387 } flock_t; 28388 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28389 /* transitional large file interface version */ 28390 28391 28392 28393 typedef struct flock64 { 28394 short l_type; 28395 short l_whence; 28396 off64_t l_start; 28397 off64_t l_len; /* len == 0 means until end of file */ 28398 int l_sysid; 28399 pid_t l_pid; 28400 long l_pad[4]; /* reserve area */ 28401 } flock64_t; 28402 # 328 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28403 /* 28404 * File segment locking types. 28405 */ 28406 28407 28408 28409 28410 28411 /* 28412 * POSIX constants 28413 */ 28414 28415 /* Mask for file access modes */ 28416 28417 28418 28419 /* 28420 * DIRECTIO 28421 */ 28422 28423 28424 28425 28426 /* 28427 * File share reservation type 28428 */ 28429 typedef struct fshare { 28430 short f_access; 28431 short f_deny; 28432 int f_id; 28433 } fshare_t; 28434 28435 /* 28436 * f_access values 28437 */ 28438 28439 28440 28441 28442 28443 28444 /* 28445 * f_deny values 28446 */ 28447 # 381 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28448 /* 28449 * Special flags for functions such as openat(), fstatat().... 28450 */ 28451 28452 28453 /* || defined(_XPG7) */ 28454 # 396 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 28455 /* advice for posix_fadvise */ 28456 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 28457 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28458 /* large file compilation environment setup */ 28459 28460 28461 28462 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28463 #pragma redefine_extname open open64 28464 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28465 28466 28467 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28468 #pragma redefine_extname creat creat64 28469 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28470 28471 28472 28473 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28474 #pragma redefine_extname posix_fadvise posix_fadvise64 28475 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28476 28477 28478 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28479 #pragma redefine_extname posix_fallocate posix_fallocate64 28480 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28481 28482 28483 28484 28485 28486 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28487 #pragma redefine_extname openat openat64 28488 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28489 28490 28491 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28492 #pragma redefine_extname attropen attropen64 28493 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28494 # 131 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 28495 extern int fcntl(int, int, ...); 28496 extern int open(const char *, int, ...); 28497 extern int creat(const char *, mode_t); 28498 28499 extern int posix_fadvise(int, off_t, off_t, int); 28500 extern int posix_fallocate(int, off_t, off_t); 28501 28502 28503 28504 extern int openat(int, const char *, int, ...); 28505 extern int attropen(const char *, const char *, int, ...); 28506 28507 28508 extern int directio(int, int); 28509 28510 28511 /* transitional large file interface versions */ 28512 28513 28514 extern int open64(const char *, int, ...); 28515 extern int creat64(const char *, mode_t); 28516 28517 extern int posix_fadvise64(int, off64_t, off64_t, int); 28518 extern int posix_fallocate64(int, off64_t, off64_t); 28519 28520 28521 28522 extern int openat64(int, const char *, int, ...); 28523 extern int attropen64(const char *, const char *, int, ...); 28524 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28525 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.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 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28547 /* All Rights Reserved */ 28548 28549 28550 /* 28551 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28552 * Use is subject to license terms. 28553 * 28554 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28555 * Copyright 2016 Joyent, Inc. 28556 */ 28557 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28558 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1 28559 /* 28560 * CDDL HEADER START 28561 * 28562 * The contents of this file are subject to the terms of the 28563 * Common Development and Distribution License (the "License"). 28564 * You may not use this file except in compliance with the License. 28565 * 28566 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28567 * or http://www.opensolaris.org/os/licensing. 28568 * See the License for the specific language governing permissions 28569 * and limitations under the License. 28570 * 28571 * When distributing Covered Code, include this CDDL HEADER in each 28572 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28573 * If applicable, add the following below this CDDL HEADER, with the 28574 * fields enclosed by brackets "[]" replaced with your own identifying 28575 * information: Portions Copyright [yyyy] [name of copyright owner] 28576 * 28577 * CDDL HEADER END 28578 */ 28579 28580 /* 28581 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28582 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 28583 */ 28584 28585 /* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ 28586 /* Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */ 28587 /* All Rights Reserved */ 28588 28589 28590 28591 28592 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 28593 /* 28594 * CDDL HEADER START 28595 * 28596 * The contents of this file are subject to the terms of the 28597 * Common Development and Distribution License (the "License"). 28598 * You may not use this file except in compliance with the License. 28599 * 28600 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28601 * or http://www.opensolaris.org/os/licensing. 28602 * See the License for the specific language governing permissions 28603 * and limitations under the License. 28604 * 28605 * When distributing Covered Code, include this CDDL HEADER in each 28606 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28607 * If applicable, add the following below this CDDL HEADER, with the 28608 * fields enclosed by brackets "[]" replaced with your own identifying 28609 * information: Portions Copyright [yyyy] [name of copyright owner] 28610 * 28611 * CDDL HEADER END 28612 */ 28613 28614 /* 28615 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 28616 * Copyright 2016 Joyent, Inc. 28617 * 28618 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 28619 * Use is subject to license terms. 28620 */ 28621 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 28622 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28623 /* 28624 * CDDL HEADER START 28625 * 28626 * The contents of this file are subject to the terms of the 28627 * Common Development and Distribution License (the "License"). 28628 * You may not use this file except in compliance with the License. 28629 * 28630 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28631 * or http://www.opensolaris.org/os/licensing. 28632 * See the License for the specific language governing permissions 28633 * and limitations under the License. 28634 * 28635 * When distributing Covered Code, include this CDDL HEADER in each 28636 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28637 * If applicable, add the following below this CDDL HEADER, with the 28638 * fields enclosed by brackets "[]" replaced with your own identifying 28639 * information: Portions Copyright [yyyy] [name of copyright owner] 28640 * 28641 * CDDL HEADER END 28642 */ 28643 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28644 /* All Rights Reserved */ 28645 28646 28647 /* 28648 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28649 * Use is subject to license terms. 28650 * 28651 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28652 * Copyright 2016 Joyent, Inc. 28653 */ 28654 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 28655 28656 28657 28658 28659 28660 /* 28661 * The implementation specific header <sys/time_impl.h> includes a 28662 * definition for timestruc_t needed by the stat structure. However, 28663 * including either <time.h>, which includes <sys/time_impl.h>, or 28664 * including <sys/time_impl.h> directly will break both X/Open and 28665 * POSIX namespace. Preceeding tag, structure, and structure member 28666 * names with underscores eliminates the namespace breakage and at the 28667 * same time, with unique type names, eliminates the possibility of 28668 * timespec_t or timestruct_t naming conflicts that could otherwise 28669 * result based on the order of inclusion of <sys/stat.h> and 28670 * <sys/time.h>. The header <sys/time_std_impl.h> contains the 28671 * standards namespace safe versions of these definitions. 28672 */ 28673 28674 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 28675 /* 28676 * CDDL HEADER START 28677 * 28678 * The contents of this file are subject to the terms of the 28679 * Common Development and Distribution License, Version 1.0 only 28680 * (the "License"). You may not use this file except in compliance 28681 * with the License. 28682 * 28683 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28684 * or http://www.opensolaris.org/os/licensing. 28685 * See the License for the specific language governing permissions 28686 * and limitations under the License. 28687 * 28688 * When distributing Covered Code, include this CDDL HEADER in each 28689 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28690 * If applicable, add the following below this CDDL HEADER, with the 28691 * fields enclosed by brackets "[]" replaced with your own identifying 28692 * information: Portions Copyright [yyyy] [name of copyright owner] 28693 * 28694 * CDDL HEADER END 28695 */ 28696 /* 28697 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 28698 * Use is subject to license terms. 28699 */ 28700 28701 /* 28702 * Implementation-private. This header should not be included 28703 * directly by an application. The application should instead 28704 * include <time.h> which includes this header conditionally 28705 * depending on which feature test macros are defined. By default, 28706 * this header is included by <time.h>. X/Open and POSIX 28707 * standards requirements result in this header being included 28708 * by <time.h> only under a restricted set of conditions. 28709 */ 28710 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 28711 28712 28713 28714 28715 28716 28717 /* 28718 * stat structure, used by stat(2) and fstat(2) 28719 */ 28720 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28721 /* 28722 * large file compilation environment setup 28723 */ 28724 28725 28726 28727 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28728 #pragma redefine_extname fstat fstat64 28729 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28730 28731 28732 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28733 #pragma redefine_extname stat stat64 28734 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28735 28736 28737 28738 28739 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28740 #pragma redefine_extname fstatat fstatat64 28741 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28742 28743 28744 28745 28746 28747 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28748 #pragma redefine_extname lstat lstat64 28749 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28750 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28751 /* 28752 * In the LP64 compilation environment, map large file interfaces 28753 * back to native versions where possible. 28754 */ 28755 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28756 /* 28757 * User level stat structure definitions. 28758 */ 28759 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28760 struct stat { 28761 dev_t st_dev; 28762 long st_pad1[3]; /* reserved for network id */ 28763 ino_t st_ino; 28764 mode_t st_mode; 28765 nlink_t st_nlink; 28766 uid_t st_uid; 28767 gid_t st_gid; 28768 dev_t st_rdev; 28769 long st_pad2[2]; 28770 off_t st_size; 28771 28772 28773 28774 28775 timestruc_t st_atim; 28776 timestruc_t st_mtim; 28777 timestruc_t st_ctim; 28778 28779 28780 28781 28782 28783 blksize_t st_blksize; 28784 blkcnt_t st_blocks; 28785 char st_fstype[16]; 28786 long st_pad4[8]; /* expansion area */ 28787 }; 28788 28789 28790 28791 /* transitional large file interface version */ 28792 # 303 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28793 struct stat64 { 28794 dev_t st_dev; 28795 long st_pad1[3]; /* reserved for network id */ 28796 ino64_t st_ino; 28797 mode_t st_mode; 28798 nlink_t st_nlink; 28799 uid_t st_uid; 28800 gid_t st_gid; 28801 dev_t st_rdev; 28802 long st_pad2[2]; 28803 off64_t st_size; 28804 28805 timestruc_t st_atim; 28806 timestruc_t st_mtim; 28807 timestruc_t st_ctim; 28808 28809 28810 28811 28812 28813 blksize_t st_blksize; 28814 blkcnt64_t st_blocks; 28815 char st_fstype[16]; 28816 long st_pad4[8]; /* expansion area */ 28817 }; 28818 # 401 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28819 /* MODE MASKS */ 28820 28821 /* de facto standard definitions */ 28822 28823 28824 28825 28826 28827 28828 /* XENIX definitions are not relevant to Solaris */ 28829 # 428 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28830 /* the following macros are for POSIX conformance */ 28831 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28832 /* POSIX.4 macros */ 28833 28834 28835 28836 28837 28838 28839 /* 28840 * A version number is included in the x86 SVR4 stat and mknod interfaces 28841 * so that SVR4 binaries can be supported. An LP64 kernel that supports 28842 * the i386 ABI need to be aware of this too. 28843 */ 28844 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28845 /* || defined(_XPG7) */ 28846 /* for use with futimens() and utimensat() */ 28847 # 486 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 28848 extern int fchmod(int, mode_t); 28849 28850 28851 extern int chmod(const char *, mode_t); 28852 extern int mkdir(const char *, mode_t); 28853 extern int mkfifo(const char *, mode_t); 28854 extern mode_t umask(mode_t); 28855 28856 /* transitional large file interfaces */ 28857 28858 28859 extern int fstat64(int, struct stat64 *); 28860 extern int stat64(const char *, struct stat64 *); 28861 extern int lstat64(const char *, struct stat64 *); 28862 28863 28864 extern int fstatat64(int, const char *, struct stat64 *, int); 28865 28866 28867 28868 28869 28870 /* || defined(_XPG7) */ 28871 extern int mkdirat(int, const char *, mode_t); 28872 extern int mkfifoat(int, const char *, mode_t); 28873 extern int mknodat(int, const char *, mode_t, dev_t); 28874 extern int fchmodat(int, const char *, mode_t, int); 28875 extern int futimens(int, const struct timespec[2]); 28876 extern int utimensat(int, const char *, const struct timespec[2], int); 28877 28878 28879 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 1 28880 /* 28881 * CDDL HEADER START 28882 * 28883 * The contents of this file are subject to the terms of the 28884 * Common Development and Distribution License (the "License"). 28885 * You may not use this file except in compliance with the License. 28886 * 28887 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28888 * or http://www.opensolaris.org/os/licensing. 28889 * See the License for the specific language governing permissions 28890 * and limitations under the License. 28891 * 28892 * When distributing Covered Code, include this CDDL HEADER in each 28893 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28894 * If applicable, add the following below this CDDL HEADER, with the 28895 * fields enclosed by brackets "[]" replaced with your own identifying 28896 * information: Portions Copyright [yyyy] [name of copyright owner] 28897 * 28898 * CDDL HEADER END 28899 */ 28900 28901 /* 28902 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 28903 * Use is subject to license terms. 28904 */ 28905 28906 28907 28908 28909 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 28910 /* 28911 * CDDL HEADER START 28912 * 28913 * The contents of this file are subject to the terms of the 28914 * Common Development and Distribution License (the "License"). 28915 * You may not use this file except in compliance with the License. 28916 * 28917 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28918 * or http://www.opensolaris.org/os/licensing. 28919 * See the License for the specific language governing permissions 28920 * and limitations under the License. 28921 * 28922 * When distributing Covered Code, include this CDDL HEADER in each 28923 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28924 * If applicable, add the following below this CDDL HEADER, with the 28925 * fields enclosed by brackets "[]" replaced with your own identifying 28926 * information: Portions Copyright [yyyy] [name of copyright owner] 28927 * 28928 * CDDL HEADER END 28929 */ 28930 28931 /* 28932 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 28933 * Copyright 2016 Joyent, Inc. 28934 * 28935 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 28936 * Use is subject to license terms. 28937 */ 28938 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2 28939 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28940 /* 28941 * CDDL HEADER START 28942 * 28943 * The contents of this file are subject to the terms of the 28944 * Common Development and Distribution License (the "License"). 28945 * You may not use this file except in compliance with the License. 28946 * 28947 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28948 * or http://www.opensolaris.org/os/licensing. 28949 * See the License for the specific language governing permissions 28950 * and limitations under the License. 28951 * 28952 * When distributing Covered Code, include this CDDL HEADER in each 28953 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28954 * If applicable, add the following below this CDDL HEADER, with the 28955 * fields enclosed by brackets "[]" replaced with your own identifying 28956 * information: Portions Copyright [yyyy] [name of copyright owner] 28957 * 28958 * CDDL HEADER END 28959 */ 28960 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28961 /* All Rights Reserved */ 28962 28963 28964 /* 28965 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28966 * Use is subject to license terms. 28967 * 28968 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28969 * Copyright 2016 Joyent, Inc. 28970 */ 28971 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2 28972 28973 28974 28975 28976 28977 /* 28978 * The implementation specific header for <sys/stat.h> 28979 */ 28980 28981 28982 28983 28984 28985 extern int fstat(int, struct stat *); 28986 extern int stat(const char *, struct stat *); 28987 28988 28989 28990 extern int fstatat(int, const char *, struct stat *, int); 28991 28992 28993 28994 extern int lstat(const char *, struct stat *); 28995 extern int mknod(const char *, mode_t, dev_t); 28996 # 518 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 28997 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28998 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 28999 /* 29000 * CDDL HEADER START 29001 * 29002 * The contents of this file are subject to the terms of the 29003 * Common Development and Distribution License (the "License"). 29004 * You may not use this file except in compliance with the License. 29005 * 29006 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29007 * or http://www.opensolaris.org/os/licensing. 29008 * See the License for the specific language governing permissions 29009 * and limitations under the License. 29010 * 29011 * When distributing Covered Code, include this CDDL HEADER in each 29012 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29013 * If applicable, add the following below this CDDL HEADER, with the 29014 * fields enclosed by brackets "[]" replaced with your own identifying 29015 * information: Portions Copyright [yyyy] [name of copyright owner] 29016 * 29017 * CDDL HEADER END 29018 */ 29019 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29020 /* All Rights Reserved */ 29021 29022 /* 29023 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 29024 * Use is subject to license terms. 29025 */ 29026 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 29027 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1 29028 /* 29029 * CDDL HEADER START 29030 * 29031 * The contents of this file are subject to the terms of the 29032 * Common Development and Distribution License, Version 1.0 only 29033 * (the "License"). You may not use this file except in compliance 29034 * with the License. 29035 * 29036 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29037 * or http://www.opensolaris.org/os/licensing. 29038 * See the License for the specific language governing permissions 29039 * and limitations under the License. 29040 * 29041 * When distributing Covered Code, include this CDDL HEADER in each 29042 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29043 * If applicable, add the following below this CDDL HEADER, with the 29044 * fields enclosed by brackets "[]" replaced with your own identifying 29045 * information: Portions Copyright [yyyy] [name of copyright owner] 29046 * 29047 * CDDL HEADER END 29048 */ 29049 /* 29050 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 29051 */ 29052 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29053 /* All Rights Reserved */ 29054 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 29055 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1 29056 /* 29057 * CDDL HEADER START 29058 * 29059 * The contents of this file are subject to the terms of the 29060 * Common Development and Distribution License (the "License"). 29061 * You may not use this file except in compliance with the License. 29062 * 29063 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29064 * or http://www.opensolaris.org/os/licensing. 29065 * See the License for the specific language governing permissions 29066 * and limitations under the License. 29067 * 29068 * When distributing Covered Code, include this CDDL HEADER in each 29069 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29070 * If applicable, add the following below this CDDL HEADER, with the 29071 * fields enclosed by brackets "[]" replaced with your own identifying 29072 * information: Portions Copyright [yyyy] [name of copyright owner] 29073 * 29074 * CDDL HEADER END 29075 */ 29076 29077 /* 29078 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 29079 * Use is subject to license terms. 29080 */ 29081 29082 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29083 /* All Rights Reserved */ 29084 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 29085 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1 29086 /* 29087 * CDDL HEADER START 29088 * 29089 * The contents of this file are subject to the terms of the 29090 * Common Development and Distribution License (the "License"). 29091 * You may not use this file except in compliance with the License. 29092 * 29093 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29094 * or http://www.opensolaris.org/os/licensing. 29095 * See the License for the specific language governing permissions 29096 * and limitations under the License. 29097 * 29098 * When distributing Covered Code, include this CDDL HEADER in each 29099 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29100 * If applicable, add the following below this CDDL HEADER, with the 29101 * fields enclosed by brackets "[]" replaced with your own identifying 29102 * information: Portions Copyright [yyyy] [name of copyright owner] 29103 * 29104 * CDDL HEADER END 29105 */ 29106 29107 /* 29108 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 29109 * Use is subject to license terms. 29110 */ 29111 # 42 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 29112 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 29113 /* 29114 * CDDL HEADER START 29115 * 29116 * The contents of this file are subject to the terms of the 29117 * Common Development and Distribution License (the "License"). 29118 * You may not use this file except in compliance with the License. 29119 * 29120 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29121 * or http://www.opensolaris.org/os/licensing. 29122 * See the License for the specific language governing permissions 29123 * and limitations under the License. 29124 * 29125 * When distributing Covered Code, include this CDDL HEADER in each 29126 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29127 * If applicable, add the following below this CDDL HEADER, with the 29128 * fields enclosed by brackets "[]" replaced with your own identifying 29129 * information: Portions Copyright [yyyy] [name of copyright owner] 29130 * 29131 * CDDL HEADER END 29132 */ 29133 29134 /* 29135 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 29136 * Use is subject to license terms. 29137 */ 29138 29139 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29140 /* All Rights Reserved */ 29141 # 43 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 29142 29143 29144 29145 29146 29147 /* signal handler function definition */ 29148 29149 typedef void (sighdlrFunc_t)(int); 29150 29151 /* maximum parameter length */ 29152 29153 29154 29155 /* flag for check_applicability */ 29156 29157 typedef unsigned long CAF_T; 29158 29159 /* flags for check_applicability */ 29160 29161 29162 29163 29164 29165 /* path to the request file in the package directory */ 29166 29167 29168 29169 /* path to the copyright file in the package directory */ 29170 29171 29172 29173 /* path to the depend file in the package directory */ 29174 29175 29176 29177 /* 29178 * name of environment variable set to non-global zone name being installed: 29179 * pkgadd/pkginstall expects this name and passes it on to any scripts that 29180 * are run if it is set. 29181 */ 29182 29183 29184 29185 /* 29186 * name of environment variable set to indicate this package should be installed 29187 * in the current zone only - see PSARC/2004/789 - New Pkginfo(4) attributes 29188 * for zones 29189 */ 29190 29191 29192 29193 /* 29194 * name of environment variable set to indicate this package should be installed 29195 * in all zones, and only from the global zone - see PSARC/2003/460 29196 */ 29197 29198 29199 29200 /* 29201 * name of environment variable set to indicate this package should be installed 29202 * hollow (db update only) when installed in nonglobal zone - see PSARC/2003/460 29203 */ 29204 29205 29206 29207 /* 29208 * General purpose return codes used for functions which don't return a basic 29209 * success or failure. For those functions wherein a yes/no result is 29210 * possible, then 1 means OK and 0 means FAIL. 29211 */ 29212 29213 29214 29215 29216 /* These are the file status indicators for the contents file */ 29217 # 128 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 29218 /* control bits for pkgdbmerg() */ 29219 29220 29221 29222 /* control bits for file verification by class */ 29223 29224 29225 29226 29227 /* control bit for path type to pass to CAS */ 29228 29229 29230 29231 /* findscripts() argument */ 29232 29233 29234 29235 struct cl_attr { 29236 char name[64 +1]; /* name of class */ 29237 char *inst_script; /* install class action script */ 29238 char *rem_script; /* remove class action script */ 29239 unsigned src_verify:3; /* source verification level */ 29240 unsigned dst_verify:4; /* destination verification level */ 29241 unsigned relpath_2_CAS:1; /* CAS gets relative paths */ 29242 }; 29243 29244 29245 29246 29247 29248 29249 29250 /* Common quit declaration used across many package commands */ 29251 extern void quit(int) __attribute__((__noreturn__)); 29252 29253 29254 /* listmgr.c */ 29255 extern int bl_create (int count_per_block, int struct_size, char *desc); 29256 29257 extern char *bl_next_avail (int list_handle); 29258 extern char *bl_get_record (int list_handle, int recno); 29259 extern void bl_free (int list_handle); 29260 extern int ar_create (int count_per_block, int struct_size, char *desc); 29261 29262 extern char **ar_next_avail (int list_handle); 29263 extern char **ar_get_head (int list_handle); 29264 extern int ar_delete (int list_handle, int index); 29265 extern void ar_free (int list_handle); 29266 29267 /* doulimit.c */ 29268 extern int set_ulimit (char *script, char *err_msg); 29269 extern int clr_ulimit (void); 29270 extern int assign_ulimit (char *fslimit); 29271 29272 /* dryrun.c */ 29273 extern void set_continue_not_ok (void); 29274 extern int continue_is_ok (void); 29275 extern int in_dryrun_mode (void); 29276 extern int in_continue_mode (void); 29277 extern void init_dryrunfile (char *dr_dir); 29278 extern void init_contfile (char *cn_dir); 29279 extern void set_dr_exitmsg (char *value); 29280 extern void set_dr_info (int type, int value); 29281 extern void write_dryrun_file (struct cfextra **extlist); 29282 29283 /* instvol.c */ 29284 extern void regfiles_free (void); 29285 29286 /* lockinst.c */ 29287 extern int lockinst (char *util_name, char *pkg_name, char *place); 29288 extern void lockupd (char *place); 29289 extern void unlockinst (void); 29290 29291 extern char *pathdup (char *s); 29292 extern char *pathalloc (int n); 29293 extern char *fixpath (char *path); 29294 extern char *get_info_basedir (void); 29295 extern char *get_basedir (void); 29296 extern char *get_client_basedir (void); 29297 extern int set_basedirs (int reloc, char *adm_basedir, char *pkginst, int nointeract); 29298 29299 extern int eval_path (char **server_ptr, char **client_ptr, char **map_ptr, char *path); 29300 29301 extern int get_orig_offset (void); 29302 extern char *get_inst_root (void); 29303 extern char *get_mount_point (uint32_t n); 29304 extern char *get_remote_path (uint32_t n); 29305 extern void set_env_cbdir (void); 29306 extern int set_inst_root (char *path); 29307 extern void put_path_params (void); 29308 extern int mkpath (char *p); 29309 extern void mkbasedir (int flag, char *path); 29310 extern int is_an_inst_root (void); 29311 extern int is_a_basedir (void); 29312 extern int is_a_cl_basedir (void); 29313 extern int is_relocatable (void); 29314 extern char *orig_path (char *path); 29315 extern char *orig_path_ptr (char *path); 29316 extern char *qreason (int caller, int retcode, int started, int includeZonename); 29317 29318 extern char *qstrdup (char *s); 29319 extern char *srcpath (char *d, char *p, int part, int nparts); 29320 extern char *trans_srcp_pi (char *local_path); 29321 extern int copyf (char *from, char *to, time_t mytime); 29322 extern int copyFile (int, int, char *, char *, struct stat *, long); 29323 extern int openLocal (char *a_path, int a_oflag, char *a_tmpdir); 29324 extern int dockdeps (char *depfile, int removeFlag, boolean_t a_preinstallCheck); 29325 29326 extern int finalck (struct cfent *ept, int attrchg, int contchg, boolean_t a_warning); 29327 29328 29329 /* dockdeps.c */ 29330 extern void setUpdate (void); 29331 extern int isUpdate (void); 29332 29333 /* mntinfo.c */ 29334 extern int get_mntinfo (int map_client, char *vfstab_file); 29335 extern uint32_t fsys (char *path); 29336 extern struct fstable *get_fs_entry (uint32_t n); 29337 extern int mount_client (void); 29338 extern int unmount_client (void); 29339 extern uint32_t resolved_fsys (char *path); 29340 extern char *get_server_host (uint32_t n); 29341 extern char *server_map (char *path, uint32_t fsys_value); 29342 extern int use_srvr_map (char *path, uint32_t *fsys_value); 29343 extern int use_srvr_map_n (uint32_t n); 29344 extern int is_fs_writeable (char *path, uint32_t *fsys_value); 29345 extern int is_remote_fs (char *path, uint32_t *fsys_value); 29346 extern int is_served (char *path, uint32_t *fsys_value); 29347 extern int is_mounted (char *path, uint32_t *fsys_value); 29348 extern int is_fs_writeable_n (uint32_t n); 29349 extern int is_remote_fs_n (uint32_t n); 29350 extern int is_served_n (uint32_t n); 29351 extern int is_mounted_n (uint32_t n); 29352 extern fsblkcnt_t get_blk_size_n (uint32_t n); 29353 extern fsblkcnt_t get_frag_size_n (uint32_t n); 29354 extern fsblkcnt_t get_blk_used_n (uint32_t n); 29355 extern fsblkcnt_t get_blk_free_n (uint32_t n); 29356 extern fsblkcnt_t get_inode_used_n (uint32_t n); 29357 extern fsblkcnt_t get_inode_free_n (uint32_t n); 29358 extern void set_blk_used_n (uint32_t n, fsblkcnt_t value); 29359 extern char *get_source_name_n (uint32_t n); 29360 extern char *get_fs_name_n (uint32_t n); 29361 extern int load_fsentry (struct fstable *fs_entry, char *name, char *fstype, char *remote_name); 29362 29363 extern int isreloc (char *pkginstdir); 29364 extern int is_local_host (char *hostname); 29365 extern void fs_tab_free (void); 29366 29367 /* pkgdbmerg.c */ 29368 extern int pkgdbmerg (PKGserver server, VFP_T *tmpvfp, struct cfextra **extlist); 29369 29370 extern int files_installed (void); 29371 29372 /* ocfile.c */ 29373 extern int trunc_tcfile (int fd); 29374 extern int ocfile (PKGserver *serverp, VFP_T **tmpvfp, fsblkcnt_t map_blks); 29375 29376 extern int swapcfile (PKGserver server, VFP_T **a_tmpvfp, char *pkginst, int dbchg); 29377 29378 extern int set_cfdir (char *cfdir); 29379 extern int socfile (PKGserver *server, boolean_t quiet); 29380 extern int relslock (void); 29381 extern int pkgWlock (int verbose); 29382 extern int iscfile (void); 29383 extern int vcfile (void); 29384 29385 extern fsblkcnt_t nblk (fsblkcnt_t size, ulong_t bsize, ulong_t frsize); 29386 29387 extern struct cfent **procmap (VFP_T *vfp, int mapflag, char *ir); 29388 extern void repl_cfent (struct cfent *new, struct cfent *old); 29389 extern struct cfextra **pkgobjmap (VFP_T *vfp, int mapflag, char *ir); 29390 extern void pkgobjinit (void); 29391 extern int seed_pkgobjmap (struct cfextra *ext_entry, char *path, char *local); 29392 29393 extern int init_pkgobjspace (void); 29394 29395 /* eptstat.c */ 29396 extern void pinfo_free (void); 29397 extern struct pinfo *eptstat (struct cfent *entry, char *pkg, char c); 29398 29399 /* echo.c */ 29400 /*PRINTFLIKE1*/ 29401 extern void echo (char *a_fmt, ...); 29402 /*PRINTFLIKE1*/ 29403 extern void echoDebug (char *a_fmt, ...); 29404 extern boolean_t echoGetFlag (void); 29405 extern boolean_t echoDebugGetFlag (void); 29406 extern boolean_t echoSetFlag (boolean_t a_debugFlag); 29407 extern boolean_t echoDebugSetFlag (boolean_t a_debugFlag); 29408 29409 /* ptext.c */ 29410 /*PRINTFLIKE2*/ 29411 extern void ptext (FILE *fp, char *fmt, ...); 29412 29413 /* putparam.c */ 29414 extern void putparam (char *param, char *value); 29415 extern void getuserlocale (void); 29416 extern void putuserlocale (void); 29417 extern void putConditionInfo (char *, char *); 29418 29419 /* setadmin.c */ 29420 extern void setadminFile (char *file); 29421 extern char *setadminSetting (char *a_paramName, char *a_paramValue); 29422 29423 extern char *set_keystore_admin (void); 29424 extern boolean_t get_proxy_port_admin (char **, ushort_t *); 29425 extern boolean_t check_keystore_admin (char **); 29426 extern int web_ck_retries (void); 29427 extern int web_ck_timeout (void); 29428 extern int web_ck_authentication (void); 29429 29430 /* setlist.c */ 29431 extern char *cl_iscript (int idx); 29432 extern char *cl_rscript (int idx); 29433 extern void find_CAS (int CAS_type, char *bin_ptr, char *inst_ptr); 29434 extern int setlist (struct cl_attr ***plist, char *slist); 29435 extern void addlist (struct cl_attr ***plist, char *item); 29436 extern char *cl_nam (int cl_idx); 29437 extern char *flex_device(char *device_name, int dev_ok); 29438 extern int cl_getn (void); 29439 extern int cl_idx (char *cl_nam); 29440 extern void cl_sets (char *slist); 29441 extern void cl_setl (struct cl_attr **cl_lst); 29442 extern void cl_putl (char *parm_name, struct cl_attr **list); 29443 extern int cl_deliscript (int i); 29444 extern unsigned cl_svfy (int i); 29445 extern unsigned cl_dvfy (int i); 29446 extern unsigned cl_pthrel (int i); 29447 29448 /* passwd.c */ 29449 extern int pkg_passphrase_cb (char *, int, int, void *); 29450 extern void set_passarg (char *); 29451 extern void set_prompt (char *); 29452 29453 /* fixpath.c */ 29454 extern void export_client_env(char *); 29455 extern void set_partial_inst(void); 29456 extern int is_partial_inst(void); 29457 extern void set_depend_pkginfo_DB(boolean_t a_setting); 29458 extern boolean_t is_depend_pkginfo_DB(void); 29459 extern void disable_spool_create(void); 29460 extern int is_spool_create(void); 29461 29462 /* open_package_datastream.c */ 29463 extern boolean_t open_package_datastream(int a_argc, char **a_argv, 29464 char *a_spoolto, char *a_device, 29465 int *r_repeat, char **r_idsName, 29466 char *a_tmpdir, struct pkgdev *a_pkgdev, 29467 int a_optind); 29468 29469 /* setup_temporary_directory.c */ 29470 extern boolean_t setup_temporary_directory(char **r_dirname, 29471 char *a_tmpdir, char *a_suffix); 29472 29473 /* unpack_package_from_stream.c */ 29474 extern boolean_t unpack_package_from_stream(char *a_idsName, 29475 char *a_pkginst, char *a_tempDir); 29476 29477 /* pkgops.c */ 29478 29479 extern boolean_t pkgAddPackageToGzonlyList(char *a_pkgInst, 29480 char *a_rootPath); 29481 extern void pkgAddThisZonePackage(char *a_pkgInst); 29482 extern boolean_t pkgRemovePackageFromGzonlyList(char *a_rootPath, 29483 char *a_pkgInst); 29484 extern FILE *pkgOpenInGzOnlyFile(char *a_rootPath); 29485 extern void pkginfoFree(struct pkginfo **r_info); 29486 extern boolean_t pkginfoIsPkgInstalled(struct pkginfo **r_pinfo, 29487 char *a_pkgInst); 29488 extern boolean_t pkgIsPkgInGzOnly(char *a_rootPath, char *a_pkgInst); 29489 extern boolean_t pkgIsPkgInGzOnlyFP(FILE *a_fp, char *a_pkgInst); 29490 extern boolean_t pkginfoParamTruth(FILE *a_fp, char *a_param, 29491 char *a_value, boolean_t a_default); 29492 extern int pkgGetPackageList(char ***r_pkgList, char **a_argv, 29493 int a_optind, char *a_categories, 29494 char **a_categoryList, struct pkgdev *a_pkgdev); 29495 extern void pkgLocateHighestInst(char *r_path, int r_pathLen, 29496 char *r_pkgInst, int r_pkgInstLen, 29497 char *a_rootPath, char *a_pkgInst); 29498 extern boolean_t pkgPackageIsThisZone(char *a_pkgInst); 29499 extern char *pkgGetGzOnlyPath(void); 29500 extern boolean_t pkgTestInstalled(char *a_packageName, char *a_rootPath); 29501 29502 /* depchk.c */ 29503 29504 struct depckErrorRecord { 29505 int ier_numZones; 29506 char *ier_packageName; 29507 char **ier_zones; 29508 char **ier_values; 29509 }; 29510 29511 typedef struct depckErrorRecord depckErrorRecord_t; 29512 29513 struct depckError { 29514 int er_numEntries; 29515 depckErrorRecord_t *er_theEntries; 29516 }; 29517 29518 typedef struct depckError depckError_t; 29519 29520 typedef int (depcklFunc_t)(char *a_msg, char *a_pkg); 29521 29522 /* 29523 * ignore_values: 29524 * == NULL - record one message for each instance of "name" found 29525 * == "" - record multiple instances 29526 * != "" - record multiple instances if value not in ignore_values 29527 */ 29528 29529 struct depckl_struct { 29530 char *name; 29531 char *ignore_values; 29532 char **err_msg; 29533 depcklFunc_t *depcklFunc; 29534 depckError_t *record; 29535 }; 29536 29537 typedef struct depckl_struct depckl_t; 29538 29539 extern int depchkReportErrors(depckl_t *depckl); 29540 extern void depchkRecordError(depckError_t *a_erc, 29541 char *a_pkginst, char *a_zoneName, 29542 char *a_value); 29543 29544 /* log.c */ 29545 29546 /* types of log messages we recognize */ 29547 typedef enum { 29548 LOG_MSG_ERR, 29549 LOG_MSG_WRN, 29550 LOG_MSG_INFO, 29551 LOG_MSG_DEBUG 29552 } LogMsgType; 29553 29554 /*PRINTFLIKE2*/ 29555 extern void log_msg(LogMsgType, const char *, ...); 29556 extern void log_set_verbose(boolean_t); 29557 extern boolean_t log_get_verbose(void); 29558 29559 /* 29560 * typedef for the 'ckreturn' function 29561 */ 29562 typedef void (ckreturnFunc_t)(int a_retcode); 29563 29564 /* sml.c */ 29565 29566 /* null reference to SML_TAG object */ 29567 29568 29569 29570 /* null reference to SML_TAG * object */ 29571 29572 29573 29574 /* is reference to SML_TAG object valid? */ 29575 29576 29577 29578 /* is indirect reference to SML_TAG object valid? */ 29579 29580 29581 29582 29583 /* definitions for sml passed from pkginstall to pkgcond */ 29584 # 505 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 29585 typedef struct _sml_tag_struct SML_TAG; 29586 typedef struct _sml_parameter_struct SML_PARAM; 29587 29588 struct _sml_tag_struct { 29589 char *name; /* tag name */ 29590 int params_num; /* # params in *params */ 29591 SML_PARAM *params; /* tag parameters */ 29592 int tags_num; /* # subtags in *tags */ 29593 SML_TAG *tags; /* tag subtags */ 29594 }; 29595 29596 struct _sml_parameter_struct { 29597 char *name; /* tag name */ 29598 char *value; /* parameters */ 29599 }; 29600 29601 SML_TAG *smlAddTag(SML_TAG **r_tag, int a_index, 29602 SML_TAG *a_subTag); 29603 boolean_t smlFstatCompareEq(struct stat *statbuf, 29604 SML_TAG *tag, char *path); 29605 char *smlConvertTagToString(SML_TAG *tag); 29606 /*PRINTFLIKE2*/ 29607 void smlDbgPrintTag(SML_TAG *a_tag, char *a_format, ...); 29608 void smlDelTag(SML_TAG *tag, SML_TAG *sub_tag); 29609 void smlDelParam(SML_TAG *tag, char *name); 29610 SML_TAG *smlDup(SML_TAG *tag); 29611 boolean_t smlFindAndDelTag(SML_TAG *tag, char *findTag); 29612 void smlFreeTag(SML_TAG *tag); 29613 char *smlGetElementName(SML_TAG *a_tag); 29614 int smlGetNumParams(SML_TAG *a_tag); 29615 char *smlGetParam(SML_TAG *tag, char *name); 29616 /*PRINTFLIKE2*/ 29617 char *smlGetParamF(SML_TAG *tag, char *format, ...); 29618 void smlGetParam_r(SML_TAG *tag, char *name, char *buf, 29619 int bufLen); 29620 char *smlGetParamByTag(SML_TAG *tag, int index, 29621 char *tagName, char *parmName); 29622 char *smlGetParamByTagParam(SML_TAG *tag, int index, 29623 char *tagName, char *parmName, char *parmValue, 29624 char *parmReturn); 29625 char *smlGetParamName(SML_TAG *tag, int index); 29626 SML_TAG *smlGetTag(SML_TAG *tag, int index); 29627 SML_TAG *smlGetTagByName(SML_TAG *tag, int index, char *name); 29628 SML_TAG *smlGetTagByTagParam(SML_TAG *tag, int index, 29629 char *tagName, char *paramName, char *paramValue); 29630 boolean_t smlGetVerbose(void); 29631 int smlLoadTagFromFile(SML_TAG **r_tag, char *a_fileName); 29632 SML_TAG *smlNewTag(char *name); 29633 boolean_t smlParamEq(SML_TAG *tag, char *findTag, 29634 char *findParam, char *str); 29635 /*PRINTFLIKE4*/ 29636 boolean_t smlParamEqF(SML_TAG *tag, char *findTag, char *findParam, 29637 char *format, ...); 29638 void smlPrintTag(SML_TAG *tag); 29639 int smlReadOneTag(SML_TAG **r_tag, char *a_str); 29640 int smlConvertStringToTag(SML_TAG **r_tag, char *str); 29641 void smlSetFileStatInfo(SML_TAG **tag, 29642 struct stat *statbuf, char *path); 29643 void smlSetParam(SML_TAG *tag, char *name, char *value); 29644 /*PRINTFLIKE3*/ 29645 void smlSetParamF(SML_TAG *tag, char *name, char *format, ...); 29646 void smlSetVerbose(boolean_t a_setting); 29647 int smlWriteTagToFd(SML_TAG *tag, int fd); 29648 int smlWriteTagToFile(SML_TAG *tag, char *filename); 29649 /*PRINTFLIKE3*/ 29650 void sml_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...); 29651 /*PRINTFLIKE1*/ 29652 char *sml_strPrintf(char *a_format, ...); 29653 char *sml_XmlEncodeString(char *a_plainTextString); 29654 char *sml_XmlDecodeString(char *a_xmlEncodedString); 29655 # 53 "sortmap.c" 2 29656 29657 /* libinst/ocfile.c */ 29658 extern int dbchg; 29659 29660 static int client_refer(struct cfextra **ext); 29661 static int server_refer(struct cfextra **ext); 29662 29663 int 29664 sortmap(struct cfextra ***extlist, VFP_T *pkgmapVfp, 29665 PKGserver pkgserver, VFP_T *tmpvfp, char *a_zoneName) 29666 { 29667 int i, n, nparts; 29668 char *db_mrg = "unable to merge package and system information"; 29669 29670 if (a_zoneName == (char *)0) { 29671 echo(gettext("## Processing package information.")); 29672 } else { 29673 echo(gettext("## Processing package information in zone <%s>."), 29674 a_zoneName); 29675 } 29676 29677 /* 29678 * The following instruction puts the client-relative basedir 29679 * into the environment iff it's a relocatable package and 29680 * we're installing to a client. Otherwise, it uses the regular 29681 * basedir. The only reason for this is so that mappath() upon 29682 * finding $BASEDIR in a path will properly resolve it to the 29683 * client-relative path. This way eval_path() can properly 29684 * construct the server-relative path. 29685 */ 29686 if (is_relocatable() && is_an_inst_root()) 29687 putparam("BASEDIR", get_info_basedir()); 29688 29689 /* 29690 * read the pkgmap provided by this package into 29691 * memory; map parameters specified in the pathname 29692 * and sort in memory by pathname 29693 */ 29694 29695 vfpRewind(pkgmapVfp); /* rewind input file */ 29696 29697 *extlist = pkgobjmap(pkgmapVfp, 2, 0); 29698 29699 if (*extlist == 0) { 29700 progerr(gettext("unable to process pkgmap")); 29701 quit(99); 29702 } 29703 29704 /* Make all paths client-relative if necessary. */ 29705 if (is_an_inst_root()) { 29706 (void) client_refer(*extlist); 29707 } 29708 29709 if (a_zoneName == (char *)0) { 29710 echo(gettext("## Processing system information.")); 29711 } else { 29712 echo(gettext("## Processing system information in zone <%s>."), 29713 a_zoneName); 29714 } 29715 29716 /* 29717 * calculate the number of parts in this package 29718 * by locating the entry with the largest "volno" 29719 * associated with it 29720 */ 29721 nparts = 0; 29722 if (is_depend_pkginfo_DB() == B_FALSE) { 29723 for (i = 0; (*extlist)[i]; i++) { 29724 n = (*extlist)[i]->cf_ent.volno; 29725 if (n > nparts) 29726 nparts = n; 29727 } 29728 29729 vfpTruncate(tmpvfp); 29730 29731 dbchg = pkgdbmerg(pkgserver, tmpvfp, *extlist); 29732 if (dbchg < 0) { 29733 progerr(gettext(db_mrg)); 29734 quit(99); 29735 } 29736 } 29737 29738 /* Restore the original BASEDIR. */ 29739 if (is_relocatable() && is_an_inst_root()) 29740 putparam("BASEDIR", get_basedir()); 29741 29742 if (is_an_inst_root()) { 29743 (void) server_refer(*extlist); 29744 } 29745 29746 return (nparts); 29747 } 29748 29749 static int 29750 client_refer(struct cfextra **ext) 29751 { 29752 int count; 29753 29754 for (count = 0; ext[count] != (struct cfextra *)0; count++) { 29755 ext[count]->cf_ent.path = ext[count]->client_path; 29756 ext[count]->cf_ent.ainfo.local = ext[count]->client_local; 29757 } 29758 29759 return (1); 29760 } 29761 29762 static int 29763 server_refer(struct cfextra **ext) 29764 { 29765 int count; 29766 29767 for (count = 0; ext[count] != (struct cfextra *)0; count++) { 29768 ext[count]->cf_ent.path = ext[count]->server_path; 29769 ext[count]->cf_ent.ainfo.local = ext[count]->server_local; 29770 } 29771 29772 return (1); 29773 } 29774