1 2 Linux Standard Base Specification for the IA64 Architecture 3.1 3 4 Copyright © 2000, 2001, 2002, 2003, 2004, 2005 Free Standards 5 Group 6 7 Permission is granted to copy, distribute and/or modify this 8 document under the terms of the GNU Free Documentation 9 License, Version 1.1; with no Invariant Sections, with no 10 Front-Cover Texts, and with no Back-Cover Texts. A copy of the 11 license is included in the section entitled "GNU Free 12 Documentation License". 13 14 Portions of the text are copyrighted by the following parties: 15 16 * The Regents of the University of California 17 * Free Software Foundation 18 * Ian F. Darwin 19 * Paul Vixie 20 * BSDI (now Wind River) 21 * Andrew G Morgan 22 * Jean-loup Gailly and Mark Adler 23 * Massachusetts Institute of Technology 24 25 These excerpts are being used in accordance with their 26 respective licenses. 27 28 Linux is a trademark of Linus Torvalds. 29 30 UNIX a registered trademark of the Open Group in the United 31 States and other countries. 32 33 LSB is a trademark of the Free Standards Group in the USA and 34 other countries. 35 36 AMD is a trademark of Advanced Micro Devices, Inc. 37 38 Intel and Itanium are registered trademarks and Intel386 is a 39 trademarks of Intel Corporation. 40 41 PowerPC and PowerPC Architecture are trademarks of the IBM 42 Corporation. 43 44 OpenGL is a registered trademark of Silicon Graphics, Inc. 45 _________________________________________________________ 46 47 Table of Contents 48 Foreword 49 Introduction 50 I. Introductory Elements 51 52 1. Scope 53 54 1.1. General 55 1.2. Module Specific Scope 56 57 2. References 58 59 2.1. Normative References 60 2.2. Informative References/Bibliography 61 62 3. Requirements 63 64 3.1. Relevant Libraries 65 3.2. LSB Implementation Conformance 66 3.3. LSB Application Conformance 67 68 4. Definitions 69 5. Terminology 70 6. Documentation Conventions 71 72 II. Base Libraries 73 74 7. Libraries 75 76 7.1. Program Interpreter/Dynamic Linker 77 7.2. Interfaces for libc 78 7.3. Data Definitions for libc 79 7.4. Interfaces for libm 80 7.5. Data Definitions for libm 81 7.6. Interfaces for libpthread 82 7.7. Data Definitions for libpthread 83 7.8. Interfaces for libgcc_s 84 7.9. Data Definitions for libgcc_s 85 7.10. Interface Definitions for libgcc_s 86 7.11. Interfaces for libdl 87 7.12. Data Definitions for libdl 88 7.13. Interfaces for libcrypt 89 90 III. Utility Libraries 91 92 8. Libraries 93 94 8.1. Interfaces for libz 95 8.2. Data Definitions for libz 96 8.3. Interfaces for libncurses 97 8.4. Data Definitions for libncurses 98 8.5. Interfaces for libutil 99 100 A. GNU Free Documentation License (Informative) 101 102 A.1. PREAMBLE 103 A.2. APPLICABILITY AND DEFINITIONS 104 A.3. VERBATIM COPYING 105 A.4. COPYING IN QUANTITY 106 A.5. MODIFICATIONS 107 A.6. COMBINING DOCUMENTS 108 A.7. COLLECTIONS OF DOCUMENTS 109 A.8. AGGREGATION WITH INDEPENDENT WORKS 110 A.9. TRANSLATION 111 A.10. TERMINATION 112 A.11. FUTURE REVISIONS OF THIS LICENSE 113 A.12. How to use this License for your documents 114 115 List of Tables 116 2-1. Normative References 117 2-2. Other References 118 3-1. Standard Library Names 119 7-1. libc Definition 120 7-2. libc - RPC Function Interfaces 121 7-3. libc - System Calls Function Interfaces 122 7-4. libc - Standard I/O Function Interfaces 123 7-5. libc - Standard I/O Data Interfaces 124 7-6. libc - Signal Handling Function Interfaces 125 7-7. libc - Signal Handling Data Interfaces 126 7-8. libc - Localization Functions Function Interfaces 127 7-9. libc - Localization Functions Data Interfaces 128 7-10. libc - Socket Interface Function Interfaces 129 7-11. libc - Wide Characters Function Interfaces 130 7-12. libc - String Functions Function Interfaces 131 7-13. libc - IPC Functions Function Interfaces 132 7-14. libc - Regular Expressions Function Interfaces 133 7-15. libc - Character Type Functions Function Interfaces 134 7-16. libc - Time Manipulation Function Interfaces 135 7-17. libc - Time Manipulation Data Interfaces 136 7-18. libc - Terminal Interface Functions Function Interfaces 137 7-19. libc - System Database Interface Function Interfaces 138 7-20. libc - Language Support Function Interfaces 139 7-21. libc - Large File Support Function Interfaces 140 7-22. libc - Standard Library Function Interfaces 141 7-23. libc - Standard Library Data Interfaces 142 7-24. libm Definition 143 7-25. libm - Math Function Interfaces 144 7-26. libm - Math Data Interfaces 145 7-27. libpthread Definition 146 7-28. libpthread - Realtime Threads Function Interfaces 147 7-29. libpthread - Posix Threads Function Interfaces 148 7-30. libpthread - Thread aware versions of libc interfaces 149 Function Interfaces 150 151 7-31. libgcc_s Definition 152 7-32. libgcc_s - Unwind Library Function Interfaces 153 7-33. libdl Definition 154 7-34. libdl - Dynamic Loader Function Interfaces 155 7-35. libcrypt Definition 156 7-36. libcrypt - Encryption Function Interfaces 157 8-1. libz Definition 158 8-2. libncurses Definition 159 8-3. libutil Definition 160 8-4. libutil - Utility Functions Function Interfaces 161 _________________________________________________________ 162 163 Foreword 164 165 This is version 3.1 of the Linux Standard Base Specification 166 for the IA64 Architecture. This specification is part of a 167 family of specifications under the general title "Linux 168 Standard Base". Developers of applications or implementations 169 interested in using the LSB trademark should see the Free 170 Standards Group Certification Policy for details. 171 _________________________________________________________ 172 173 Introduction 174 175 The LSB defines a binary interface for application programs 176 that are compiled and packaged for LSB-conforming 177 implementations on many different hardware architectures. 178 Since a binary specification shall include information 179 specific to the computer processor architecture for which it 180 is intended, it is not possible for a single document to 181 specify the interface for all possible LSB-conforming 182 implementations. Therefore, the LSB is a family of 183 specifications, rather than a single one. 184 185 This document should be used in conjunction with the documents 186 it references. This document enumerates the system components 187 it includes, but descriptions of those components may be 188 included entirely or partly in this document, partly in other 189 documents, or entirely in other reference documents. For 190 example, the section that describes system service routines 191 includes a list of the system routines supported in this 192 interface, formal declarations of the data structures they use 193 that are visible to applications, and a pointer to the 194 underlying referenced specification for information about the 195 syntax and semantics of each call. Only those routines not 196 described in standards referenced by this document, or 197 extensions to those standards, are described in the detail. 198 Information referenced in this way is as much a part of this 199 document as is the information explicitly included here. 200 201 The specification carries a version number of either the form 202 x.y or x.y.z. This version number carries the following 203 meaning: 204 205 * The first number (x) is the major version number. All 206 versions with the same major version number should share 207 binary compatibility. Any addition or deletion of a new 208 library results in a new version number. Interfaces marked 209 as deprecated may be removed from the specification at a 210 major version change. 211 * The second number (y) is the minor version number. 212 Individual interfaces may be added if all certified 213 implementations already had that (previously undocumented) 214 interface. Interfaces may be marked as deprecated at a 215 minor version change. Other minor changes may be permitted 216 at the discretion of the LSB workgroup. 217 * The third number (z), if present, is the editorial level. 218 Only editorial changes should be included in such 219 versions. 220 221 Since this specification is a descriptive Application Binary 222 Interface, and not a source level API specification, it is not 223 possible to make a guarantee of 100% backward compatibility 224 between major releases. However, it is the intent that those 225 parts of the binary interface that are visible in the source 226 level API will remain backward compatible from version to 227 version, except where a feature marked as "Deprecated" in one 228 release may be removed from a future release. 229 230 Implementors are strongly encouraged to make use of symbol 231 versioning to permit simultaneous support of applications 232 conforming to different releases of this specification. 233 234 I. Introductory Elements 235 236 Table of Contents 237 1. Scope 238 239 1.1. General 240 1.2. Module Specific Scope 241 242 2. References 243 244 2.1. Normative References 245 2.2. Informative References/Bibliography 246 247 3. Requirements 248 249 3.1. Relevant Libraries 250 3.2. LSB Implementation Conformance 251 3.3. LSB Application Conformance 252 253 4. Definitions 254 5. Terminology 255 6. Documentation Conventions 256 _________________________________________________________ 257 258 Chapter 1. Scope 259 260 1.1. General 261 262 The Linux Standard Base (LSB) defines a system interface for 263 compiled applications and a minimal environment for support of 264 installation scripts. Its purpose is to enable a uniform 265 industry standard environment for high-volume applications 266 conforming to the LSB. 267 268 These specifications are composed of two basic parts: A common 269 specification ("LSB-generic" or "generic LSB") describing 270 those parts of the interface that remain constant across all 271 implementations of the LSB, and an architecture-specific 272 supplement ("LSB-arch" or "archLSB") describing the parts of 273 the interface that vary by processor architecture. Together, 274 the LSB-generic and the architecture-specific supplement for a 275 single hardware architecture provide a complete interface 276 specification for compiled application programs on systems 277 that share a common hardware architecture. 278 279 The LSB-generic document shall be used in conjunction with an 280 architecture-specific supplement. Whenever a section of the 281 LSB-generic specification shall be supplemented by 282 architecture-specific information, the LSB-generic document 283 includes a reference to the architecture supplement. 284 Architecture supplements may also contain additional 285 information that is not referenced in the LSB-generic 286 document. 287 288 The LSB contains both a set of Application Program Interfaces 289 (APIs) and Application Binary Interfaces (ABIs). APIs may 290 appear in the source code of portable applications, while the 291 compiled binary of that application may use the larger set of 292 ABIs. A conforming implementation shall provide all of the 293 ABIs listed here. The compilation system may replace (e.g. by 294 macro definition) certain APIs with calls to one or more of 295 the underlying binary interfaces, and may insert calls to 296 binary interfaces as needed. 297 298 The LSB is primarily a binary interface definition. Not all of 299 the source level APIs available to applications may be 300 contained in this specification. 301 _________________________________________________________ 302 303 1.2. Module Specific Scope 304 305 This is the Itanium architecture specific Core module of the 306 Linux Standards Base (LSB). This module supplements the 307 generic LSB Core module with those interfaces that differ 308 between architectures. 309 310 Interfaces described in this module are mandatory except where 311 explicitly listed otherwise. Core interfaces may be 312 supplemented by other modules; all modules are built upon the 313 core. 314 _________________________________________________________ 315 316 Chapter 2. References 317 318 2.1. Normative References 319 320 The following referenced documents are indispensable for the 321 application of this document. For dated references, only the 322 edition cited applies. For undated references, the latest 323 edition of the referenced document (including any amendments) 324 applies. 325 326 Note: Where copies of a document are available on the World 327 Wide Web, a Uniform Resource Locator (URL) is given for 328 informative purposes only. This may point to a more recent 329 copy of the referenced specification, or may be out of 330 date. Reference copies of specifications at the revision 331 level indicated may be found at the Free Standards Group's 332 Reference Specifications site. 333 334 Table 2-1. Normative References 335 Name Title URL 336 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 337 (FHS) 2.3 http://www.pathname.com/fhs/ 338 IEC 60559/IEEE 754 Floating Point IEC 60559:1989 Binary 339 floating-point arithmetic for microprocessor systems 340 http://www.ieee.org/ 341 Intel® Itanium (TM) Processor-specific Application Binary 342 Interface Intel® Itanium (TM) Processor-specific Application 343 Binary Interface 344 http://refspecs.freestandards.org/elf/IA64-SysV-psABI.pdf 345 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 346 ISO POSIX (2003) 347 348 ISO/IEC 9945-1:2003 Information technology -- Portable 349 Operating System Interface (POSIX) -- Part 1: Base Definitions 350 351 ISO/IEC 9945-2:2003 Information technology -- Portable 352 Operating System Interface (POSIX) -- Part 2: System 353 Interfaces 354 355 ISO/IEC 9945-3:2003 Information technology -- Portable 356 Operating System Interface (POSIX) -- Part 3: Shell and 357 Utilities 358 359 ISO/IEC 9945-4:2003 Information technology -- Portable 360 Operating System Interface (POSIX) -- Part 4: Rationale 361 362 Including Technical Cor. 1: 2004 363 http://www.unix.org/version3/ 364 Itanium (TM) Architecture Software Developer's Manual Volume 1 365 Itanium (TM) Architecture Software Developer's Manual Volume 366 1: Application Architecture 367 http://refspecs.freestandards.org/IA64-softdevman-vol1.pdf 368 Itanium (TM) Architecture Software Developer's Manual Volume 2 369 Itanium (TM) Architecture Software Developer's Manual Volume 370 2: System Architecture 371 http://refspecs.freestandards.org/IA64-softdevman-vol2.pdf 372 Itanium (TM) Architecture Software Developer's Manual Volume 3 373 Itanium (TM) Architecture Software Developer's Manual Volume 374 3: Instruction Set Reference 375 http://refspecs.freestandards.org/IA64-softdevman-vol3.pdf 376 Itanium (TM) Architecture Software Developer's Manual Volume 4 377 IA-64 Processor Reference: Intel® Itanium (TM) Processor 378 Reference Manual for Software Development 379 http://refspecs.freestandards.org/IA64-softdevman-vol4.pdf 380 Itanium (TM) Software Conventions and Runtime Guide Itanium 381 (TM) Software Conventions & Runtime Architecture Guide, 382 September 2000 383 http://refspecs.freestandards.org/IA64conventions.pdf 384 Large File Support Large File Support 385 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 386 SUSv2 CAE Specification, January 1997, System Interfaces and 387 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 388 http://www.opengroup.org/publications/catalog/un.htm 389 SUSv2 Commands and Utilities The Single UNIX® 390 Specification(SUS) Version 2, Commands and Utilities (XCU), 391 Issue 5 (ISBN: 1-85912-191-8, C604) 392 http://www.opengroup.org/publications/catalog/un.htm 393 SVID Issue 3 American Telephone and Telegraph Company, System 394 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 395 1989.(ISBN 0201566524) 396 SVID Issue 4 System V Interface Definition,Fourth Edition 397 System V ABI System V Application Binary Interface, Edition 398 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 399 System V ABI Update System V Application Binary Interface - 400 DRAFT - 17 December 2003 401 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 402 l 403 X/Open Curses CAE Specification, May 1996, X/Open Curses, 404 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 405 Corrigendum U018 406 http://www.opengroup.org/publications/catalog/un.htm 407 _________________________________________________________ 408 409 2.2. Informative References/Bibliography 410 411 In addition, the specifications listed below provide essential 412 background information to implementors of this specification. 413 These references are included for information only. 414 415 Table 2-2. Other References 416 Name Title URL 417 DWARF Debugging Information Format, Revision 2.0.0 DWARF 418 Debugging Information Format, Revision 2.0.0 (July 27, 1993) 419 http://refspecs.freestandards.org/dwarf/dwarf-2.0.0.pdf 420 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 421 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 422 http://refspecs.freestandards.org/dwarf/ 423 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 424 Specification method for cultural conventions 425 ITU-T V.42 International Telecommunication Union 426 Recommendation V.42 (2002): Error-correcting procedures for 427 DCEs using asynchronous-to-synchronous conversionITUV 428 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 429 parent=T-REC-V.42 430 Li18nux Globalization Specification LI18NUX 2000 Globalization 431 Specification, Version 1.0 with Amendment 4 432 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 433 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 434 http://www.lanana.org/docs/device-list/devices.txt 435 PAM Open Software Foundation, Request For Comments: 86.0 , 436 October 1995, V. Samar & R.Schemers (SunSoft) 437 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 438 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 439 MD5 Message-Digest Algorithm 440 http://www.ietf.org/rfc/rfc1321.txt 441 RFC 1831/1832 RPC & XDR IETF RFC 1831 & 1832 442 http://www.ietf.org/ 443 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 444 1833: Binding Protocols for ONC RPC Version 2 445 http://www.ietf.org/rfc/rfc1833.txt 446 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 447 1950: ZLIB Compressed Data Format Specification 448 http://www.ietf.org/rfc/rfc1950.txt 449 RFC 1951: DEFLATE Compressed Data Format Specification IETF 450 RFC 1951: DEFLATE Compressed Data Format Specification version 451 1.3 http://www.ietf.org/rfc/rfc1951.txt 452 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 453 file format specification version 4.3 454 http://www.ietf.org/rfc/rfc1952.txt 455 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 456 Message Format http://www.ietf.org/rfc/rfc2440.txt 457 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 458 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 459 RFC 2822:Internet Message Format IETF RFC 2822: Internet 460 Message Format http://www.ietf.org/rfc/rfc2822.txt 461 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 462 Specification http://www.ietf.org/rfc/rfc791.txt 463 RPM Package Format RPM Package Format V3.0 464 http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format. 465 html 466 zlib Manual zlib 1.2 Manual http://www.gzip.org/zlib/ 467 _________________________________________________________ 468 469 Chapter 3. Requirements 470 471 3.1. Relevant Libraries 472 473 The libraries listed in Table 3-1 shall be available on IA64 474 Linux Standard Base systems, with the specified runtime names. 475 These names override or supplement the names specified in the 476 generic LSB specification. The specified program interpreter, 477 referred to as proginterp in this table, shall be used to load 478 the shared libraries specified by DT_NEEDED entries at run 479 time. 480 481 Table 3-1. Standard Library Names 482 Library Runtime Name 483 libm libm.so.6.1 484 libdl libdl.so.2 485 libcrypt libcrypt.so.1 486 libz libz.so.1 487 libncurses libncurses.so.5 488 libutil libutil.so.1 489 libc libc.so.6.1 490 libpthread libpthread.so.0 491 proginterp /lib/ld-lsb-ia64.so.3 492 libgcc_s libgcc_s.so.1 493 494 These libraries will be in an implementation-defined directory 495 which the dynamic linker shall search by default. 496 _________________________________________________________ 497 498 3.2. LSB Implementation Conformance 499 500 A conforming implementation is necessarily architecture 501 specific, and must provide the interfaces specified by both 502 the generic LSB Core specification and its relevant 503 architecture specific supplement. 504 505 Rationale: An implementation must provide at least the 506 interfaces specified in these specifications. It may also 507 provide additional interfaces. 508 509 A conforming implementation shall satisfy the following 510 requirements: 511 512 * A processor architecture represents a family of related 513 processors which may not have identical feature sets. The 514 architecture specific supplement to this specification for 515 a given target processor architecture describes a minimum 516 acceptable processor. The implementation shall provide all 517 features of this processor, whether in hardware or through 518 emulation transparent to the application. 519 * The implementation shall be capable of executing compiled 520 applications having the format and using the system 521 interfaces described in this document. 522 * The implementation shall provide libraries containing the 523 interfaces specified by this document, and shall provide a 524 dynamic linking mechanism that allows these interfaces to 525 be attached to applications at runtime. All the interfaces 526 shall behave as specified in this document. 527 * The map of virtual memory provided by the implementation 528 shall conform to the requirements of this document. 529 * The implementation's low-level behavior with respect to 530 function call linkage, system traps, signals, and other 531 such activities shall conform to the formats described in 532 this document. 533 * The implementation shall provide all of the mandatory 534 interfaces in their entirety. 535 * The implementation may provide one or more of the optional 536 interfaces. Each optional interface that is provided shall 537 be provided in its entirety. The product documentation 538 shall state which optional interfaces are provided. 539 * The implementation shall provide all files and utilities 540 specified as part of this document in the format defined 541 here and in other referenced documents. All commands and 542 utilities shall behave as required by this document. The 543 implementation shall also provide all mandatory components 544 of an application's runtime environment that are included 545 or referenced in this document. 546 * The implementation, when provided with standard data 547 formats and values at a named interface, shall provide the 548 behavior defined for those values and data formats at that 549 interface. However, a conforming implementation may 550 consist of components which are separately packaged and/or 551 sold. For example, a vendor of a conforming implementation 552 might sell the hardware, operating system, and windowing 553 system as separately packaged items. 554 * The implementation may provide additional interfaces with 555 different names. It may also provide additional behavior 556 corresponding to data values outside the standard ranges, 557 for standard named interfaces. 558 _________________________________________________________ 559 560 3.3. LSB Application Conformance 561 562 A conforming application is necessarily architecture specific, 563 and must conform to both the generic LSB Core specification 564 and its relevant architecture specific supplement. 565 566 A conforming application shall satisfy the following 567 requirements: 568 569 * Its executable files shall be either shell scripts or 570 object files in the format defined for the Object File 571 Format system interface. 572 * Its object files shall participate in dynamic linking as 573 defined in the Program Loading and Linking System 574 interface. 575 * It shall employ only the instructions, traps, and other 576 low-level facilities defined in the Low-Level System 577 interface as being for use by applications. 578 * If it requires any optional interface defined in this 579 document in order to be installed or to execute 580 successfully, the requirement for that optional interface 581 shall be stated in the application's documentation. 582 * It shall not use any interface or data format that is not 583 required to be provided by a conforming implementation, 584 unless: 585 + If such an interface or data format is supplied by 586 another application through direct invocation of that 587 application during execution, that application shall 588 be in turn an LSB conforming application. 589 + The use of that interface or data format, as well as 590 its source, shall be identified in the documentation 591 of the application. 592 * It shall not use any values for a named interface that are 593 reserved for vendor extensions. 594 595 A strictly conforming application shall not require or use any 596 interface, facility, or implementation-defined extension that 597 is not defined in this document in order to be installed or to 598 execute successfully. 599 _________________________________________________________ 600 601 Chapter 4. Definitions 602 603 For the purposes of this document, the following definitions, 604 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 605 Edition, apply: 606 607 can 608 609 be able to; there is a possibility of; it is possible to 610 cannot 611 612 be unable to; there is no possibilty of; it is not possible to 613 may 614 615 is permitted; is allowed; is permissible 616 need not 617 618 it is not required that; no...is required 619 shall 620 621 is to; is required to; it is required that; has to; only...is 622 permitted; it is necessary 623 shall not 624 625 is not allowed [permitted] [acceptable] [permissible]; is 626 required to be not; is required that...be not; is not to be 627 should 628 629 it is recommended that; ought to 630 should not 631 632 it is not recommended that; ought not to 633 _________________________________________________________ 634 635 Chapter 5. Terminology 636 637 For the purposes of this document, the following terms apply: 638 639 archLSB 640 The architectural part of the LSB Specification which 641 describes the specific parts of the interface that are 642 platform specific. The archLSB is complementary to the 643 gLSB. 644 645 Binary Standard 646 The total set of interfaces that are available to be 647 used in the compiled binary code of a conforming 648 application. 649 650 gLSB 651 The common part of the LSB Specification that describes 652 those parts of the interface that remain constant 653 across all hardware implementations of the LSB. 654 655 implementation-defined 656 Describes a value or behavior that is not defined by 657 this document but is selected by an implementor. The 658 value or behavior may vary among implementations that 659 conform to this document. An application should not 660 rely on the existence of the value or behavior. An 661 application that relies on such a value or behavior 662 cannot be assured to be portable across conforming 663 implementations. The implementor shall document such a 664 value or behavior so that it can be used correctly by 665 an application. 666 667 Shell Script 668 A file that is read by an interpreter (e.g., awk). The 669 first line of the shell script includes a reference to 670 its interpreter binary. 671 672 Source Standard 673 The set of interfaces that are available to be used in 674 the source code of a conforming application. 675 676 undefined 677 Describes the nature of a value or behavior not defined 678 by this document which results from use of an invalid 679 program construct or invalid data input. The value or 680 behavior may vary among implementations that conform to 681 this document. An application should not rely on the 682 existence or validity of the value or behavior. An 683 application that relies on any particular value or 684 behavior cannot be assured to be portable across 685 conforming implementations. 686 687 unspecified 688 Describes the nature of a value or behavior not 689 specified by this document which results from use of a 690 valid program construct or valid data input. The value 691 or behavior may vary among implementations that conform 692 to this document. An application should not rely on the 693 existence or validity of the value or behavior. An 694 application that relies on any particular value or 695 behavior cannot be assured to be portable across 696 conforming implementations. 697 698 Other terms and definitions used in this document shall have 699 the same meaning as defined in Chapter 3 of the Base 700 Definitions volume of ISO POSIX (2003). 701 _________________________________________________________ 702 703 Chapter 6. Documentation Conventions 704 705 Throughout this document, the following typographic 706 conventions are used: 707 708 function() 709 710 the name of a function 711 command 712 713 the name of a command or utility 714 CONSTANT 715 716 a constant value 717 parameter 718 719 a parameter 720 variable 721 722 a variable 723 724 Throughout this specification, several tables of interfaces 725 are presented. Each entry in these tables has the following 726 format: 727 728 name 729 730 the name of the interface 731 (symver) 732 733 An optional symbol version identifier, if required. 734 [refno] 735 736 A reference number indexing the table of referenced 737 specifications that follows this table. 738 739 For example, 740 741 forkpty(GLIBC_2.0) [SUSv3] 742 743 refers to the interface named forkpty() with symbol version 744 GLIBC_2.0 that is defined in the SUSv3 reference. 745 746 Note: Symbol versions are defined in the architecture 747 specific supplements only. 748 749 II. Base Libraries 750 751 Table of Contents 752 7. Libraries 753 754 7.1. Program Interpreter/Dynamic Linker 755 7.2. Interfaces for libc 756 757 7.2.1. RPC 758 7.2.2. System Calls 759 7.2.3. Standard I/O 760 7.2.4. Signal Handling 761 7.2.5. Localization Functions 762 7.2.6. Socket Interface 763 7.2.7. Wide Characters 764 7.2.8. String Functions 765 7.2.9. IPC Functions 766 7.2.10. Regular Expressions 767 7.2.11. Character Type Functions 768 7.2.12. Time Manipulation 769 7.2.13. Terminal Interface Functions 770 7.2.14. System Database Interface 771 7.2.15. Language Support 772 7.2.16. Large File Support 773 7.2.17. Standard Library 774 775 7.3. Data Definitions for libc 776 777 7.3.1. arpa/inet.h 778 7.3.2. assert.h 779 7.3.3. ctype.h 780 7.3.4. dirent.h 781 7.3.5. err.h 782 7.3.6. errno.h 783 7.3.7. fcntl.h 784 7.3.8. fmtmsg.h 785 7.3.9. fnmatch.h 786 7.3.10. ftw.h 787 7.3.11. getopt.h 788 7.3.12. glob.h 789 7.3.13. grp.h 790 7.3.14. iconv.h 791 7.3.15. inttypes.h 792 7.3.16. langinfo.h 793 7.3.17. libgen.h 794 7.3.18. libintl.h 795 7.3.19. limits.h 796 7.3.20. locale.h 797 7.3.21. monetary.h 798 7.3.22. net/if.h 799 7.3.23. netdb.h 800 7.3.24. netinet/in.h 801 7.3.25. netinet/ip.h 802 7.3.26. netinet/tcp.h 803 7.3.27. netinet/udp.h 804 7.3.28. nl_types.h 805 7.3.29. poll.h 806 7.3.30. pty.h 807 7.3.31. pwd.h 808 7.3.32. regex.h 809 7.3.33. rpc/auth.h 810 7.3.34. rpc/clnt.h 811 7.3.35. rpc/pmap_clnt.h 812 7.3.36. rpc/rpc_msg.h 813 7.3.37. rpc/svc.h 814 7.3.38. rpc/types.h 815 7.3.39. rpc/xdr.h 816 7.3.40. sched.h 817 7.3.41. search.h 818 7.3.42. setjmp.h 819 7.3.43. signal.h 820 7.3.44. stddef.h 821 7.3.45. stdio.h 822 7.3.46. stdlib.h 823 7.3.47. string.h 824 7.3.48. sys/file.h 825 7.3.49. sys/ioctl.h 826 7.3.50. sys/ipc.h 827 7.3.51. sys/mman.h 828 7.3.52. sys/msg.h 829 7.3.53. sys/param.h 830 7.3.54. sys/poll.h 831 7.3.55. sys/resource.h 832 7.3.56. sys/sem.h 833 7.3.57. sys/shm.h 834 7.3.58. sys/socket.h 835 7.3.59. sys/stat.h 836 7.3.60. sys/statvfs.h 837 7.3.61. sys/time.h 838 7.3.62. sys/timeb.h 839 7.3.63. sys/times.h 840 7.3.64. sys/types.h 841 7.3.65. sys/uio.h 842 7.3.66. sys/un.h 843 7.3.67. sys/utsname.h 844 7.3.68. sys/wait.h 845 7.3.69. syslog.h 846 7.3.70. termios.h 847 7.3.71. time.h 848 7.3.72. ucontext.h 849 7.3.73. ulimit.h 850 7.3.74. unistd.h 851 7.3.75. utime.h 852 7.3.76. utmp.h 853 7.3.77. utmpx.h 854 7.3.78. wchar.h 855 7.3.79. wctype.h 856 7.3.80. wordexp.h 857 858 7.4. Interfaces for libm 859 860 7.4.1. Math 861 862 7.5. Data Definitions for libm 863 864 7.5.1. complex.h 865 7.5.2. fenv.h 866 7.5.3. math.h 867 868 7.6. Interfaces for libpthread 869 870 7.6.1. Realtime Threads 871 7.6.2. Advanced Realtime Threads 872 7.6.3. Posix Threads 873 7.6.4. Thread aware versions of libc interfaces 874 875 7.7. Data Definitions for libpthread 876 877 7.7.1. pthread.h 878 7.7.2. semaphore.h 879 880 7.8. Interfaces for libgcc_s 881 882 7.8.1. Unwind Library 883 884 7.9. Data Definitions for libgcc_s 885 886 7.9.1. unwind.h 887 888 7.10. Interface Definitions for libgcc_s 889 890 _Unwind_DeleteException -- private C++ error 891 handling method 892 893 _Unwind_ForcedUnwind -- private C++ error handling 894 method 895 896 _Unwind_GetGR -- private C++ error handling method 897 _Unwind_GetIP -- private C++ error handling method 898 _Unwind_GetLanguageSpecificData -- private C++ 899 error handling method 900 901 _Unwind_GetRegionStart -- private C++ error 902 handling method 903 904 _Unwind_RaiseException -- private C++ error 905 handling method 906 907 _Unwind_Resume -- private C++ error handling method 908 _Unwind_SetGR -- private C++ error handling method 909 _Unwind_SetIP -- private C++ error handling method 910 911 7.11. Interfaces for libdl 912 913 7.11.1. Dynamic Loader 914 915 7.12. Data Definitions for libdl 916 917 7.12.1. dlfcn.h 918 919 7.13. Interfaces for libcrypt 920 921 7.13.1. Encryption 922 _________________________________________________________ 923 924 Chapter 7. Libraries 925 926 An LSB-conforming implementation shall support base libraries 927 which provide interfaces for accessing the operating system, 928 processor and other hardware in the system. 929 930 Only those interfaces that are unique to the Itanium(TM) 931 platform are defined here. This section should be used in 932 conjunction with the corresponding section in the Linux 933 Standard Base Specification. 934 _________________________________________________________ 935 936 7.1. Program Interpreter/Dynamic Linker 937 938 The Program Interpreter shall be /lib/ld-lsb-ia64.so.3. 939 _________________________________________________________ 940 941 7.2. Interfaces for libc 942 943 Table 7-1 defines the library name and shared object name for 944 the libc library 945 946 Table 7-1. libc Definition 947 Library: libc 948 SONAME: libc.so.6.1 949 950 The behavior of the interfaces in this library is specified by 951 the following specifications: 952 953 [LFS] Large File Support 954 [LSB] This Specification 955 [SUSv2] SUSv2 956 [SUSv3] ISO POSIX (2003) 957 [SVID.3] SVID Issue 3 958 [SVID.4] SVID Issue 4 959 _________________________________________________________ 960 961 7.2.1. RPC 962 _________________________________________________________ 963 964 7.2.1.1. Interfaces for RPC 965 966 An LSB conforming implementation shall provide the 967 architecture specific functions for RPC specified in Table 968 7-2, with the full mandatory functionality as described in the 969 referenced underlying specification. 970 971 Table 7-2. libc - RPC Function Interfaces 972 authnone_create(GLIBC_2.2) [SVID.4] clnt_create(GLIBC_2.2) 973 [SVID.4] clnt_pcreateerror(GLIBC_2.2) [SVID.4] 974 clnt_perrno(GLIBC_2.2) [SVID.4] 975 clnt_perror(GLIBC_2.2) [SVID.4] clnt_spcreateerror(GLIBC_2.2) 976 [SVID.4] clnt_sperrno(GLIBC_2.2) [SVID.4] 977 clnt_sperror(GLIBC_2.2) [SVID.4] 978 key_decryptsession(GLIBC_2.2) [SVID.3] pmap_getport(GLIBC_2.2) 979 [LSB] pmap_set(GLIBC_2.2) [LSB] pmap_unset(GLIBC_2.2) [LSB] 980 svc_getreqset(GLIBC_2.2) [SVID.3] svc_register(GLIBC_2.2) 981 [LSB] svc_run(GLIBC_2.2) [LSB] svc_sendreply(GLIBC_2.2) [LSB] 982 svcerr_auth(GLIBC_2.2) [SVID.3] svcerr_decode(GLIBC_2.2) 983 [SVID.3] svcerr_noproc(GLIBC_2.2) [SVID.3] 984 svcerr_noprog(GLIBC_2.2) [SVID.3] 985 svcerr_progvers(GLIBC_2.2) [SVID.3] 986 svcerr_systemerr(GLIBC_2.2) [SVID.3] 987 svcerr_weakauth(GLIBC_2.2) [SVID.3] svctcp_create(GLIBC_2.2) 988 [LSB] 989 svcudp_create(GLIBC_2.2) [LSB] xdr_accepted_reply(GLIBC_2.2) 990 [SVID.3] xdr_array(GLIBC_2.2) [SVID.3] xdr_bool(GLIBC_2.2) 991 [SVID.3] 992 xdr_bytes(GLIBC_2.2) [SVID.3] xdr_callhdr(GLIBC_2.2) [SVID.3] 993 xdr_callmsg(GLIBC_2.2) [SVID.3] xdr_char(GLIBC_2.2) [SVID.3] 994 xdr_double(GLIBC_2.2) [SVID.3] xdr_enum(GLIBC_2.2) [SVID.3] 995 xdr_float(GLIBC_2.2) [SVID.3] xdr_free(GLIBC_2.2) [SVID.3] 996 xdr_int(GLIBC_2.2) [SVID.3] xdr_long(GLIBC_2.2) [SVID.3] 997 xdr_opaque(GLIBC_2.2) [SVID.3] xdr_opaque_auth(GLIBC_2.2) 998 [SVID.3] 999 xdr_pointer(GLIBC_2.2) [SVID.3] xdr_reference(GLIBC_2.2) 1000 [SVID.3] xdr_rejected_reply(GLIBC_2.2) [SVID.3] 1001 xdr_replymsg(GLIBC_2.2) [SVID.3] 1002 xdr_short(GLIBC_2.2) [SVID.3] xdr_string(GLIBC_2.2) [SVID.3] 1003 xdr_u_char(GLIBC_2.2) [SVID.3] xdr_u_int(GLIBC_2.2) [LSB] 1004 xdr_u_long(GLIBC_2.2) [SVID.3] xdr_u_short(GLIBC_2.2) [SVID.3] 1005 xdr_union(GLIBC_2.2) [SVID.3] xdr_vector(GLIBC_2.2) [SVID.3] 1006 xdr_void(GLIBC_2.2) [SVID.3] xdr_wrapstring(GLIBC_2.2) 1007 [SVID.3] xdrmem_create(GLIBC_2.2) [SVID.3] 1008 xdrrec_create(GLIBC_2.2) [SVID.3] 1009 xdrrec_eof(GLIBC_2.2) [SVID.3] 1010 _________________________________________________________ 1011 1012 7.2.2. System Calls 1013 _________________________________________________________ 1014 1015 7.2.2.1. Interfaces for System Calls 1016 1017 An LSB conforming implementation shall provide the 1018 architecture specific functions for System Calls specified in 1019 Table 7-3, with the full mandatory functionality as described 1020 in the referenced underlying specification. 1021 1022 Table 7-3. libc - System Calls Function Interfaces 1023 __fxstat(GLIBC_2.2) [LSB] __getpgid(GLIBC_2.2) [LSB] 1024 __lxstat(GLIBC_2.2) [LSB] __xmknod(GLIBC_2.2) [LSB] 1025 __xstat(GLIBC_2.2) [LSB] access(GLIBC_2.2) [SUSv3] 1026 acct(GLIBC_2.2) [LSB] alarm(GLIBC_2.2) [SUSv3] 1027 brk(GLIBC_2.2) [SUSv2] chdir(GLIBC_2.2) [SUSv3] 1028 chmod(GLIBC_2.2) [SUSv3] chown(GLIBC_2.2) [SUSv3] 1029 chroot(GLIBC_2.2) [SUSv2] clock(GLIBC_2.2) [SUSv3] 1030 close(GLIBC_2.2) [SUSv3] closedir(GLIBC_2.2) [SUSv3] 1031 creat(GLIBC_2.2) [SUSv3] dup(GLIBC_2.2) [SUSv3] 1032 dup2(GLIBC_2.2) [SUSv3] execl(GLIBC_2.2) [SUSv3] 1033 execle(GLIBC_2.2) [SUSv3] execlp(GLIBC_2.2) [SUSv3] 1034 execv(GLIBC_2.2) [SUSv3] execve(GLIBC_2.2) [SUSv3] 1035 execvp(GLIBC_2.2) [SUSv3] exit(GLIBC_2.2) [SUSv3] 1036 fchdir(GLIBC_2.2) [SUSv3] fchmod(GLIBC_2.2) [SUSv3] 1037 fchown(GLIBC_2.2) [SUSv3] fcntl(GLIBC_2.2) [LSB] 1038 fdatasync(GLIBC_2.2) [SUSv3] flock(GLIBC_2.2) [LSB] 1039 fork(GLIBC_2.2) [SUSv3] fstatvfs(GLIBC_2.2) [SUSv3] 1040 fsync(GLIBC_2.2) [SUSv3] ftime(GLIBC_2.2) [SUSv3] 1041 ftruncate(GLIBC_2.2) [SUSv3] getcontext(GLIBC_2.2) [SUSv3] 1042 getegid(GLIBC_2.2) [SUSv3] geteuid(GLIBC_2.2) [SUSv3] 1043 getgid(GLIBC_2.2) [SUSv3] getgroups(GLIBC_2.2) [SUSv3] 1044 getitimer(GLIBC_2.2) [SUSv3] getloadavg(GLIBC_2.2) [LSB] 1045 getpagesize(GLIBC_2.2) [SUSv2] getpgid(GLIBC_2.2) [SUSv3] 1046 getpgrp(GLIBC_2.2) [SUSv3] getpid(GLIBC_2.2) [SUSv3] 1047 getppid(GLIBC_2.2) [SUSv3] getpriority(GLIBC_2.2) [SUSv3] 1048 getrlimit(GLIBC_2.2) [SUSv3] getrusage(GLIBC_2.2) [SUSv3] 1049 getsid(GLIBC_2.2) [SUSv3] getuid(GLIBC_2.2) [SUSv3] 1050 getwd(GLIBC_2.2) [SUSv3] initgroups(GLIBC_2.2) [LSB] 1051 ioctl(GLIBC_2.2) [LSB] kill(GLIBC_2.2) [LSB] killpg(GLIBC_2.2) 1052 [SUSv3] lchown(GLIBC_2.2) [SUSv3] 1053 link(GLIBC_2.2) [LSB] lockf(GLIBC_2.2) [SUSv3] 1054 lseek(GLIBC_2.2) [SUSv3] mkdir(GLIBC_2.2) [SUSv3] 1055 mkfifo(GLIBC_2.2) [SUSv3] mlock(GLIBC_2.2) [SUSv3] 1056 mlockall(GLIBC_2.2) [SUSv3] mmap(GLIBC_2.2) [SUSv3] 1057 mprotect(GLIBC_2.2) [SUSv3] msync(GLIBC_2.2) [SUSv3] 1058 munlock(GLIBC_2.2) [SUSv3] munlockall(GLIBC_2.2) [SUSv3] 1059 munmap(GLIBC_2.2) [SUSv3] nanosleep(GLIBC_2.2) [SUSv3] 1060 nice(GLIBC_2.2) [SUSv3] open(GLIBC_2.2) [SUSv3] 1061 opendir(GLIBC_2.2) [SUSv3] pathconf(GLIBC_2.2) [SUSv3] 1062 pause(GLIBC_2.2) [SUSv3] pipe(GLIBC_2.2) [SUSv3] 1063 poll(GLIBC_2.2) [SUSv3] read(GLIBC_2.2) [SUSv3] 1064 readdir(GLIBC_2.2) [SUSv3] readdir_r(GLIBC_2.2) [SUSv3] 1065 readlink(GLIBC_2.2) [SUSv3] readv(GLIBC_2.2) [SUSv3] 1066 rename(GLIBC_2.2) [SUSv3] rmdir(GLIBC_2.2) [SUSv3] 1067 sbrk(GLIBC_2.2) [SUSv2] sched_get_priority_max(GLIBC_2.2) 1068 [SUSv3] sched_get_priority_min(GLIBC_2.2) [SUSv3] 1069 sched_getparam(GLIBC_2.2) [SUSv3] 1070 sched_getscheduler(GLIBC_2.2) [SUSv3] 1071 sched_rr_get_interval(GLIBC_2.2) [SUSv3] 1072 sched_setparam(GLIBC_2.2) [SUSv3] 1073 sched_setscheduler(GLIBC_2.2) [SUSv3] 1074 sched_yield(GLIBC_2.2) [SUSv3] select(GLIBC_2.2) [SUSv3] 1075 setcontext(GLIBC_2.2) [SUSv3] setegid(GLIBC_2.2) [SUSv3] 1076 seteuid(GLIBC_2.2) [SUSv3] setgid(GLIBC_2.2) [SUSv3] 1077 setitimer(GLIBC_2.2) [SUSv3] setpgid(GLIBC_2.2) [SUSv3] 1078 setpgrp(GLIBC_2.2) [SUSv3] setpriority(GLIBC_2.2) [SUSv3] 1079 setregid(GLIBC_2.2) [SUSv3] setreuid(GLIBC_2.2) [SUSv3] 1080 setrlimit(GLIBC_2.2) [SUSv3] setrlimit64(GLIBC_2.2) [LFS] 1081 setsid(GLIBC_2.2) [SUSv3] setuid(GLIBC_2.2) [SUSv3] 1082 sleep(GLIBC_2.2) [SUSv3] statvfs(GLIBC_2.2) [SUSv3] 1083 stime(GLIBC_2.2) [LSB] symlink(GLIBC_2.2) [SUSv3] 1084 sync(GLIBC_2.2) [SUSv3] sysconf(GLIBC_2.2) [SUSv3] 1085 time(GLIBC_2.2) [SUSv3] times(GLIBC_2.2) [SUSv3] 1086 truncate(GLIBC_2.2) [SUSv3] ulimit(GLIBC_2.2) [SUSv3] 1087 umask(GLIBC_2.2) [SUSv3] uname(GLIBC_2.2) [SUSv3] 1088 unlink(GLIBC_2.2) [LSB] utime(GLIBC_2.2) [SUSv3] 1089 utimes(GLIBC_2.2) [SUSv3] vfork(GLIBC_2.2) [SUSv3] 1090 wait(GLIBC_2.2) [SUSv3] wait4(GLIBC_2.2) [LSB] 1091 waitpid(GLIBC_2.2) [LSB] write(GLIBC_2.2) [SUSv3] 1092 writev(GLIBC_2.2) [SUSv3] 1093 _________________________________________________________ 1094 1095 7.2.3. Standard I/O 1096 _________________________________________________________ 1097 1098 7.2.3.1. Interfaces for Standard I/O 1099 1100 An LSB conforming implementation shall provide the 1101 architecture specific functions for Standard I/O specified in 1102 Table 7-4, with the full mandatory functionality as described 1103 in the referenced underlying specification. 1104 1105 Table 7-4. libc - Standard I/O Function Interfaces 1106 _IO_feof(GLIBC_2.2) [LSB] _IO_getc(GLIBC_2.2) [LSB] 1107 _IO_putc(GLIBC_2.2) [LSB] _IO_puts(GLIBC_2.2) [LSB] 1108 asprintf(GLIBC_2.2) [LSB] clearerr(GLIBC_2.2) [SUSv3] 1109 ctermid(GLIBC_2.2) [SUSv3] fclose(GLIBC_2.2) [SUSv3] 1110 fdopen(GLIBC_2.2) [SUSv3] feof(GLIBC_2.2) [SUSv3] 1111 ferror(GLIBC_2.2) [SUSv3] fflush(GLIBC_2.2) [SUSv3] 1112 fflush_unlocked(GLIBC_2.2) [LSB] fgetc(GLIBC_2.2) [SUSv3] 1113 fgetpos(GLIBC_2.2) [SUSv3] fgets(GLIBC_2.2) [SUSv3] 1114 fgetwc_unlocked(GLIBC_2.2) [LSB] fileno(GLIBC_2.2) [SUSv3] 1115 flockfile(GLIBC_2.2) [SUSv3] fopen(GLIBC_2.2) [SUSv3] 1116 fprintf(GLIBC_2.2) [SUSv3] fputc(GLIBC_2.2) [SUSv3] 1117 fputs(GLIBC_2.2) [SUSv3] fread(GLIBC_2.2) [SUSv3] 1118 freopen(GLIBC_2.2) [SUSv3] fscanf(GLIBC_2.2) [LSB] 1119 fseek(GLIBC_2.2) [SUSv3] fseeko(GLIBC_2.2) [SUSv3] 1120 fsetpos(GLIBC_2.2) [SUSv3] ftell(GLIBC_2.2) [SUSv3] 1121 ftello(GLIBC_2.2) [SUSv3] fwrite(GLIBC_2.2) [SUSv3] 1122 getc(GLIBC_2.2) [SUSv3] getc_unlocked(GLIBC_2.2) [SUSv3] 1123 getchar(GLIBC_2.2) [SUSv3] getchar_unlocked(GLIBC_2.2) [SUSv3] 1124 getw(GLIBC_2.2) [SUSv2] pclose(GLIBC_2.2) [SUSv3] 1125 popen(GLIBC_2.2) [SUSv3] printf(GLIBC_2.2) [SUSv3] 1126 putc(GLIBC_2.2) [SUSv3] putc_unlocked(GLIBC_2.2) [SUSv3] 1127 putchar(GLIBC_2.2) [SUSv3] putchar_unlocked(GLIBC_2.2) [SUSv3] 1128 puts(GLIBC_2.2) [SUSv3] putw(GLIBC_2.2) [SUSv2] 1129 remove(GLIBC_2.2) [SUSv3] rewind(GLIBC_2.2) [SUSv3] 1130 rewinddir(GLIBC_2.2) [SUSv3] scanf(GLIBC_2.2) [LSB] 1131 seekdir(GLIBC_2.2) [SUSv3] setbuf(GLIBC_2.2) [SUSv3] 1132 setbuffer(GLIBC_2.2) [LSB] setvbuf(GLIBC_2.2) [SUSv3] 1133 snprintf(GLIBC_2.2) [SUSv3] sprintf(GLIBC_2.2) [SUSv3] 1134 sscanf(GLIBC_2.2) [LSB] telldir(GLIBC_2.2) [SUSv3] 1135 tempnam(GLIBC_2.2) [SUSv3] ungetc(GLIBC_2.2) [SUSv3] 1136 vasprintf(GLIBC_2.2) [LSB] vdprintf(GLIBC_2.2) [LSB] 1137 vfprintf(GLIBC_2.2) [SUSv3] vprintf(GLIBC_2.2) [SUSv3] 1138 vsnprintf(GLIBC_2.2) [SUSv3] vsprintf(GLIBC_2.2) [SUSv3] 1139 1140 An LSB conforming implementation shall provide the 1141 architecture specific data interfaces for Standard I/O 1142 specified in Table 7-5, with the full mandatory functionality 1143 as described in the referenced underlying specification. 1144 1145 Table 7-5. libc - Standard I/O Data Interfaces 1146 stderr(GLIBC_2.2) [SUSv3] stdin(GLIBC_2.2) [SUSv3] 1147 stdout(GLIBC_2.2) [SUSv3] 1148 _________________________________________________________ 1149 1150 7.2.4. Signal Handling 1151 _________________________________________________________ 1152 1153 7.2.4.1. Interfaces for Signal Handling 1154 1155 An LSB conforming implementation shall provide the 1156 architecture specific functions for Signal Handling specified 1157 in Table 7-6, with the full mandatory functionality as 1158 described in the referenced underlying specification. 1159 1160 Table 7-6. libc - Signal Handling Function Interfaces 1161 __libc_current_sigrtmax(GLIBC_2.2) [LSB] 1162 __libc_current_sigrtmin(GLIBC_2.2) [LSB] 1163 __sigsetjmp(GLIBC_2.2) [LSB] __sysv_signal(GLIBC_2.2) [LSB] 1164 bsd_signal(GLIBC_2.2) [SUSv3] psignal(GLIBC_2.2) [LSB] 1165 raise(GLIBC_2.2) [SUSv3] sigaction(GLIBC_2.2) [SUSv3] 1166 sigaddset(GLIBC_2.2) [SUSv3] sigaltstack(GLIBC_2.2) [SUSv3] 1167 sigandset(GLIBC_2.2) [LSB] sigdelset(GLIBC_2.2) [SUSv3] 1168 sigemptyset(GLIBC_2.2) [SUSv3] sigfillset(GLIBC_2.2) [SUSv3] 1169 sighold(GLIBC_2.2) [SUSv3] sigignore(GLIBC_2.2) [SUSv3] 1170 siginterrupt(GLIBC_2.2) [SUSv3] sigisemptyset(GLIBC_2.2) [LSB] 1171 sigismember(GLIBC_2.2) [SUSv3] siglongjmp(GLIBC_2.2) [SUSv3] 1172 signal(GLIBC_2.2) [SUSv3] sigorset(GLIBC_2.2) [LSB] 1173 sigpause(GLIBC_2.2) [SUSv3] sigpending(GLIBC_2.2) [SUSv3] 1174 sigprocmask(GLIBC_2.2) [SUSv3] sigqueue(GLIBC_2.2) [SUSv3] 1175 sigrelse(GLIBC_2.2) [SUSv3] sigreturn(GLIBC_2.2) [LSB] 1176 sigset(GLIBC_2.2) [SUSv3] sigsuspend(GLIBC_2.2) [SUSv3] 1177 sigtimedwait(GLIBC_2.2) [SUSv3] sigwait(GLIBC_2.2) [SUSv3] 1178 sigwaitinfo(GLIBC_2.2) [SUSv3] 1179 1180 An LSB conforming implementation shall provide the 1181 architecture specific data interfaces for Signal Handling 1182 specified in Table 7-7, with the full mandatory functionality 1183 as described in the referenced underlying specification. 1184 1185 Table 7-7. libc - Signal Handling Data Interfaces 1186 _sys_siglist(GLIBC_2.3.3) [LSB] 1187 _________________________________________________________ 1188 1189 7.2.5. Localization Functions 1190 _________________________________________________________ 1191 1192 7.2.5.1. Interfaces for Localization Functions 1193 1194 An LSB conforming implementation shall provide the 1195 architecture specific functions for Localization Functions 1196 specified in Table 7-8, with the full mandatory functionality 1197 as described in the referenced underlying specification. 1198 1199 Table 7-8. libc - Localization Functions Function Interfaces 1200 bind_textdomain_codeset(GLIBC_2.2) [LSB] 1201 bindtextdomain(GLIBC_2.2) [LSB] catclose(GLIBC_2.2) [SUSv3] 1202 catgets(GLIBC_2.2) [SUSv3] 1203 catopen(GLIBC_2.2) [SUSv3] dcgettext(GLIBC_2.2) [LSB] 1204 dcngettext(GLIBC_2.2) [LSB] dgettext(GLIBC_2.2) [LSB] 1205 dngettext(GLIBC_2.2) [LSB] gettext(GLIBC_2.2) [LSB] 1206 iconv(GLIBC_2.2) [SUSv3] iconv_close(GLIBC_2.2) [SUSv3] 1207 iconv_open(GLIBC_2.2) [SUSv3] localeconv(GLIBC_2.2) [SUSv3] 1208 ngettext(GLIBC_2.2) [LSB] nl_langinfo(GLIBC_2.2) [SUSv3] 1209 setlocale(GLIBC_2.2) [SUSv3] textdomain(GLIBC_2.2) [LSB] 1210 1211 An LSB conforming implementation shall provide the 1212 architecture specific data interfaces for Localization 1213 Functions specified in Table 7-9, with the full mandatory 1214 functionality as described in the referenced underlying 1215 specification. 1216 1217 Table 7-9. libc - Localization Functions Data Interfaces 1218 _nl_msg_cat_cntr(GLIBC_2.2) [LSB] 1219 _________________________________________________________ 1220 1221 7.2.6. Socket Interface 1222 _________________________________________________________ 1223 1224 7.2.6.1. Interfaces for Socket Interface 1225 1226 An LSB conforming implementation shall provide the 1227 architecture specific functions for Socket Interface specified 1228 in Table 7-10, with the full mandatory functionality as 1229 described in the referenced underlying specification. 1230 1231 Table 7-10. libc - Socket Interface Function Interfaces 1232 __h_errno_location(GLIBC_2.2) [LSB] accept(GLIBC_2.2) [SUSv3] 1233 bind(GLIBC_2.2) [SUSv3] bindresvport(GLIBC_2.2) [LSB] 1234 connect(GLIBC_2.2) [SUSv3] gethostid(GLIBC_2.2) [SUSv3] 1235 gethostname(GLIBC_2.2) [SUSv3] getpeername(GLIBC_2.2) [SUSv3] 1236 getsockname(GLIBC_2.2) [SUSv3] getsockopt(GLIBC_2.2) [LSB] 1237 if_freenameindex(GLIBC_2.2) [SUSv3] if_indextoname(GLIBC_2.2) 1238 [SUSv3] 1239 if_nameindex(GLIBC_2.2) [SUSv3] if_nametoindex(GLIBC_2.2) 1240 [SUSv3] listen(GLIBC_2.2) [SUSv3] recv(GLIBC_2.2) [SUSv3] 1241 recvfrom(GLIBC_2.2) [SUSv3] recvmsg(GLIBC_2.2) [SUSv3] 1242 send(GLIBC_2.2) [SUSv3] sendmsg(GLIBC_2.2) [SUSv3] 1243 sendto(GLIBC_2.2) [SUSv3] setsockopt(GLIBC_2.2) [LSB] 1244 shutdown(GLIBC_2.2) [SUSv3] sockatmark(GLIBC_2.2.4) [SUSv3] 1245 socket(GLIBC_2.2) [SUSv3] socketpair(GLIBC_2.2) [SUSv3] 1246 _________________________________________________________ 1247 1248 7.2.7. Wide Characters 1249 _________________________________________________________ 1250 1251 7.2.7.1. Interfaces for Wide Characters 1252 1253 An LSB conforming implementation shall provide the 1254 architecture specific functions for Wide Characters specified 1255 in Table 7-11, with the full mandatory functionality as 1256 described in the referenced underlying specification. 1257 1258 Table 7-11. libc - Wide Characters Function Interfaces 1259 __wcstod_internal(GLIBC_2.2) [LSB] 1260 __wcstof_internal(GLIBC_2.2) [LSB] 1261 __wcstol_internal(GLIBC_2.2) [LSB] 1262 __wcstold_internal(GLIBC_2.2) [LSB] 1263 __wcstoul_internal(GLIBC_2.2) [LSB] btowc(GLIBC_2.2) [SUSv3] 1264 fgetwc(GLIBC_2.2) [SUSv3] fgetws(GLIBC_2.2) [SUSv3] 1265 fputwc(GLIBC_2.2) [SUSv3] fputws(GLIBC_2.2) [SUSv3] 1266 fwide(GLIBC_2.2) [SUSv3] fwprintf(GLIBC_2.2) [SUSv3] 1267 fwscanf(GLIBC_2.2) [LSB] getwc(GLIBC_2.2) [SUSv3] 1268 getwchar(GLIBC_2.2) [SUSv3] mblen(GLIBC_2.2) [SUSv3] 1269 mbrlen(GLIBC_2.2) [SUSv3] mbrtowc(GLIBC_2.2) [SUSv3] 1270 mbsinit(GLIBC_2.2) [SUSv3] mbsnrtowcs(GLIBC_2.2) [LSB] 1271 mbsrtowcs(GLIBC_2.2) [SUSv3] mbstowcs(GLIBC_2.2) [SUSv3] 1272 mbtowc(GLIBC_2.2) [SUSv3] putwc(GLIBC_2.2) [SUSv3] 1273 putwchar(GLIBC_2.2) [SUSv3] swprintf(GLIBC_2.2) [SUSv3] 1274 swscanf(GLIBC_2.2) [LSB] towctrans(GLIBC_2.2) [SUSv3] 1275 towlower(GLIBC_2.2) [SUSv3] towupper(GLIBC_2.2) [SUSv3] 1276 ungetwc(GLIBC_2.2) [SUSv3] vfwprintf(GLIBC_2.2) [SUSv3] 1277 vfwscanf(GLIBC_2.2) [LSB] vswprintf(GLIBC_2.2) [SUSv3] 1278 vswscanf(GLIBC_2.2) [LSB] vwprintf(GLIBC_2.2) [SUSv3] 1279 vwscanf(GLIBC_2.2) [LSB] wcpcpy(GLIBC_2.2) [LSB] 1280 wcpncpy(GLIBC_2.2) [LSB] wcrtomb(GLIBC_2.2) [SUSv3] 1281 wcscasecmp(GLIBC_2.2) [LSB] wcscat(GLIBC_2.2) [SUSv3] 1282 wcschr(GLIBC_2.2) [SUSv3] wcscmp(GLIBC_2.2) [SUSv3] 1283 wcscoll(GLIBC_2.2) [SUSv3] wcscpy(GLIBC_2.2) [SUSv3] 1284 wcscspn(GLIBC_2.2) [SUSv3] wcsdup(GLIBC_2.2) [LSB] 1285 wcsftime(GLIBC_2.2) [SUSv3] wcslen(GLIBC_2.2) [SUSv3] 1286 wcsncasecmp(GLIBC_2.2) [LSB] wcsncat(GLIBC_2.2) [SUSv3] 1287 wcsncmp(GLIBC_2.2) [SUSv3] wcsncpy(GLIBC_2.2) [SUSv3] 1288 wcsnlen(GLIBC_2.2) [LSB] wcsnrtombs(GLIBC_2.2) [LSB] 1289 wcspbrk(GLIBC_2.2) [SUSv3] wcsrchr(GLIBC_2.2) [SUSv3] 1290 wcsrtombs(GLIBC_2.2) [SUSv3] wcsspn(GLIBC_2.2) [SUSv3] 1291 wcsstr(GLIBC_2.2) [SUSv3] wcstod(GLIBC_2.2) [SUSv3] 1292 wcstof(GLIBC_2.2) [SUSv3] wcstoimax(GLIBC_2.2) [SUSv3] 1293 wcstok(GLIBC_2.2) [SUSv3] wcstol(GLIBC_2.2) [SUSv3] 1294 wcstold(GLIBC_2.2) [SUSv3] wcstoll(GLIBC_2.2) [SUSv3] 1295 wcstombs(GLIBC_2.2) [SUSv3] wcstoq(GLIBC_2.2) [LSB] 1296 wcstoul(GLIBC_2.2) [SUSv3] wcstoull(GLIBC_2.2) [SUSv3] 1297 wcstoumax(GLIBC_2.2) [SUSv3] wcstouq(GLIBC_2.2) [LSB] 1298 wcswcs(GLIBC_2.2) [SUSv3] wcswidth(GLIBC_2.2) [SUSv3] 1299 wcsxfrm(GLIBC_2.2) [SUSv3] wctob(GLIBC_2.2) [SUSv3] 1300 wctomb(GLIBC_2.2) [SUSv3] wctrans(GLIBC_2.2) [SUSv3] 1301 wctype(GLIBC_2.2) [SUSv3] wcwidth(GLIBC_2.2) [SUSv3] 1302 wmemchr(GLIBC_2.2) [SUSv3] wmemcmp(GLIBC_2.2) [SUSv3] 1303 wmemcpy(GLIBC_2.2) [SUSv3] wmemmove(GLIBC_2.2) [SUSv3] 1304 wmemset(GLIBC_2.2) [SUSv3] wprintf(GLIBC_2.2) [SUSv3] 1305 wscanf(GLIBC_2.2) [LSB] 1306 _________________________________________________________ 1307 1308 7.2.8. String Functions 1309 _________________________________________________________ 1310 1311 7.2.8.1. Interfaces for String Functions 1312 1313 An LSB conforming implementation shall provide the 1314 architecture specific functions for String Functions specified 1315 in Table 7-12, with the full mandatory functionality as 1316 described in the referenced underlying specification. 1317 1318 Table 7-12. libc - String Functions Function Interfaces 1319 __mempcpy(GLIBC_2.2) [LSB] __rawmemchr(GLIBC_2.2) [LSB] 1320 __stpcpy(GLIBC_2.2) [LSB] __strdup(GLIBC_2.2) [LSB] 1321 __strtod_internal(GLIBC_2.2) [LSB] 1322 __strtof_internal(GLIBC_2.2) [LSB] __strtok_r(GLIBC_2.2) [LSB] 1323 __strtol_internal(GLIBC_2.2) [LSB] 1324 __strtold_internal(GLIBC_2.2) [LSB] 1325 __strtoll_internal(GLIBC_2.2) [LSB] 1326 __strtoul_internal(GLIBC_2.2) [LSB] 1327 __strtoull_internal(GLIBC_2.2) [LSB] 1328 bcmp(GLIBC_2.2) [SUSv3] bcopy(GLIBC_2.2) [SUSv3] 1329 bzero(GLIBC_2.2) [SUSv3] ffs(GLIBC_2.2) [SUSv3] 1330 index(GLIBC_2.2) [SUSv3] memccpy(GLIBC_2.2) [SUSv3] 1331 memchr(GLIBC_2.2) [SUSv3] memcmp(GLIBC_2.2) [SUSv3] 1332 memcpy(GLIBC_2.2) [SUSv3] memmove(GLIBC_2.2) [SUSv3] 1333 memrchr(GLIBC_2.2) [LSB] memset(GLIBC_2.2) [SUSv3] 1334 rindex(GLIBC_2.2) [SUSv3] stpcpy(GLIBC_2.2) [LSB] 1335 stpncpy(GLIBC_2.2) [LSB] strcasecmp(GLIBC_2.2) [SUSv3] 1336 strcasestr(GLIBC_2.2) [LSB] strcat(GLIBC_2.2) [SUSv3] 1337 strchr(GLIBC_2.2) [SUSv3] strcmp(GLIBC_2.2) [SUSv3] 1338 strcoll(GLIBC_2.2) [SUSv3] strcpy(GLIBC_2.2) [SUSv3] 1339 strcspn(GLIBC_2.2) [SUSv3] strdup(GLIBC_2.2) [SUSv3] 1340 strerror(GLIBC_2.2) [SUSv3] strerror_r(GLIBC_2.2) [LSB] 1341 strfmon(GLIBC_2.2) [SUSv3] strftime(GLIBC_2.2) [SUSv3] 1342 strlen(GLIBC_2.2) [SUSv3] strncasecmp(GLIBC_2.2) [SUSv3] 1343 strncat(GLIBC_2.2) [SUSv3] strncmp(GLIBC_2.2) [SUSv3] 1344 strncpy(GLIBC_2.2) [SUSv3] strndup(GLIBC_2.2) [LSB] 1345 strnlen(GLIBC_2.2) [LSB] strpbrk(GLIBC_2.2) [SUSv3] 1346 strptime(GLIBC_2.2) [LSB] strrchr(GLIBC_2.2) [SUSv3] 1347 strsep(GLIBC_2.2) [LSB] strsignal(GLIBC_2.2) [LSB] 1348 strspn(GLIBC_2.2) [SUSv3] strstr(GLIBC_2.2) [SUSv3] 1349 strtof(GLIBC_2.2) [SUSv3] strtoimax(GLIBC_2.2) [SUSv3] 1350 strtok(GLIBC_2.2) [SUSv3] strtok_r(GLIBC_2.2) [SUSv3] 1351 strtold(GLIBC_2.2) [SUSv3] strtoll(GLIBC_2.2) [SUSv3] 1352 strtoq(GLIBC_2.2) [LSB] strtoull(GLIBC_2.2) [SUSv3] 1353 strtoumax(GLIBC_2.2) [SUSv3] strtouq(GLIBC_2.2) [LSB] 1354 strxfrm(GLIBC_2.2) [SUSv3] swab(GLIBC_2.2) [SUSv3] 1355 _________________________________________________________ 1356 1357 7.2.9. IPC Functions 1358 _________________________________________________________ 1359 1360 7.2.9.1. Interfaces for IPC Functions 1361 1362 An LSB conforming implementation shall provide the 1363 architecture specific functions for IPC Functions specified in 1364 Table 7-13, with the full mandatory functionality as described 1365 in the referenced underlying specification. 1366 1367 Table 7-13. libc - IPC Functions Function Interfaces 1368 ftok(GLIBC_2.2) [SUSv3] msgctl(GLIBC_2.2) [SUSv3] 1369 msgget(GLIBC_2.2) [SUSv3] msgrcv(GLIBC_2.2) [SUSv3] 1370 msgsnd(GLIBC_2.2) [SUSv3] semctl(GLIBC_2.2) [SUSv3] 1371 semget(GLIBC_2.2) [SUSv3] semop(GLIBC_2.2) [SUSv3] 1372 shmat(GLIBC_2.2) [SUSv3] shmctl(GLIBC_2.2) [SUSv3] 1373 shmdt(GLIBC_2.2) [SUSv3] shmget(GLIBC_2.2) [SUSv3] 1374 _________________________________________________________ 1375 1376 7.2.10. Regular Expressions 1377 _________________________________________________________ 1378 1379 7.2.10.1. Interfaces for Regular Expressions 1380 1381 An LSB conforming implementation shall provide the 1382 architecture specific functions for Regular Expressions 1383 specified in Table 7-14, with the full mandatory functionality 1384 as described in the referenced underlying specification. 1385 1386 Table 7-14. libc - Regular Expressions Function Interfaces 1387 regcomp(GLIBC_2.2) [SUSv3] regerror(GLIBC_2.2) [SUSv3] 1388 regexec(GLIBC_2.3.4) [LSB] regfree(GLIBC_2.2) [SUSv3] 1389 _________________________________________________________ 1390 1391 7.2.11. Character Type Functions 1392 _________________________________________________________ 1393 1394 7.2.11.1. Interfaces for Character Type Functions 1395 1396 An LSB conforming implementation shall provide the 1397 architecture specific functions for Character Type Functions 1398 specified in Table 7-15, with the full mandatory functionality 1399 as described in the referenced underlying specification. 1400 1401 Table 7-15. libc - Character Type Functions Function 1402 Interfaces 1403 __ctype_get_mb_cur_max(GLIBC_2.2) [LSB] _tolower(GLIBC_2.2) 1404 [SUSv3] _toupper(GLIBC_2.2) [SUSv3] isalnum(GLIBC_2.2) [SUSv3] 1405 isalpha(GLIBC_2.2) [SUSv3] isascii(GLIBC_2.2) [SUSv3] 1406 iscntrl(GLIBC_2.2) [SUSv3] isdigit(GLIBC_2.2) [SUSv3] 1407 isgraph(GLIBC_2.2) [SUSv3] islower(GLIBC_2.2) [SUSv3] 1408 isprint(GLIBC_2.2) [SUSv3] ispunct(GLIBC_2.2) [SUSv3] 1409 isspace(GLIBC_2.2) [SUSv3] isupper(GLIBC_2.2) [SUSv3] 1410 iswalnum(GLIBC_2.2) [SUSv3] iswalpha(GLIBC_2.2) [SUSv3] 1411 iswblank(GLIBC_2.2) [SUSv3] iswcntrl(GLIBC_2.2) [SUSv3] 1412 iswctype(GLIBC_2.2) [SUSv3] iswdigit(GLIBC_2.2) [SUSv3] 1413 iswgraph(GLIBC_2.2) [SUSv3] iswlower(GLIBC_2.2) [SUSv3] 1414 iswprint(GLIBC_2.2) [SUSv3] iswpunct(GLIBC_2.2) [SUSv3] 1415 iswspace(GLIBC_2.2) [SUSv3] iswupper(GLIBC_2.2) [SUSv3] 1416 iswxdigit(GLIBC_2.2) [SUSv3] isxdigit(GLIBC_2.2) [SUSv3] 1417 toascii(GLIBC_2.2) [SUSv3] tolower(GLIBC_2.2) [SUSv3] 1418 toupper(GLIBC_2.2) [SUSv3] 1419 _________________________________________________________ 1420 1421 7.2.12. Time Manipulation 1422 _________________________________________________________ 1423 1424 7.2.12.1. Interfaces for Time Manipulation 1425 1426 An LSB conforming implementation shall provide the 1427 architecture specific functions for Time Manipulation 1428 specified in Table 7-16, with the full mandatory functionality 1429 as described in the referenced underlying specification. 1430 1431 Table 7-16. libc - Time Manipulation Function Interfaces 1432 adjtime(GLIBC_2.2) [LSB] asctime(GLIBC_2.2) [SUSv3] 1433 asctime_r(GLIBC_2.2) [SUSv3] ctime(GLIBC_2.2) [SUSv3] 1434 ctime_r(GLIBC_2.2) [SUSv3] difftime(GLIBC_2.2) [SUSv3] 1435 gmtime(GLIBC_2.2) [SUSv3] gmtime_r(GLIBC_2.2) [SUSv3] 1436 localtime(GLIBC_2.2) [SUSv3] localtime_r(GLIBC_2.2) [SUSv3] 1437 mktime(GLIBC_2.2) [SUSv3] tzset(GLIBC_2.2) [SUSv3] 1438 ualarm(GLIBC_2.2) [SUSv3] 1439 1440 An LSB conforming implementation shall provide the 1441 architecture specific data interfaces for Time Manipulation 1442 specified in Table 7-17, with the full mandatory functionality 1443 as described in the referenced underlying specification. 1444 1445 Table 7-17. libc - Time Manipulation Data Interfaces 1446 __daylight(GLIBC_2.2) [LSB] __timezone(GLIBC_2.2) [LSB] 1447 __tzname(GLIBC_2.2) [LSB] daylight(GLIBC_2.2) [SUSv3] 1448 timezone(GLIBC_2.2) [SUSv3] tzname(GLIBC_2.2) [SUSv3] 1449 _________________________________________________________ 1450 1451 7.2.13. Terminal Interface Functions 1452 _________________________________________________________ 1453 1454 7.2.13.1. Interfaces for Terminal Interface Functions 1455 1456 An LSB conforming implementation shall provide the 1457 architecture specific functions for Terminal Interface 1458 Functions specified in Table 7-18, with the full mandatory 1459 functionality as described in the referenced underlying 1460 specification. 1461 1462 Table 7-18. libc - Terminal Interface Functions Function 1463 Interfaces 1464 cfgetispeed(GLIBC_2.2) [SUSv3] cfgetospeed(GLIBC_2.2) [SUSv3] 1465 cfmakeraw(GLIBC_2.2) [LSB] cfsetispeed(GLIBC_2.2) [SUSv3] 1466 cfsetospeed(GLIBC_2.2) [SUSv3] cfsetspeed(GLIBC_2.2) [LSB] 1467 tcdrain(GLIBC_2.2) [SUSv3] tcflow(GLIBC_2.2) [SUSv3] 1468 tcflush(GLIBC_2.2) [SUSv3] tcgetattr(GLIBC_2.2) [SUSv3] 1469 tcgetpgrp(GLIBC_2.2) [SUSv3] tcgetsid(GLIBC_2.2) [SUSv3] 1470 tcsendbreak(GLIBC_2.2) [SUSv3] tcsetattr(GLIBC_2.2) [SUSv3] 1471 tcsetpgrp(GLIBC_2.2) [SUSv3] 1472 _________________________________________________________ 1473 1474 7.2.14. System Database Interface 1475 _________________________________________________________ 1476 1477 7.2.14.1. Interfaces for System Database Interface 1478 1479 An LSB conforming implementation shall provide the 1480 architecture specific functions for System Database Interface 1481 specified in Table 7-19, with the full mandatory functionality 1482 as described in the referenced underlying specification. 1483 1484 Table 7-19. libc - System Database Interface Function 1485 Interfaces 1486 endgrent(GLIBC_2.2) [SUSv3] endprotoent(GLIBC_2.2) [SUSv3] 1487 endpwent(GLIBC_2.2) [SUSv3] endservent(GLIBC_2.2) [SUSv3] 1488 endutent(GLIBC_2.2) [SUSv2] endutxent(GLIBC_2.2) [SUSv3] 1489 getgrent(GLIBC_2.2) [SUSv3] getgrgid(GLIBC_2.2) [SUSv3] 1490 getgrgid_r(GLIBC_2.2) [SUSv3] getgrnam(GLIBC_2.2) [SUSv3] 1491 getgrnam_r(GLIBC_2.2) [SUSv3] getgrouplist(GLIBC_2.2.4) [LSB] 1492 gethostbyaddr(GLIBC_2.2) [SUSv3] gethostbyname(GLIBC_2.2) 1493 [SUSv3] getprotobyname(GLIBC_2.2) [SUSv3] 1494 getprotobynumber(GLIBC_2.2) [SUSv3] 1495 getprotoent(GLIBC_2.2) [SUSv3] getpwent(GLIBC_2.2) [SUSv3] 1496 getpwnam(GLIBC_2.2) [SUSv3] getpwnam_r(GLIBC_2.2) [SUSv3] 1497 getpwuid(GLIBC_2.2) [SUSv3] getpwuid_r(GLIBC_2.2) [SUSv3] 1498 getservbyname(GLIBC_2.2) [SUSv3] getservbyport(GLIBC_2.2) 1499 [SUSv3] 1500 getservent(GLIBC_2.2) [SUSv3] getutent(GLIBC_2.2) [LSB] 1501 getutent_r(GLIBC_2.2) [LSB] getutxent(GLIBC_2.2) [SUSv3] 1502 getutxid(GLIBC_2.2) [SUSv3] getutxline(GLIBC_2.2) [SUSv3] 1503 pututxline(GLIBC_2.2) [SUSv3] setgrent(GLIBC_2.2) [SUSv3] 1504 setgroups(GLIBC_2.2) [LSB] setprotoent(GLIBC_2.2) [SUSv3] 1505 setpwent(GLIBC_2.2) [SUSv3] setservent(GLIBC_2.2) [SUSv3] 1506 setutent(GLIBC_2.2) [LSB] setutxent(GLIBC_2.2) [SUSv3] 1507 utmpname(GLIBC_2.2) [LSB] 1508 _________________________________________________________ 1509 1510 7.2.15. Language Support 1511 _________________________________________________________ 1512 1513 7.2.15.1. Interfaces for Language Support 1514 1515 An LSB conforming implementation shall provide the 1516 architecture specific functions for Language Support specified 1517 in Table 7-20, with the full mandatory functionality as 1518 described in the referenced underlying specification. 1519 1520 Table 7-20. libc - Language Support Function Interfaces 1521 __libc_start_main(GLIBC_2.2) [LSB] 1522 _________________________________________________________ 1523 1524 7.2.16. Large File Support 1525 _________________________________________________________ 1526 1527 7.2.16.1. Interfaces for Large File Support 1528 1529 An LSB conforming implementation shall provide the 1530 architecture specific functions for Large File Support 1531 specified in Table 7-21, with the full mandatory functionality 1532 as described in the referenced underlying specification. 1533 1534 Table 7-21. libc - Large File Support Function Interfaces 1535 __fxstat64(GLIBC_2.2) [LSB] __lxstat64(GLIBC_2.2) [LSB] 1536 __xstat64(GLIBC_2.2) [LSB] creat64(GLIBC_2.2) [LFS] 1537 fgetpos64(GLIBC_2.2) [LFS] fopen64(GLIBC_2.2) [LFS] 1538 freopen64(GLIBC_2.2) [LFS] fseeko64(GLIBC_2.2) [LFS] 1539 fsetpos64(GLIBC_2.2) [LFS] fstatvfs64(GLIBC_2.2) [LFS] 1540 ftello64(GLIBC_2.2) [LFS] ftruncate64(GLIBC_2.2) [LFS] 1541 ftw64(GLIBC_2.2) [LFS] getrlimit64(GLIBC_2.2) [LFS] 1542 lockf64(GLIBC_2.2) [LFS] mkstemp64(GLIBC_2.2) [LFS] 1543 mmap64(GLIBC_2.2) [LFS] nftw64(GLIBC_2.3.3) [LFS] 1544 readdir64(GLIBC_2.2) [LFS] statvfs64(GLIBC_2.2) [LFS] 1545 tmpfile64(GLIBC_2.2) [LFS] truncate64(GLIBC_2.2) [LFS] 1546 _________________________________________________________ 1547 1548 7.2.17. Standard Library 1549 _________________________________________________________ 1550 1551 7.2.17.1. Interfaces for Standard Library 1552 1553 An LSB conforming implementation shall provide the 1554 architecture specific functions for Standard Library specified 1555 in Table 7-22, with the full mandatory functionality as 1556 described in the referenced underlying specification. 1557 1558 Table 7-22. libc - Standard Library Function Interfaces 1559 _Exit(GLIBC_2.2) [SUSv3] __assert_fail(GLIBC_2.2) [LSB] 1560 __cxa_atexit(GLIBC_2.2) [LSB] __errno_location(GLIBC_2.2) 1561 [LSB] 1562 __fpending(GLIBC_2.2) [LSB] __getpagesize(GLIBC_2.2) [LSB] 1563 __isinf(GLIBC_2.2) [LSB] __isinff(GLIBC_2.2) [LSB] 1564 __isinfl(GLIBC_2.2) [LSB] __isnan(GLIBC_2.2) [LSB] 1565 __isnanf(GLIBC_2.2) [LSB] __isnanl(GLIBC_2.2) [LSB] 1566 __sysconf(GLIBC_2.2) [LSB] _exit(GLIBC_2.2) [SUSv3] 1567 _longjmp(GLIBC_2.2) [SUSv3] _setjmp(GLIBC_2.2) [SUSv3] 1568 a64l(GLIBC_2.2) [SUSv3] abort(GLIBC_2.2) [SUSv3] 1569 abs(GLIBC_2.2) [SUSv3] atof(GLIBC_2.2) [SUSv3] 1570 atoi(GLIBC_2.2) [SUSv3] atol(GLIBC_2.2) [SUSv3] 1571 atoll(GLIBC_2.2) [SUSv3] basename(GLIBC_2.2) [SUSv3] 1572 bsearch(GLIBC_2.2) [SUSv3] calloc(GLIBC_2.2) [SUSv3] 1573 closelog(GLIBC_2.2) [SUSv3] confstr(GLIBC_2.2) [SUSv3] 1574 cuserid(GLIBC_2.2) [SUSv2] daemon(GLIBC_2.2) [LSB] 1575 dirname(GLIBC_2.2) [SUSv3] div(GLIBC_2.2) [SUSv3] 1576 drand48(GLIBC_2.2) [SUSv3] ecvt(GLIBC_2.2) [SUSv3] 1577 erand48(GLIBC_2.2) [SUSv3] err(GLIBC_2.2) [LSB] 1578 error(GLIBC_2.2) [LSB] errx(GLIBC_2.2) [LSB] fcvt(GLIBC_2.2) 1579 [SUSv3] fmtmsg(GLIBC_2.2) [SUSv3] 1580 fnmatch(GLIBC_2.2.3) [SUSv3] fpathconf(GLIBC_2.2) [SUSv3] 1581 free(GLIBC_2.2) [SUSv3] freeaddrinfo(GLIBC_2.2) [SUSv3] 1582 ftrylockfile(GLIBC_2.2) [SUSv3] ftw(GLIBC_2.2) [SUSv3] 1583 funlockfile(GLIBC_2.2) [SUSv3] gai_strerror(GLIBC_2.2) [SUSv3] 1584 gcvt(GLIBC_2.2) [SUSv3] getaddrinfo(GLIBC_2.2) [SUSv3] 1585 getcwd(GLIBC_2.2) [SUSv3] getdate(GLIBC_2.2) [SUSv3] 1586 getenv(GLIBC_2.2) [SUSv3] getlogin(GLIBC_2.2) [SUSv3] 1587 getlogin_r(GLIBC_2.2) [SUSv3] getnameinfo(GLIBC_2.2) [SUSv3] 1588 getopt(GLIBC_2.2) [LSB] getopt_long(GLIBC_2.2) [LSB] 1589 getopt_long_only(GLIBC_2.2) [LSB] getsubopt(GLIBC_2.2) [SUSv3] 1590 gettimeofday(GLIBC_2.2) [SUSv3] glob(GLIBC_2.2) [SUSv3] 1591 glob64(GLIBC_2.2) [LSB] globfree(GLIBC_2.2) [SUSv3] 1592 globfree64(GLIBC_2.2) [LSB] grantpt(GLIBC_2.2) [SUSv3] 1593 hcreate(GLIBC_2.2) [SUSv3] hdestroy(GLIBC_2.2) [SUSv3] 1594 hsearch(GLIBC_2.2) [SUSv3] htonl(GLIBC_2.2) [SUSv3] 1595 htons(GLIBC_2.2) [SUSv3] imaxabs(GLIBC_2.2) [SUSv3] 1596 imaxdiv(GLIBC_2.2) [SUSv3] inet_addr(GLIBC_2.2) [SUSv3] 1597 inet_ntoa(GLIBC_2.2) [SUSv3] inet_ntop(GLIBC_2.2) [SUSv3] 1598 inet_pton(GLIBC_2.2) [SUSv3] initstate(GLIBC_2.2) [SUSv3] 1599 insque(GLIBC_2.2) [SUSv3] isatty(GLIBC_2.2) [SUSv3] 1600 isblank(GLIBC_2.2) [SUSv3] jrand48(GLIBC_2.2) [SUSv3] 1601 l64a(GLIBC_2.2) [SUSv3] labs(GLIBC_2.2) [SUSv3] 1602 lcong48(GLIBC_2.2) [SUSv3] ldiv(GLIBC_2.2) [SUSv3] 1603 lfind(GLIBC_2.2) [SUSv3] llabs(GLIBC_2.2) [SUSv3] 1604 lldiv(GLIBC_2.2) [SUSv3] longjmp(GLIBC_2.2) [SUSv3] 1605 lrand48(GLIBC_2.2) [SUSv3] lsearch(GLIBC_2.2) [SUSv3] 1606 makecontext(GLIBC_2.2) [SUSv3] malloc(GLIBC_2.2) [SUSv3] 1607 memmem(GLIBC_2.2) [LSB] mkstemp(GLIBC_2.2) [SUSv3] 1608 mktemp(GLIBC_2.2) [SUSv3] mrand48(GLIBC_2.2) [SUSv3] 1609 nftw(GLIBC_2.3.3) [SUSv3] nrand48(GLIBC_2.2) [SUSv3] 1610 ntohl(GLIBC_2.2) [SUSv3] ntohs(GLIBC_2.2) [SUSv3] 1611 openlog(GLIBC_2.2) [SUSv3] perror(GLIBC_2.2) [SUSv3] 1612 posix_memalign(GLIBC_2.2) [SUSv3] posix_openpt(GLIBC_2.2.1) 1613 [SUSv3] ptsname(GLIBC_2.2) [SUSv3] putenv(GLIBC_2.2) [SUSv3] 1614 qsort(GLIBC_2.2) [SUSv3] rand(GLIBC_2.2) [SUSv3] 1615 rand_r(GLIBC_2.2) [SUSv3] random(GLIBC_2.2) [SUSv3] 1616 realloc(GLIBC_2.2) [SUSv3] realpath(GLIBC_2.3) [SUSv3] 1617 remque(GLIBC_2.2) [SUSv3] seed48(GLIBC_2.2) [SUSv3] 1618 setenv(GLIBC_2.2) [SUSv3] sethostname(GLIBC_2.2) [LSB] 1619 setlogmask(GLIBC_2.2) [SUSv3] setstate(GLIBC_2.2) [SUSv3] 1620 srand(GLIBC_2.2) [SUSv3] srand48(GLIBC_2.2) [SUSv3] 1621 srandom(GLIBC_2.2) [SUSv3] strtod(GLIBC_2.2) [SUSv3] 1622 strtol(GLIBC_2.2) [SUSv3] strtoul(GLIBC_2.2) [SUSv3] 1623 swapcontext(GLIBC_2.2) [SUSv3] syslog(GLIBC_2.2) [SUSv3] 1624 system(GLIBC_2.2) [LSB] tdelete(GLIBC_2.2) [SUSv3] 1625 tfind(GLIBC_2.2) [SUSv3] tmpfile(GLIBC_2.2) [SUSv3] 1626 tmpnam(GLIBC_2.2) [SUSv3] tsearch(GLIBC_2.2) [SUSv3] 1627 ttyname(GLIBC_2.2) [SUSv3] ttyname_r(GLIBC_2.2) [SUSv3] 1628 twalk(GLIBC_2.2) [SUSv3] unlockpt(GLIBC_2.2) [SUSv3] 1629 unsetenv(GLIBC_2.2) [SUSv3] usleep(GLIBC_2.2) [SUSv3] 1630 verrx(GLIBC_2.2) [LSB] vfscanf(GLIBC_2.2) [LSB] 1631 vscanf(GLIBC_2.2) [LSB] vsscanf(GLIBC_2.2) [LSB] 1632 vsyslog(GLIBC_2.2) [LSB] warn(GLIBC_2.2) [LSB] 1633 warnx(GLIBC_2.2) [LSB] wordexp(GLIBC_2.2.2) [SUSv3] 1634 wordfree(GLIBC_2.2) [SUSv3] 1635 1636 An LSB conforming implementation shall provide the 1637 architecture specific data interfaces for Standard Library 1638 specified in Table 7-23, with the full mandatory functionality 1639 as described in the referenced underlying specification. 1640 1641 Table 7-23. libc - Standard Library Data Interfaces 1642 __environ(GLIBC_2.2) [LSB] _environ(GLIBC_2.2) [LSB] 1643 _sys_errlist(GLIBC_2.3) [LSB] environ(GLIBC_2.2) [SUSv3] 1644 getdate_err(GLIBC_2.2) [SUSv3] optarg(GLIBC_2.2) [SUSv3] 1645 opterr(GLIBC_2.2) [SUSv3] optind(GLIBC_2.2) [SUSv3] 1646 optopt(GLIBC_2.2) [SUSv3] 1647 _________________________________________________________ 1648 1649 7.3. Data Definitions for libc 1650 1651 This section defines global identifiers and their values that 1652 are associated with interfaces contained in libc. These 1653 definitions are organized into groups that correspond to 1654 system headers. This convention is used as a convenience for 1655 the reader, and does not imply the existence of these headers, 1656 or their content. Where an interface is defined as requiring a 1657 particular system header file all of the data definitions for 1658 that system header file presented here shall be in effect. 1659 1660 This section gives data definitions to promote binary 1661 application portability, not to repeat source interface 1662 definitions available elsewhere. System providers and 1663 application developers should use this ABI to supplement - not 1664 to replace - source interface definition specifications. 1665 1666 This specification uses the ISO C (1999) C Language as the 1667 reference programming language, and data definitions are 1668 specified in ISO C format. The C language is used here as a 1669 convenient notation. Using a C language description of these 1670 data objects does not preclude their use by other programming 1671 languages. 1672 _________________________________________________________ 1673 1674 7.3.1. arpa/inet.h 1675 1676 extern uint32_t htonl(uint32_t); 1677 extern uint16_t htons(uint16_t); 1678 extern in_addr_t inet_addr(const char *); 1679 extern char *inet_ntoa(struct in_addr); 1680 extern const char *inet_ntop(int, const void *, char *, socklen_t); 1681 extern int inet_pton(int, const char *, void *); 1682 extern uint32_t ntohl(uint32_t); 1683 extern uint16_t ntohs(uint16_t); 1684 _________________________________________________________ 1685 1686 7.3.2. assert.h 1687 1688 extern void __assert_fail(const char *, const char *, unsigned int, 1689 const char *); 1690 _________________________________________________________ 1691 1692 7.3.3. ctype.h 1693 1694 extern int _tolower(int); 1695 extern int _toupper(int); 1696 extern int isalnum(int); 1697 extern int isalpha(int); 1698 extern int isascii(int); 1699 extern int iscntrl(int); 1700 extern int isdigit(int); 1701 extern int isgraph(int); 1702 extern int islower(int); 1703 extern int isprint(int); 1704 extern int ispunct(int); 1705 extern int isspace(int); 1706 extern int isupper(int); 1707 extern int isxdigit(int); 1708 extern int toascii(int); 1709 extern int tolower(int); 1710 extern int toupper(int); 1711 extern int isblank(int); 1712 extern const unsigned short **__ctype_b_loc(void); 1713 extern const int32_t **__ctype_toupper_loc(void); 1714 extern const int32_t **__ctype_tolower_loc(void); 1715 _________________________________________________________ 1716 1717 7.3.4. dirent.h 1718 1719 extern void rewinddir(DIR *); 1720 extern void seekdir(DIR *, long int); 1721 extern long int telldir(DIR *); 1722 extern int closedir(DIR *); 1723 extern DIR *opendir(const char *); 1724 extern struct dirent *readdir(DIR *); 1725 extern struct dirent64 *readdir64(DIR *); 1726 extern int readdir_r(DIR *, struct dirent *, struct dirent **); 1727 _________________________________________________________ 1728 1729 7.3.5. err.h 1730 1731 extern void err(int, const char *, ...); 1732 extern void errx(int, const char *, ...); 1733 extern void warn(const char *, ...); 1734 extern void warnx(const char *, ...); 1735 extern void error(int, int, const char *, ...); 1736 _________________________________________________________ 1737 1738 7.3.6. errno.h 1739 1740 #define EDEADLOCK EDEADLK 1741 1742 extern int *__errno_location(void); 1743 _________________________________________________________ 1744 1745 7.3.7. fcntl.h 1746 1747 #define F_GETLK64 5 1748 #define F_SETLK64 6 1749 #define F_SETLKW64 7 1750 1751 extern int lockf64(int, int, off64_t); 1752 extern int fcntl(int, int, ...); 1753 _________________________________________________________ 1754 1755 7.3.8. fmtmsg.h 1756 1757 extern int fmtmsg(long int, const char *, int, const char *, const char *, 1758 const char *); 1759 _________________________________________________________ 1760 1761 7.3.9. fnmatch.h 1762 1763 extern int fnmatch(const char *, const char *, int); 1764 _________________________________________________________ 1765 1766 7.3.10. ftw.h 1767 1768 extern int ftw(const char *, __ftw_func_t, int); 1769 extern int ftw64(const char *, __ftw64_func_t, int); 1770 extern int nftw(const char *, __nftw_func_t, int, int); 1771 extern int nftw64(const char *, __nftw64_func_t, int, int); 1772 _________________________________________________________ 1773 1774 7.3.11. getopt.h 1775 1776 extern int getopt_long(int, char *const, const char *, 1777 const struct option *, int *); 1778 extern int getopt_long_only(int, char *const, const char *, 1779 const struct option *, int *); 1780 _________________________________________________________ 1781 1782 7.3.12. glob.h 1783 1784 extern int glob(const char *, int, 1785 int (*__errfunc) (const char *p1, int p2) 1786 , glob_t *); 1787 extern int glob64(const char *, int, 1788 int (*__errfunc) (const char *p1, int p2) 1789 , glob64_t *); 1790 extern void globfree(glob_t *); 1791 extern void globfree64(glob64_t *); 1792 _________________________________________________________ 1793 1794 7.3.13. grp.h 1795 1796 extern void endgrent(void); 1797 extern struct group *getgrent(void); 1798 extern struct group *getgrgid(gid_t); 1799 extern struct group *getgrnam(char *); 1800 extern int initgroups(const char *, gid_t); 1801 extern void setgrent(void); 1802 extern int setgroups(size_t, const gid_t *); 1803 extern int getgrgid_r(gid_t, struct group *, char *, size_t, 1804 struct group **); 1805 extern int getgrnam_r(const char *, struct group *, char *, size_t, 1806 struct group **); 1807 extern int getgrouplist(const char *, gid_t, gid_t *, int *); 1808 _________________________________________________________ 1809 1810 7.3.14. iconv.h 1811 1812 extern size_t iconv(iconv_t, char **, size_t *, char **, size_t *); 1813 extern int iconv_close(iconv_t); 1814 extern iconv_t iconv_open(char *, char *); 1815 _________________________________________________________ 1816 1817 7.3.15. inttypes.h 1818 1819 typedef long int intmax_t; 1820 typedef unsigned long int uintmax_t; 1821 typedef unsigned long int uintptr_t; 1822 typedef unsigned long int uint64_t; 1823 1824 extern intmax_t strtoimax(const char *, char **, int); 1825 extern uintmax_t strtoumax(const char *, char **, int); 1826 extern intmax_t wcstoimax(const wchar_t *, wchar_t * *, int); 1827 extern uintmax_t wcstoumax(const wchar_t *, wchar_t * *, int); 1828 extern intmax_t imaxabs(intmax_t); 1829 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 1830 _________________________________________________________ 1831 1832 7.3.16. langinfo.h 1833 1834 extern char *nl_langinfo(nl_item); 1835 _________________________________________________________ 1836 1837 7.3.17. libgen.h 1838 1839 extern char *basename(const char *); 1840 extern char *dirname(char *); 1841 _________________________________________________________ 1842 1843 7.3.18. libintl.h 1844 1845 extern char *bindtextdomain(const char *, const char *); 1846 extern char *dcgettext(const char *, const char *, int); 1847 extern char *dgettext(const char *, const char *); 1848 extern char *gettext(const char *); 1849 extern char *textdomain(const char *); 1850 extern char *bind_textdomain_codeset(const char *, const char *); 1851 extern char *dcngettext(const char *, const char *, const char *, 1852 unsigned long int, int); 1853 extern char *dngettext(const char *, const char *, const char *, 1854 unsigned long int); 1855 extern char *ngettext(const char *, const char *, unsigned long int); 1856 _________________________________________________________ 1857 1858 7.3.19. limits.h 1859 1860 #define LONG_MAX 0x7FFFFFFFFFFFFFFFL 1861 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 1862 1863 #define CHAR_MAX SCHAR_MAX 1864 #define CHAR_MIN SCHAR_MIN 1865 1866 #define PTHREAD_STACK_MIN 196608 1867 _________________________________________________________ 1868 1869 7.3.20. locale.h 1870 1871 extern struct lconv *localeconv(void); 1872 extern char *setlocale(int, const char *); 1873 extern locale_t uselocale(locale_t); 1874 extern void freelocale(locale_t); 1875 extern locale_t duplocale(locale_t); 1876 extern locale_t newlocale(int, const char *, locale_t); 1877 _________________________________________________________ 1878 1879 7.3.21. monetary.h 1880 1881 extern ssize_t strfmon(char *, size_t, const char *, ...); 1882 _________________________________________________________ 1883 1884 7.3.22. net/if.h 1885 1886 extern void if_freenameindex(struct if_nameindex *); 1887 extern char *if_indextoname(unsigned int, char *); 1888 extern struct if_nameindex *if_nameindex(void); 1889 extern unsigned int if_nametoindex(const char *); 1890 _________________________________________________________ 1891 1892 7.3.23. netdb.h 1893 1894 extern void endprotoent(void); 1895 extern void endservent(void); 1896 extern void freeaddrinfo(struct addrinfo *); 1897 extern const char *gai_strerror(int); 1898 extern int getaddrinfo(const char *, const char *, const struct addrinfo *, 1899 struct addrinfo **); 1900 extern struct hostent *gethostbyaddr(const void *, socklen_t, int); 1901 extern struct hostent *gethostbyname(const char *); 1902 extern struct protoent *getprotobyname(const char *); 1903 extern struct protoent *getprotobynumber(int); 1904 extern struct protoent *getprotoent(void); 1905 extern struct servent *getservbyname(const char *, const char *); 1906 extern struct servent *getservbyport(int, const char *); 1907 extern struct servent *getservent(void); 1908 extern void setprotoent(int); 1909 extern void setservent(int); 1910 extern int *__h_errno_location(void); 1911 _________________________________________________________ 1912 1913 7.3.24. netinet/in.h 1914 1915 extern int bindresvport(int, struct sockaddr_in *); 1916 _________________________________________________________ 1917 1918 7.3.25. netinet/ip.h 1919 1920 /* 1921 * This header is architecture neutral 1922 * Please refer to the generic specification for details 1923 */ 1924 _________________________________________________________ 1925 1926 7.3.26. netinet/tcp.h 1927 1928 /* 1929 * This header is architecture neutral 1930 * Please refer to the generic specification for details 1931 */ 1932 _________________________________________________________ 1933 1934 7.3.27. netinet/udp.h 1935 1936 /* 1937 * This header is architecture neutral 1938 * Please refer to the generic specification for details 1939 */ 1940 _________________________________________________________ 1941 1942 7.3.28. nl_types.h 1943 1944 extern int catclose(nl_catd); 1945 extern char *catgets(nl_catd, int, int, const char *); 1946 extern nl_catd catopen(const char *, int); 1947 _________________________________________________________ 1948 1949 7.3.29. poll.h 1950 1951 extern int poll(struct pollfd *, nfds_t, int); 1952 _________________________________________________________ 1953 1954 7.3.30. pty.h 1955 1956 extern int openpty(int *, int *, char *, struct termios *, 1957 struct winsize *); 1958 extern int forkpty(int *, char *, struct termios *, struct winsize *); 1959 _________________________________________________________ 1960 1961 7.3.31. pwd.h 1962 1963 extern void endpwent(void); 1964 extern struct passwd *getpwent(void); 1965 extern struct passwd *getpwnam(char *); 1966 extern struct passwd *getpwuid(uid_t); 1967 extern void setpwent(void); 1968 extern int getpwnam_r(char *, struct passwd *, char *, size_t, 1969 struct passwd **); 1970 extern int getpwuid_r(uid_t, struct passwd *, char *, size_t, 1971 struct passwd **); 1972 _________________________________________________________ 1973 1974 7.3.32. regex.h 1975 1976 extern int regcomp(regex_t *, const char *, int); 1977 extern size_t regerror(int, const regex_t *, char *, size_t); 1978 extern int regexec(const regex_t *, const char *, size_t, regmatch_t, int); 1979 extern void regfree(regex_t *); 1980 _________________________________________________________ 1981 1982 7.3.33. rpc/auth.h 1983 1984 extern struct AUTH *authnone_create(void); 1985 extern int key_decryptsession(char *, union des_block *); 1986 extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); 1987 _________________________________________________________ 1988 1989 7.3.34. rpc/clnt.h 1990 1991 extern struct CLIENT *clnt_create(const char *, const u_long, const u_long, 1992 const char *); 1993 extern void clnt_pcreateerror(const char *); 1994 extern void clnt_perrno(enum clnt_stat); 1995 extern void clnt_perror(struct CLIENT *, const char *); 1996 extern char *clnt_spcreateerror(const char *); 1997 extern char *clnt_sperrno(enum clnt_stat); 1998 extern char *clnt_sperror(struct CLIENT *, const char *); 1999 _________________________________________________________ 2000 2001 7.3.35. rpc/pmap_clnt.h 2002 2003 extern u_short pmap_getport(struct sockaddr_in *, const u_long, 2004 const u_long, u_int); 2005 extern bool_t pmap_set(const u_long, const u_long, int, u_short); 2006 extern bool_t pmap_unset(u_long, u_long); 2007 _________________________________________________________ 2008 2009 7.3.36. rpc/rpc_msg.h 2010 2011 extern bool_t xdr_callhdr(XDR *, struct rpc_msg *); 2012 _________________________________________________________ 2013 2014 7.3.37. rpc/svc.h 2015 2016 extern void svc_getreqset(fd_set *); 2017 extern bool_t svc_register(SVCXPRT *, rpcprog_t, rpcvers_t, 2018 __dispatch_fn_t, rpcprot_t); 2019 extern void svc_run(void); 2020 extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, caddr_t); 2021 extern void svcerr_auth(SVCXPRT *, enum auth_stat); 2022 extern void svcerr_decode(SVCXPRT *); 2023 extern void svcerr_noproc(SVCXPRT *); 2024 extern void svcerr_noprog(SVCXPRT *); 2025 extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); 2026 extern void svcerr_systemerr(SVCXPRT *); 2027 extern void svcerr_weakauth(SVCXPRT *); 2028 extern SVCXPRT *svctcp_create(int, u_int, u_int); 2029 extern SVCXPRT *svcudp_create(int); 2030 _________________________________________________________ 2031 2032 7.3.38. rpc/types.h 2033 2034 /* 2035 * This header is architecture neutral 2036 * Please refer to the generic specification for details 2037 */ 2038 _________________________________________________________ 2039 2040 7.3.39. rpc/xdr.h 2041 2042 extern bool_t xdr_array(XDR *, caddr_t *, u_int *, u_int, u_int, 2043 xdrproc_t); 2044 extern bool_t xdr_bool(XDR *, bool_t *); 2045 extern bool_t xdr_bytes(XDR *, char **, u_int *, u_int); 2046 extern bool_t xdr_char(XDR *, char *); 2047 extern bool_t xdr_double(XDR *, double *); 2048 extern bool_t xdr_enum(XDR *, enum_t *); 2049 extern bool_t xdr_float(XDR *, float *); 2050 extern void xdr_free(xdrproc_t, char *); 2051 extern bool_t xdr_int(XDR *, int *); 2052 extern bool_t xdr_long(XDR *, long int *); 2053 extern bool_t xdr_opaque(XDR *, caddr_t, u_int); 2054 extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); 2055 extern bool_t xdr_reference(XDR *, caddr_t *, u_int, xdrproc_t); 2056 extern bool_t xdr_short(XDR *, short *); 2057 extern bool_t xdr_string(XDR *, char **, u_int); 2058 extern bool_t xdr_u_char(XDR *, u_char *); 2059 extern bool_t xdr_u_int(XDR *, u_int *); 2060 extern bool_t xdr_u_long(XDR *, u_long *); 2061 extern bool_t xdr_u_short(XDR *, u_short *); 2062 extern bool_t xdr_union(XDR *, enum_t *, char *, 2063 const struct xdr_discrim *, xdrproc_t); 2064 extern bool_t xdr_vector(XDR *, char *, u_int, u_int, xdrproc_t); 2065 extern bool_t xdr_void(void); 2066 extern bool_t xdr_wrapstring(XDR *, char **); 2067 extern void xdrmem_create(XDR *, caddr_t, u_int, enum xdr_op); 2068 extern void xdrrec_create(XDR *, u_int, u_int, caddr_t, 2069 int (*__readit) (char *p1, char *p2, int p3) 2070 , int (*__writeit) (char *p1, char *p2, int p3) 2071 ); 2072 extern typedef int bool_t xdrrec_eof(XDR *); 2073 _________________________________________________________ 2074 2075 7.3.40. sched.h 2076 2077 extern int sched_get_priority_max(int); 2078 extern int sched_get_priority_min(int); 2079 extern int sched_getparam(pid_t, struct sched_param *); 2080 extern int sched_getscheduler(pid_t); 2081 extern int sched_rr_get_interval(pid_t, struct timespec *); 2082 extern int sched_setparam(pid_t, const struct sched_param *); 2083 extern int sched_setscheduler(pid_t, int, const struct sched_param *); 2084 extern int sched_yield(void); 2085 _________________________________________________________ 2086 2087 7.3.41. search.h 2088 2089 extern int hcreate(size_t); 2090 extern ENTRY *hsearch(ENTRY, ACTION); 2091 extern void insque(void *, void *); 2092 extern void *lfind(const void *, const void *, size_t *, size_t, 2093 __compar_fn_t); 2094 extern void *lsearch(const void *, void *, size_t *, size_t, 2095 __compar_fn_t); 2096 extern void remque(void *); 2097 extern void hdestroy(void); 2098 extern void *tdelete(const void *, void **, __compar_fn_t); 2099 extern void *tfind(const void *, void *const *, __compar_fn_t); 2100 extern void *tsearch(const void *, void **, __compar_fn_t); 2101 extern void twalk(const void *, __action_fn_t); 2102 _________________________________________________________ 2103 2104 7.3.42. setjmp.h 2105 2106 typedef long int __jmp_buf[70] __attribute__ ((aligned(16))); 2107 2108 extern int __sigsetjmp(jmp_buf, int); 2109 extern void longjmp(jmp_buf, int); 2110 extern void siglongjmp(sigjmp_buf, int); 2111 extern void _longjmp(jmp_buf, int); 2112 extern int _setjmp(jmp_buf); 2113 _________________________________________________________ 2114 2115 7.3.43. signal.h 2116 2117 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-4) 2118 2119 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-4) 2120 2121 struct sigaction { 2122 union { 2123 sighandler_t _sa_handler; 2124 void (*_sa_sigaction) (int, siginfo_t *, void *); 2125 } __sigaction_handler; 2126 unsigned long int sa_flags; 2127 sigset_t sa_mask; 2128 }; 2129 2130 #define MINSIGSTKSZ 131027 2131 #define SIGSTKSZ 262144 2132 2133 struct ia64_fpreg { 2134 union { 2135 unsigned long int bits[2]; 2136 long double __dummy; 2137 } u; 2138 }; 2139 2140 struct sigcontext { 2141 unsigned long int sc_flags; 2142 unsigned long int sc_nat; 2143 stack_t sc_stack; 2144 unsigned long int sc_ip; 2145 unsigned long int sc_cfm; 2146 unsigned long int sc_um; 2147 unsigned long int sc_ar_rsc; 2148 unsigned long int sc_ar_bsp; 2149 unsigned long int sc_ar_rnat; 2150 unsigned long int sc_ar_ccv; 2151 unsigned long int sc_ar_unat; 2152 unsigned long int sc_ar_fpsr; 2153 unsigned long int sc_ar_pfs; 2154 unsigned long int sc_ar_lc; 2155 unsigned long int sc_pr; 2156 unsigned long int sc_br[8]; 2157 unsigned long int sc_gr[32]; 2158 struct ia64_fpreg sc_fr[128]; 2159 unsigned long int sc_rbs_base; 2160 unsigned long int sc_loadrs; 2161 unsigned long int sc_ar25; 2162 unsigned long int sc_ar26; 2163 unsigned long int sc_rsvd[12]; 2164 unsigned long int sc_mask; 2165 }; 2166 extern int __libc_current_sigrtmax(void); 2167 extern int __libc_current_sigrtmin(void); 2168 extern sighandler_t __sysv_signal(int, sighandler_t); 2169 extern char *const _sys_siglist(void); 2170 extern int killpg(pid_t, int); 2171 extern void psignal(int, const char *); 2172 extern int raise(int); 2173 extern int sigaddset(sigset_t *, int); 2174 extern int sigandset(sigset_t *, const sigset_t *, const sigset_t *); 2175 extern int sigdelset(sigset_t *, int); 2176 extern int sigemptyset(sigset_t *); 2177 extern int sigfillset(sigset_t *); 2178 extern int sighold(int); 2179 extern int sigignore(int); 2180 extern int siginterrupt(int, int); 2181 extern int sigisemptyset(const sigset_t *); 2182 extern int sigismember(const sigset_t *, int); 2183 extern int sigorset(sigset_t *, const sigset_t *, const sigset_t *); 2184 extern int sigpending(sigset_t *); 2185 extern int sigrelse(int); 2186 extern sighandler_t sigset(int, sighandler_t); 2187 extern int pthread_kill(pthread_t, int); 2188 extern int pthread_sigmask(int, sigset_t *, sigset_t *); 2189 extern int sigaction(int, const struct sigaction *, struct sigaction *); 2190 extern int sigwait(sigset_t *, int *); 2191 extern int kill(pid_t, int); 2192 extern int sigaltstack(const struct sigaltstack *, struct sigaltstack *); 2193 extern sighandler_t signal(int, sighandler_t); 2194 extern int sigpause(int); 2195 extern int sigprocmask(int, const sigset_t *, sigset_t *); 2196 extern int sigreturn(struct sigcontext *); 2197 extern int sigsuspend(const sigset_t *); 2198 extern int sigqueue(pid_t, int, const union sigval); 2199 extern int sigwaitinfo(const sigset_t *, siginfo_t *); 2200 extern int sigtimedwait(const sigset_t *, siginfo_t *, 2201 const struct timespec *); 2202 extern sighandler_t bsd_signal(int, sighandler_t); 2203 _________________________________________________________ 2204 2205 7.3.44. stddef.h 2206 2207 typedef long int ptrdiff_t; 2208 typedef unsigned long int size_t; 2209 _________________________________________________________ 2210 2211 7.3.45. stdio.h 2212 2213 #define __IO_FILE_SIZE 216 2214 2215 extern char *const _sys_errlist(void); 2216 extern void clearerr(FILE *); 2217 extern int fclose(FILE *); 2218 extern FILE *fdopen(int, const char *); 2219 extern int fflush_unlocked(FILE *); 2220 extern int fileno(FILE *); 2221 extern FILE *fopen(const char *, const char *); 2222 extern int fprintf(FILE *, const char *, ...); 2223 extern int fputc(int, FILE *); 2224 extern FILE *freopen(const char *, const char *, FILE *); 2225 extern FILE *freopen64(const char *, const char *, FILE *); 2226 extern int fscanf(FILE *, const char *, ...); 2227 extern int fseek(FILE *, long int, int); 2228 extern int fseeko(FILE *, off_t, int); 2229 extern int fseeko64(FILE *, loff_t, int); 2230 extern off_t ftello(FILE *); 2231 extern loff_t ftello64(FILE *); 2232 extern int getchar(void); 2233 extern int getchar_unlocked(void); 2234 extern int getw(FILE *); 2235 extern int pclose(FILE *); 2236 extern void perror(const char *); 2237 extern FILE *popen(const char *, const char *); 2238 extern int printf(const char *, ...); 2239 extern int putc_unlocked(int, FILE *); 2240 extern int putchar(int); 2241 extern int putchar_unlocked(int); 2242 extern int putw(int, FILE *); 2243 extern int remove(const char *); 2244 extern void rewind(FILE *); 2245 extern int scanf(const char *, ...); 2246 extern void setbuf(FILE *, char *); 2247 extern int sprintf(char *, const char *, ...); 2248 extern int sscanf(const char *, const char *, ...); 2249 extern FILE *stderr(void); 2250 extern FILE *stdin(void); 2251 extern FILE *stdout(void); 2252 extern char *tempnam(const char *, const char *); 2253 extern FILE *tmpfile64(void); 2254 extern FILE *tmpfile(void); 2255 extern char *tmpnam(char *); 2256 extern int vfprintf(FILE *, const char *, va_list); 2257 extern int vprintf(const char *, va_list); 2258 extern int feof(FILE *); 2259 extern int ferror(FILE *); 2260 extern int fflush(FILE *); 2261 extern int fgetc(FILE *); 2262 extern int fgetpos(FILE *, fpos_t *); 2263 extern char *fgets(char *, int, FILE *); 2264 extern int fputs(const char *, FILE *); 2265 extern size_t fread(void *, size_t, size_t, FILE *); 2266 extern int fsetpos(FILE *, const fpos_t *); 2267 extern long int ftell(FILE *); 2268 extern size_t fwrite(const void *, size_t, size_t, FILE *); 2269 extern int getc(FILE *); 2270 extern int putc(int, FILE *); 2271 extern int puts(const char *); 2272 extern int setvbuf(FILE *, char *, int, size_t); 2273 extern int snprintf(char *, size_t, const char *, ...); 2274 extern int ungetc(int, FILE *); 2275 extern int vsnprintf(char *, size_t, const char *, va_list); 2276 extern int vsprintf(char *, const char *, va_list); 2277 extern void flockfile(FILE *); 2278 extern int asprintf(char **, const char *, ...); 2279 extern int fgetpos64(FILE *, fpos64_t *); 2280 extern FILE *fopen64(const char *, const char *); 2281 extern int fsetpos64(FILE *, const fpos64_t *); 2282 extern int ftrylockfile(FILE *); 2283 extern void funlockfile(FILE *); 2284 extern int getc_unlocked(FILE *); 2285 extern void setbuffer(FILE *, char *, size_t); 2286 extern int vasprintf(char **, const char *, va_list); 2287 extern int vdprintf(int, const char *, va_list); 2288 extern int vfscanf(FILE *, const char *, va_list); 2289 extern int vscanf(const char *, va_list); 2290 extern int vsscanf(const char *, const char *, va_list); 2291 extern size_t __fpending(FILE *); 2292 _________________________________________________________ 2293 2294 7.3.46. stdlib.h 2295 2296 extern double __strtod_internal(const char *, char **, int); 2297 extern float __strtof_internal(const char *, char **, int); 2298 extern long int __strtol_internal(const char *, char **, int, int); 2299 extern long double __strtold_internal(const char *, char **, int); 2300 extern long long int __strtoll_internal(const char *, char **, int, int); 2301 extern unsigned long int __strtoul_internal(const char *, char **, int, 2302 int); 2303 extern unsigned long long int __strtoull_internal(const char *, char **, 2304 int, int); 2305 extern long int a64l(const char *); 2306 extern void abort(void); 2307 extern int abs(int); 2308 extern double atof(const char *); 2309 extern int atoi(char *); 2310 extern long int atol(char *); 2311 extern long long int atoll(const char *); 2312 extern void *bsearch(const void *, const void *, size_t, size_t, 2313 __compar_fn_t); 2314 extern div_t div(int, int); 2315 extern double drand48(void); 2316 extern char *ecvt(double, int, int *, int *); 2317 extern double erand48(unsigned short); 2318 extern void exit(int); 2319 extern char *fcvt(double, int, int *, int *); 2320 extern char *gcvt(double, int, char *); 2321 extern char *getenv(const char *); 2322 extern int getsubopt(char **, char *const *, char **); 2323 extern int grantpt(int); 2324 extern long int jrand48(unsigned short); 2325 extern char *l64a(long int); 2326 extern long int labs(long int); 2327 extern void lcong48(unsigned short); 2328 extern ldiv_t ldiv(long int, long int); 2329 extern long long int llabs(long long int); 2330 extern lldiv_t lldiv(long long int, long long int); 2331 extern long int lrand48(void); 2332 extern int mblen(const char *, size_t); 2333 extern size_t mbstowcs(wchar_t *, const char *, size_t); 2334 extern int mbtowc(wchar_t *, const char *, size_t); 2335 extern char *mktemp(char *); 2336 extern long int mrand48(void); 2337 extern long int nrand48(unsigned short); 2338 extern char *ptsname(int); 2339 extern int putenv(char *); 2340 extern void qsort(void *, size_t, size_t, __compar_fn_t); 2341 extern int rand(void); 2342 extern int rand_r(unsigned int *); 2343 extern unsigned short *seed48(unsigned short); 2344 extern void srand48(long int); 2345 extern int unlockpt(int); 2346 extern size_t wcstombs(char *, const wchar_t *, size_t); 2347 extern int wctomb(char *, wchar_t); 2348 extern int system(const char *); 2349 extern void *calloc(size_t, size_t); 2350 extern void free(void *); 2351 extern char *initstate(unsigned int, char *, size_t); 2352 extern void *malloc(size_t); 2353 extern long int random(void); 2354 extern void *realloc(void *, size_t); 2355 extern char *setstate(char *); 2356 extern void srand(unsigned int); 2357 extern void srandom(unsigned int); 2358 extern double strtod(char *, char **); 2359 extern float strtof(const char *, char **); 2360 extern long int strtol(char *, char **, int); 2361 extern long double strtold(const char *, char **); 2362 extern long long int strtoll(const char *, char **, int); 2363 extern long long int strtoq(const char *, char **, int); 2364 extern unsigned long int strtoul(const char *, char **, int); 2365 extern unsigned long long int strtoull(const char *, char **, int); 2366 extern unsigned long long int strtouq(const char *, char **, int); 2367 extern void _Exit(int); 2368 extern size_t __ctype_get_mb_cur_max(void); 2369 extern char **environ(void); 2370 extern char *realpath(const char *, char *); 2371 extern int setenv(const char *, const char *, int); 2372 extern int unsetenv(const char *); 2373 extern int getloadavg(double, int); 2374 extern int mkstemp64(char *); 2375 extern int posix_memalign(void **, size_t, size_t); 2376 extern int posix_openpt(int); 2377 _________________________________________________________ 2378 2379 7.3.47. string.h 2380 2381 extern void *__mempcpy(void *, const void *, size_t); 2382 extern char *__stpcpy(char *, const char *); 2383 extern char *__strtok_r(char *, const char *, char **); 2384 extern void bcopy(void *, void *, size_t); 2385 extern void *memchr(void *, int, size_t); 2386 extern int memcmp(void *, void *, size_t); 2387 extern void *memcpy(void *, void *, size_t); 2388 extern void *memmem(const void *, size_t, const void *, size_t); 2389 extern void *memmove(void *, const void *, size_t); 2390 extern void *memset(void *, int, size_t); 2391 extern char *strcat(char *, const char *); 2392 extern char *strchr(char *, int); 2393 extern int strcmp(char *, char *); 2394 extern int strcoll(const char *, const char *); 2395 extern char *strcpy(char *, char *); 2396 extern size_t strcspn(const char *, const char *); 2397 extern char *strerror(int); 2398 extern size_t strlen(char *); 2399 extern char *strncat(char *, char *, size_t); 2400 extern int strncmp(char *, char *, size_t); 2401 extern char *strncpy(char *, char *, size_t); 2402 extern char *strpbrk(const char *, const char *); 2403 extern char *strrchr(char *, int); 2404 extern char *strsignal(int); 2405 extern size_t strspn(const char *, const char *); 2406 extern char *strstr(char *, char *); 2407 extern char *strtok(char *, const char *); 2408 extern size_t strxfrm(char *, const char *, size_t); 2409 extern int bcmp(void *, void *, size_t); 2410 extern void bzero(void *, size_t); 2411 extern int ffs(int); 2412 extern char *index(char *, int); 2413 extern void *memccpy(void *, const void *, int, size_t); 2414 extern char *rindex(char *, int); 2415 extern int strcasecmp(char *, char *); 2416 extern char *strdup(char *); 2417 extern int strncasecmp(char *, char *, size_t); 2418 extern char *strndup(const char *, size_t); 2419 extern size_t strnlen(const char *, size_t); 2420 extern char *strsep(char **, const char *); 2421 extern char *strerror_r(int, char *, size_t); 2422 extern char *strtok_r(char *, const char *, char **); 2423 extern char *strcasestr(const char *, const char *); 2424 extern char *stpcpy(char *, const char *); 2425 extern char *stpncpy(char *, const char *, size_t); 2426 extern void *memrchr(const void *, int, size_t); 2427 _________________________________________________________ 2428 2429 7.3.48. sys/file.h 2430 2431 extern int flock(int, int); 2432 _________________________________________________________ 2433 2434 7.3.49. sys/ioctl.h 2435 2436 #define TIOCGWINSZ 0x5413 2437 #define FIONREAD 0x541B 2438 #define TIOCNOTTY 0x5422 2439 2440 extern int ioctl(int, unsigned long int, ...); 2441 _________________________________________________________ 2442 2443 7.3.50. sys/ipc.h 2444 2445 struct ipc_perm { 2446 key_t __key; 2447 uid_t uid; 2448 gid_t gid; 2449 uid_t cuid; 2450 uid_t cgid; 2451 mode_t mode; 2452 unsigned short __seq; 2453 unsigned short __pad1; 2454 unsigned long int __unused1; 2455 unsigned long int __unused2; 2456 }; 2457 2458 extern key_t ftok(char *, int); 2459 _________________________________________________________ 2460 2461 7.3.51. sys/mman.h 2462 2463 #define MCL_CURRENT 1 2464 #define MCL_FUTURE 2 2465 2466 extern int msync(void *, size_t, int); 2467 extern int mlock(const void *, size_t); 2468 extern int mlockall(int); 2469 extern void *mmap(void *, size_t, int, int, int, off_t); 2470 extern int mprotect(void *, size_t, int); 2471 extern int munlock(const void *, size_t); 2472 extern int munlockall(void); 2473 extern int munmap(void *, size_t); 2474 extern void *mmap64(void *, size_t, int, int, int, off64_t); 2475 extern int shm_open(const char *, int, mode_t); 2476 extern int shm_unlink(const char *); 2477 _________________________________________________________ 2478 2479 7.3.52. sys/msg.h 2480 2481 struct msqid_ds { 2482 struct ipc_perm msg_perm; 2483 time_t msg_stime; 2484 time_t msg_rtime; 2485 time_t msg_ctime; 2486 unsigned long int __msg_cbytes; 2487 unsigned long int msg_qnum; 2488 unsigned long int msg_qbytes; 2489 pid_t msg_lspid; 2490 pid_t msg_lrpid; 2491 unsigned long int __unused1; 2492 unsigned long int __unused2; 2493 }; 2494 extern int msgctl(int, int, struct msqid_ds *); 2495 extern int msgget(key_t, int); 2496 extern int msgrcv(int, void *, size_t, long int, int); 2497 extern int msgsnd(int, const void *, size_t, int); 2498 _________________________________________________________ 2499 2500 7.3.53. sys/param.h 2501 2502 /* 2503 * This header is architecture neutral 2504 * Please refer to the generic specification for details 2505 */ 2506 _________________________________________________________ 2507 2508 7.3.54. sys/poll.h 2509 2510 /* 2511 * This header is architecture neutral 2512 * Please refer to the generic specification for details 2513 */ 2514 _________________________________________________________ 2515 2516 7.3.55. sys/resource.h 2517 2518 extern int getpriority(__priority_which_t, id_t); 2519 extern int getrlimit64(id_t, struct rlimit64 *); 2520 extern int setpriority(__priority_which_t, id_t, int); 2521 extern int setrlimit(__rlimit_resource_t, const struct rlimit *); 2522 extern int setrlimit64(__rlimit_resource_t, const struct rlimit64 *); 2523 extern int getrlimit(__rlimit_resource_t, struct rlimit *); 2524 extern int getrusage(int, struct rusage *); 2525 _________________________________________________________ 2526 2527 7.3.56. sys/sem.h 2528 2529 struct semid_ds { 2530 struct ipc_perm sem_perm; 2531 time_t sem_otime; 2532 time_t sem_ctime; 2533 unsigned long int sem_nsems; 2534 unsigned long int __unused1; 2535 unsigned long int __unused2; 2536 }; 2537 extern int semctl(int, int, int, ...); 2538 extern int semget(key_t, int, int); 2539 extern int semop(int, struct sembuf *, size_t); 2540 _________________________________________________________ 2541 2542 7.3.57. sys/shm.h 2543 2544 #define SHMLBA (1024*1024) 2545 2546 struct shmid_ds { 2547 struct ipc_perm shm_perm; 2548 size_t shm_segsz; 2549 time_t shm_atime; 2550 time_t shm_dtime; 2551 time_t shm_ctime; 2552 pid_t shm_cpid; 2553 pid_t shm_lpid; 2554 unsigned long int shm_nattch; 2555 unsigned long int __unused1; 2556 unsigned long int __unused2; 2557 }; 2558 extern int __getpagesize(void); 2559 extern void *shmat(int, const void *, int); 2560 extern int shmctl(int, int, struct shmid_ds *); 2561 extern int shmdt(const void *); 2562 extern int shmget(key_t, size_t, int); 2563 _________________________________________________________ 2564 2565 7.3.58. sys/socket.h 2566 2567 typedef uint64_t __ss_aligntype; 2568 2569 #define SO_RCVLOWAT 18 2570 #define SO_SNDLOWAT 19 2571 #define SO_RCVTIMEO 20 2572 #define SO_SNDTIMEO 21 2573 2574 extern int bind(int, const struct sockaddr *, socklen_t); 2575 extern int getnameinfo(const struct sockaddr *, socklen_t, char *, 2576 socklen_t, char *, socklen_t, unsigned int); 2577 extern int getsockname(int, struct sockaddr *, socklen_t *); 2578 extern int listen(int, int); 2579 extern int setsockopt(int, int, int, const void *, socklen_t); 2580 extern int accept(int, struct sockaddr *, socklen_t *); 2581 extern int connect(int, const struct sockaddr *, socklen_t); 2582 extern ssize_t recv(int, void *, size_t, int); 2583 extern ssize_t recvfrom(int, void *, size_t, int, struct sockaddr *, 2584 socklen_t *); 2585 extern ssize_t recvmsg(int, struct msghdr *, int); 2586 extern ssize_t send(int, const void *, size_t, int); 2587 extern ssize_t sendmsg(int, const struct msghdr *, int); 2588 extern ssize_t sendto(int, const void *, size_t, int, 2589 const struct sockaddr *, socklen_t); 2590 extern int getpeername(int, struct sockaddr *, socklen_t *); 2591 extern int getsockopt(int, int, int, void *, socklen_t *); 2592 extern int shutdown(int, int); 2593 extern int socket(int, int, int); 2594 extern int socketpair(int, int, int, int); 2595 extern int sockatmark(int); 2596 _________________________________________________________ 2597 2598 7.3.59. sys/stat.h 2599 2600 #define _STAT_VER 1 2601 2602 struct stat { 2603 dev_t st_dev; 2604 ino_t st_ino; 2605 nlink_t st_nlink; 2606 mode_t st_mode; 2607 uid_t st_uid; 2608 gid_t st_gid; 2609 unsigned int pad0; 2610 dev_t st_rdev; 2611 off_t st_size; 2612 struct timespec st_atim; 2613 struct timespec st_mtim; 2614 struct timespec st_ctim; 2615 blksize_t st_blksize; 2616 blkcnt_t st_blocks; 2617 unsigned long int __unused[3]; 2618 }; 2619 struct stat64 { 2620 dev_t st_dev; 2621 ino64_t st_ino; 2622 nlink_t st_nlink; 2623 mode_t st_mode; 2624 uid_t st_uid; 2625 gid_t st_gid; 2626 unsigned int pad0; 2627 dev_t st_rdev; 2628 off_t st_size; 2629 struct timespec st_atim; 2630 struct timespec st_mtim; 2631 struct timespec st_ctim; 2632 blksize_t st_blksize; 2633 blkcnt64_t st_blocks; 2634 unsigned long int __unused[3]; 2635 }; 2636 2637 extern int __fxstat(int, int, struct stat *); 2638 extern int __fxstat64(int, int, struct stat64 *); 2639 extern int __lxstat(int, char *, struct stat *); 2640 extern int __lxstat64(int, const char *, struct stat64 *); 2641 extern int __xmknod(int, const char *, mode_t, dev_t *); 2642 extern int __xstat(int, const char *, struct stat *); 2643 extern int __xstat64(int, const char *, struct stat64 *); 2644 extern int mkfifo(const char *, mode_t); 2645 extern int chmod(const char *, mode_t); 2646 extern int fchmod(int, mode_t); 2647 extern mode_t umask(mode_t); 2648 _________________________________________________________ 2649 2650 7.3.60. sys/statvfs.h 2651 2652 struct statvfs { 2653 unsigned long int f_bsize; 2654 unsigned long int f_frsize; 2655 fsblkcnt64_t f_blocks; 2656 fsblkcnt64_t f_bfree; 2657 fsblkcnt64_t f_bavail; 2658 fsfilcnt64_t f_files; 2659 fsfilcnt64_t f_ffree; 2660 fsfilcnt64_t f_favail; 2661 unsigned long int f_fsid; 2662 unsigned long int f_flag; 2663 unsigned long int f_namemax; 2664 unsigned int __f_spare[6]; 2665 }; 2666 struct statvfs64 { 2667 unsigned long int f_bsize; 2668 unsigned long int f_frsize; 2669 fsblkcnt64_t f_blocks; 2670 fsblkcnt64_t f_bfree; 2671 fsblkcnt64_t f_bavail; 2672 fsfilcnt64_t f_files; 2673 fsfilcnt64_t f_ffree; 2674 fsfilcnt64_t f_favail; 2675 unsigned long int f_fsid; 2676 unsigned long int f_flag; 2677 unsigned long int f_namemax; 2678 unsigned int __f_spare[6]; 2679 }; 2680 extern int fstatvfs(int, struct statvfs *); 2681 extern int fstatvfs64(int, struct statvfs64 *); 2682 extern int statvfs(const char *, struct statvfs *); 2683 extern int statvfs64(const char *, struct statvfs64 *); 2684 _________________________________________________________ 2685 2686 7.3.61. sys/time.h 2687 2688 extern int getitimer(__itimer_which_t, struct itimerval *); 2689 extern int setitimer(__itimer_which_t, const struct itimerval *, 2690 struct itimerval *); 2691 extern int adjtime(const struct timeval *, struct timeval *); 2692 extern int gettimeofday(struct timeval *, struct timezone *); 2693 extern int utimes(const char *, const struct timeval *); 2694 _________________________________________________________ 2695 2696 7.3.62. sys/timeb.h 2697 2698 extern int ftime(struct timeb *); 2699 _________________________________________________________ 2700 2701 7.3.63. sys/times.h 2702 2703 extern clock_t times(struct tms *); 2704 _________________________________________________________ 2705 2706 7.3.64. sys/types.h 2707 2708 typedef long int int64_t; 2709 2710 typedef int64_t ssize_t; 2711 2712 #define __FDSET_LONGS 16 2713 _________________________________________________________ 2714 2715 7.3.65. sys/uio.h 2716 2717 extern ssize_t readv(int, const struct iovec *, int); 2718 extern ssize_t writev(int, const struct iovec *, int); 2719 _________________________________________________________ 2720 2721 7.3.66. sys/un.h 2722 2723 /* 2724 * This header is architecture neutral 2725 * Please refer to the generic specification for details 2726 */ 2727 _________________________________________________________ 2728 2729 7.3.67. sys/utsname.h 2730 2731 extern int uname(struct utsname *); 2732 _________________________________________________________ 2733 2734 7.3.68. sys/wait.h 2735 2736 extern pid_t wait(int *); 2737 extern pid_t waitpid(pid_t, int *, int); 2738 extern pid_t wait4(pid_t, int *, int, struct rusage *); 2739 _________________________________________________________ 2740 2741 7.3.69. syslog.h 2742 2743 extern void closelog(void); 2744 extern void openlog(const char *, int, int); 2745 extern int setlogmask(int); 2746 extern void syslog(int, const char *, ...); 2747 extern void vsyslog(int, const char *, va_list); 2748 _________________________________________________________ 2749 2750 7.3.70. termios.h 2751 2752 #define OLCUC 0000002 2753 #define ONLCR 0000004 2754 #define XCASE 0000004 2755 #define NLDLY 0000400 2756 #define CR1 0001000 2757 #define IUCLC 0001000 2758 #define CR2 0002000 2759 #define CR3 0003000 2760 #define CRDLY 0003000 2761 #define TAB1 0004000 2762 #define TAB2 0010000 2763 #define TAB3 0014000 2764 #define TABDLY 0014000 2765 #define BS1 0020000 2766 #define BSDLY 0020000 2767 #define VT1 0040000 2768 #define VTDLY 0040000 2769 #define FF1 0100000 2770 #define FFDLY 0100000 2771 2772 #define VSUSP 10 2773 #define VEOL 11 2774 #define VREPRINT 12 2775 #define VDISCARD 13 2776 #define VWERASE 14 2777 #define VEOL2 16 2778 #define VMIN 6 2779 #define VSWTC 7 2780 #define VSTART 8 2781 #define VSTOP 9 2782 2783 #define IXON 0002000 2784 #define IXOFF 0010000 2785 2786 #define CS6 0000020 2787 #define CS7 0000040 2788 #define CS8 0000060 2789 #define CSIZE 0000060 2790 #define CSTOPB 0000100 2791 #define CREAD 0000200 2792 #define PARENB 0000400 2793 #define PARODD 0001000 2794 #define HUPCL 0002000 2795 #define CLOCAL 0004000 2796 #define VTIME 5 2797 2798 #define ISIG 0000001 2799 #define ICANON 0000002 2800 #define ECHOE 0000020 2801 #define ECHOK 0000040 2802 #define ECHONL 0000100 2803 #define NOFLSH 0000200 2804 #define TOSTOP 0000400 2805 #define ECHOCTL 0001000 2806 #define ECHOPRT 0002000 2807 #define ECHOKE 0004000 2808 #define FLUSHO 0010000 2809 #define PENDIN 0040000 2810 #define IEXTEN 0100000 2811 2812 extern speed_t cfgetispeed(const struct termios *); 2813 extern speed_t cfgetospeed(const struct termios *); 2814 extern void cfmakeraw(struct termios *); 2815 extern int cfsetispeed(struct termios *, speed_t); 2816 extern int cfsetospeed(struct termios *, speed_t); 2817 extern int cfsetspeed(struct termios *, speed_t); 2818 extern int tcflow(int, int); 2819 extern int tcflush(int, int); 2820 extern pid_t tcgetsid(int); 2821 extern int tcsendbreak(int, int); 2822 extern int tcsetattr(int, int, const struct termios *); 2823 extern int tcdrain(int); 2824 extern int tcgetattr(int, struct termios *); 2825 _________________________________________________________ 2826 2827 7.3.71. time.h 2828 2829 extern int __daylight(void); 2830 extern long int __timezone(void); 2831 extern char *__tzname(void); 2832 extern char *asctime(const struct tm *); 2833 extern clock_t clock(void); 2834 extern char *ctime(const time_t *); 2835 extern char *ctime_r(const time_t *, char *); 2836 extern double difftime(time_t, time_t); 2837 extern struct tm *getdate(const char *); 2838 extern int getdate_err(void); 2839 extern struct tm *gmtime(const time_t *); 2840 extern struct tm *localtime(const time_t *); 2841 extern time_t mktime(struct tm *); 2842 extern int stime(const time_t *); 2843 extern size_t strftime(char *, size_t, const char *, const struct tm *); 2844 extern char *strptime(const char *, const char *, struct tm *); 2845 extern time_t time(time_t *); 2846 extern int nanosleep(const struct timespec *, struct timespec *); 2847 extern int daylight(void); 2848 extern long int timezone(void); 2849 extern char *tzname(void); 2850 extern void tzset(void); 2851 extern char *asctime_r(const struct tm *, char *); 2852 extern struct tm *gmtime_r(const time_t *, struct tm *); 2853 extern struct tm *localtime_r(const time_t *, struct tm *); 2854 extern int clock_getcpuclockid(pid_t, clockid_t *); 2855 extern int clock_getres(clockid_t, struct timespec *); 2856 extern int clock_gettime(clockid_t, struct timespec *); 2857 extern int clock_nanosleep(clockid_t, int, const struct timespec *, 2858 struct timespec *); 2859 extern int clock_settime(clockid_t, const struct timespec *); 2860 extern int timer_create(clockid_t, struct sigevent *, timer_t *); 2861 extern int timer_delete(timer_t); 2862 extern int timer_getoverrun(timer_t); 2863 extern int timer_gettime(timer_t, struct itimerspec *); 2864 extern int timer_settime(timer_t, int, const struct itimerspec *, 2865 struct itimerspec *); 2866 _________________________________________________________ 2867 2868 7.3.72. ucontext.h 2869 2870 #define _SC_GR0_OFFSET \ 2871 (((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0) 2872 2873 typedef struct sigcontext mcontext_t; 2874 2875 typedef struct ucontext { 2876 union { 2877 mcontext_t _mc; 2878 struct { 2879 unsigned long int _pad[_SC_GR0_OFFSET / 8]; 2880 struct ucontext *_link; 2881 } _uc; 2882 } _u; 2883 } ucontext_t; 2884 extern int getcontext(ucontext_t *); 2885 extern int makecontext(ucontext_t *, void (*func) (void) 2886 , int, ...); 2887 extern int setcontext(const struct ucontext *); 2888 extern int swapcontext(ucontext_t *, const struct ucontext *); 2889 _________________________________________________________ 2890 2891 7.3.73. ulimit.h 2892 2893 extern long int ulimit(int, ...); 2894 _________________________________________________________ 2895 2896 7.3.74. unistd.h 2897 2898 typedef long int intptr_t; 2899 2900 extern char **__environ(void); 2901 extern pid_t __getpgid(pid_t); 2902 extern void _exit(int); 2903 extern int acct(const char *); 2904 extern unsigned int alarm(unsigned int); 2905 extern int chown(const char *, uid_t, gid_t); 2906 extern int chroot(const char *); 2907 extern size_t confstr(int, char *, size_t); 2908 extern int creat(const char *, mode_t); 2909 extern int creat64(const char *, mode_t); 2910 extern char *ctermid(char *); 2911 extern char *cuserid(char *); 2912 extern int daemon(int, int); 2913 extern int execl(const char *, const char *, ...); 2914 extern int execle(const char *, const char *, ...); 2915 extern int execlp(const char *, const char *, ...); 2916 extern int execv(const char *, char *const); 2917 extern int execvp(const char *, char *const); 2918 extern int fdatasync(int); 2919 extern int ftruncate64(int, off64_t); 2920 extern long int gethostid(void); 2921 extern char *getlogin(void); 2922 extern int getlogin_r(char *, size_t); 2923 extern int getopt(int, char *const, const char *); 2924 extern pid_t getpgrp(void); 2925 extern pid_t getsid(pid_t); 2926 extern char *getwd(char *); 2927 extern int lockf(int, int, off_t); 2928 extern int mkstemp(char *); 2929 extern int nice(int); 2930 extern char *optarg(void); 2931 extern int opterr(void); 2932 extern int optind(void); 2933 extern int optopt(void); 2934 extern int rename(const char *, const char *); 2935 extern int setegid(gid_t); 2936 extern int seteuid(uid_t); 2937 extern int sethostname(const char *, size_t); 2938 extern int setpgrp(void); 2939 extern void swab(const void *, void *, ssize_t); 2940 extern void sync(void); 2941 extern pid_t tcgetpgrp(int); 2942 extern int tcsetpgrp(int, pid_t); 2943 extern int truncate(const char *, off_t); 2944 extern int truncate64(const char *, off64_t); 2945 extern char *ttyname(int); 2946 extern unsigned int ualarm(useconds_t, useconds_t); 2947 extern int usleep(useconds_t); 2948 extern int close(int); 2949 extern int fsync(int); 2950 extern off_t lseek(int, off_t, int); 2951 extern int open(const char *, int, ...); 2952 extern int pause(void); 2953 extern ssize_t read(int, void *, size_t); 2954 extern ssize_t write(int, const void *, size_t); 2955 extern char *crypt(char *, char *); 2956 extern void encrypt(char *, int); 2957 extern void setkey(const char *); 2958 extern int access(const char *, int); 2959 extern int brk(void *); 2960 extern int chdir(const char *); 2961 extern int dup(int); 2962 extern int dup2(int, int); 2963 extern int execve(const char *, char *const, char *const); 2964 extern int fchdir(int); 2965 extern int fchown(int, uid_t, gid_t); 2966 extern pid_t fork(void); 2967 extern gid_t getegid(void); 2968 extern uid_t geteuid(void); 2969 extern gid_t getgid(void); 2970 extern int getgroups(int, gid_t); 2971 extern int gethostname(char *, size_t); 2972 extern pid_t getpgid(pid_t); 2973 extern pid_t getpid(void); 2974 extern uid_t getuid(void); 2975 extern int lchown(const char *, uid_t, gid_t); 2976 extern int link(const char *, const char *); 2977 extern int mkdir(const char *, mode_t); 2978 extern long int pathconf(const char *, int); 2979 extern int pipe(int); 2980 extern int readlink(const char *, char *, size_t); 2981 extern int rmdir(const char *); 2982 extern void *sbrk(ptrdiff_t); 2983 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 2984 extern int setgid(gid_t); 2985 extern int setpgid(pid_t, pid_t); 2986 extern int setregid(gid_t, gid_t); 2987 extern int setreuid(uid_t, uid_t); 2988 extern pid_t setsid(void); 2989 extern int setuid(uid_t); 2990 extern unsigned int sleep(unsigned int); 2991 extern int symlink(const char *, const char *); 2992 extern long int sysconf(int); 2993 extern int unlink(const char *); 2994 extern pid_t vfork(void); 2995 extern ssize_t pread(int, void *, size_t, off_t); 2996 extern ssize_t pwrite(int, const void *, size_t, off_t); 2997 extern char **_environ(void); 2998 extern long int fpathconf(int, int); 2999 extern int ftruncate(int, off_t); 3000 extern char *getcwd(char *, size_t); 3001 extern int getpagesize(void); 3002 extern pid_t getppid(void); 3003 extern int isatty(int); 3004 extern loff_t lseek64(int, loff_t, int); 3005 extern int open64(const char *, int, ...); 3006 extern ssize_t pread64(int, void *, size_t, off64_t); 3007 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 3008 extern int ttyname_r(int, char *, size_t); 3009 _________________________________________________________ 3010 3011 7.3.75. utime.h 3012 3013 extern int utime(const char *, const struct utimbuf *); 3014 _________________________________________________________ 3015 3016 7.3.76. utmp.h 3017 3018 struct lastlog { 3019 time_t ll_time; 3020 char ll_line[UT_LINESIZE]; 3021 char ll_host[UT_HOSTSIZE]; 3022 }; 3023 3024 struct utmp { 3025 short ut_type; 3026 pid_t ut_pid; 3027 char ut_line[UT_LINESIZE]; 3028 char ut_id[4]; 3029 char ut_user[UT_NAMESIZE]; 3030 char ut_host[UT_HOSTSIZE]; 3031 struct exit_status ut_exit; 3032 long int ut_session; 3033 struct timeval ut_tv; 3034 int32_t ut_addr_v6[4]; 3035 char __unused[20]; 3036 }; 3037 3038 extern void endutent(void); 3039 extern struct utmp *getutent(void); 3040 extern void setutent(void); 3041 extern int getutent_r(struct utmp *, struct utmp **); 3042 extern int utmpname(const char *); 3043 extern int login_tty(int); 3044 extern void login(const struct utmp *); 3045 extern int logout(const char *); 3046 extern void logwtmp(const char *, const char *, const char *); 3047 _________________________________________________________ 3048 3049 7.3.77. utmpx.h 3050 3051 struct utmpx { 3052 short ut_type; 3053 pid_t ut_pid; 3054 char ut_line[UT_LINESIZE]; 3055 char ut_id[4]; 3056 char ut_user[UT_NAMESIZE]; 3057 char ut_host[UT_HOSTSIZE]; 3058 struct exit_status ut_exit; 3059 long int ut_session; 3060 struct timeval ut_tv; 3061 int32_t ut_addr_v6[4]; 3062 char __unused[20]; 3063 }; 3064 3065 extern void endutxent(void); 3066 extern struct utmpx *getutxent(void); 3067 extern struct utmpx *getutxid(const struct utmpx *); 3068 extern struct utmpx *getutxline(const struct utmpx *); 3069 extern struct utmpx *pututxline(const struct utmpx *); 3070 extern void setutxent(void); 3071 _________________________________________________________ 3072 3073 7.3.78. wchar.h 3074 3075 extern double __wcstod_internal(const wchar_t *, wchar_t * *, int); 3076 extern float __wcstof_internal(const wchar_t *, wchar_t * *, int); 3077 extern long int __wcstol_internal(const wchar_t *, wchar_t * *, int, int); 3078 extern long double __wcstold_internal(const wchar_t *, wchar_t * *, int); 3079 extern unsigned long int __wcstoul_internal(const wchar_t *, wchar_t **, 3080 int, int); 3081 extern wchar_t *wcscat(wchar_t *, const wchar_t *); 3082 extern wchar_t *wcschr(const wchar_t *, wchar_t); 3083 extern int wcscmp(const wchar_t *, const wchar_t *); 3084 extern int wcscoll(const wchar_t *, const wchar_t *); 3085 extern wchar_t *wcscpy(wchar_t *, const wchar_t *); 3086 extern size_t wcscspn(const wchar_t *, const wchar_t *); 3087 extern wchar_t *wcsdup(const wchar_t *); 3088 extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); 3089 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); 3090 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); 3091 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); 3092 extern wchar_t *wcsrchr(const wchar_t *, wchar_t); 3093 extern size_t wcsspn(const wchar_t *, const wchar_t *); 3094 extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); 3095 extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t * *); 3096 extern int wcswidth(const wchar_t *, size_t); 3097 extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); 3098 extern int wctob(wint_t); 3099 extern int wcwidth(wchar_t); 3100 extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); 3101 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); 3102 extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); 3103 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); 3104 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); 3105 extern size_t mbrlen(const char *, size_t, mbstate_t *); 3106 extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); 3107 extern int mbsinit(const mbstate_t *); 3108 extern size_t mbsnrtowcs(wchar_t *, const char **, size_t, size_t, 3109 mbstate_t *); 3110 extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); 3111 extern wchar_t *wcpcpy(wchar_t *, const wchar_t *); 3112 extern wchar_t *wcpncpy(wchar_t *, const wchar_t *, size_t); 3113 extern size_t wcrtomb(char *, wchar_t, mbstate_t *); 3114 extern size_t wcslen(const wchar_t *); 3115 extern size_t wcsnrtombs(char *, const wchar_t * *, size_t, size_t, 3116 mbstate_t *); 3117 extern size_t wcsrtombs(char *, const wchar_t * *, size_t, mbstate_t *); 3118 extern double wcstod(const wchar_t *, wchar_t * *); 3119 extern float wcstof(const wchar_t *, wchar_t * *); 3120 extern long int wcstol(const wchar_t *, wchar_t * *, int); 3121 extern long double wcstold(const wchar_t *, wchar_t * *); 3122 extern long long int wcstoq(const wchar_t *, wchar_t * *, int); 3123 extern unsigned long int wcstoul(const wchar_t *, wchar_t * *, int); 3124 extern unsigned long long int wcstouq(const wchar_t *, wchar_t * *, int); 3125 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); 3126 extern int wcscasecmp(const wchar_t *, const wchar_t *); 3127 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 3128 extern size_t wcsnlen(const wchar_t *, size_t); 3129 extern long long int wcstoll(const wchar_t *, wchar_t * *, int); 3130 extern unsigned long long int wcstoull(const wchar_t *, wchar_t * *, int); 3131 extern wint_t btowc(int); 3132 extern wint_t fgetwc(FILE *); 3133 extern wint_t fgetwc_unlocked(FILE *); 3134 extern wchar_t *fgetws(wchar_t *, int, FILE *); 3135 extern wint_t fputwc(wchar_t, FILE *); 3136 extern int fputws(const wchar_t *, FILE *); 3137 extern int fwide(FILE *, int); 3138 extern int fwprintf(FILE *, const wchar_t *, ...); 3139 extern int fwscanf(FILE *, const wchar_t *, ...); 3140 extern wint_t getwc(FILE *); 3141 extern wint_t getwchar(void); 3142 extern wint_t putwc(wchar_t, FILE *); 3143 extern wint_t putwchar(wchar_t); 3144 extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); 3145 extern int swscanf(const wchar_t *, const wchar_t *, ...); 3146 extern wint_t ungetwc(wint_t, FILE *); 3147 extern int vfwprintf(FILE *, const wchar_t *, va_list); 3148 extern int vfwscanf(FILE *, const wchar_t *, va_list); 3149 extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list); 3150 extern int vswscanf(const wchar_t *, const wchar_t *, va_list); 3151 extern int vwprintf(const wchar_t *, va_list); 3152 extern int vwscanf(const wchar_t *, va_list); 3153 extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, 3154 const struct tm *); 3155 extern int wprintf(const wchar_t *, ...); 3156 extern int wscanf(const wchar_t *, ...); 3157 _________________________________________________________ 3158 3159 7.3.79. wctype.h 3160 3161 extern int iswblank(wint_t); 3162 extern wint_t towlower(wint_t); 3163 extern wint_t towupper(wint_t); 3164 extern wctrans_t wctrans(const char *); 3165 extern int iswalnum(wint_t); 3166 extern int iswalpha(wint_t); 3167 extern int iswcntrl(wint_t); 3168 extern int iswctype(wint_t, wctype_t); 3169 extern int iswdigit(wint_t); 3170 extern int iswgraph(wint_t); 3171 extern int iswlower(wint_t); 3172 extern int iswprint(wint_t); 3173 extern int iswpunct(wint_t); 3174 extern int iswspace(wint_t); 3175 extern int iswupper(wint_t); 3176 extern int iswxdigit(wint_t); 3177 extern wctype_t wctype(const char *); 3178 extern wint_t towctrans(wint_t, wctrans_t); 3179 _________________________________________________________ 3180 3181 7.3.80. wordexp.h 3182 3183 extern int wordexp(const char *, wordexp_t *, int); 3184 extern void wordfree(wordexp_t *); 3185 _________________________________________________________ 3186 3187 7.4. Interfaces for libm 3188 3189 Table 7-24 defines the library name and shared object name for 3190 the libm library 3191 3192 Table 7-24. libm Definition 3193 Library: libm 3194 SONAME: libm.so.6.1 3195 3196 The behavior of the interfaces in this library is specified by 3197 the following specifications: 3198 3199 [ISOC99] ISO C (1999) 3200 [LSB] This Specification 3201 [SUSv2] SUSv2 3202 [SUSv3] ISO POSIX (2003) 3203 _________________________________________________________ 3204 3205 7.4.1. Math 3206 _________________________________________________________ 3207 3208 7.4.1.1. Interfaces for Math 3209 3210 An LSB conforming implementation shall provide the 3211 architecture specific functions for Math specified in Table 3212 7-25, with the full mandatory functionality as described in 3213 the referenced underlying specification. 3214 3215 Table 7-25. libm - Math Function Interfaces 3216 __finite(GLIBC_2.2) [ISOC99] __finitef(GLIBC_2.2) [ISOC99] 3217 __finitel(GLIBC_2.2) [ISOC99] __fpclassify(GLIBC_2.2) [LSB] 3218 __fpclassifyf(GLIBC_2.2) [LSB] __fpclassifyl(GLIBC_2.2) 3219 [ISOC99] __signbit(GLIBC_2.2) [ISOC99] __signbitf(GLIBC_2.2) 3220 [ISOC99] 3221 __signbitl(GLIBC_2.2) [ISOC99] acos(GLIBC_2.2) [SUSv3] 3222 acosf(GLIBC_2.2) [SUSv3] acosh(GLIBC_2.2) [SUSv3] 3223 acoshf(GLIBC_2.2) [SUSv3] acoshl(GLIBC_2.2) [SUSv3] 3224 acosl(GLIBC_2.2) [SUSv3] asin(GLIBC_2.2) [SUSv3] 3225 asinf(GLIBC_2.2) [SUSv3] asinh(GLIBC_2.2) [SUSv3] 3226 asinhf(GLIBC_2.2) [SUSv3] asinhl(GLIBC_2.2) [SUSv3] 3227 asinl(GLIBC_2.2) [SUSv3] atan(GLIBC_2.2) [SUSv3] 3228 atan2(GLIBC_2.2) [SUSv3] atan2f(GLIBC_2.2) [SUSv3] 3229 atan2l(GLIBC_2.2) [SUSv3] atanf(GLIBC_2.2) [SUSv3] 3230 atanh(GLIBC_2.2) [SUSv3] atanhf(GLIBC_2.2) [SUSv3] 3231 atanhl(GLIBC_2.2) [SUSv3] atanl(GLIBC_2.2) [SUSv3] 3232 cabs(GLIBC_2.2) [SUSv3] cabsf(GLIBC_2.2) [SUSv3] 3233 cabsl(GLIBC_2.2) [SUSv3] cacos(GLIBC_2.2) [SUSv3] 3234 cacosf(GLIBC_2.2) [SUSv3] cacosh(GLIBC_2.2) [SUSv3] 3235 cacoshf(GLIBC_2.2) [SUSv3] cacoshl(GLIBC_2.2) [SUSv3] 3236 cacosl(GLIBC_2.2) [SUSv3] carg(GLIBC_2.2) [SUSv3] 3237 cargf(GLIBC_2.2) [SUSv3] cargl(GLIBC_2.2) [SUSv3] 3238 casin(GLIBC_2.2) [SUSv3] casinf(GLIBC_2.2) [SUSv3] 3239 casinh(GLIBC_2.2) [SUSv3] casinhf(GLIBC_2.2) [SUSv3] 3240 casinhl(GLIBC_2.2) [SUSv3] casinl(GLIBC_2.2) [SUSv3] 3241 catan(GLIBC_2.2) [SUSv3] catanf(GLIBC_2.2) [SUSv3] 3242 catanh(GLIBC_2.2) [SUSv3] catanhf(GLIBC_2.2) [SUSv3] 3243 catanhl(GLIBC_2.2) [SUSv3] catanl(GLIBC_2.2) [SUSv3] 3244 cbrt(GLIBC_2.2) [SUSv3] cbrtf(GLIBC_2.2) [SUSv3] 3245 cbrtl(GLIBC_2.2) [SUSv3] ccos(GLIBC_2.2) [SUSv3] 3246 ccosf(GLIBC_2.2) [SUSv3] ccosh(GLIBC_2.2) [SUSv3] 3247 ccoshf(GLIBC_2.2) [SUSv3] ccoshl(GLIBC_2.2) [SUSv3] 3248 ccosl(GLIBC_2.2) [SUSv3] ceil(GLIBC_2.2) [SUSv3] 3249 ceilf(GLIBC_2.2) [SUSv3] ceill(GLIBC_2.2) [SUSv3] 3250 cexp(GLIBC_2.2) [SUSv3] cexpf(GLIBC_2.2) [SUSv3] 3251 cexpl(GLIBC_2.2) [SUSv3] cimag(GLIBC_2.2) [SUSv3] 3252 cimagf(GLIBC_2.2) [SUSv3] cimagl(GLIBC_2.2) [SUSv3] 3253 clog(GLIBC_2.2) [SUSv3] clog10(GLIBC_2.2) [ISOC99] 3254 clog10f(GLIBC_2.2) [ISOC99] clog10l(GLIBC_2.2) [ISOC99] 3255 clogf(GLIBC_2.2) [SUSv3] clogl(GLIBC_2.2) [SUSv3] 3256 conj(GLIBC_2.2) [SUSv3] conjf(GLIBC_2.2) [SUSv3] 3257 conjl(GLIBC_2.2) [SUSv3] copysign(GLIBC_2.2) [SUSv3] 3258 copysignf(GLIBC_2.2) [SUSv3] copysignl(GLIBC_2.2) [SUSv3] 3259 cos(GLIBC_2.2) [SUSv3] cosf(GLIBC_2.2) [SUSv3] cosh(GLIBC_2.2) 3260 [SUSv3] coshf(GLIBC_2.2) [SUSv3] 3261 coshl(GLIBC_2.2) [SUSv3] cosl(GLIBC_2.2) [SUSv3] 3262 cpow(GLIBC_2.2) [SUSv3] cpowf(GLIBC_2.2) [SUSv3] 3263 cpowl(GLIBC_2.2) [SUSv3] cproj(GLIBC_2.2) [SUSv3] 3264 cprojf(GLIBC_2.2) [SUSv3] cprojl(GLIBC_2.2) [SUSv3] 3265 creal(GLIBC_2.2) [SUSv3] crealf(GLIBC_2.2) [SUSv3] 3266 creall(GLIBC_2.2) [SUSv3] csin(GLIBC_2.2) [SUSv3] 3267 csinf(GLIBC_2.2) [SUSv3] csinh(GLIBC_2.2) [SUSv3] 3268 csinhf(GLIBC_2.2) [SUSv3] csinhl(GLIBC_2.2) [SUSv3] 3269 csinl(GLIBC_2.2) [SUSv3] csqrt(GLIBC_2.2) [SUSv3] 3270 csqrtf(GLIBC_2.2) [SUSv3] csqrtl(GLIBC_2.2) [SUSv3] 3271 ctan(GLIBC_2.2) [SUSv3] ctanf(GLIBC_2.2) [SUSv3] 3272 ctanh(GLIBC_2.2) [SUSv3] ctanhf(GLIBC_2.2) [SUSv3] 3273 ctanhl(GLIBC_2.2) [SUSv3] ctanl(GLIBC_2.2) [SUSv3] 3274 dremf(GLIBC_2.2) [ISOC99] dreml(GLIBC_2.2) [ISOC99] 3275 erf(GLIBC_2.2) [SUSv3] erfc(GLIBC_2.2) [SUSv3] 3276 erfcf(GLIBC_2.2) [SUSv3] erfcl(GLIBC_2.2) [SUSv3] 3277 erff(GLIBC_2.2) [SUSv3] erfl(GLIBC_2.2) [SUSv3] exp(GLIBC_2.2) 3278 [SUSv3] exp2(GLIBC_2.2) [SUSv3] 3279 exp2f(GLIBC_2.2) [SUSv3] exp2l(GLIBC_2.2) [SUSv3] 3280 expf(GLIBC_2.2) [SUSv3] expl(GLIBC_2.2) [SUSv3] 3281 expm1(GLIBC_2.2) [SUSv3] expm1f(GLIBC_2.2) [SUSv3] 3282 expm1l(GLIBC_2.2) [SUSv3] fabs(GLIBC_2.2) [SUSv3] 3283 fabsf(GLIBC_2.2) [SUSv3] fabsl(GLIBC_2.2) [SUSv3] 3284 fdim(GLIBC_2.2) [SUSv3] fdimf(GLIBC_2.2) [SUSv3] 3285 fdiml(GLIBC_2.2) [SUSv3] feclearexcept(GLIBC_2.2) [SUSv3] 3286 fegetenv(GLIBC_2.2) [SUSv3] fegetexceptflag(GLIBC_2.2) [SUSv3] 3287 fegetround(GLIBC_2.2) [SUSv3] feholdexcept(GLIBC_2.2) [SUSv3] 3288 feraiseexcept(GLIBC_2.2) [SUSv3] fesetenv(GLIBC_2.2) [SUSv3] 3289 fesetexceptflag(GLIBC_2.2) [SUSv3] fesetround(GLIBC_2.2) 3290 [SUSv3] fetestexcept(GLIBC_2.2) [SUSv3] feupdateenv(GLIBC_2.2) 3291 [SUSv3] 3292 finite(GLIBC_2.2) [SUSv2] finitef(GLIBC_2.2) [ISOC99] 3293 finitel(GLIBC_2.2) [ISOC99] floor(GLIBC_2.2) [SUSv3] 3294 floorf(GLIBC_2.2) [SUSv3] floorl(GLIBC_2.2) [SUSv3] 3295 fma(GLIBC_2.2) [SUSv3] fmaf(GLIBC_2.2) [SUSv3] 3296 fmal(GLIBC_2.2) [SUSv3] fmax(GLIBC_2.2) [SUSv3] 3297 fmaxf(GLIBC_2.2) [SUSv3] fmaxl(GLIBC_2.2) [SUSv3] 3298 fmin(GLIBC_2.2) [SUSv3] fminf(GLIBC_2.2) [SUSv3] 3299 fminl(GLIBC_2.2) [SUSv3] fmod(GLIBC_2.2) [SUSv3] 3300 fmodf(GLIBC_2.2) [SUSv3] fmodl(GLIBC_2.2) [SUSv3] 3301 frexp(GLIBC_2.2) [SUSv3] frexpf(GLIBC_2.2) [SUSv3] 3302 frexpl(GLIBC_2.2) [SUSv3] gamma(GLIBC_2.2) [SUSv2] 3303 gammaf(GLIBC_2.2) [ISOC99] gammal(GLIBC_2.2) [ISOC99] 3304 hypot(GLIBC_2.2) [SUSv3] hypotf(GLIBC_2.2) [SUSv3] 3305 hypotl(GLIBC_2.2) [SUSv3] ilogb(GLIBC_2.2) [SUSv3] 3306 ilogbf(GLIBC_2.2) [SUSv3] ilogbl(GLIBC_2.2) [SUSv3] 3307 j0(GLIBC_2.2) [SUSv3] j0f(GLIBC_2.2) [ISOC99] 3308 j0l(GLIBC_2.2) [ISOC99] j1(GLIBC_2.2) [SUSv3] j1f(GLIBC_2.2) 3309 [ISOC99] j1l(GLIBC_2.2) [ISOC99] 3310 jn(GLIBC_2.2) [SUSv3] jnf(GLIBC_2.2) [ISOC99] jnl(GLIBC_2.2) 3311 [ISOC99] ldexp(GLIBC_2.2) [SUSv3] 3312 ldexpf(GLIBC_2.2) [SUSv3] ldexpl(GLIBC_2.2) [SUSv3] 3313 lgamma(GLIBC_2.2) [SUSv3] lgamma_r(GLIBC_2.2) [ISOC99] 3314 lgammaf(GLIBC_2.2) [SUSv3] lgammaf_r(GLIBC_2.2) [ISOC99] 3315 lgammal(GLIBC_2.2) [SUSv3] lgammal_r(GLIBC_2.2) [ISOC99] 3316 llrint(GLIBC_2.2) [SUSv3] llrintf(GLIBC_2.2) [SUSv3] 3317 llrintl(GLIBC_2.2) [SUSv3] llround(GLIBC_2.2) [SUSv3] 3318 llroundf(GLIBC_2.2) [SUSv3] llroundl(GLIBC_2.2) [SUSv3] 3319 log(GLIBC_2.2) [SUSv3] log10(GLIBC_2.2) [SUSv3] 3320 log10f(GLIBC_2.2) [SUSv3] log10l(GLIBC_2.2) [SUSv3] 3321 log1p(GLIBC_2.2) [SUSv3] log1pf(GLIBC_2.2) [SUSv3] 3322 log1pl(GLIBC_2.2) [SUSv3] log2(GLIBC_2.2) [SUSv3] 3323 log2f(GLIBC_2.2) [SUSv3] log2l(GLIBC_2.2) [SUSv3] 3324 logb(GLIBC_2.2) [SUSv3] logbf(GLIBC_2.2) [SUSv3] 3325 logbl(GLIBC_2.2) [SUSv3] logf(GLIBC_2.2) [SUSv3] 3326 logl(GLIBC_2.2) [SUSv3] lrint(GLIBC_2.2) [SUSv3] 3327 lrintf(GLIBC_2.2) [SUSv3] lrintl(GLIBC_2.2) [SUSv3] 3328 lround(GLIBC_2.2) [SUSv3] lroundf(GLIBC_2.2) [SUSv3] 3329 lroundl(GLIBC_2.2) [SUSv3] matherr(GLIBC_2.2) [ISOC99] 3330 modf(GLIBC_2.2) [SUSv3] modff(GLIBC_2.2) [SUSv3] 3331 modfl(GLIBC_2.2) [SUSv3] nan(GLIBC_2.2) [SUSv3] 3332 nanf(GLIBC_2.2) [SUSv3] nanl(GLIBC_2.2) [SUSv3] 3333 nearbyint(GLIBC_2.2) [SUSv3] nearbyintf(GLIBC_2.2) [SUSv3] 3334 nearbyintl(GLIBC_2.2) [SUSv3] nextafter(GLIBC_2.2) [SUSv3] 3335 nextafterf(GLIBC_2.2) [SUSv3] nextafterl(GLIBC_2.2) [SUSv3] 3336 nexttoward(GLIBC_2.2) [SUSv3] nexttowardf(GLIBC_2.2) [SUSv3] 3337 nexttowardl(GLIBC_2.2) [SUSv3] pow(GLIBC_2.2) [SUSv3] 3338 pow10(GLIBC_2.2) [ISOC99] pow10f(GLIBC_2.2) [ISOC99] 3339 pow10l(GLIBC_2.2) [ISOC99] powf(GLIBC_2.2) [SUSv3] 3340 powl(GLIBC_2.2) [SUSv3] remainder(GLIBC_2.2) [SUSv3] 3341 remainderf(GLIBC_2.2) [SUSv3] remainderl(GLIBC_2.2) [SUSv3] 3342 remquo(GLIBC_2.2) [SUSv3] remquof(GLIBC_2.2) [SUSv3] 3343 remquol(GLIBC_2.2) [SUSv3] rint(GLIBC_2.2) [SUSv3] 3344 rintf(GLIBC_2.2) [SUSv3] rintl(GLIBC_2.2) [SUSv3] 3345 round(GLIBC_2.2) [SUSv3] roundf(GLIBC_2.2) [SUSv3] 3346 roundl(GLIBC_2.2) [SUSv3] scalb(GLIBC_2.2) [SUSv3] 3347 scalbf(GLIBC_2.2) [ISOC99] scalbl(GLIBC_2.2) [ISOC99] 3348 scalbln(GLIBC_2.2) [SUSv3] scalblnf(GLIBC_2.2) [SUSv3] 3349 scalblnl(GLIBC_2.2) [SUSv3] scalbn(GLIBC_2.2) [SUSv3] 3350 scalbnf(GLIBC_2.2) [SUSv3] scalbnl(GLIBC_2.2) [SUSv3] 3351 significand(GLIBC_2.2) [ISOC99] significandf(GLIBC_2.2) 3352 [ISOC99] 3353 significandl(GLIBC_2.2) [ISOC99] sin(GLIBC_2.2) [SUSv3] 3354 sincos(GLIBC_2.2) [ISOC99] sincosf(GLIBC_2.2) [ISOC99] 3355 sincosl(GLIBC_2.2) [ISOC99] sinf(GLIBC_2.2) [SUSv3] 3356 sinh(GLIBC_2.2) [SUSv3] sinhf(GLIBC_2.2) [SUSv3] 3357 sinhl(GLIBC_2.2) [SUSv3] sinl(GLIBC_2.2) [SUSv3] 3358 sqrt(GLIBC_2.2) [SUSv3] sqrtf(GLIBC_2.2) [SUSv3] 3359 sqrtl(GLIBC_2.2) [SUSv3] tan(GLIBC_2.2) [SUSv3] 3360 tanf(GLIBC_2.2) [SUSv3] tanh(GLIBC_2.2) [SUSv3] 3361 tanhf(GLIBC_2.2) [SUSv3] tanhl(GLIBC_2.2) [SUSv3] 3362 tanl(GLIBC_2.2) [SUSv3] tgamma(GLIBC_2.2) [SUSv3] 3363 tgammaf(GLIBC_2.2) [SUSv3] tgammal(GLIBC_2.2) [SUSv3] 3364 trunc(GLIBC_2.2) [SUSv3] truncf(GLIBC_2.2) [SUSv3] 3365 truncl(GLIBC_2.2) [SUSv3] y0(GLIBC_2.2) [SUSv3] y0f(GLIBC_2.2) 3366 [ISOC99] y0l(GLIBC_2.2) [ISOC99] 3367 y1(GLIBC_2.2) [SUSv3] y1f(GLIBC_2.2) [ISOC99] y1l(GLIBC_2.2) 3368 [ISOC99] yn(GLIBC_2.2) [SUSv3] 3369 ynf(GLIBC_2.2) [ISOC99] ynl(GLIBC_2.2) [ISOC99] 3370 3371 An LSB conforming implementation shall provide the 3372 architecture specific data interfaces for Math specified in 3373 Table 7-26, with the full mandatory functionality as described 3374 in the referenced underlying specification. 3375 3376 Table 7-26. libm - Math Data Interfaces 3377 signgam(GLIBC_2.2) [SUSv3] 3378 _________________________________________________________ 3379 3380 7.5. Data Definitions for libm 3381 3382 This section defines global identifiers and their values that 3383 are associated with interfaces contained in libm. These 3384 definitions are organized into groups that correspond to 3385 system headers. This convention is used as a convenience for 3386 the reader, and does not imply the existence of these headers, 3387 or their content. Where an interface is defined as requiring a 3388 particular system header file all of the data definitions for 3389 that system header file presented here shall be in effect. 3390 3391 This section gives data definitions to promote binary 3392 application portability, not to repeat source interface 3393 definitions available elsewhere. System providers and 3394 application developers should use this ABI to supplement - not 3395 to replace - source interface definition specifications. 3396 3397 This specification uses the ISO C (1999) C Language as the 3398 reference programming language, and data definitions are 3399 specified in ISO C format. The C language is used here as a 3400 convenient notation. Using a C language description of these 3401 data objects does not preclude their use by other programming 3402 languages. 3403 _________________________________________________________ 3404 3405 7.5.1. complex.h 3406 3407 extern double cabs(double complex); 3408 extern float cabsf(float complex); 3409 extern long double cabsl(long double complex); 3410 extern double complex cacos(double complex); 3411 extern float complex cacosf(float complex); 3412 extern double complex cacosh(double complex); 3413 extern float complex cacoshf(float complex); 3414 extern long double complex cacoshl(long double complex); 3415 extern long double complex cacosl(long double complex); 3416 extern double carg(double complex); 3417 extern float cargf(float complex); 3418 extern long double cargl(long double complex); 3419 extern double complex casin(double complex); 3420 extern float complex casinf(float complex); 3421 extern double complex casinh(double complex); 3422 extern float complex casinhf(float complex); 3423 extern long double complex casinhl(long double complex); 3424 extern long double complex casinl(long double complex); 3425 extern double complex catan(double complex); 3426 extern float complex catanf(float complex); 3427 extern double complex catanh(double complex); 3428 extern float complex catanhf(float complex); 3429 extern long double complex catanhl(long double complex); 3430 extern long double complex catanl(long double complex); 3431 extern double complex ccos(double complex); 3432 extern float complex ccosf(float complex); 3433 extern double complex ccosh(double complex); 3434 extern float complex ccoshf(float complex); 3435 extern long double complex ccoshl(long double complex); 3436 extern long double complex ccosl(long double complex); 3437 extern double complex cexp(double complex); 3438 extern float complex cexpf(float complex); 3439 extern long double complex cexpl(long double complex); 3440 extern double cimag(double complex); 3441 extern float cimagf(float complex); 3442 extern long double cimagl(long double complex); 3443 extern double complex clog(double complex); 3444 extern float complex clog10f(float complex); 3445 extern long double complex clog10l(long double complex); 3446 extern float complex clogf(float complex); 3447 extern long double complex clogl(long double complex); 3448 extern double complex conj(double complex); 3449 extern float complex conjf(float complex); 3450 extern long double complex conjl(long double complex); 3451 extern double complex cpow(double complex, double complex); 3452 extern float complex cpowf(float complex, float complex); 3453 extern long double complex cpowl(long double complex, long double complex); 3454 extern double complex cproj(double complex); 3455 extern float complex cprojf(float complex); 3456 extern long double complex cprojl(long double complex); 3457 extern double creal(double complex); 3458 extern float crealf(float complex); 3459 extern long double creall(long double complex); 3460 extern double complex csin(double complex); 3461 extern float complex csinf(float complex); 3462 extern double complex csinh(double complex); 3463 extern float complex csinhf(float complex); 3464 extern long double complex csinhl(long double complex); 3465 extern long double complex csinl(long double complex); 3466 extern double complex csqrt(double complex); 3467 extern float complex csqrtf(float complex); 3468 extern long double complex csqrtl(long double complex); 3469 extern double complex ctan(double complex); 3470 extern float complex ctanf(float complex); 3471 extern double complex ctanh(double complex); 3472 extern float complex ctanhf(float complex); 3473 extern long double complex ctanhl(long double complex); 3474 extern long double complex ctanl(long double complex); 3475 _________________________________________________________ 3476 3477 7.5.2. fenv.h 3478 3479 #define FE_INVALID (1UL << 0) 3480 #define FE_DIVBYZERO (1UL << 2) 3481 #define FE_OVERFLOW (1UL << 3) 3482 #define FE_UNDERFLOW (1UL << 4) 3483 #define FE_INEXACT (1UL << 5) 3484 #define FE_UNNORMAL 1UL << 1 3485 3486 #define FE_ALL_EXCEPT \ 3487 (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_UNNORMAL | FE_INVALID) 3488 3489 #define FE_TONEAREST 0 3490 #define FE_DOWNWARD 1 3491 #define FE_UPWARD 2 3492 #define FE_TOWARDZERO 3 3493 3494 typedef unsigned long int fexcept_t; 3495 3496 typedef unsigned long int fenv_t; 3497 3498 #define FE_DFL_ENV ((__const fenv_t *) 0xc009804c0270033fUL) 3499 3500 extern int feclearexcept(int); 3501 extern int fegetenv(fenv_t *); 3502 extern int fegetexceptflag(fexcept_t *, int); 3503 extern int fegetround(void); 3504 extern int feholdexcept(fenv_t *); 3505 extern int feraiseexcept(int); 3506 extern int fesetenv(const fenv_t *); 3507 extern int fesetexceptflag(const fexcept_t *, int); 3508 extern int fesetround(int); 3509 extern int fetestexcept(int); 3510 extern int feupdateenv(const fenv_t *); 3511 _________________________________________________________ 3512 3513 7.5.3. math.h 3514 3515 #define fpclassify(x) \ 3516 (sizeof (x) == sizeof (float) ? __fpclassifyf (x) :sizeof (x) == sizeof (double) ? __fpclassify (x) : __fpclassifyl (x)) 3517 #define signbit(x) \ 3518 (sizeof (x) == sizeof (float)? __signbitf (x): sizeof (x) == sizeof (double)? __signbit (x) : __signbitl (x)) 3519 3520 #define FP_ILOGB0 -2147483648 3521 #define FP_ILOGBNAN 2147483647 3522 3523 extern int __finite(double); 3524 extern int __finitef(float); 3525 extern int __finitel(long double); 3526 extern int __isinf(double); 3527 extern int __isinff(float); 3528 extern int __isinfl(long double); 3529 extern int __isnan(double); 3530 extern int __isnanf(float); 3531 extern int __isnanl(long double); 3532 extern int __signbit(double); 3533 extern int __signbitf(float); 3534 extern int __fpclassify(double); 3535 extern int __fpclassifyf(float); 3536 extern int __fpclassifyl(long double); 3537 extern int signgam(void); 3538 extern double copysign(double, double); 3539 extern int finite(double); 3540 extern double frexp(double, int *); 3541 extern double ldexp(double, int); 3542 extern double modf(double, double *); 3543 extern double acos(double); 3544 extern double acosh(double); 3545 extern double asinh(double); 3546 extern double atanh(double); 3547 extern double asin(double); 3548 extern double atan(double); 3549 extern double atan2(double, double); 3550 extern double cbrt(double); 3551 extern double ceil(double); 3552 extern double cos(double); 3553 extern double cosh(double); 3554 extern double erf(double); 3555 extern double erfc(double); 3556 extern double exp(double); 3557 extern double expm1(double); 3558 extern double fabs(double); 3559 extern double floor(double); 3560 extern double fmod(double, double); 3561 extern double gamma(double); 3562 extern double hypot(double, double); 3563 extern int ilogb(double); 3564 extern double j0(double); 3565 extern double j1(double); 3566 extern double jn(int, double); 3567 extern double lgamma(double); 3568 extern double log(double); 3569 extern double log10(double); 3570 extern double log1p(double); 3571 extern double logb(double); 3572 extern double nextafter(double, double); 3573 extern double pow(double, double); 3574 extern double remainder(double, double); 3575 extern double rint(double); 3576 extern double scalb(double, double); 3577 extern double sin(double); 3578 extern double sinh(double); 3579 extern double sqrt(double); 3580 extern double tan(double); 3581 extern double tanh(double); 3582 extern double y0(double); 3583 extern double y1(double); 3584 extern double yn(int, double); 3585 extern float copysignf(float, float); 3586 extern long double copysignl(long double, long double); 3587 extern int finitef(float); 3588 extern int finitel(long double); 3589 extern float frexpf(float, int *); 3590 extern long double frexpl(long double, int *); 3591 extern float ldexpf(float, int); 3592 extern long double ldexpl(long double, int); 3593 extern float modff(float, float *); 3594 extern long double modfl(long double, long double *); 3595 extern double scalbln(double, long int); 3596 extern float scalblnf(float, long int); 3597 extern long double scalblnl(long double, long int); 3598 extern double scalbn(double, int); 3599 extern float scalbnf(float, int); 3600 extern long double scalbnl(long double, int); 3601 extern float acosf(float); 3602 extern float acoshf(float); 3603 extern long double acoshl(long double); 3604 extern long double acosl(long double); 3605 extern float asinf(float); 3606 extern float asinhf(float); 3607 extern long double asinhl(long double); 3608 extern long double asinl(long double); 3609 extern float atan2f(float, float); 3610 extern long double atan2l(long double, long double); 3611 extern float atanf(float); 3612 extern float atanhf(float); 3613 extern long double atanhl(long double); 3614 extern long double atanl(long double); 3615 extern float cbrtf(float); 3616 extern long double cbrtl(long double); 3617 extern float ceilf(float); 3618 extern long double ceill(long double); 3619 extern float cosf(float); 3620 extern float coshf(float); 3621 extern long double coshl(long double); 3622 extern long double cosl(long double); 3623 extern float dremf(float, float); 3624 extern long double dreml(long double, long double); 3625 extern float erfcf(float); 3626 extern long double erfcl(long double); 3627 extern float erff(float); 3628 extern long double erfl(long double); 3629 extern double exp2(double); 3630 extern float exp2f(float); 3631 extern long double exp2l(long double); 3632 extern float expf(float); 3633 extern long double expl(long double); 3634 extern float expm1f(float); 3635 extern long double expm1l(long double); 3636 extern float fabsf(float); 3637 extern long double fabsl(long double); 3638 extern double fdim(double, double); 3639 extern float fdimf(float, float); 3640 extern long double fdiml(long double, long double); 3641 extern float floorf(float); 3642 extern long double floorl(long double); 3643 extern double fma(double, double, double); 3644 extern float fmaf(float, float, float); 3645 extern long double fmal(long double, long double, long double); 3646 extern double fmax(double, double); 3647 extern float fmaxf(float, float); 3648 extern long double fmaxl(long double, long double); 3649 extern double fmin(double, double); 3650 extern float fminf(float, float); 3651 extern long double fminl(long double, long double); 3652 extern float fmodf(float, float); 3653 extern long double fmodl(long double, long double); 3654 extern float gammaf(float); 3655 extern long double gammal(long double); 3656 extern float hypotf(float, float); 3657 extern long double hypotl(long double, long double); 3658 extern int ilogbf(float); 3659 extern int ilogbl(long double); 3660 extern float j0f(float); 3661 extern long double j0l(long double); 3662 extern float j1f(float); 3663 extern long double j1l(long double); 3664 extern float jnf(int, float); 3665 extern long double jnl(int, long double); 3666 extern double lgamma_r(double, int *); 3667 extern float lgammaf(float); 3668 extern float lgammaf_r(float, int *); 3669 extern long double lgammal(long double); 3670 extern long double lgammal_r(long double, int *); 3671 extern long long int llrint(double); 3672 extern long long int llrintf(float); 3673 extern long long int llrintl(long double); 3674 extern long long int llround(double); 3675 extern long long int llroundf(float); 3676 extern long long int llroundl(long double); 3677 extern float log10f(float); 3678 extern long double log10l(long double); 3679 extern float log1pf(float); 3680 extern long double log1pl(long double); 3681 extern double log2(double); 3682 extern float log2f(float); 3683 extern long double log2l(long double); 3684 extern float logbf(float); 3685 extern long double logbl(long double); 3686 extern float logf(float); 3687 extern long double logl(long double); 3688 extern long int lrint(double); 3689 extern long int lrintf(float); 3690 extern long int lrintl(long double); 3691 extern long int lround(double); 3692 extern long int lroundf(float); 3693 extern long int lroundl(long double); 3694 extern int matherr(struct exception *); 3695 extern double nan(const char *); 3696 extern float nanf(const char *); 3697 extern long double nanl(const char *); 3698 extern double nearbyint(double); 3699 extern float nearbyintf(float); 3700 extern long double nearbyintl(long double); 3701 extern float nextafterf(float, float); 3702 extern long double nextafterl(long double, long double); 3703 extern double nexttoward(double, long double); 3704 extern float nexttowardf(float, long double); 3705 extern long double nexttowardl(long double, long double); 3706 extern double pow10(double); 3707 extern float pow10f(float); 3708 extern long double pow10l(long double); 3709 extern float powf(float, float); 3710 extern long double powl(long double, long double); 3711 extern float remainderf(float, float); 3712 extern long double remainderl(long double, long double); 3713 extern double remquo(double, double, int *); 3714 extern float remquof(float, float, int *); 3715 extern long double remquol(long double, long double, int *); 3716 extern float rintf(float); 3717 extern long double rintl(long double); 3718 extern double round(double); 3719 extern float roundf(float); 3720 extern long double roundl(long double); 3721 extern float scalbf(float, float); 3722 extern long double scalbl(long double, long double); 3723 extern double significand(double); 3724 extern float significandf(float); 3725 extern long double significandl(long double); 3726 extern void sincos(double, double *, double *); 3727 extern void sincosf(float, float *, float *); 3728 extern void sincosl(long double, long double *, long double *); 3729 extern float sinf(float); 3730 extern float sinhf(float); 3731 extern long double sinhl(long double); 3732 extern long double sinl(long double); 3733 extern float sqrtf(float); 3734 extern long double sqrtl(long double); 3735 extern float tanf(float); 3736 extern float tanhf(float); 3737 extern long double tanhl(long double); 3738 extern long double tanl(long double); 3739 extern double tgamma(double); 3740 extern float tgammaf(float); 3741 extern long double tgammal(long double); 3742 extern double trunc(double); 3743 extern float truncf(float); 3744 extern long double truncl(long double); 3745 extern float y0f(float); 3746 extern long double y0l(long double); 3747 extern float y1f(float); 3748 extern long double y1l(long double); 3749 extern float ynf(int, float); 3750 extern long double ynl(int, long double); 3751 extern int __fpclassifyl(long double); 3752 extern int __fpclassifyl(long double); 3753 extern int __signbitl(long double); 3754 extern int __signbitl(long double); 3755 extern int __signbitl(long double); 3756 extern long double exp2l(long double); 3757 extern long double exp2l(long double); 3758 _________________________________________________________ 3759 3760 7.6. Interfaces for libpthread 3761 3762 Table 7-27 defines the library name and shared object name for 3763 the libpthread library 3764 3765 Table 7-27. libpthread Definition 3766 Library: libpthread 3767 SONAME: libpthread.so.0 3768 3769 The behavior of the interfaces in this library is specified by 3770 the following specifications: 3771 3772 [LFS] Large File Support 3773 [LSB] This Specification 3774 [SUSv3] ISO POSIX (2003) 3775 _________________________________________________________ 3776 3777 7.6.1. Realtime Threads 3778 _________________________________________________________ 3779 3780 7.6.1.1. Interfaces for Realtime Threads 3781 3782 An LSB conforming implementation shall provide the 3783 architecture specific functions for Realtime Threads specified 3784 in Table 7-28, with the full mandatory functionality as 3785 described in the referenced underlying specification. 3786 3787 Table 7-28. libpthread - Realtime Threads Function Interfaces 3788 pthread_attr_getinheritsched(GLIBC_2.2) [SUSv3] 3789 pthread_attr_getschedpolicy(GLIBC_2.2) [SUSv3] 3790 pthread_attr_getscope(GLIBC_2.2) [SUSv3] 3791 pthread_attr_setinheritsched(GLIBC_2.2) [SUSv3] 3792 pthread_attr_setschedpolicy(GLIBC_2.2) [SUSv3] 3793 pthread_attr_setscope(GLIBC_2.2) [SUSv3] 3794 pthread_getschedparam(GLIBC_2.2) [SUSv3] 3795 pthread_setschedparam(GLIBC_2.2) [SUSv3] 3796 _________________________________________________________ 3797 3798 7.6.2. Advanced Realtime Threads 3799 _________________________________________________________ 3800 3801 7.6.2.1. Interfaces for Advanced Realtime Threads 3802 3803 No external functions are defined for libpthread - Advanced 3804 Realtime Threads in this part of the specification. See also 3805 the generic specification. 3806 _________________________________________________________ 3807 3808 7.6.3. Posix Threads 3809 _________________________________________________________ 3810 3811 7.6.3.1. Interfaces for Posix Threads 3812 3813 An LSB conforming implementation shall provide the 3814 architecture specific functions for Posix Threads specified in 3815 Table 7-29, with the full mandatory functionality as described 3816 in the referenced underlying specification. 3817 3818 Table 7-29. libpthread - Posix Threads Function Interfaces 3819 _pthread_cleanup_pop(GLIBC_2.2) [LSB] 3820 _pthread_cleanup_push(GLIBC_2.2) [LSB] 3821 pthread_attr_destroy(GLIBC_2.2) [SUSv3] 3822 pthread_attr_getdetachstate(GLIBC_2.2) [SUSv3] 3823 pthread_attr_getguardsize(GLIBC_2.2) [SUSv3] 3824 pthread_attr_getschedparam(GLIBC_2.2) [SUSv3] 3825 pthread_attr_getstack(GLIBC_2.2) [SUSv3] 3826 pthread_attr_getstackaddr(GLIBC_2.2) [SUSv3] 3827 pthread_attr_getstacksize(GLIBC_2.2) [SUSv3] 3828 pthread_attr_init(GLIBC_2.2) [SUSv3] 3829 pthread_attr_setdetachstate(GLIBC_2.2) [SUSv3] 3830 pthread_attr_setguardsize(GLIBC_2.2) [SUSv3] 3831 pthread_attr_setschedparam(GLIBC_2.2) [SUSv3] 3832 pthread_attr_setstackaddr(GLIBC_2.2) [SUSv3] 3833 pthread_attr_setstacksize(GLIBC_2.3.3) [SUSv3] 3834 pthread_cancel(GLIBC_2.2) [SUSv3] 3835 pthread_cond_broadcast(GLIBC_2.3.2) [SUSv3] 3836 pthread_cond_destroy(GLIBC_2.3.2) [SUSv3] 3837 pthread_cond_init(GLIBC_2.3.2) [SUSv3] 3838 pthread_cond_signal(GLIBC_2.3.2) [SUSv3] 3839 pthread_cond_timedwait(GLIBC_2.3.2) [SUSv3] 3840 pthread_cond_wait(GLIBC_2.3.2) [SUSv3] 3841 pthread_condattr_destroy(GLIBC_2.2) [SUSv3] 3842 pthread_condattr_getpshared(GLIBC_2.2) [SUSv3] 3843 pthread_condattr_init(GLIBC_2.2) [SUSv3] 3844 pthread_condattr_setpshared(GLIBC_2.2) [SUSv3] 3845 pthread_create(GLIBC_2.2) [SUSv3] pthread_detach(GLIBC_2.2) 3846 [SUSv3] 3847 pthread_equal(GLIBC_2.2) [SUSv3] pthread_exit(GLIBC_2.2) 3848 [SUSv3] pthread_getconcurrency(GLIBC_2.2) [SUSv3] 3849 pthread_getspecific(GLIBC_2.2) [SUSv3] 3850 pthread_join(GLIBC_2.2) [SUSv3] pthread_key_create(GLIBC_2.2) 3851 [SUSv3] pthread_key_delete(GLIBC_2.2) [SUSv3] 3852 pthread_kill(GLIBC_2.2) [SUSv3] 3853 pthread_mutex_destroy(GLIBC_2.2) [SUSv3] 3854 pthread_mutex_init(GLIBC_2.2) [SUSv3] 3855 pthread_mutex_lock(GLIBC_2.2) [SUSv3] 3856 pthread_mutex_trylock(GLIBC_2.2) [SUSv3] 3857 pthread_mutex_unlock(GLIBC_2.2) [SUSv3] 3858 pthread_mutexattr_destroy(GLIBC_2.2) [SUSv3] 3859 pthread_mutexattr_getpshared(GLIBC_2.2) [SUSv3] 3860 pthread_mutexattr_gettype(GLIBC_2.2) [SUSv3] 3861 pthread_mutexattr_init(GLIBC_2.2) [SUSv3] 3862 pthread_mutexattr_setpshared(GLIBC_2.2) [SUSv3] 3863 pthread_mutexattr_settype(GLIBC_2.2) [SUSv3] 3864 pthread_once(GLIBC_2.2) [SUSv3] 3865 pthread_rwlock_destroy(GLIBC_2.2) [SUSv3] 3866 pthread_rwlock_init(GLIBC_2.2) [SUSv3] 3867 pthread_rwlock_rdlock(GLIBC_2.2) [SUSv3] 3868 pthread_rwlock_timedrdlock(GLIBC_2.2) [SUSv3] 3869 pthread_rwlock_timedwrlock(GLIBC_2.2) [SUSv3] 3870 pthread_rwlock_tryrdlock(GLIBC_2.2) [SUSv3] 3871 pthread_rwlock_trywrlock(GLIBC_2.2) [SUSv3] 3872 pthread_rwlock_unlock(GLIBC_2.2) [SUSv3] 3873 pthread_rwlock_wrlock(GLIBC_2.2) [SUSv3] 3874 pthread_rwlockattr_destroy(GLIBC_2.2) [SUSv3] 3875 pthread_rwlockattr_getpshared(GLIBC_2.2) [SUSv3] 3876 pthread_rwlockattr_init(GLIBC_2.2) [SUSv3] 3877 pthread_rwlockattr_setpshared(GLIBC_2.2) [SUSv3] 3878 pthread_self(GLIBC_2.2) [SUSv3] 3879 pthread_setcancelstate(GLIBC_2.2) [SUSv3] 3880 pthread_setcanceltype(GLIBC_2.2) [SUSv3] 3881 pthread_setconcurrency(GLIBC_2.2) [SUSv3] 3882 pthread_setspecific(GLIBC_2.2) [SUSv3] 3883 pthread_sigmask(GLIBC_2.2) [SUSv3] 3884 pthread_testcancel(GLIBC_2.2) [SUSv3] 3885 sem_close(GLIBC_2.2) [SUSv3] sem_destroy(GLIBC_2.2) [SUSv3] 3886 sem_getvalue(GLIBC_2.2) [SUSv3] sem_init(GLIBC_2.2) [SUSv3] 3887 sem_open(GLIBC_2.2) [SUSv3] sem_post(GLIBC_2.2) [SUSv3] 3888 sem_timedwait(GLIBC_2.2) [SUSv3] sem_trywait(GLIBC_2.2) 3889 [SUSv3] 3890 sem_unlink(GLIBC_2.2) [SUSv3] sem_wait(GLIBC_2.2) [SUSv3] 3891 _________________________________________________________ 3892 3893 7.6.4. Thread aware versions of libc interfaces 3894 _________________________________________________________ 3895 3896 7.6.4.1. Interfaces for Thread aware versions of libc interfaces 3897 3898 An LSB conforming implementation shall provide the 3899 architecture specific functions for Thread aware versions of 3900 libc interfaces specified in Table 7-30, with the full 3901 mandatory functionality as described in the referenced 3902 underlying specification. 3903 3904 Table 7-30. libpthread - Thread aware versions of libc 3905 interfaces Function Interfaces 3906 lseek64(GLIBC_2.2) [LFS] open64(GLIBC_2.2) [LFS] 3907 pread(GLIBC_2.2) [SUSv3] pread64(GLIBC_2.2) [LFS] 3908 pwrite(GLIBC_2.2) [SUSv3] pwrite64(GLIBC_2.2) [LFS] 3909 _________________________________________________________ 3910 3911 7.7. Data Definitions for libpthread 3912 3913 This section defines global identifiers and their values that 3914 are associated with interfaces contained in libpthread. These 3915 definitions are organized into groups that correspond to 3916 system headers. This convention is used as a convenience for 3917 the reader, and does not imply the existence of these headers, 3918 or their content. Where an interface is defined as requiring a 3919 particular system header file all of the data definitions for 3920 that system header file presented here shall be in effect. 3921 3922 This section gives data definitions to promote binary 3923 application portability, not to repeat source interface 3924 definitions available elsewhere. System providers and 3925 application developers should use this ABI to supplement - not 3926 to replace - source interface definition specifications. 3927 3928 This specification uses the ISO C (1999) C Language as the 3929 reference programming language, and data definitions are 3930 specified in ISO C format. The C language is used here as a 3931 convenient notation. Using a C language description of these 3932 data objects does not preclude their use by other programming 3933 languages. 3934 _________________________________________________________ 3935 3936 7.7.1. pthread.h 3937 3938 extern void _pthread_cleanup_pop(struct _pthread_cleanup_buffer *, int); 3939 extern void _pthread_cleanup_push(struct _pthread_cleanup_buffer *, 3940 void (*__routine) (void *) 3941 , void *); 3942 extern int pthread_attr_destroy(pthread_attr_t *); 3943 extern int pthread_attr_getdetachstate(const typedef struct { 3944 int __detachstate; 3945 int __schedpolicy; 3946 struct sched_param __schedparam; 3947 int __inheritsched; 3948 int __scope; 3949 size_t __guardsize; 3950 int __stackaddr_set; 3951 void *__stackaddr; 3952 unsigned long int __stacksize;} 3953 pthread_attr_t *, int *); 3954 extern int pthread_attr_getinheritsched(const typedef struct { 3955 int __detachstate; 3956 int __schedpolicy; 3957 struct sched_param __schedparam; 3958 int __inheritsched; 3959 int __scope; 3960 size_t __guardsize; 3961 int __stackaddr_set; 3962 void *__stackaddr; 3963 unsigned long int __stacksize;} 3964 pthread_attr_t *, int *); 3965 extern int pthread_attr_getschedparam(const typedef struct { 3966 int __detachstate; 3967 int __schedpolicy; 3968 struct sched_param __schedparam; 3969 int __inheritsched; 3970 int __scope; 3971 size_t __guardsize; 3972 int __stackaddr_set; 3973 void *__stackaddr; 3974 unsigned long int __stacksize;} 3975 pthread_attr_t *, struct sched_param { 3976 int sched_priority;} 3977 3978 *); 3979 extern int pthread_attr_getschedpolicy(const typedef struct { 3980 int __detachstate; 3981 int __schedpolicy; 3982 struct sched_param __schedparam; 3983 int __inheritsched; 3984 int __scope; 3985 size_t __guardsize; 3986 int __stackaddr_set; 3987 void *__stackaddr; 3988 unsigned long int __stacksize;} 3989 pthread_attr_t *, int *); 3990 extern int pthread_attr_getscope(const typedef struct { 3991 int __detachstate; 3992 int __schedpolicy; 3993 struct sched_param __schedparam; 3994 int __inheritsched; 3995 int __scope; 3996 size_t __guardsize; 3997 int __stackaddr_set; 3998 void *__stackaddr; 3999 unsigned long int __stacksize;} 4000 pthread_attr_t *, int *); 4001 extern int pthread_attr_init(pthread_attr_t *); 4002 extern int pthread_attr_setdetachstate(pthread_attr_t *, int); 4003 extern int pthread_attr_setinheritsched(pthread_attr_t *, int); 4004 extern int pthread_attr_setschedparam(pthread_attr_t *, const struct sched_param { 4005 int sched_priority;} 4006 4007 *); 4008 extern int pthread_attr_setschedpolicy(pthread_attr_t *, int); 4009 extern int pthread_attr_setscope(pthread_attr_t *, int); 4010 extern int pthread_cancel(typedef unsigned long int pthread_t); 4011 extern int pthread_cond_broadcast(pthread_cond_t *); 4012 extern int pthread_cond_destroy(pthread_cond_t *); 4013 extern int pthread_cond_init(pthread_cond_t *, const typedef struct { 4014 int __dummy;} 4015 4016 pthread_condattr_t *); 4017 extern int pthread_cond_signal(pthread_cond_t *); 4018 extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *,const struct timespec { 4019 time_t tv_sec; long int tv_nsec;} 4020 4021 *); 4022 extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); 4023 extern int pthread_condattr_destroy(pthread_condattr_t *); 4024 extern int pthread_condattr_init(pthread_condattr_t *); 4025 extern int pthread_create(pthread_t *, const typedef struct { 4026 int __detachstate; 4027 int __schedpolicy; 4028 struct sched_param __schedparam; 4029 int __inheritsched; 4030 int __scope; 4031 size_t __guardsize; 4032 int __stackaddr_set; 4033 void *__stackaddr; 4034 unsigned long int __stacksize;} 4035 pthread_attr_t *, 4036 void *(*__start_routine) (void *p1) 4037 , void *); 4038 extern int pthread_detach(typedef unsigned long int pthread_t); 4039 extern int pthread_equal(typedef unsigned long int pthread_t, 4040 typedef unsigned long int pthread_t); 4041 extern void pthread_exit(void *); 4042 extern int pthread_getschedparam(typedef unsigned long int pthread_t, 4043 int *, struct sched_param { 4044 int sched_priority;} 4045 4046 *); 4047 extern void *pthread_getspecific(typedef unsigned int pthread_key_t); 4048 extern int pthread_join(typedef unsigned long int pthread_t, void **); 4049 extern int pthread_key_create(pthread_key_t *, void (*destr_func) (void *) 4050 ); 4051 extern int pthread_key_delete(typedef unsigned int pthread_key_t); 4052 extern int pthread_mutex_destroy(pthread_mutex_t *); 4053 extern int pthread_mutex_init(pthread_mutex_t *, const typedef struct { 4054 int __mutexkind;} 4055 4056 pthread_mutexattr_t *); 4057 extern int pthread_mutex_lock(pthread_mutex_t *); 4058 extern int pthread_mutex_trylock(pthread_mutex_t *); 4059 extern int pthread_mutex_unlock(pthread_mutex_t *); 4060 extern int pthread_mutexattr_destroy(pthread_mutexattr_t *); 4061 extern int pthread_mutexattr_init(pthread_mutexattr_t *); 4062 extern int pthread_once(pthread_once_t *, void (*init_routine) (void) 4063 ); 4064 extern int pthread_rwlock_destroy(pthread_rwlock_t *); 4065 extern int pthread_rwlock_init(pthread_rwlock_t *, pthread_rwlockattr_t *); 4066 extern int pthread_rwlock_rdlock(pthread_rwlock_t *); 4067 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *); 4068 extern int pthread_rwlock_trywrlock(pthread_rwlock_t *); 4069 extern int pthread_rwlock_unlock(pthread_rwlock_t *); 4070 extern int pthread_rwlock_wrlock(pthread_rwlock_t *); 4071 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); 4072 extern int pthread_rwlockattr_getpshared(const typedef struct { 4073 int __lockkind; int __pshared;} 4074 pthread_rwlockattr_t *, int *); 4075 extern int pthread_rwlockattr_init(pthread_rwlockattr_t *); 4076 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); 4077 extern typedef unsigned long int pthread_t pthread_self(void); 4078 extern int pthread_setcancelstate(int, int *); 4079 extern int pthread_setcanceltype(int, int *); 4080 extern int pthread_setschedparam(typedef unsigned long int pthread_t, int, const struct sched_param { 4081 int sched_priority;} 4082 4083 *); 4084 extern int pthread_setspecific(typedef unsigned int pthread_key_t, 4085 const void *); 4086 extern void pthread_testcancel(void); 4087 extern int pthread_attr_getguardsize(const typedef struct { 4088 int __detachstate; 4089 int __schedpolicy; 4090 struct sched_param __schedparam; 4091 int __inheritsched; 4092 int __scope; 4093 size_t __guardsize; 4094 int __stackaddr_set; 4095 void *__stackaddr; 4096 unsigned long int __stacksize;} 4097 pthread_attr_t *, size_t *); 4098 extern int pthread_attr_setguardsize(pthread_attr_t *, 4099 typedef unsigned long int size_t); 4100 extern int pthread_attr_setstackaddr(pthread_attr_t *, void *); 4101 extern int pthread_attr_getstackaddr(const typedef struct { 4102 int __detachstate; 4103 int __schedpolicy; 4104 struct sched_param __schedparam; 4105 int __inheritsched; 4106 int __scope; 4107 size_t __guardsize; 4108 int __stackaddr_set; 4109 void *__stackaddr; 4110 unsigned long int __stacksize;} 4111 pthread_attr_t *, void **); 4112 extern int pthread_attr_setstacksize(pthread_attr_t *, 4113 typedef unsigned long int size_t); 4114 extern int pthread_attr_getstacksize(const typedef struct { 4115 int __detachstate; 4116 int __schedpolicy; 4117 struct sched_param __schedparam; 4118 int __inheritsched; 4119 int __scope; 4120 size_t __guardsize; 4121 int __stackaddr_set; 4122 void *__stackaddr; 4123 unsigned long int __stacksize;} 4124 pthread_attr_t *, size_t *); 4125 extern int pthread_mutexattr_gettype(const typedef struct { 4126 int __mutexkind;} 4127 pthread_mutexattr_t *, int *); 4128 extern int pthread_mutexattr_settype(pthread_mutexattr_t *, int); 4129 extern int pthread_getconcurrency(void); 4130 extern int pthread_setconcurrency(int); 4131 extern int pthread_attr_getstack(const typedef struct { 4132 int __detachstate; 4133 int __schedpolicy; 4134 struct sched_param __schedparam; 4135 int __inheritsched; 4136 int __scope; 4137 size_t __guardsize; 4138 int __stackaddr_set; 4139 void *__stackaddr; 4140 unsigned long int __stacksize;} 4141 pthread_attr_t *, void **, size_t *); 4142 extern int pthread_attr_setstack(pthread_attr_t *, void *, 4143 typedef unsigned long int size_t); 4144 extern int pthread_condattr_getpshared(const typedef struct { 4145 int __dummy;} 4146 pthread_condattr_t *, int *); 4147 extern int pthread_condattr_setpshared(pthread_condattr_t *, int); 4148 extern int pthread_mutexattr_getpshared(const typedef struct { 4149 int __mutexkind;} 4150 pthread_mutexattr_t *, int *); 4151 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); 4152 extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *, const structtimespec { 4153 time_t tv_sec; long int tv_nsec;} 4154 4155 *); 4156 extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *, const structtimespec { 4157 time_t tv_sec; long int tv_nsec;} 4158 4159 *); 4160 extern int __register_atfork(void (*prepare) (void) 4161 , void (*parent) (void) 4162 , void (*child) (void) 4163 , void *); 4164 extern int pthread_setschedprio(typedef unsigned long int pthread_t, int); 4165 _________________________________________________________ 4166 4167 7.7.2. semaphore.h 4168 4169 extern int sem_close(sem_t *); 4170 extern int sem_destroy(sem_t *); 4171 extern int sem_getvalue(sem_t *, int *); 4172 extern int sem_init(sem_t *, int, unsigned int); 4173 extern sem_t *sem_open(const char *, int, ...); 4174 extern int sem_post(sem_t *); 4175 extern int sem_trywait(sem_t *); 4176 extern int sem_unlink(const char *); 4177 extern int sem_wait(sem_t *); 4178 extern int sem_timedwait(sem_t *, const struct timespec *); 4179 _________________________________________________________ 4180 4181 7.8. Interfaces for libgcc_s 4182 4183 Table 7-31 defines the library name and shared object name for 4184 the libgcc_s library 4185 4186 Table 7-31. libgcc_s Definition 4187 Library: libgcc_s 4188 SONAME: libgcc_s.so.1 4189 4190 The behavior of the interfaces in this library is specified by 4191 the following specifications: 4192 4193 [LSB] This Specification 4194 _________________________________________________________ 4195 4196 7.8.1. Unwind Library 4197 _________________________________________________________ 4198 4199 7.8.1.1. Interfaces for Unwind Library 4200 4201 An LSB conforming implementation shall provide the 4202 architecture specific functions for Unwind Library specified 4203 in Table 7-32, with the full mandatory functionality as 4204 described in the referenced underlying specification. 4205 4206 Table 7-32. libgcc_s - Unwind Library Function Interfaces 4207 _Unwind_Backtrace(GCC_3.3) [LSB] 4208 _Unwind_DeleteException(GCC_3.0) [LSB] 4209 _Unwind_FindEnclosingFunction(GCC_3.3) [LSB] 4210 _Unwind_ForcedUnwind(GCC_3.0) [LSB] 4211 _Unwind_GetBSP(GCC_3.3.2) [LSB] _Unwind_GetCFA(GCC_3.3) [LSB] 4212 _Unwind_GetGR(GCC_3.0) [LSB] _Unwind_GetIP(GCC_3.0) [LSB] 4213 _Unwind_GetLanguageSpecificData(GCC_3.0) [LSB] 4214 _Unwind_GetRegionStart(GCC_3.0) [LSB] 4215 _Unwind_RaiseException(GCC_3.0) [LSB] _Unwind_Resume(GCC_3.0) 4216 [LSB] 4217 _Unwind_Resume_or_Rethrow(GCC_3.3) [LSB] 4218 _Unwind_SetGR(GCC_3.0) [LSB] _Unwind_SetIP(GCC_3.0) [LSB] 4219 _________________________________________________________ 4220 4221 7.9. Data Definitions for libgcc_s 4222 4223 This section defines global identifiers and their values that 4224 are associated with interfaces contained in libgcc_s. These 4225 definitions are organized into groups that correspond to 4226 system headers. This convention is used as a convenience for 4227 the reader, and does not imply the existence of these headers, 4228 or their content. Where an interface is defined as requiring a 4229 particular system header file all of the data definitions for 4230 that system header file presented here shall be in effect. 4231 4232 This section gives data definitions to promote binary 4233 application portability, not to repeat source interface 4234 definitions available elsewhere. System providers and 4235 application developers should use this ABI to supplement - not 4236 to replace - source interface definition specifications. 4237 4238 This specification uses the ISO C (1999) C Language as the 4239 reference programming language, and data definitions are 4240 specified in ISO C format. The C language is used here as a 4241 convenient notation. Using a C language description of these 4242 data objects does not preclude their use by other programming 4243 languages. 4244 _________________________________________________________ 4245 4246 7.9.1. unwind.h 4247 4248 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4249 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4250 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4251 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4252 _Unwind_Stop_Fn, void *); 4253 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4254 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4255 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4256 *); 4257 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4258 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4259 *); 4260 extern void _Unwind_Resume(struct _Unwind_Exception *); 4261 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4262 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4263 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4264 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4265 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4266 _Unwind_Stop_Fn, void *); 4267 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4268 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4269 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4270 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4271 *); 4272 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4273 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4274 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4275 *); 4276 extern void _Unwind_Resume(struct _Unwind_Exception *); 4277 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4278 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4279 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4280 _Unwind_Stop_Fn, void *); 4281 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4282 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4283 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4284 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4285 *); 4286 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4287 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4288 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4289 *); 4290 extern void _Unwind_Resume(struct _Unwind_Exception *); 4291 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4292 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4293 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4294 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4295 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4296 _Unwind_Stop_Fn, void *); 4297 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4298 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4299 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4300 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4301 *); 4302 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4303 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4304 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4305 *); 4306 extern void _Unwind_Resume(struct _Unwind_Exception *); 4307 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4308 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4309 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4310 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4311 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4312 _Unwind_Stop_Fn, void *); 4313 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4314 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4315 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4316 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4317 *); 4318 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4319 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4320 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4321 *); 4322 extern void _Unwind_Resume(struct _Unwind_Exception *); 4323 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4324 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4325 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4326 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4327 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4328 _Unwind_Stop_Fn, void *); 4329 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4330 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4331 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4332 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 4333 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4334 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4335 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4336 *); 4337 extern void _Unwind_Resume(struct _Unwind_Exception *); 4338 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4339 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4340 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4341 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4342 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4343 _Unwind_Stop_Fn, void *); 4344 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4345 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4346 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4347 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 4348 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4349 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4350 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4351 *); 4352 extern void _Unwind_Resume(struct _Unwind_Exception *); 4353 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4354 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4355 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4356 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4357 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4358 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4359 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4360 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4361 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4362 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4363 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4364 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4365 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4366 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4367 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4368 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4369 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4370 _Unwind_Exception*); 4371 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4372 _Unwind_Exception*); 4373 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4374 _Unwind_Exception*); 4375 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4376 _Unwind_Exception*); 4377 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4378 _Unwind_Exception*); 4379 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4380 _Unwind_Exception*); 4381 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4382 _Unwind_Exception*); 4383 extern void *_Unwind_FindEnclosingFunction(void *); 4384 extern void *_Unwind_FindEnclosingFunction(void *); 4385 extern void *_Unwind_FindEnclosingFunction(void *); 4386 extern void *_Unwind_FindEnclosingFunction(void *); 4387 extern void *_Unwind_FindEnclosingFunction(void *); 4388 extern void *_Unwind_FindEnclosingFunction(void *); 4389 extern void *_Unwind_FindEnclosingFunction(void *); 4390 extern _Unwind_Word _Unwind_GetBSP(struct _Unwind_Context *); 4391 _________________________________________________________ 4392 4393 7.10. Interface Definitions for libgcc_s 4394 4395 Table of Contents 4396 _Unwind_DeleteException -- private C++ error handling method 4397 _Unwind_ForcedUnwind -- private C++ error handling method 4398 _Unwind_GetGR -- private C++ error handling method 4399 _Unwind_GetIP -- private C++ error handling method 4400 _Unwind_GetLanguageSpecificData -- private C++ error handling 4401 method 4402 4403 _Unwind_GetRegionStart -- private C++ error handling method 4404 _Unwind_RaiseException -- private C++ error handling method 4405 _Unwind_Resume -- private C++ error handling method 4406 _Unwind_SetGR -- private C++ error handling method 4407 _Unwind_SetIP -- private C++ error handling method 4408 4409 The interfaces defined on the following pages are included in 4410 libgcc_s and are defined by this specification. Unless 4411 otherwise noted, these interfaces shall be included in the 4412 source standard. 4413 4414 Other interfaces listed in Section 7.8 shall behave as 4415 described in the referenced base document. 4416 4417 _Unwind_DeleteException 4418 4419 Name 4420 4421 _Unwind_DeleteException -- private C++ error handling method 4422 4423 Synopsis 4424 4425 void _Unwind_DeleteException(struct _Unwind_Exception * 4426 object); 4427 4428 Description 4429 4430 _Unwind_DeleteException() deletes the given exception object. 4431 If a given runtime resumes normal execution after catching a 4432 foreign exception, it will not know how to delete that 4433 exception. Such an exception shall be deleted by calling 4434 _Unwind_DeleteException(). This is a convenience function that 4435 calls the function pointed to by the exception_cleanup field 4436 of the exception header. 4437 4438 _Unwind_ForcedUnwind 4439 4440 Name 4441 4442 _Unwind_ForcedUnwind -- private C++ error handling method 4443 4444 Synopsis 4445 4446 _Unwind_Reason_Code _Unwind_ForcedUnwind(struct 4447 _Unwind_Exception * object, _Unwind_Stop_Fn stop, void * 4448 stop_parameter); 4449 4450 Description 4451 4452 _Unwind_ForcedUnwind() raises an exception for forced 4453 unwinding, passing along the given exception object, which 4454 should have its exception_class and exception_cleanup fields 4455 set. The exception object has been allocated by the 4456 language-specific runtime, and has a language-specific format, 4457 except that it shall contain an _Unwind_Exception struct. 4458 4459 Forced unwinding is a single-phase process. stop and 4460 stop_parameter control the termination of the unwind process 4461 instead of the usual personality routine query. stop is called 4462 for each unwind frame, with the parameteres described for the 4463 usual personality routine below, plus an additional 4464 stop_parameter. 4465 4466 Return Value 4467 4468 When stop identifies the destination frame, it transfers 4469 control to the user code as appropriate without returning, 4470 normally after calling _Unwind_DeleteException(). If not, then 4471 it should return an _Unwind_Reason_Code value. 4472 4473 If stop returns any reason code other than _URC_NO_REASON, 4474 then the stack state is indeterminate from the point of view 4475 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 4476 to return, therefore, the unwind library should use the 4477 exception_cleanup entry in the exception, and then call 4478 abort(). 4479 4480 _URC_NO_REASON 4481 This is not the destination from. The unwind runtime 4482 will call frame's personality routine with the 4483 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 4484 actions, and then unwind to the next frame and call the 4485 stop() function again. 4486 4487 _URC_END_OF_STACK 4488 In order to allow _Unwind_ForcedUnwind() to perform 4489 special processing when it reaches the end of the 4490 stack, the unwind runtime will call it after the last 4491 frame is rejected, with a NULL stack pointer in the 4492 context, and the stop() function shall catch this 4493 condition. It may return this code if it cannot handle 4494 end-of-stack. 4495 4496 _URC_FATAL_PHASE2_ERROR 4497 The stop() function may return this code for other 4498 fatal conditions like stack corruption. 4499 4500 _Unwind_GetGR 4501 4502 Name 4503 4504 _Unwind_GetGR -- private C++ error handling method 4505 4506 Synopsis 4507 4508 _Unwind_Word _Unwind_GetGR(struct _Unwind_Context * context, 4509 int index); 4510 4511 Description 4512 4513 _Unwind_GetGR() returns data at index found in context. The 4514 register is identified by its index: 0 to 31 are for the fixed 4515 registers, and 32 to 127 are for the stacked registers. 4516 4517 During the two phases of unwinding, only GR1 has a guaranteed 4518 value, which is the global pointer of the frame referenced by 4519 the unwind context. If the register has its NAT bit set, the 4520 behavior is unspecified. 4521 4522 _Unwind_GetIP 4523 4524 Name 4525 4526 _Unwind_GetIP -- private C++ error handling method 4527 4528 Synopsis 4529 4530 _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context * context); 4531 4532 Description 4533 4534 _Unwind_GetIP() returns the instruction pointer value for the 4535 routine identified by the unwind context. 4536 4537 _Unwind_GetLanguageSpecificData 4538 4539 Name 4540 4541 _Unwind_GetLanguageSpecificData -- private C++ error handling 4542 method 4543 4544 Synopsis 4545 4546 _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct 4547 _Unwind_Context * context, uint value); 4548 4549 Description 4550 4551 _Unwind_GetLanguageSpecificData() returns the address of the 4552 language specific data area for the current stack frame. 4553 4554 _Unwind_GetRegionStart 4555 4556 Name 4557 4558 _Unwind_GetRegionStart -- private C++ error handling method 4559 4560 Synopsis 4561 4562 _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context * 4563 context); 4564 4565 Description 4566 4567 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 4568 of the beginning of the procedure or code fragment described 4569 by the current unwind descriptor block. 4570 4571 _Unwind_RaiseException 4572 4573 Name 4574 4575 _Unwind_RaiseException -- private C++ error handling method 4576 4577 Synopsis 4578 4579 _Unwind_Reason_Code _Unwind_RaiseException(struct 4580 _Unwind_Exception * object); 4581 4582 Description 4583 4584 _Unwind_RaiseException() raises an exception, passing along 4585 the given exception object, which should have its 4586 exception_class and exception_cleanup fields set. The 4587 exception object has been allocated by the language-specific 4588 runtime, and has a language-specific format, exception that it 4589 shall contain an _Unwind_Exception. 4590 4591 Return Value 4592 4593 _Unwind_RaiseException() does not return unless an error 4594 condition is found. If an error condition occurs, an 4595 _Unwind_Reason_Code is returnd: 4596 4597 _URC_END_OF_STACK 4598 The unwinder encountered the end of the stack during 4599 phase one without finding a handler. The unwind runtime 4600 will not have modified the stack. The C++ runtime will 4601 normally call uncaught_exception() in this case. 4602 4603 _URC_FATAL_PHASE1_ERROR 4604 The unwinder encountered an unexpected error during 4605 phase one, because of something like stack corruption. 4606 The unwind runtime will not have modified the stack. 4607 The C++ runtime will normally call terminate() in this 4608 case. 4609 4610 _URC_FATAL_PHASE2_ERROR 4611 The unwinder encountered an unexpected error during 4612 phase two. This is usually a throw, which will call 4613 terminate(). 4614 4615 _Unwind_Resume 4616 4617 Name 4618 4619 _Unwind_Resume -- private C++ error handling method 4620 4621 Synopsis 4622 4623 void _Unwind_Resume(struct _Unwind_Exception * object); 4624 4625 Description 4626 4627 _Unwind_Resume() resumes propagation of an existing exception 4628 object. A call to this routine is inserted as the end of a 4629 landing pad that performs cleanup, but does not resume normal 4630 execution. It causes unwinding to proceed further. 4631 4632 _Unwind_SetGR 4633 4634 Name 4635 4636 _Unwind_SetGR -- private C++ error handling method 4637 4638 Synopsis 4639 4640 void _Unwind_SetGR(struct _Unwind_Context * context, int 4641 index, uint value); 4642 4643 Description 4644 4645 _Unwind_SetGR() sets the value of the register indexed for the 4646 routine identified by the unwind context. 4647 4648 _Unwind_SetIP 4649 4650 Name 4651 4652 _Unwind_SetIP -- private C++ error handling method 4653 4654 Synopsis 4655 4656 void _Unwind_SetIP(struct _Unwind_Context * context, uint 4657 value); 4658 4659 Description 4660 4661 _Unwind_SetIP() sets the value of the instruction pointer for 4662 the routine identified by the unwind context 4663 _________________________________________________________ 4664 4665 7.11. Interfaces for libdl 4666 4667 Table 7-33 defines the library name and shared object name for 4668 the libdl library 4669 4670 Table 7-33. libdl Definition 4671 Library: libdl 4672 SONAME: libdl.so.2 4673 4674 The behavior of the interfaces in this library is specified by 4675 the following specifications: 4676 4677 [LSB] This Specification 4678 [SUSv3] ISO POSIX (2003) 4679 _________________________________________________________ 4680 4681 7.11.1. Dynamic Loader 4682 _________________________________________________________ 4683 4684 7.11.1.1. Interfaces for Dynamic Loader 4685 4686 An LSB conforming implementation shall provide the 4687 architecture specific functions for Dynamic Loader specified 4688 in Table 7-34, with the full mandatory functionality as 4689 described in the referenced underlying specification. 4690 4691 Table 7-34. libdl - Dynamic Loader Function Interfaces 4692 dladdr(GLIBC_2.0) [LSB] dlclose(GLIBC_2.0) [SUSv3] 4693 dlerror(GLIBC_2.0) [SUSv3] dlopen(GLIBC_2.1) [LSB] 4694 dlsym(GLIBC_2.0) [LSB] 4695 _________________________________________________________ 4696 4697 7.12. Data Definitions for libdl 4698 4699 This section defines global identifiers and their values that 4700 are associated with interfaces contained in libdl. These 4701 definitions are organized into groups that correspond to 4702 system headers. This convention is used as a convenience for 4703 the reader, and does not imply the existence of these headers, 4704 or their content. Where an interface is defined as requiring a 4705 particular system header file all of the data definitions for 4706 that system header file presented here shall be in effect. 4707 4708 This section gives data definitions to promote binary 4709 application portability, not to repeat source interface 4710 definitions available elsewhere. System providers and 4711 application developers should use this ABI to supplement - not 4712 to replace - source interface definition specifications. 4713 4714 This specification uses the ISO C (1999) C Language as the 4715 reference programming language, and data definitions are 4716 specified in ISO C format. The C language is used here as a 4717 convenient notation. Using a C language description of these 4718 data objects does not preclude their use by other programming 4719 languages. 4720 _________________________________________________________ 4721 4722 7.12.1. dlfcn.h 4723 4724 extern int dladdr(const void *, Dl_info *); 4725 extern int dlclose(void *); 4726 extern char *dlerror(void); 4727 extern void *dlopen(char *, int); 4728 extern void *dlsym(void *, char *); 4729 _________________________________________________________ 4730 4731 7.13. Interfaces for libcrypt 4732 4733 Table 7-35 defines the library name and shared object name for 4734 the libcrypt library 4735 4736 Table 7-35. libcrypt Definition 4737 Library: libcrypt 4738 SONAME: libcrypt.so.1 4739 4740 The behavior of the interfaces in this library is specified by 4741 the following specifications: 4742 4743 [SUSv3] ISO POSIX (2003) 4744 _________________________________________________________ 4745 4746 7.13.1. Encryption 4747 _________________________________________________________ 4748 4749 7.13.1.1. Interfaces for Encryption 4750 4751 An LSB conforming implementation shall provide the 4752 architecture specific functions for Encryption specified in 4753 Table 7-36, with the full mandatory functionality as described 4754 in the referenced underlying specification. 4755 4756 Table 7-36. libcrypt - Encryption Function Interfaces 4757 crypt(GLIBC_2.0) [SUSv3] encrypt(GLIBC_2.0) [SUSv3] 4758 setkey(GLIBC_2.0) [SUSv3] 4759 4760 III. Utility Libraries 4761 4762 Table of Contents 4763 8. Libraries 4764 4765 8.1. Interfaces for libz 4766 4767 8.1.1. Compression Library 4768 4769 8.2. Data Definitions for libz 4770 4771 8.2.1. zlib.h 4772 4773 8.3. Interfaces for libncurses 4774 4775 8.3.1. Curses 4776 4777 8.4. Data Definitions for libncurses 4778 4779 8.4.1. curses.h 4780 8.4.2. term.h 4781 4782 8.5. Interfaces for libutil 4783 4784 8.5.1. Utility Functions 4785 _________________________________________________________ 4786 4787 Chapter 8. Libraries 4788 4789 An LSB-conforming implementation shall also support some 4790 utility libraries which are built on top of the interfaces 4791 provided by the base libraries. These libraries implement 4792 common functionality, and hide additional system dependent 4793 information such as file formats and device names. 4794 _________________________________________________________ 4795 4796 8.1. Interfaces for libz 4797 4798 Table 8-1 defines the library name and shared object name for 4799 the libz library 4800 4801 Table 8-1. libz Definition 4802 Library: libz 4803 SONAME: libz.so.1 4804 _________________________________________________________ 4805 4806 8.1.1. Compression Library 4807 _________________________________________________________ 4808 4809 8.1.1.1. Interfaces for Compression Library 4810 4811 No external functions are defined for libz - Compression 4812 Library in this part of the specification. See also the 4813 generic specification. 4814 _________________________________________________________ 4815 4816 8.2. Data Definitions for libz 4817 4818 This section defines global identifiers and their values that 4819 are associated with interfaces contained in libz. These 4820 definitions are organized into groups that correspond to 4821 system headers. This convention is used as a convenience for 4822 the reader, and does not imply the existence of these headers, 4823 or their content. Where an interface is defined as requiring a 4824 particular system header file all of the data definitions for 4825 that system header file presented here shall be in effect. 4826 4827 This section gives data definitions to promote binary 4828 application portability, not to repeat source interface 4829 definitions available elsewhere. System providers and 4830 application developers should use this ABI to supplement - not 4831 to replace - source interface definition specifications. 4832 4833 This specification uses the ISO C (1999) C Language as the 4834 reference programming language, and data definitions are 4835 specified in ISO C . The C language is used here as a 4836 convenient notation. Using a C language description of these 4837 data objects does not preclude their use by other programming 4838 languages. 4839 _________________________________________________________ 4840 4841 8.2.1. zlib.h 4842 4843 extern int gzread(gzFile, voidp, unsigned int); 4844 extern int gzclose(gzFile); 4845 extern gzFile gzopen(const char *, const char *); 4846 extern gzFile gzdopen(int, const char *); 4847 extern int gzwrite(gzFile, voidpc, unsigned int); 4848 extern int gzflush(gzFile, int); 4849 extern const char *gzerror(gzFile, int *); 4850 extern uLong adler32(uLong, const Bytef *, uInt); 4851 extern int compress(Bytef *, uLongf *, const Bytef *, uLong); 4852 extern int compress2(Bytef *, uLongf *, const Bytef *, uLong, int); 4853 extern uLong crc32(uLong, const Bytef *, uInt); 4854 extern int deflate(z_streamp, int); 4855 extern int deflateCopy(z_streamp, z_streamp); 4856 extern int deflateEnd(z_streamp); 4857 extern int deflateInit2_(z_streamp, int, int, int, int, int, const char *, 4858 int); 4859 extern int deflateInit_(z_streamp, int, const char *, int); 4860 extern int deflateParams(z_streamp, int, int); 4861 extern int deflateReset(z_streamp); 4862 extern int deflateSetDictionary(z_streamp, const Bytef *, uInt); 4863 extern const uLongf *get_crc_table(void); 4864 extern int gzeof(gzFile); 4865 extern int gzgetc(gzFile); 4866 extern char *gzgets(gzFile, char *, int); 4867 extern int gzprintf(gzFile, const char *, ...); 4868 extern int gzputc(gzFile, int); 4869 extern int gzputs(gzFile, const char *); 4870 extern int gzrewind(gzFile); 4871 extern z_off_t gzseek(gzFile, z_off_t, int); 4872 extern int gzsetparams(gzFile, int, int); 4873 extern z_off_t gztell(gzFile); 4874 extern int inflate(z_streamp, int); 4875 extern int inflateEnd(z_streamp); 4876 extern int inflateInit2_(z_streamp, int, const char *, int); 4877 extern int inflateInit_(z_streamp, const char *, int); 4878 extern int inflateReset(z_streamp); 4879 extern int inflateSetDictionary(z_streamp, const Bytef *, uInt); 4880 extern int inflateSync(z_streamp); 4881 extern int inflateSyncPoint(z_streamp); 4882 extern int uncompress(Bytef *, uLongf *, const Bytef *, uLong); 4883 extern const char *zError(int); 4884 extern const char *zlibVersion(void); 4885 extern uLong deflateBound(z_streamp, uLong); 4886 extern uLong compressBound(uLong); 4887 _________________________________________________________ 4888 4889 8.3. Interfaces for libncurses 4890 4891 Table 8-2 defines the library name and shared object name for 4892 the libncurses library 4893 4894 Table 8-2. libncurses Definition 4895 Library: libncurses 4896 SONAME: libncurses.so.5 4897 _________________________________________________________ 4898 4899 8.3.1. Curses 4900 _________________________________________________________ 4901 4902 8.3.1.1. Interfaces for Curses 4903 4904 No external functions are defined for libncurses - Curses in 4905 this part of the specification. See also the generic 4906 specification. 4907 _________________________________________________________ 4908 4909 8.4. Data Definitions for libncurses 4910 4911 This section defines global identifiers and their values that 4912 are associated with interfaces contained in libncurses. These 4913 definitions are organized into groups that correspond to 4914 system headers. This convention is used as a convenience for 4915 the reader, and does not imply the existence of these headers, 4916 or their content. Where an interface is defined as requiring a 4917 particular system header file all of the data definitions for 4918 that system header file presented here shall be in effect. 4919 4920 This section gives data definitions to promote binary 4921 application portability, not to repeat source interface 4922 definitions available elsewhere. System providers and 4923 application developers should use this ABI to supplement - not 4924 to replace - source interface definition specifications. 4925 4926 This specification uses the ISO C (1999) C Language as the 4927 reference programming language, and data definitions are 4928 specified in ISO C . The C language is used here as a 4929 convenient notation. Using a C language description of these 4930 data objects does not preclude their use by other programming 4931 languages. 4932 _________________________________________________________ 4933 4934 8.4.1. curses.h 4935 4936 extern int addch(const chtype); 4937 extern int addchnstr(const chtype *, int); 4938 extern int addchstr(const chtype *); 4939 extern int addnstr(const char *, int); 4940 extern int addstr(const char *); 4941 extern int attroff(int); 4942 extern int attron(int); 4943 extern int attrset(int); 4944 extern int attr_get(attr_t *, short *, void *); 4945 extern int attr_off(attr_t, void *); 4946 extern int attr_on(attr_t, void *); 4947 extern int attr_set(attr_t, short, void *); 4948 extern int baudrate(void); 4949 extern int beep(void); 4950 extern int bkgd(chtype); 4951 extern void bkgdset(chtype); 4952 extern int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, 4953 chtype); 4954 extern int box(WINDOW *, chtype, chtype); 4955 extern bool can_change_color(void); 4956 extern int cbreak(void); 4957 extern int chgat(int, attr_t, short, const void *); 4958 extern int clear(void); 4959 extern int clearok(WINDOW *, bool); 4960 extern int clrtobot(void); 4961 extern int clrtoeol(void); 4962 extern int color_content(short, short *, short *, short *); 4963 extern int color_set(short, void *); 4964 extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, 4965 int); 4966 extern int curs_set(int); 4967 extern int def_prog_mode(void); 4968 extern int def_shell_mode(void); 4969 extern int delay_output(int); 4970 extern int delch(void); 4971 extern void delscreen(SCREEN *); 4972 extern int delwin(WINDOW *); 4973 extern int deleteln(void); 4974 extern WINDOW *derwin(WINDOW *, int, int, int, int); 4975 extern int doupdate(void); 4976 extern WINDOW *dupwin(WINDOW *); 4977 extern int echo(void); 4978 extern int echochar(const chtype); 4979 extern int erase(void); 4980 extern int endwin(void); 4981 extern char erasechar(void); 4982 extern void filter(void); 4983 extern int flash(void); 4984 extern int flushinp(void); 4985 extern chtype getbkgd(WINDOW *); 4986 extern int getch(void); 4987 extern int getnstr(char *, int); 4988 extern int getstr(char *); 4989 extern WINDOW *getwin(FILE *); 4990 extern int halfdelay(int); 4991 extern bool has_colors(void); 4992 extern bool has_ic(void); 4993 extern bool has_il(void); 4994 extern int hline(chtype, int); 4995 extern void idcok(WINDOW *, bool); 4996 extern int idlok(WINDOW *, bool); 4997 extern void immedok(WINDOW *, bool); 4998 extern chtype inch(void); 4999 extern int inchnstr(chtype *, int); 5000 extern int inchstr(chtype *); 5001 extern WINDOW *initscr(void); 5002 extern int init_color(short, short, short, short); 5003 extern int init_pair(short, short, short); 5004 extern int innstr(char *, int); 5005 extern int insch(chtype); 5006 extern int insdelln(int); 5007 extern int insertln(void); 5008 extern int insnstr(const char *, int); 5009 extern int insstr(const char *); 5010 extern int instr(char *); 5011 extern int intrflush(WINDOW *, bool); 5012 extern bool isendwin(void); 5013 extern bool is_linetouched(WINDOW *, int); 5014 extern bool is_wintouched(WINDOW *); 5015 extern const char *keyname(int); 5016 extern int keypad(WINDOW *, bool); 5017 extern char killchar(void); 5018 extern int leaveok(WINDOW *, bool); 5019 extern char *longname(void); 5020 extern int meta(WINDOW *, bool); 5021 extern int move(int, int); 5022 extern int mvaddch(int, int, const chtype); 5023 extern int mvaddchnstr(int, int, const chtype *, int); 5024 extern int mvaddchstr(int, int, const chtype *); 5025 extern int mvaddnstr(int, int, const char *, int); 5026 extern int mvaddstr(int, int, const char *); 5027 extern int mvchgat(int, int, int, attr_t, short, const void *); 5028 extern int mvcur(int, int, int, int); 5029 extern int mvdelch(int, int); 5030 extern int mvderwin(WINDOW *, int, int); 5031 extern int mvgetch(int, int); 5032 extern int mvgetnstr(int, int, char *, int); 5033 extern int mvgetstr(int, int, char *); 5034 extern int mvhline(int, int, chtype, int); 5035 extern chtype mvinch(int, int); 5036 extern int mvinchnstr(int, int, chtype *, int); 5037 extern int mvinchstr(int, int, chtype *); 5038 extern int mvinnstr(int, int, char *, int); 5039 extern int mvinsch(int, int, chtype); 5040 extern int mvinsnstr(int, int, const char *, int); 5041 extern int mvinsstr(int, int, const char *); 5042 extern int mvinstr(int, int, char *); 5043 extern int mvprintw(int, int, char *, ...); 5044 extern int mvscanw(int, int, const char *, ...); 5045 extern int mvvline(int, int, chtype, int); 5046 extern int mvwaddch(WINDOW *, int, int, const chtype); 5047 extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 5048 extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 5049 extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 5050 extern int mvwaddstr(WINDOW *, int, int, const char *); 5051 extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void*); 5052 extern int mvwdelch(WINDOW *, int, int); 5053 extern int mvwgetch(WINDOW *, int, int); 5054 extern int mvwgetnstr(WINDOW *, int, int, char *, int); 5055 extern int mvwgetstr(WINDOW *, int, int, char *); 5056 extern int mvwhline(WINDOW *, int, int, chtype, int); 5057 extern int mvwin(WINDOW *, int, int); 5058 extern chtype mvwinch(WINDOW *, int, int); 5059 extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 5060 extern int mvwinchstr(WINDOW *, int, int, chtype *); 5061 extern int mvwinnstr(WINDOW *, int, int, char *, int); 5062 extern int mvwinsch(WINDOW *, int, int, chtype); 5063 extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 5064 extern int mvwinsstr(WINDOW *, int, int, const char *); 5065 extern int mvwinstr(WINDOW *, int, int, char *); 5066 extern int mvwprintw(WINDOW *, int, int, char *, ...); 5067 extern int mvwscanw(WINDOW *, int, int, const char *, ...); 5068 extern int mvwvline(WINDOW *, int, int, chtype, int); 5069 extern int napms(int); 5070 extern WINDOW *newpad(int, int); 5071 extern SCREEN *newterm(const char *, FILE *, FILE *); 5072 extern WINDOW *newwin(int, int, int, int); 5073 extern int nl(void); 5074 extern int nocbreak(void); 5075 extern int nodelay(WINDOW *, bool); 5076 extern int noecho(void); 5077 extern int nonl(void); 5078 extern void noqiflush(void); 5079 extern int noraw(void); 5080 extern int notimeout(WINDOW *, bool); 5081 extern int overlay(const WINDOW *, WINDOW *); 5082 extern int overwrite(const WINDOW *, WINDOW *); 5083 extern int pair_content(short, short *, short *); 5084 extern int pechochar(WINDOW *, chtype); 5085 extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 5086 extern int prefresh(WINDOW *, int, int, int, int, int, int); 5087 extern int printw(char *, ...); 5088 extern int putwin(WINDOW *, FILE *); 5089 extern void qiflush(void); 5090 extern int raw(void); 5091 extern int redrawwin(WINDOW *); 5092 extern int refresh(void); 5093 extern int resetty(void); 5094 extern int reset_prog_mode(void); 5095 extern int reset_shell_mode(void); 5096 extern int ripoffline(int, int (*init) (WINDOW *, int) 5097 ); 5098 extern int savetty(void); 5099 extern int scanw(const char *, ...); 5100 extern int scr_dump(const char *); 5101 extern int scr_init(const char *); 5102 extern int scrl(int); 5103 extern int scroll(WINDOW *); 5104 extern int scrollok(WINDOW *, typedef unsigned char bool); 5105 extern int scr_restore(const char *); 5106 extern int scr_set(const char *); 5107 extern int setscrreg(int, int); 5108 extern SCREEN *set_term(SCREEN *); 5109 extern int slk_attroff(const typedef unsigned long int chtype); 5110 extern int slk_attron(const typedef unsigned long int chtype); 5111 extern int slk_attrset(const typedef unsigned long int chtype); 5112 extern int slk_attr_set(const typedef chtype attr_t, short, void *); 5113 extern int slk_clear(void); 5114 extern int slk_color(short); 5115 extern int slk_init(int); 5116 extern char *slk_label(int); 5117 extern int slk_noutrefresh(void); 5118 extern int slk_refresh(void); 5119 extern int slk_restore(void); 5120 extern int slk_set(int, const char *, int); 5121 extern int slk_touch(void); 5122 extern int standout(void); 5123 extern int standend(void); 5124 extern int start_color(void); 5125 extern WINDOW *subpad(WINDOW *, int, int, int, int); 5126 extern WINDOW *subwin(WINDOW *, int, int, int, int); 5127 extern int syncok(WINDOW *, typedef unsigned char bool); 5128 extern typedef unsigned long int chtype termattrs(void); 5129 extern char *termname(void); 5130 extern void timeout(int); 5131 extern int typeahead(int); 5132 extern int ungetch(int); 5133 extern int untouchwin(WINDOW *); 5134 extern void use_env(typedef unsigned char bool); 5135 extern int vidattr(typedef unsigned long int chtype); 5136 extern int vidputs(typedef unsigned long int chtype, 5137 int (*vidputs_int) (int) 5138 ); 5139 extern int vline(typedef unsigned long int chtype, int); 5140 extern int vwprintw(WINDOW *, char *, typedef void *va_list); 5141 extern int vw_printw(WINDOW *, const char *, typedef void *va_list); 5142 extern int vwscanw(WINDOW *, const char *, typedef void *va_list); 5143 extern int vw_scanw(WINDOW *, const char *, typedef void *va_list); 5144 extern int waddch(WINDOW *, const typedef unsigned long int chtype); 5145 extern int waddchnstr(WINDOW *, const typedef unsigned long int chtype*, 5146 int); 5147 extern int waddchstr(WINDOW *, const typedef unsigned long int chtype *); 5148 extern int waddnstr(WINDOW *, const char *, int); 5149 extern int waddstr(WINDOW *, const char *); 5150 extern int wattron(WINDOW *, int); 5151 extern int wattroff(WINDOW *, int); 5152 extern int wattrset(WINDOW *, int); 5153 extern int wattr_get(WINDOW *, attr_t *, short *, void *); 5154 extern int wattr_on(WINDOW *, typedef chtype attr_t, void *); 5155 extern int wattr_off(WINDOW *, typedef chtype attr_t, void *); 5156 extern int wattr_set(WINDOW *, typedef chtype attr_t, short, void *); 5157 extern int wbkgd(WINDOW *, typedef unsigned long int chtype); 5158 extern void wbkgdset(WINDOW *, typedef unsigned long int chtype); 5159 extern int wborder(WINDOW *, typedef unsigned long int chtype, 5160 typedef unsigned long int chtype, 5161 typedef unsigned long int chtype, 5162 typedef unsigned long int chtype, 5163 typedef unsigned long int chtype, 5164 typedef unsigned long int chtype, 5165 typedef unsigned long int chtype, 5166 typedef unsigned long int chtype); 5167 extern int wchgat(WINDOW *, int, typedef chtype attr_t, short, 5168 const void *); 5169 extern int wclear(WINDOW *); 5170 extern int wclrtobot(WINDOW *); 5171 extern int wclrtoeol(WINDOW *); 5172 extern int wcolor_set(WINDOW *, short, void *); 5173 extern void wcursyncup(WINDOW *); 5174 extern int wdelch(WINDOW *); 5175 extern int wdeleteln(WINDOW *); 5176 extern int wechochar(WINDOW *, const typedef unsigned long int chtype); 5177 extern int werase(WINDOW *); 5178 extern int wgetch(WINDOW *); 5179 extern int wgetnstr(WINDOW *, char *, int); 5180 extern int wgetstr(WINDOW *, char *); 5181 extern int whline(WINDOW *, typedef unsigned long int chtype, int); 5182 extern typedef unsigned long int chtype winch(WINDOW *); 5183 extern int winchnstr(WINDOW *, chtype *, int); 5184 extern int winchstr(WINDOW *, chtype *); 5185 extern int winnstr(WINDOW *, char *, int); 5186 extern int winsch(WINDOW *, typedef unsigned long int chtype); 5187 extern int winsdelln(WINDOW *, int); 5188 extern int winsertln(WINDOW *); 5189 extern int winsnstr(WINDOW *, const char *, int); 5190 extern int winsstr(WINDOW *, const char *); 5191 extern int winstr(WINDOW *, char *); 5192 extern int wmove(WINDOW *, int, int); 5193 extern int wnoutrefresh(WINDOW *); 5194 extern int wprintw(WINDOW *, char *, ...); 5195 extern int wredrawln(WINDOW *, int, int); 5196 extern int wrefresh(WINDOW *); 5197 extern int wscanw(WINDOW *, const char *, ...); 5198 extern int wscrl(WINDOW *, int); 5199 extern int wsetscrreg(WINDOW *, int, int); 5200 extern int wstandout(WINDOW *); 5201 extern int wstandend(WINDOW *); 5202 extern void wsyncdown(WINDOW *); 5203 extern void wsyncup(WINDOW *); 5204 extern void wtimeout(WINDOW *, int); 5205 extern int wtouchln(WINDOW *, int, int, int); 5206 extern int wvline(WINDOW *, typedef unsigned long int chtype, int); 5207 extern char *unctrl(typedef unsigned long int chtype); 5208 extern int COLORS(void); 5209 extern int COLOR_PAIRS(void); 5210 extern chtype acs_map(void); 5211 extern WINDOW *curscr(void); 5212 extern WINDOW *stdscr(void); 5213 extern int COLS(void); 5214 extern int LINES(void); 5215 extern int touchline(WINDOW *, int, int); 5216 extern int touchwin(WINDOW *); 5217 _________________________________________________________ 5218 5219 8.4.2. term.h 5220 5221 extern int putp(const char *); 5222 extern int tigetflag(const char *); 5223 extern int tigetnum(const char *); 5224 extern char *tigetstr(const char *); 5225 extern char *tparm(const char *, ...); 5226 extern TERMINAL *set_curterm(TERMINAL *); 5227 extern int del_curterm(TERMINAL *); 5228 extern int restartterm(char *, int, int *); 5229 extern int setupterm(char *, int, int *); 5230 extern char *tgetstr(char *, char **); 5231 extern char *tgoto(const char *, int, int); 5232 extern int tgetent(char *, const char *); 5233 extern int tgetflag(char *); 5234 extern int tgetnum(char *); 5235 extern int tputs(const char *, int, int (*putcproc) (int) 5236 ); 5237 extern TERMINAL *cur_term(void); 5238 _________________________________________________________ 5239 5240 8.5. Interfaces for libutil 5241 5242 Table 8-3 defines the library name and shared object name for 5243 the libutil library 5244 5245 Table 8-3. libutil Definition 5246 Library: libutil 5247 SONAME: libutil.so.1 5248 5249 The behavior of the interfaces in this library is specified by 5250 the following specifications: 5251 5252 [LSB] This Specification 5253 _________________________________________________________ 5254 5255 8.5.1. Utility Functions 5256 _________________________________________________________ 5257 5258 8.5.1.1. Interfaces for Utility Functions 5259 5260 An LSB conforming implementation shall provide the 5261 architecture specific functions for Utility Functions 5262 specified in Table 8-4, with the full mandatory functionality 5263 as described in the referenced underlying specification. 5264 5265 Table 8-4. libutil - Utility Functions Function Interfaces 5266 forkpty(GLIBC_2.0) [LSB] login(GLIBC_2.0) [LSB] 5267 login_tty(GLIBC_2.0) [LSB] logout(GLIBC_2.0) [LSB] 5268 logwtmp(GLIBC_2.0) [LSB] openpty(GLIBC_2.0) [LSB] 5269 _________________________________________________________ 5270 5271 Appendix A. GNU Free Documentation License (Informative) 5272 5273 This specification is published under the terms of the GNU 5274 Free Documentation License, Version 1.1, March 2000 5275 5276 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 5277 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 5278 permitted to copy and distribute verbatim copies of this 5279 license document, but changing it is not allowed. 5280 _________________________________________________________ 5281 5282 A.1. PREAMBLE 5283 5284 The purpose of this License is to make a manual, textbook, or 5285 other written document "free" in the sense of freedom: to 5286 assure everyone the effective freedom to copy and redistribute 5287 it, with or without modifying it, either commercially or 5288 noncommercially. Secondarily, this License preserves for the 5289 author and publisher a way to get credit for their work, while 5290 not being considered responsible for modifications made by 5291 others. 5292 5293 This License is a kind of "copyleft", which means that 5294 derivative works of the document must themselves be free in 5295 the same sense. It complements the GNU General Public License, 5296 which is a copyleft license designed for free software. 5297 5298 We have designed this License in order to use it for manuals 5299 for free software, because free software needs free 5300 documentation: a free program should come with manuals 5301 providing the same freedoms that the software does. But this 5302 License is not limited to software manuals; it can be used for 5303 any textual work, regardless of subject matter or whether it 5304 is published as a printed book. We recommend this License 5305 principally for works whose purpose is instruction or 5306 reference. 5307 _________________________________________________________ 5308 5309 A.2. APPLICABILITY AND DEFINITIONS 5310 5311 This License applies to any manual or other work that contains 5312 a notice placed by the copyright holder saying it can be 5313 distributed under the terms of this License. The "Document", 5314 below, refers to any such manual or work. Any member of the 5315 public is a licensee, and is addressed as "you". 5316 5317 A "Modified Version" of the Document means any work containing 5318 the Document or a portion of it, either copied verbatim, or 5319 with modifications and/or translated into another language. 5320 5321 A "Secondary Section" is a named appendix or a front-matter 5322 section of the Document that deals exclusively with the 5323 relationship of the publishers or authors of the Document to 5324 the Document's overall subject (or to related matters) and 5325 contains nothing that could fall directly within that overall 5326 subject. (For example, if the Document is in part a textbook 5327 of mathematics, a Secondary Section may not explain any 5328 mathematics.) The relationship could be a matter of historical 5329 connection with the subject or with related matters, or of 5330 legal, commercial, philosophical, ethical or political 5331 position regarding them. 5332 5333 The "Invariant Sections" are certain Secondary Sections whose 5334 titles are designated, as being those of Invariant Sections, 5335 in the notice that says that the Document is released under 5336 this License. 5337 5338 The "Cover Texts" are certain short passages of text that are 5339 listed, as Front-Cover Texts or Back-Cover Texts, in the 5340 notice that says that the Document is released under this 5341 License. 5342 5343 A "Transparent" copy of the Document means a machine-readable 5344 copy, represented in a format whose specification is available 5345 to the general public, whose contents can be viewed and edited 5346 directly and straightforwardly with generic text editors or 5347 (for images composed of pixels) generic paint programs or (for 5348 drawings) some widely available drawing editor, and that is 5349 suitable for input to text formatters or for automatic 5350 translation to a variety of formats suitable for input to text 5351 formatters. A copy made in an otherwise Transparent file 5352 format whose markup has been designed to thwart or discourage 5353 subsequent modification by readers is not Transparent. A copy 5354 that is not "Transparent" is called "Opaque". 5355 5356 Examples of suitable formats for Transparent copies include 5357 plain ASCII without markup, Texinfo input format, LaTeX input 5358 format, SGML or XML using a publicly available DTD, and 5359 standard-conforming simple HTML designed for human 5360 modification. Opaque formats include PostScript, PDF, 5361 proprietary formats that can be read and edited only by 5362 proprietary word processors, SGML or XML for which the DTD 5363 and/or processing tools are not generally available, and the 5364 machine-generated HTML produced by some word processors for 5365 output purposes only. 5366 5367 The "Title Page" means, for a printed book, the title page 5368 itself, plus such following pages as are needed to hold, 5369 legibly, the material this License requires to appear in the 5370 title page. For works in formats which do not have any title 5371 page as such, "Title Page" means the text near the most 5372 prominent appearance of the work's title, preceding the 5373 beginning of the body of the text. 5374 _________________________________________________________ 5375 5376 A.3. VERBATIM COPYING 5377 5378 You may copy and distribute the Document in any medium, either 5379 commercially or noncommercially, provided that this License, 5380 the copyright notices, and the license notice saying this 5381 License applies to the Document are reproduced in all copies, 5382 and that you add no other conditions whatsoever to those of 5383 this License. You may not use technical measures to obstruct 5384 or control the reading or further copying of the copies you 5385 make or distribute. However, you may accept compensation in 5386 exchange for copies. If you distribute a large enough number 5387 of copies you must also follow the conditions in section 3. 5388 5389 You may also lend copies, under the same conditions stated 5390 above, and you may publicly display copies. 5391 _________________________________________________________ 5392 5393 A.4. COPYING IN QUANTITY 5394 5395 If you publish printed copies of the Document numbering more 5396 than 100, and the Document's license notice requires Cover 5397 Texts, you must enclose the copies in covers that carry, 5398 clearly and legibly, all these Cover Texts: Front-Cover Texts 5399 on the front cover, and Back-Cover Texts on the back cover. 5400 Both covers must also clearly and legibly identify you as the 5401 publisher of these copies. The front cover must present the 5402 full title with all words of the title equally prominent and 5403 visible. You may add other material on the covers in addition. 5404 Copying with changes limited to the covers, as long as they 5405 preserve the title of the Document and satisfy these 5406 conditions, can be treated as verbatim copying in other 5407 respects. 5408 5409 If the required texts for either cover are too voluminous to 5410 fit legibly, you should put the first ones listed (as many as 5411 fit reasonably) on the actual cover, and continue the rest 5412 onto adjacent pages. 5413 5414 If you publish or distribute Opaque copies of the Document 5415 numbering more than 100, you must either include a 5416 machine-readable Transparent copy along with each Opaque copy, 5417 or state in or with each Opaque copy a publicly-accessible 5418 computer-network location containing a complete Transparent 5419 copy of the Document, free of added material, which the 5420 general network-using public has access to download 5421 anonymously at no charge using public-standard network 5422 protocols. If you use the latter option, you must take 5423 reasonably prudent steps, when you begin distribution of 5424 Opaque copies in quantity, to ensure that this Transparent 5425 copy will remain thus accessible at the stated location until 5426 at least one year after the last time you distribute an Opaque 5427 copy (directly or through your agents or retailers) of that 5428 edition to the public. 5429 5430 It is requested, but not required, that you contact the 5431 authors of the Document well before redistributing any large 5432 number of copies, to give them a chance to provide you with an 5433 updated version of the Document. 5434 _________________________________________________________ 5435 5436 A.5. MODIFICATIONS 5437 5438 You may copy and distribute a Modified Version of the Document 5439 under the conditions of sections 2 and 3 above, provided that 5440 you release the Modified Version under precisely this License, 5441 with the Modified Version filling the role of the Document, 5442 thus licensing distribution and modification of the Modified 5443 Version to whoever possesses a copy of it. In addition, you 5444 must do these things in the Modified Version: 5445 5446 A. Use in the Title Page (and on the covers, if any) a title 5447 distinct from that of the Document, and from those of 5448 previous versions (which should, if there were any, be 5449 listed in the History section of the Document). You may 5450 use the same title as a previous version if the original 5451 publisher of that version gives permission. 5452 B. List on the Title Page, as authors, one or more persons or 5453 entities responsible for authorship of the modifications 5454 in the Modified Version, together with at least five of 5455 the principal authors of the Document (all of its 5456 principal authors, if it has less than five). 5457 C. State on the Title page the name of the publisher of the 5458 Modified Version, as the publisher. 5459 D. Preserve all the copyright notices of the Document. 5460 E. Add an appropriate copyright notice for your modifications 5461 adjacent to the other copyright notices. 5462 F. Include, immediately after the copyright notices, a 5463 license notice giving the public permission to use the 5464 Modified Version under the terms of this License, in the 5465 form shown in the Addendum below. 5466 G. Preserve in that license notice the full lists of 5467 Invariant Sections and required Cover Texts given in the 5468 Document's license notice. 5469 H. Include an unaltered copy of this License. 5470 I. Preserve the section entitled "History", and its title, 5471 and add to it an item stating at least the title, year, 5472 new authors, and publisher of the Modified Version as 5473 given on the Title Page. If there is no section entitled 5474 "History" in the Document, create one stating the title, 5475 year, authors, and publisher of the Document as given on 5476 its Title Page, then add an item describing the Modified 5477 Version as stated in the previous sentence. 5478 J. Preserve the network location, if any, given in the 5479 Document for public access to a Transparent copy of the 5480 Document, and likewise the network locations given in the 5481 Document for previous versions it was based on. These may 5482 be placed in the "History" section. You may omit a network 5483 location for a work that was published at least four years 5484 before the Document itself, or if the original publisher 5485 of the version it refers to gives permission. 5486 K. In any section entitled "Acknowledgements" or 5487 "Dedications", preserve the section's title, and preserve 5488 in the section all the substance and tone of each of the 5489 contributor acknowledgements and/or dedications given 5490 therein. 5491 L. Preserve all the Invariant Sections of the Document, 5492 unaltered in their text and in their titles. Section 5493 numbers or the equivalent are not considered part of the 5494 section titles. 5495 M. Delete any section entitled "Endorsements". Such a section 5496 may not be included in the Modified Version. 5497 N. Do not retitle any existing section as "Endorsements" or 5498 to conflict in title with any Invariant Section. 5499 5500 If the Modified Version includes new front-matter sections or 5501 appendices that qualify as Secondary Sections and contain no 5502 material copied from the Document, you may at your option 5503 designate some or all of these sections as invariant. To do 5504 this, add their titles to the list of Invariant Sections in 5505 the Modified Version's license notice. These titles must be 5506 distinct from any other section titles. 5507 5508 You may add a section entitled "Endorsements", provided it 5509 contains nothing but endorsements of your Modified Version by 5510 various parties--for example, statements of peer review or 5511 that the text has been approved by an organization as the 5512 authoritative definition of a standard. 5513 5514 You may add a passage of up to five words as a Front-Cover 5515 Text, and a passage of up to 25 words as a Back-Cover Text, to 5516 the end of the list of Cover Texts in the Modified Version. 5517 Only one passage of Front-Cover Text and one of Back-Cover 5518 Text may be added by (or through arrangements made by) any one 5519 entity. If the Document already includes a cover text for the 5520 same cover, previously added by you or by arrangement made by 5521 the same entity you are acting on behalf of, you may not add 5522 another; but you may replace the old one, on explicit 5523 permission from the previous publisher that added the old one. 5524 5525 The author(s) and publisher(s) of the Document do not by this 5526 License give permission to use their names for publicity for 5527 or to assert or imply endorsement of any Modified Version. 5528 _________________________________________________________ 5529 5530 A.6. COMBINING DOCUMENTS 5531 5532 You may combine the Document with other documents released 5533 under this License, under the terms defined in section 4 above 5534 for modified versions, provided that you include in the 5535 combination all of the Invariant Sections of all of the 5536 original documents, unmodified, and list them all as Invariant 5537 Sections of your combined work in its license notice. 5538 5539 The combined work need only contain one copy of this License, 5540 and multiple identical Invariant Sections may be replaced with 5541 a single copy. If there are multiple Invariant Sections with 5542 the same name but different contents, make the title of each 5543 such section unique by adding at the end of it, in 5544 parentheses, the name of the original author or publisher of 5545 that section if known, or else a unique number. Make the same 5546 adjustment to the section titles in the list of Invariant 5547 Sections in the license notice of the combined work. 5548 5549 In the combination, you must combine any sections entitled 5550 "History" in the various original documents, forming one 5551 section entitled "History"; likewise combine any sections 5552 entitled "Acknowledgements", and any sections entitled 5553 "Dedications". You must delete all sections entitled 5554 "Endorsements." 5555 _________________________________________________________ 5556 5557 A.7. COLLECTIONS OF DOCUMENTS 5558 5559 You may make a collection consisting of the Document and other 5560 documents released under this License, and replace the 5561 individual copies of this License in the various documents 5562 with a single copy that is included in the collection, 5563 provided that you follow the rules of this License for 5564 verbatim copying of each of the documents in all other 5565 respects. 5566 5567 You may extract a single document from such a collection, and 5568 distribute it individually under this License, provided you 5569 insert a copy of this License into the extracted document, and 5570 follow this License in all other respects regarding verbatim 5571 copying of that document. 5572 _________________________________________________________ 5573 5574 A.8. AGGREGATION WITH INDEPENDENT WORKS 5575 5576 A compilation of the Document or its derivatives with other 5577 separate and independent documents or works, in or on a volume 5578 of a storage or distribution medium, does not as a whole count 5579 as a Modified Version of the Document, provided no compilation 5580 copyright is claimed for the compilation. Such a compilation 5581 is called an "aggregate", and this License does not apply to 5582 the other self-contained works thus compiled with the 5583 Document, on account of their being thus compiled, if they are 5584 not themselves derivative works of the Document. 5585 5586 If the Cover Text requirement of section 3 is applicable to 5587 these copies of the Document, then if the Document is less 5588 than one quarter of the entire aggregate, the Document's Cover 5589 Texts may be placed on covers that surround only the Document 5590 within the aggregate. Otherwise they must appear on covers 5591 around the whole aggregate. 5592 _________________________________________________________ 5593 5594 A.9. TRANSLATION 5595 5596 Translation is considered a kind of modification, so you may 5597 distribute translations of the Document under the terms of 5598 section 4. Replacing Invariant Sections with translations 5599 requires special permission from their copyright holders, but 5600 you may include translations of some or all Invariant Sections 5601 in addition to the original versions of these Invariant 5602 Sections. You may include a translation of this License 5603 provided that you also include the original English version of 5604 this License. In case of a disagreement between the 5605 translation and the original English version of this License, 5606 the original English version will prevail. 5607 _________________________________________________________ 5608 5609 A.10. TERMINATION 5610 5611 You may not copy, modify, sublicense, or distribute the 5612 Document except as expressly provided for under this License. 5613 Any other attempt to copy, modify, sublicense or distribute 5614 the Document is void, and will automatically terminate your 5615 rights under this License. However, parties who have received 5616 copies, or rights, from you under this License will not have 5617 their licenses terminated so long as such parties remain in 5618 full compliance. 5619 _________________________________________________________ 5620 5621 A.11. FUTURE REVISIONS OF THIS LICENSE 5622 5623 The Free Software Foundation may publish new, revised versions 5624 of the GNU Free Documentation License from time to time. Such 5625 new versions will be similar in spirit to the present version, 5626 but may differ in detail to address new problems or concerns. 5627 See http://www.gnu.org/copyleft/. 5628 5629 Each version of the License is given a distinguishing version 5630 number. If the Document specifies that a particular numbered 5631 version of this License "or any later version" applies to it, 5632 you have the option of following the terms and conditions 5633 either of that specified version or of any later version that 5634 has been published (not as a draft) by the Free Software 5635 Foundation. If the Document does not specify a version number 5636 of this License, you may choose any version ever published 5637 (not as a draft) by the Free Software Foundation. 5638 _________________________________________________________ 5639 5640 A.12. How to use this License for your documents 5641 5642 To use this License in a document you have written, include a 5643 copy of the License in the document and put the following 5644 copyright and license notices just after the title page: 5645 5646 Copyright (c) YEAR YOUR NAME. Permission is granted to 5647 copy, distribute and/or modify this document under the 5648 terms of the GNU Free Documentation License, Version 1.1 or 5649 any later version published by the Free Software 5650 Foundation; with the Invariant Sections being LIST THEIR 5651 TITLES, with the Front-Cover Texts being LIST, and with the 5652 Back-Cover Texts being LIST. A copy of the license is 5653 included in the section entitled "GNU Free Documentation 5654 License". 5655 5656 If you have no Invariant Sections, write "with no Invariant 5657 Sections" instead of saying which ones are invariant. If you 5658 have no Front-Cover Texts, write "no Front-Cover Texts" 5659 instead of "Front-Cover Texts being LIST"; likewise for 5660 Back-Cover Texts. 5661 5662 If your document contains nontrivial examples of program code, 5663 we recommend releasing these examples in parallel under your 5664 choice of free software license, such as the GNU General 5665 Public License, to permit their use in free software.