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