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