1 2 Linux Standard Base Core Specification for PPC64 3.1 3 4 Copyright © 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 the registered trademark of Linus Torvalds in the 28 U.S. and other countries. 29 30 UNIX is a registered trademark of The Open Group. 31 32 LSB is a trademark of the Free Standards Group in the United 33 States and 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 trademark of Intel Corporation. 39 40 PowerPC is a registered trademark and PowerPC Architecture is 41 a trademark of the IBM Corporation. 42 43 S/390 is a registered trademark of the IBM Corporation. 44 45 OpenGL is a registered trademark of Silicon Graphics, Inc. 46 _________________________________________________________ 47 48 Table of Contents 49 Foreword 50 Introduction 51 I. Introductory Elements 52 53 1. Scope 54 55 1.1. General 56 1.2. Module Specific Scope 57 58 2. References 59 60 2.1. Normative References 61 2.2. Informative References/Bibliography 62 63 3. Requirements 64 65 3.1. Relevant Libraries 66 3.2. LSB Implementation Conformance 67 3.3. LSB Application Conformance 68 69 4. Definitions 70 5. Terminology 71 6. Documentation Conventions 72 73 II. Executable and Linking Format (ELF) 74 75 7. Introduction 76 8. Low Level System Information 77 78 8.1. Machine Interface 79 8.2. Function Calling Sequence 80 8.3. Traceback Tables 81 8.4. Process Initialization 82 8.5. Coding Examples 83 84 9. Object Format 85 86 9.1. Introduction 87 9.2. ELF Header 88 9.3. Special Sections 89 9.4. TOC 90 9.5. Symbol Table 91 9.6. Relocation 92 93 10. Program Loading and Dynamic Linking 94 95 10.1. Introduction 96 10.2. Program Loading 97 10.3. Dynamic Linking 98 99 III. Base Libraries 100 101 11. Libraries 102 103 11.1. Program Interpreter/Dynamic Linker 104 11.2. Interfaces for libc 105 11.3. Data Definitions for libc 106 11.4. Interfaces for libm 107 11.5. Data Definitions for libm 108 11.6. Interfaces for libpthread 109 11.7. Data Definitions for libpthread 110 11.8. Interfaces for libgcc_s 111 11.9. Data Definitions for libgcc_s 112 11.10. Interface Definitions for libgcc_s 113 11.11. Interfaces for libdl 114 11.12. Data Definitions for libdl 115 11.13. Interfaces for libcrypt 116 117 IV. Utility Libraries 118 119 12. Libraries 120 121 12.1. Interfaces for libz 122 12.2. Data Definitions for libz 123 12.3. Interfaces for libncurses 124 12.4. Data Definitions for libncurses 125 12.5. Interfaces for libutil 126 127 V. Package Format and Installation 128 129 13. Software Installation 130 131 13.1. Package Dependencies 132 13.2. Package Architecture Considerations 133 134 A. Alphabetical Listing of Interfaces 135 136 A.1. libgcc_s 137 138 B. GNU Free Documentation License (Informative) 139 140 B.1. PREAMBLE 141 B.2. APPLICABILITY AND DEFINITIONS 142 B.3. VERBATIM COPYING 143 B.4. COPYING IN QUANTITY 144 B.5. MODIFICATIONS 145 B.6. COMBINING DOCUMENTS 146 B.7. COLLECTIONS OF DOCUMENTS 147 B.8. AGGREGATION WITH INDEPENDENT WORKS 148 B.9. TRANSLATION 149 B.10. TERMINATION 150 B.11. FUTURE REVISIONS OF THIS LICENSE 151 B.12. How to use this License for your documents 152 153 List of Tables 154 2-1. Normative References 155 2-2. Other References 156 3-1. Standard Library Names 157 9-1. ELF Special Sections 158 9-2. Additional Special Sections 159 11-1. libc Definition 160 11-2. libc - RPC Function Interfaces 161 11-3. libc - System Calls Function Interfaces 162 11-4. libc - Standard I/O Function Interfaces 163 11-5. libc - Standard I/O Data Interfaces 164 11-6. libc - Signal Handling Function Interfaces 165 11-7. libc - Signal Handling Data Interfaces 166 11-8. libc - Localization Functions Function Interfaces 167 11-9. libc - Localization Functions Data Interfaces 168 11-10. libc - Socket Interface Function Interfaces 169 11-11. libc - Wide Characters Function Interfaces 170 11-12. libc - String Functions Function Interfaces 171 11-13. libc - IPC Functions Function Interfaces 172 11-14. libc - Regular Expressions Function Interfaces 173 11-15. libc - Character Type Functions Function Interfaces 174 11-16. libc - Time Manipulation Function Interfaces 175 11-17. libc - Time Manipulation Data Interfaces 176 11-18. libc - Terminal Interface Functions Function Interfaces 177 11-19. libc - System Database Interface Function Interfaces 178 11-20. libc - Language Support Function Interfaces 179 11-21. libc - Large File Support Function Interfaces 180 11-22. libc - Standard Library Function Interfaces 181 11-23. libc - Standard Library Data Interfaces 182 11-24. libm Definition 183 11-25. libm - Math Function Interfaces 184 11-26. libm - Math Data Interfaces 185 11-27. libpthread Definition 186 11-28. libpthread - Realtime Threads Function Interfaces 187 11-29. libpthread - Posix Threads Function Interfaces 188 11-30. libpthread - Thread aware versions of libc interfaces 189 Function Interfaces 190 191 11-31. libgcc_s Definition 192 11-32. libgcc_s - Unwind Library Function Interfaces 193 11-33. libdl Definition 194 11-34. libdl - Dynamic Loader Function Interfaces 195 11-35. libcrypt Definition 196 11-36. libcrypt - Encryption Function Interfaces 197 12-1. libz Definition 198 12-2. libncurses Definition 199 12-3. libutil Definition 200 12-4. libutil - Utility Functions Function Interfaces 201 A-1. libgcc_s Function Interfaces 202 _________________________________________________________ 203 204 Foreword 205 206 This is version 3.1 of the Linux Standard Base Core 207 Specification for PPC64. This specification is part of a 208 family of specifications under the general title "Linux 209 Standard Base". Developers of applications or implementations 210 interested in using the LSB trademark should see the Free 211 Standards Group Certification Policy for details. 212 _________________________________________________________ 213 214 Introduction 215 216 The LSB defines a binary interface for application programs 217 that are compiled and packaged for LSB-conforming 218 implementations on many different hardware architectures. 219 Since a binary specification shall include information 220 specific to the computer processor architecture for which it 221 is intended, it is not possible for a single document to 222 specify the interface for all possible LSB-conforming 223 implementations. Therefore, the LSB is a family of 224 specifications, rather than a single one. 225 226 This document should be used in conjunction with the documents 227 it references. This document enumerates the system components 228 it includes, but descriptions of those components may be 229 included entirely or partly in this document, partly in other 230 documents, or entirely in other reference documents. For 231 example, the section that describes system service routines 232 includes a list of the system routines supported in this 233 interface, formal declarations of the data structures they use 234 that are visible to applications, and a pointer to the 235 underlying referenced specification for information about the 236 syntax and semantics of each call. Only those routines not 237 described in standards referenced by this document, or 238 extensions to those standards, are described in the detail. 239 Information referenced in this way is as much a part of this 240 document as is the information explicitly included here. 241 242 The specification carries a version number of either the form 243 x.y or x.y.z. This version number carries the following 244 meaning: 245 246 * The first number (x) is the major version number. All 247 versions with the same major version number should share 248 binary compatibility. Any addition or deletion of a new 249 library results in a new version number. Interfaces marked 250 as deprecated may be removed from the specification at a 251 major version change. 252 * The second number (y) is the minor version number. 253 Individual interfaces may be added if all certified 254 implementations already had that (previously undocumented) 255 interface. Interfaces may be marked as deprecated at a 256 minor version change. Other minor changes may be permitted 257 at the discretion of the LSB workgroup. 258 * The third number (z), if present, is the editorial level. 259 Only editorial changes should be included in such 260 versions. 261 262 Since this specification is a descriptive Application Binary 263 Interface, and not a source level API specification, it is not 264 possible to make a guarantee of 100% backward compatibility 265 between major releases. However, it is the intent that those 266 parts of the binary interface that are visible in the source 267 level API will remain backward compatible from version to 268 version, except where a feature marked as "Deprecated" in one 269 release may be removed from a future release. 270 271 Implementors are strongly encouraged to make use of symbol 272 versioning to permit simultaneous support of applications 273 conforming to different releases of this specification. 274 275 I. Introductory Elements 276 277 Table of Contents 278 1. Scope 279 280 1.1. General 281 1.2. Module Specific Scope 282 283 2. References 284 285 2.1. Normative References 286 2.2. Informative References/Bibliography 287 288 3. Requirements 289 290 3.1. Relevant Libraries 291 3.2. LSB Implementation Conformance 292 3.3. LSB Application Conformance 293 294 4. Definitions 295 5. Terminology 296 6. Documentation Conventions 297 _________________________________________________________ 298 299 Chapter 1. Scope 300 301 1.1. General 302 303 The Linux Standard Base (LSB) defines a system interface for 304 compiled applications and a minimal environment for support of 305 installation scripts. Its purpose is to enable a uniform 306 industry standard environment for high-volume applications 307 conforming to the LSB. 308 309 These specifications are composed of two basic parts: A common 310 specification ("LSB-generic" or "generic LSB"), ISO/IEC 23360 311 Part 1, describing those parts of the interface that remain 312 constant across all implementations of the LSB, and an 313 architecture-specific part ("LSB-arch" or "archLSB") 314 describing the parts of the interface that vary by processor 315 architecture. Together, the LSB-generic and the relevant 316 architecture-specific part of ISO/IEC 23360 for a single 317 hardware architecture provide a complete interface 318 specification for compiled application programs on systems 319 that share a common hardware architecture. 320 321 ISO/IEC 23360 Part 1, the LSB-generic document, should be used 322 in conjunction with an architecture-specific part. Whenever a 323 section of the LSB-generic specification is supplemented by 324 architecture-specific information, the LSB-generic document 325 includes a reference to the architecture part. 326 Architecture-specific parts of ISO/IEC 23360 may also contain 327 additional information that is not referenced in the 328 LSB-generic document. 329 330 The LSB contains both a set of Application Program Interfaces 331 (APIs) and Application Binary Interfaces (ABIs). APIs may 332 appear in the source code of portable applications, while the 333 compiled binary of that application may use the larger set of 334 ABIs. A conforming implementation provides all of the ABIs 335 listed here. The compilation system may replace (e.g. by macro 336 definition) certain APIs with calls to one or more of the 337 underlying binary interfaces, and may insert calls to binary 338 interfaces as needed. 339 340 The LSB is primarily a binary interface definition. Not all of 341 the source level APIs available to applications may be 342 contained in this specification. 343 _________________________________________________________ 344 345 1.2. Module Specific Scope 346 347 This is the PPC64 architecture specific Core part of the Linux 348 Standard Base (LSB). This part supplements the generic LSB 349 Core module with those interfaces that differ between 350 architectures. 351 352 Interfaces described in this part of ISO/IEC 23360 are 353 mandatory except where explicitly listed otherwise. Core 354 interfaces may be supplemented by other modules; all modules 355 are built upon the core. 356 _________________________________________________________ 357 358 Chapter 2. References 359 360 2.1. Normative References 361 362 The following referenced documents are indispensable for the 363 application of this document. For dated references, only the 364 edition cited applies. For undated references, the latest 365 edition of the referenced document (including any amendments) 366 applies. 367 368 Note: Where copies of a document are available on the World 369 Wide Web, a Uniform Resource Locator (URL) is given for 370 informative purposes only. This may point to a more recent 371 copy of the referenced specification, or may be out of 372 date. Reference copies of specifications at the revision 373 level indicated may be found at the Free Standards Group's 374 Reference Specifications site. 375 376 Table 2-1. Normative References 377 Name Title URL 378 ISO/IEC 23360 Part 1 ISO/IEC 23360:2005 Linux Standard Base - 379 Part 1 Generic Specification http://www.linuxbase.org/spec/ 380 64-bit PowerPC(TM) ELF ABI Supplement 64-bit PowerPC(TM) ELF 381 ABI Supplement, Version 1.7 382 http://www.linuxbase.org/spec/ELF/ppc64/ 383 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 384 (FHS) 2.3 http://www.pathname.com/fhs/ 385 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 386 ISO POSIX (2003) 387 388 ISO/IEC 9945-1:2003 Information technology -- Portable 389 Operating System Interface (POSIX) -- Part 1: Base Definitions 390 391 ISO/IEC 9945-2:2003 Information technology -- Portable 392 Operating System Interface (POSIX) -- Part 2: System 393 Interfaces 394 395 ISO/IEC 9945-3:2003 Information technology -- Portable 396 Operating System Interface (POSIX) -- Part 3: Shell and 397 Utilities 398 399 ISO/IEC 9945-4:2003 Information technology -- Portable 400 Operating System Interface (POSIX) -- Part 4: Rationale 401 402 Including Technical Cor. 1: 2004 403 http://www.unix.org/version3/ 404 Large File Support Large File Support 405 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 406 SUSv2 CAE Specification, January 1997, System Interfaces and 407 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 408 http://www.opengroup.org/publications/catalog/un.htm 409 SVID Issue 3 American Telephone and Telegraph Company, System 410 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 411 1989.(ISBN 0201566524) 412 SVID Issue 4 System V Interface Definition,Fourth Edition 413 System V ABI System V Application Binary Interface, Edition 414 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 415 System V ABI Update System V Application Binary Interface - 416 DRAFT - 17 December 2003 417 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 418 l 419 The PowerPC(TM) Microprocessor Family The PowerPC(TM) 420 Microprocessor Family: The Programming Environment Manual for 421 32 and 64-bit Microprocessors 422 http://refspecs.freestandards.org/PPC_hrm.2005mar31.pdf 423 X/Open Curses CAE Specification, May 1996, X/Open Curses, 424 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 425 Corrigendum U018 426 http://www.opengroup.org/publications/catalog/un.htm 427 _________________________________________________________ 428 429 2.2. Informative References/Bibliography 430 431 In addition, the specifications listed below provide essential 432 background information to implementors of this specification. 433 These references are included for information only. 434 435 Table 2-2. Other References 436 Name Title URL 437 DWARF Debugging Information Format, Revision 2.0.0 DWARF 438 Debugging Information Format, Revision 2.0.0 (July 27, 1993) 439 http://refspecs.freestandards.org/dwarf/dwarf-2.0.0.pdf 440 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 441 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 442 http://refspecs.freestandards.org/dwarf/ 443 IEC 60559/IEEE 754 Floating Point IEC 60559:1989 Binary 444 floating-point arithmetic for microprocessor systems 445 http://www.ieee.org/ 446 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 447 Specification method for cultural conventions 448 ITU-T V.42 International Telecommunication Union 449 Recommendation V.42 (2002): Error-correcting procedures for 450 DCEs using asynchronous-to-synchronous conversionITUV 451 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 452 parent=T-REC-V.42 453 Li18nux Globalization Specification LI18NUX 2000 Globalization 454 Specification, Version 1.0 with Amendment 4 455 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 456 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 457 http://www.lanana.org/docs/device-list/devices.txt 458 PAM Open Software Foundation, Request For Comments: 86.0 , 459 October 1995, V. Samar & R.Schemers (SunSoft) 460 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 461 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 462 MD5 Message-Digest Algorithm 463 http://www.ietf.org/rfc/rfc1321.txt 464 RFC 1831/1832 RPC & XDR IETF RFC 1831 & 1832 465 http://www.ietf.org/ 466 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 467 1833: Binding Protocols for ONC RPC Version 2 468 http://www.ietf.org/rfc/rfc1833.txt 469 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 470 1950: ZLIB Compressed Data Format Specification 471 http://www.ietf.org/rfc/rfc1950.txt 472 RFC 1951: DEFLATE Compressed Data Format Specification IETF 473 RFC 1951: DEFLATE Compressed Data Format Specification version 474 1.3 http://www.ietf.org/rfc/rfc1951.txt 475 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 476 file format specification version 4.3 477 http://www.ietf.org/rfc/rfc1952.txt 478 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 479 Message Format http://www.ietf.org/rfc/rfc2440.txt 480 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 481 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 482 RFC 2822:Internet Message Format IETF RFC 2822: Internet 483 Message Format http://www.ietf.org/rfc/rfc2822.txt 484 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 485 Specification http://www.ietf.org/rfc/rfc791.txt 486 RPM Package Format RPM Package Format V3.0 487 http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format. 488 html 489 SUSv2 Commands and Utilities The Single UNIX 490 Specification(SUS) Version 2, Commands and Utilities (XCU), 491 Issue 5 (ISBN: 1-85912-191-8, C604) 492 http://www.opengroup.org/publications/catalog/un.htm 493 zlib Manual zlib 1.2 Manual http://www.gzip.org/zlib/ 494 _________________________________________________________ 495 496 Chapter 3. Requirements 497 498 3.1. Relevant Libraries 499 500 The libraries listed in Table 3-1 shall be available on PPC64 501 Linux Standard Base systems, with the specified runtime names. 502 These names override or supplement the names specified in the 503 generic LSB (ISO/IEC 23360 Part 1) specification. The 504 specified program interpreter, referred to as proginterp in 505 this table, shall be used to load the shared libraries 506 specified by DT_NEEDED entries at run time. 507 508 Table 3-1. Standard Library Names 509 Library Runtime Name 510 libm libm.so.6 511 libdl libdl.so.2 512 libcrypt libcrypt.so.1 513 libz libz.so.1 514 libncurses libncurses.so.5 515 libutil libutil.so.1 516 libc libc.so.6 517 libpthread libpthread.so.0 518 proginterp /lib64/ld-lsb-ppc64.so.3 519 libgcc_s libgcc_s.so.1 520 521 These libraries will be in an implementation-defined directory 522 which the dynamic linker shall search by default. 523 _________________________________________________________ 524 525 3.2. LSB Implementation Conformance 526 527 A conforming implementation is necessarily architecture 528 specific, and must provide the interfaces specified by both 529 the generic LSB Core specification (ISO/IEC 23360 Part 1) and 530 the relevant architecture specific part of ISO/IEC 23360. 531 532 Rationale: An implementation must provide at least the 533 interfaces specified in these specifications. It may also 534 provide additional interfaces. 535 536 A conforming implementation shall satisfy the following 537 requirements: 538 539 * A processor architecture represents a family of related 540 processors which may not have identical feature sets. The 541 architecture specific parts of ISO/IEC 23360 that 542 supplement this specification for a given target processor 543 architecture describe a minimum acceptable processor. The 544 implementation shall provide all features of this 545 processor, whether in hardware or through emulation 546 transparent to the application. 547 * The implementation shall be capable of executing compiled 548 applications having the format and using the system 549 interfaces described in this document. 550 * The implementation shall provide libraries containing the 551 interfaces specified by this document, and shall provide a 552 dynamic linking mechanism that allows these interfaces to 553 be attached to applications at runtime. All the interfaces 554 shall behave as specified in this document. 555 * The map of virtual memory provided by the implementation 556 shall conform to the requirements of this document. 557 * The implementation's low-level behavior with respect to 558 function call linkage, system traps, signals, and other 559 such activities shall conform to the formats described in 560 this document. 561 * The implementation shall provide all of the mandatory 562 interfaces in their entirety. 563 * The implementation may provide one or more of the optional 564 interfaces. Each optional interface that is provided shall 565 be provided in its entirety. The product documentation 566 shall state which optional interfaces are provided. 567 * The implementation shall provide all files and utilities 568 specified as part of this document in the format defined 569 here and in other referenced documents. All commands and 570 utilities shall behave as required by this document. The 571 implementation shall also provide all mandatory components 572 of an application's runtime environment that are included 573 or referenced in this document. 574 * The implementation, when provided with standard data 575 formats and values at a named interface, shall provide the 576 behavior defined for those values and data formats at that 577 interface. However, a conforming implementation may 578 consist of components which are separately packaged and/or 579 sold. For example, a vendor of a conforming implementation 580 might sell the hardware, operating system, and windowing 581 system as separately packaged items. 582 * The implementation may provide additional interfaces with 583 different names. It may also provide additional behavior 584 corresponding to data values outside the standard ranges, 585 for standard named interfaces. 586 _________________________________________________________ 587 588 3.3. LSB Application Conformance 589 590 A conforming application is necessarily architecture specific, 591 and must conform to both the generic LSB Core specification 592 (ISO/IEC 23360 Part 1)and the relevant architecture specific 593 part of ISO/IEC 23360. 594 595 A conforming application shall satisfy the following 596 requirements: 597 598 * Its executable files shall be either shell scripts or 599 object files in the format defined for the Object File 600 Format system interface. 601 * Its object files shall participate in dynamic linking as 602 defined in the Program Loading and Linking System 603 interface. 604 * It shall employ only the instructions, traps, and other 605 low-level facilities defined in the Low-Level System 606 interface as being for use by applications. 607 * If it requires any optional interface defined in this 608 document in order to be installed or to execute 609 successfully, the requirement for that optional interface 610 shall be stated in the application's documentation. 611 * It shall not use any interface or data format that is not 612 required to be provided by a conforming implementation, 613 unless: 614 + If such an interface or data format is supplied by 615 another application through direct invocation of that 616 application during execution, that application shall 617 be in turn an LSB conforming application. 618 + The use of that interface or data format, as well as 619 its source, shall be identified in the documentation 620 of the application. 621 * It shall not use any values for a named interface that are 622 reserved for vendor extensions. 623 624 A strictly conforming application shall not require or use any 625 interface, facility, or implementation-defined extension that 626 is not defined in this document in order to be installed or to 627 execute successfully. 628 _________________________________________________________ 629 630 Chapter 4. Definitions 631 632 For the purposes of this document, the following definitions, 633 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 634 Edition, apply: 635 636 can 637 638 be able to; there is a possibility of; it is possible to 639 cannot 640 641 be unable to; there is no possibilty of; it is not possible to 642 may 643 644 is permitted; is allowed; is permissible 645 need not 646 647 it is not required that; no...is required 648 shall 649 650 is to; is required to; it is required that; has to; only...is 651 permitted; it is necessary 652 shall not 653 654 is not allowed [permitted] [acceptable] [permissible]; is 655 required to be not; is required that...be not; is not to be 656 should 657 658 it is recommended that; ought to 659 should not 660 661 it is not recommended that; ought not to 662 _________________________________________________________ 663 664 Chapter 5. Terminology 665 666 For the purposes of this document, the following terms apply: 667 668 archLSB 669 The architectural part of the LSB Specification which 670 describes the specific parts of the interface that are 671 platform specific. The archLSB is complementary to the 672 gLSB. 673 674 Binary Standard 675 The total set of interfaces that are available to be 676 used in the compiled binary code of a conforming 677 application. 678 679 gLSB 680 The common part of the LSB Specification that describes 681 those parts of the interface that remain constant 682 across all hardware implementations of the LSB. 683 684 implementation-defined 685 Describes a value or behavior that is not defined by 686 this document but is selected by an implementor. The 687 value or behavior may vary among implementations that 688 conform to this document. An application should not 689 rely on the existence of the value or behavior. An 690 application that relies on such a value or behavior 691 cannot be assured to be portable across conforming 692 implementations. The implementor shall document such a 693 value or behavior so that it can be used correctly by 694 an application. 695 696 Shell Script 697 A file that is read by an interpreter (e.g., awk). The 698 first line of the shell script includes a reference to 699 its interpreter binary. 700 701 Source Standard 702 The set of interfaces that are available to be used in 703 the source code of a conforming application. 704 705 undefined 706 Describes the nature of a value or behavior not defined 707 by this document which results from use of an invalid 708 program construct or invalid data input. The value or 709 behavior may vary among implementations that conform to 710 this document. An application should not rely on the 711 existence or validity of the value or behavior. An 712 application that relies on any particular value or 713 behavior cannot be assured to be portable across 714 conforming implementations. 715 716 unspecified 717 Describes the nature of a value or behavior not 718 specified by this document which results from use of a 719 valid program construct or valid data input. The value 720 or behavior may vary among implementations that conform 721 to this document. An application should not rely on the 722 existence or validity of the value or behavior. An 723 application that relies on any particular value or 724 behavior cannot be assured to be portable across 725 conforming implementations. 726 727 Other terms and definitions used in this document shall have 728 the same meaning as defined in Chapter 3 of the Base 729 Definitions volume of ISO POSIX (2003). 730 _________________________________________________________ 731 732 Chapter 6. Documentation Conventions 733 734 Throughout this document, the following typographic 735 conventions are used: 736 737 function() 738 739 the name of a function 740 command 741 742 the name of a command or utility 743 CONSTANT 744 745 a constant value 746 parameter 747 748 a parameter 749 variable 750 751 a variable 752 753 Throughout this specification, several tables of interfaces 754 are presented. Each entry in these tables has the following 755 format: 756 757 name 758 759 the name of the interface 760 (symver) 761 762 An optional symbol version identifier, if required. 763 [refno] 764 765 A reference number indexing the table of referenced 766 specifications that follows this table. 767 768 For example, 769 770 forkpty(GLIBC_2.0) [SUSv3] 771 772 refers to the interface named forkpty() with symbol version 773 GLIBC_2.0 that is defined in the SUSv3 reference. 774 775 Note: Symbol versions are defined in the architecture 776 specific parts of ISO/IEC 23360 only. 777 778 II. Executable and Linking Format (ELF) 779 780 Table of Contents 781 7. Introduction 782 8. Low Level System Information 783 784 8.1. Machine Interface 785 786 8.1.1. Processor Architecture 787 8.1.2. Data Representation 788 8.1.3. Byte Ordering 789 8.1.4. Fundamental Types 790 8.1.5. Aggregates and Unions 791 8.1.6. Bit Fields 792 793 8.2. Function Calling Sequence 794 795 8.2.1. Registers 796 8.2.2. Stack Frame 797 8.2.3. Parameter Passing 798 8.2.4. Return Values 799 8.2.5. Function Descriptors 800 801 8.3. Traceback Tables 802 803 8.3.1. Mandatory Fields 804 8.3.2. Optional Fields 805 806 8.4. Process Initialization 807 808 8.4.1. Registers 809 8.4.2. Process Stack 810 811 8.5. Coding Examples 812 813 8.5.1. Code Model Overview 814 8.5.2. The TOC Section 815 8.5.3. TOC Assembly Language Syntax 816 8.5.4. Function Prologue and Epilogue 817 8.5.5. Register Saving and Restoring Functions 818 8.5.6. Saving General Registers Only 819 8.5.7. Saving General Registers and Floating Point 820 Registers 821 822 8.5.8. Saving Floating Point Registers Only 823 8.5.9. Save and Restore Services 824 8.5.10. Data Objects 825 8.5.11. Function Calls 826 8.5.12. Branching 827 8.5.13. Dynamic Stack Space Allocation 828 829 9. Object Format 830 831 9.1. Introduction 832 9.2. ELF Header 833 9.3. Special Sections 834 835 9.3.1. Addition Special Sections 836 837 9.4. TOC 838 9.5. Symbol Table 839 840 9.5.1. Symbol Values 841 842 9.6. Relocation 843 844 9.6.1. Relocation Types 845 846 10. Program Loading and Dynamic Linking 847 848 10.1. Introduction 849 10.2. Program Loading 850 10.3. Dynamic Linking 851 852 10.3.1. Dynamic Section 853 10.3.2. Global Offset Table 854 10.3.3. Function Addresses 855 10.3.4. Procedure Linkage Table 856 _________________________________________________________ 857 858 Chapter 7. Introduction 859 860 Executable and Linking Format (ELF) defines the object format 861 for compiled applications. This specification supplements the 862 information found in System V ABI Update and 64-bit 863 PowerPC(TM) ELF ABI Supplement, and is intended to document 864 additions made since the publication of that document. 865 _________________________________________________________ 866 867 Chapter 8. Low Level System Information 868 869 8.1. Machine Interface 870 871 8.1.1. Processor Architecture 872 873 The PowerPC Architecture is specified by the following 874 documents: 875 876 * 64-bit PowerPC(TM) ELF ABI Supplement 877 * The PowerPC(TM) Microprocessor Family 878 879 Only the features of the PowerPC Power3 processor instruction 880 set may be assumed to be present. An application should 881 determine if any additional instruction set features are 882 available before using those additional features. If a feature 883 is not present, then the application may not use it. 884 885 Conforming applications may use only instructions which do not 886 require elevated privileges. 887 888 Conforming applications shall not invoke the implementations 889 underlying system call interface directly. The interfaces in 890 the implementation base libraries shall be used instead. 891 892 Rationale: Implementation-supplied base libraries may use 893 the system call interface but applications must not assume 894 any particular operating system or kernel version is 895 present. 896 897 An implementation must support the 64-bit computation mode as 898 described in The PowerPC(TM) Microprocessor Family. 899 900 Applications conforming to this specification must provide 901 feedback to the user if a feature that is required for correct 902 execution of the application is not present. Applications 903 conforming to this specification should attempt to execute in 904 a diminished capacity if a required feature is not present. 905 906 This specification does not provide any performance guarantees 907 of a conforming system. A system conforming to this 908 specification may be implemented in either hardware or 909 software. 910 _________________________________________________________ 911 912 8.1.2. Data Representation 913 914 LSB-conforming applications shall use the data representation 915 as defined in Chapter 3 of the 64-bit PowerPC(TM) ELF ABI 916 Supplement. 917 _________________________________________________________ 918 919 8.1.3. Byte Ordering 920 921 LSB-conforming applications shall use big-endian byte 922 ordering. LSB-conforming implementations may support 923 little-endian applications. 924 _________________________________________________________ 925 926 8.1.4. Fundamental Types 927 928 LSB-conforming applications shall use the fundamental types as 929 defined in Chapter 3 of the 64-bit PowerPC(TM) ELF ABI 930 Supplement. 931 932 LSB-conforming applications shall not use the long double 933 fundamental type. 934 _________________________________________________________ 935 936 8.1.5. Aggregates and Unions 937 938 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 939 _________________________________________________________ 940 941 8.1.6. Bit Fields 942 943 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 944 _________________________________________________________ 945 946 8.2. Function Calling Sequence 947 948 LSB-conforming applications shall use the function calling 949 sequence as defined in Chapter 3 of the 64-bit PowerPC(TM) ELF 950 ABI Supplement. 951 _________________________________________________________ 952 953 8.2.1. Registers 954 955 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 956 _________________________________________________________ 957 958 8.2.2. Stack Frame 959 960 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 961 _________________________________________________________ 962 963 8.2.3. Parameter Passing 964 965 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 966 _________________________________________________________ 967 968 8.2.4. Return Values 969 970 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 971 _________________________________________________________ 972 973 8.2.5. Function Descriptors 974 975 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 976 _________________________________________________________ 977 978 8.3. Traceback Tables 979 980 LSB-conforming applications shall use the traceback tables as 981 defined in Chapter 3 of the 64-bit PowerPC(TM) ELF ABI 982 Supplement. 983 _________________________________________________________ 984 985 8.3.1. Mandatory Fields 986 987 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 988 _________________________________________________________ 989 990 8.3.2. Optional Fields 991 992 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 993 _________________________________________________________ 994 995 8.4. Process Initialization 996 997 LSB-conforming applications shall use the Operating System 998 Interfaces as defined in Chapter 3 of the 64-bit PowerPC(TM) 999 ELF ABI Supplement. 1000 _________________________________________________________ 1001 1002 8.4.1. Registers 1003 1004 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1005 _________________________________________________________ 1006 1007 8.4.2. Process Stack 1008 1009 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1010 _________________________________________________________ 1011 1012 8.5. Coding Examples 1013 1014 LSB-conforming applications may implement fundamental 1015 operations using the Coding Examples as defined in Chapter 3 1016 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1017 _________________________________________________________ 1018 1019 8.5.1. Code Model Overview 1020 1021 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1022 _________________________________________________________ 1023 1024 8.5.2. The TOC Section 1025 1026 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1027 _________________________________________________________ 1028 1029 8.5.3. TOC Assembly Language Syntax 1030 1031 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1032 _________________________________________________________ 1033 1034 8.5.4. Function Prologue and Epilogue 1035 1036 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1037 _________________________________________________________ 1038 1039 8.5.5. Register Saving and Restoring Functions 1040 1041 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1042 _________________________________________________________ 1043 1044 8.5.6. Saving General Registers Only 1045 1046 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1047 _________________________________________________________ 1048 1049 8.5.7. Saving General Registers and Floating Point Registers 1050 1051 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1052 _________________________________________________________ 1053 1054 8.5.8. Saving Floating Point Registers Only 1055 1056 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1057 _________________________________________________________ 1058 1059 8.5.9. Save and Restore Services 1060 1061 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1062 _________________________________________________________ 1063 1064 8.5.10. Data Objects 1065 1066 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1067 _________________________________________________________ 1068 1069 8.5.11. Function Calls 1070 1071 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1072 _________________________________________________________ 1073 1074 8.5.12. Branching 1075 1076 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1077 _________________________________________________________ 1078 1079 8.5.13. Dynamic Stack Space Allocation 1080 1081 See Chapter 3 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1082 _________________________________________________________ 1083 1084 Chapter 9. Object Format 1085 1086 9.1. Introduction 1087 1088 LSB-conforming implementations shall support an object file , 1089 called Executable and Linking Format (ELF) as defined by the 1090 64-bit PowerPC(TM) ELF ABI Supplement and as supplemented by 1091 the Linux Standard Base Specification and this document. 1092 LSB-conforming implementations need not support tags related 1093 functionality. LSB-conforming applications must not rely on 1094 tags related functionality. 1095 _________________________________________________________ 1096 1097 9.2. ELF Header 1098 1099 LSB-conforming applications shall use the ELF header as 1100 defined in 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 4. 1101 _________________________________________________________ 1102 1103 9.3. Special Sections 1104 1105 The following sections are defined in the 64-bit PowerPC(TM) 1106 ELF ABI Supplement. 1107 1108 Table 9-1. ELF Special Sections 1109 Name Type Attributes 1110 .glink SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 1111 .got SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1112 .plt SHT_NOBITS SHF_ALLOC+SHF_WRITE 1113 .sbss SHT_NOBITS SHF_ALLOC+SHF_WRITE 1114 .sdata SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1115 .toc SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1116 .tocbss SHT_NOBITS SHF_ALLOC+SHF_WRITE 1117 1118 .glink 1119 1120 This section may be used to hold the global linkage table 1121 which aids the procedure linkage table. See Procedure Linkage 1122 Table in Chapter 5 of the processor supplement for more 1123 information 1124 .got 1125 1126 This section may be used to hold the Global Offset Table, or 1127 GOT. See The Toc Section and Coding Examples in Chapter 3 and 1128 Global Offset Table in Chapter 5 of the processor supplement 1129 for more information 1130 .plt 1131 1132 This section holds the procedure linkage table. See Procedure 1133 Linkage Table in Chapter 5 of the processor supplement for 1134 more information 1135 .sbss 1136 1137 This section holds uninitialized data that contribute to the 1138 program's memory image. The system initializes the data with 1139 zeroes when the program begins to run. 1140 .sdata 1141 1142 This section holds initialized small data that contribute to 1143 the program memory image. 1144 .toc 1145 1146 This section may be used to hold the initialized Table of 1147 Contents, or TOC 1148 .tocbss 1149 1150 This section may be used to hold the uninitialized portions of 1151 the TOC. This data may also be stored as zero-initialized data 1152 in a .toc section 1153 _________________________________________________________ 1154 1155 9.3.1. Addition Special Sections 1156 1157 The following additional sections are defined here. 1158 1159 Table 9-2. Additional Special Sections 1160 Name Type Attributes 1161 .branch_lt SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1162 .opd SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1163 .rela.dyn SHT_RELA SHF_ALLOC 1164 .rela.plt SHT_RELA SHF_ALLOC 1165 .toc1 SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1166 1167 .branch_lt 1168 1169 This section holds destination addresses for very long 1170 branches 1171 .opd 1172 1173 This section contains the official procedure descriptors. A 1174 pointer to a function shall reference a procedure descriptor 1175 in this section. 1176 .rela.dyn 1177 1178 This section holds RELA type relocation information for all 1179 sections of a shared library except the PLT 1180 .rela.plt 1181 1182 This section holds RELA type relocation information for the 1183 PLT section of a shared library or dynamically linked 1184 application 1185 .toc1 1186 1187 This section holds the second level TOC information 1188 _________________________________________________________ 1189 1190 9.4. TOC 1191 1192 LSB-conforming applications shall use the Table of Contents 1193 (TOC) as defined in 64-bit PowerPC(TM) ELF ABI Supplement, 1194 Chapter 4. 1195 _________________________________________________________ 1196 1197 9.5. Symbol Table 1198 1199 LSB-conforming applications shall use the Symbol Table as 1200 defined in Chapter 4 of the 64-bit PowerPC(TM) ELF ABI 1201 Supplement. 1202 _________________________________________________________ 1203 1204 9.5.1. Symbol Values 1205 1206 See Chapter 4 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1207 _________________________________________________________ 1208 1209 9.6. Relocation 1210 1211 LSB-conforming applications shall use Relocations as defined 1212 in Chapter 4 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1213 _________________________________________________________ 1214 1215 9.6.1. Relocation Types 1216 1217 See Chapter 4 of the 64-bit PowerPC(TM) ELF ABI Supplement. 1218 _________________________________________________________ 1219 1220 Chapter 10. Program Loading and Dynamic Linking 1221 1222 10.1. Introduction 1223 1224 LSB-conforming implementations shall support the object file 1225 information and system actions that create running programs as 1226 specified in the System V ABI, 64-bit PowerPC(TM) ELF ABI 1227 Supplement and as supplemented by the Linux Standard Base 1228 Specification and this document. 1229 _________________________________________________________ 1230 1231 10.2. Program Loading 1232 1233 See 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 5.1. 1234 _________________________________________________________ 1235 1236 10.3. Dynamic Linking 1237 1238 See 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 5.2. 1239 _________________________________________________________ 1240 1241 10.3.1. Dynamic Section 1242 1243 The following dynamic entries are defined in the 64-bit 1244 PowerPC(TM) ELF ABI Supplement, Chapter 5.2. 1245 1246 DT_JMPREL 1247 1248 This entry is associated with a table of relocation entries 1249 for the procedure linkage table. This entry is mandatory both 1250 for executable and shared object files 1251 DT_PLTGOT 1252 1253 This entry's d_ptr member gives the address of the first byte 1254 in the procedure linkage table 1255 1256 In addtion the following dynamic entries are also supported: 1257 1258 DT_RELACOUNT 1259 1260 The number of relative relocations in .rela.dyn 1261 _________________________________________________________ 1262 1263 10.3.2. Global Offset Table 1264 1265 See 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 5.2.2. 1266 _________________________________________________________ 1267 1268 10.3.3. Function Addresses 1269 1270 See 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 5.2.3. 1271 _________________________________________________________ 1272 1273 10.3.4. Procedure Linkage Table 1274 1275 See 64-bit PowerPC(TM) ELF ABI Supplement, Chapter 5.2.4. 1276 1277 III. Base Libraries 1278 1279 Table of Contents 1280 11. Libraries 1281 1282 11.1. Program Interpreter/Dynamic Linker 1283 11.2. Interfaces for libc 1284 1285 11.2.1. RPC 1286 11.2.2. System Calls 1287 11.2.3. Standard I/O 1288 11.2.4. Signal Handling 1289 11.2.5. Localization Functions 1290 11.2.6. Socket Interface 1291 11.2.7. Wide Characters 1292 11.2.8. String Functions 1293 11.2.9. IPC Functions 1294 11.2.10. Regular Expressions 1295 11.2.11. Character Type Functions 1296 11.2.12. Time Manipulation 1297 11.2.13. Terminal Interface Functions 1298 11.2.14. System Database Interface 1299 11.2.15. Language Support 1300 11.2.16. Large File Support 1301 11.2.17. Standard Library 1302 1303 11.3. Data Definitions for libc 1304 1305 11.3.1. ctype.h 1306 11.3.2. dirent.h 1307 11.3.3. errno.h 1308 11.3.4. fcntl.h 1309 11.3.5. fnmatch.h 1310 11.3.6. ftw.h 1311 11.3.7. getopt.h 1312 11.3.8. glob.h 1313 11.3.9. iconv.h 1314 11.3.10. inttypes.h 1315 11.3.11. langinfo.h 1316 11.3.12. limits.h 1317 11.3.13. locale.h 1318 11.3.14. net/if.h 1319 11.3.15. netdb.h 1320 11.3.16. netinet/in.h 1321 11.3.17. netinet/ip.h 1322 11.3.18. netinet/tcp.h 1323 11.3.19. netinet/udp.h 1324 11.3.20. nl_types.h 1325 11.3.21. pwd.h 1326 11.3.22. regex.h 1327 11.3.23. rpc/auth.h 1328 11.3.24. rpc/clnt.h 1329 11.3.25. rpc/rpc_msg.h 1330 11.3.26. rpc/svc.h 1331 11.3.27. rpc/types.h 1332 11.3.28. rpc/xdr.h 1333 11.3.29. sched.h 1334 11.3.30. search.h 1335 11.3.31. setjmp.h 1336 11.3.32. signal.h 1337 11.3.33. stddef.h 1338 11.3.34. stdio.h 1339 11.3.35. stdlib.h 1340 11.3.36. sys/file.h 1341 11.3.37. sys/ioctl.h 1342 11.3.38. sys/ipc.h 1343 11.3.39. sys/mman.h 1344 11.3.40. sys/msg.h 1345 11.3.41. sys/param.h 1346 11.3.42. sys/poll.h 1347 11.3.43. sys/resource.h 1348 11.3.44. sys/sem.h 1349 11.3.45. sys/shm.h 1350 11.3.46. sys/socket.h 1351 11.3.47. sys/stat.h 1352 11.3.48. sys/statfs.h 1353 11.3.49. sys/statvfs.h 1354 11.3.50. sys/time.h 1355 11.3.51. sys/timeb.h 1356 11.3.52. sys/times.h 1357 11.3.53. sys/types.h 1358 11.3.54. sys/un.h 1359 11.3.55. sys/utsname.h 1360 11.3.56. sys/wait.h 1361 11.3.57. syslog.h 1362 11.3.58. termios.h 1363 11.3.59. ucontext.h 1364 11.3.60. ulimit.h 1365 11.3.61. unistd.h 1366 11.3.62. utime.h 1367 11.3.63. utmp.h 1368 11.3.64. utmpx.h 1369 11.3.65. wctype.h 1370 11.3.66. wordexp.h 1371 1372 11.4. Interfaces for libm 1373 1374 11.4.1. Math 1375 1376 11.5. Data Definitions for libm 1377 1378 11.5.1. complex.h 1379 11.5.2. fenv.h 1380 11.5.3. math.h 1381 1382 11.6. Interfaces for libpthread 1383 1384 11.6.1. Realtime Threads 1385 11.6.2. Advanced Realtime Threads 1386 11.6.3. Posix Threads 1387 11.6.4. Thread aware versions of libc interfaces 1388 1389 11.7. Data Definitions for libpthread 1390 1391 11.7.1. pthread.h 1392 11.7.2. semaphore.h 1393 1394 11.8. Interfaces for libgcc_s 1395 1396 11.8.1. Unwind Library 1397 1398 11.9. Data Definitions for libgcc_s 1399 1400 11.9.1. unwind.h 1401 1402 11.10. Interface Definitions for libgcc_s 1403 1404 _Unwind_DeleteException -- private C++ error 1405 handling method 1406 1407 _Unwind_Find_FDE -- private C++ error handling 1408 method 1409 1410 _Unwind_ForcedUnwind -- private C++ error handling 1411 method 1412 1413 _Unwind_GetDataRelBase -- private IA64 C++ error 1414 handling method 1415 1416 _Unwind_GetGR -- private C++ error handling method 1417 _Unwind_GetIP -- private C++ error handling method 1418 _Unwind_GetLanguageSpecificData -- private C++ 1419 error handling method 1420 1421 _Unwind_GetRegionStart -- private C++ error 1422 handling method 1423 1424 _Unwind_GetTextRelBase -- private IA64 C++ error 1425 handling method 1426 1427 _Unwind_RaiseException -- private C++ error 1428 handling method 1429 1430 _Unwind_Resume -- private C++ error handling method 1431 _Unwind_SetGR -- private C++ error handling method 1432 _Unwind_SetIP -- private C++ error handling method 1433 1434 11.11. Interfaces for libdl 1435 1436 11.11.1. Dynamic Loader 1437 1438 11.12. Data Definitions for libdl 1439 1440 11.12.1. dlfcn.h 1441 1442 11.13. Interfaces for libcrypt 1443 1444 11.13.1. Encryption 1445 _________________________________________________________ 1446 1447 Chapter 11. Libraries 1448 1449 An LSB-conforming implementation shall support base libraries 1450 which provide interfaces for accessing the operating system, 1451 processor and other hardware in the system. 1452 1453 Only those interfaces that are unique to the PowerPC 64 1454 platform are defined here. This section should be used in 1455 conjunction with the corresponding section in the Linux 1456 Standard Base Specification. 1457 _________________________________________________________ 1458 1459 11.1. Program Interpreter/Dynamic Linker 1460 1461 The Program Interpreter shall be /lib64/ld-lsb-ppc64.so.3. 1462 _________________________________________________________ 1463 1464 11.2. Interfaces for libc 1465 1466 Table 11-1 defines the library name and shared object name for 1467 the libc library 1468 1469 Table 11-1. libc Definition 1470 Library: libc 1471 SONAME: libc.so.6 1472 1473 The behavior of the interfaces in this library is specified by 1474 the following specifications: 1475 1476 [LFS] Large File Support 1477 [LSB] ISO/IEC 23360 Part 1 1478 [SUSv2] SUSv2 1479 [SUSv3] ISO POSIX (2003) 1480 [SVID.3] SVID Issue 3 1481 [SVID.4] SVID Issue 4 1482 _________________________________________________________ 1483 1484 11.2.1. RPC 1485 _________________________________________________________ 1486 1487 11.2.1.1. Interfaces for RPC 1488 1489 An LSB conforming implementation shall provide the 1490 architecture specific functions for RPC specified in Table 1491 11-2, with the full mandatory functionality as described in 1492 the referenced underlying specification. 1493 1494 Table 11-2. libc - RPC Function Interfaces 1495 authnone_create(GLIBC_2.3) [SVID.4] clnt_create(GLIBC_2.3) 1496 [SVID.4] clnt_pcreateerror(GLIBC_2.3) [SVID.4] 1497 clnt_perrno(GLIBC_2.3) [SVID.4] 1498 clnt_perror(GLIBC_2.3) [SVID.4] clnt_spcreateerror(GLIBC_2.3) 1499 [SVID.4] clnt_sperrno(GLIBC_2.3) [SVID.4] 1500 clnt_sperror(GLIBC_2.3) [SVID.4] 1501 key_decryptsession(GLIBC_2.3) [SVID.3] pmap_getport(GLIBC_2.3) 1502 [LSB] pmap_set(GLIBC_2.3) [LSB] pmap_unset(GLIBC_2.3) [LSB] 1503 svc_getreqset(GLIBC_2.3) [SVID.3] svc_register(GLIBC_2.3) 1504 [LSB] svc_run(GLIBC_2.3) [LSB] svc_sendreply(GLIBC_2.3) [LSB] 1505 svcerr_auth(GLIBC_2.3) [SVID.3] svcerr_decode(GLIBC_2.3) 1506 [SVID.3] svcerr_noproc(GLIBC_2.3) [SVID.3] 1507 svcerr_noprog(GLIBC_2.3) [SVID.3] 1508 svcerr_progvers(GLIBC_2.3) [SVID.3] 1509 svcerr_systemerr(GLIBC_2.3) [SVID.3] 1510 svcerr_weakauth(GLIBC_2.3) [SVID.3] svctcp_create(GLIBC_2.3) 1511 [LSB] 1512 svcudp_create(GLIBC_2.3) [LSB] xdr_accepted_reply(GLIBC_2.3) 1513 [SVID.3] xdr_array(GLIBC_2.3) [SVID.3] xdr_bool(GLIBC_2.3) 1514 [SVID.3] 1515 xdr_bytes(GLIBC_2.3) [SVID.3] xdr_callhdr(GLIBC_2.3) [SVID.3] 1516 xdr_callmsg(GLIBC_2.3) [SVID.3] xdr_char(GLIBC_2.3) [SVID.3] 1517 xdr_double(GLIBC_2.3) [SVID.3] xdr_enum(GLIBC_2.3) [SVID.3] 1518 xdr_float(GLIBC_2.3) [SVID.3] xdr_free(GLIBC_2.3) [SVID.3] 1519 xdr_int(GLIBC_2.3) [SVID.3] xdr_long(GLIBC_2.3) [SVID.3] 1520 xdr_opaque(GLIBC_2.3) [SVID.3] xdr_opaque_auth(GLIBC_2.3) 1521 [SVID.3] 1522 xdr_pointer(GLIBC_2.3) [SVID.3] xdr_reference(GLIBC_2.3) 1523 [SVID.3] xdr_rejected_reply(GLIBC_2.3) [SVID.3] 1524 xdr_replymsg(GLIBC_2.3) [SVID.3] 1525 xdr_short(GLIBC_2.3) [SVID.3] xdr_string(GLIBC_2.3) [SVID.3] 1526 xdr_u_char(GLIBC_2.3) [SVID.3] xdr_u_int(GLIBC_2.3) [LSB] 1527 xdr_u_long(GLIBC_2.3) [SVID.3] xdr_u_short(GLIBC_2.3) [SVID.3] 1528 xdr_union(GLIBC_2.3) [SVID.3] xdr_vector(GLIBC_2.3) [SVID.3] 1529 xdr_void(GLIBC_2.3) [SVID.3] xdr_wrapstring(GLIBC_2.3) 1530 [SVID.3] xdrmem_create(GLIBC_2.3) [SVID.3] 1531 xdrrec_create(GLIBC_2.3) [SVID.3] 1532 xdrrec_eof(GLIBC_2.3) [SVID.3] 1533 _________________________________________________________ 1534 1535 11.2.2. System Calls 1536 _________________________________________________________ 1537 1538 11.2.2.1. Interfaces for System Calls 1539 1540 An LSB conforming implementation shall provide the 1541 architecture specific functions for System Calls specified in 1542 Table 11-3, with the full mandatory functionality as described 1543 in the referenced underlying specification. 1544 1545 Table 11-3. libc - System Calls Function Interfaces 1546 __fxstat(GLIBC_2.3) [LSB] __getpgid(GLIBC_2.3) [LSB] 1547 __lxstat(GLIBC_2.3) [LSB] __xmknod(GLIBC_2.3) [LSB] 1548 __xstat(GLIBC_2.3) [LSB] access(GLIBC_2.3) [SUSv3] 1549 acct(GLIBC_2.3) [LSB] alarm(GLIBC_2.3) [SUSv3] 1550 brk(GLIBC_2.3) [SUSv2] chdir(GLIBC_2.3) [SUSv3] 1551 chmod(GLIBC_2.3) [SUSv3] chown(GLIBC_2.3) [SUSv3] 1552 chroot(GLIBC_2.3) [SUSv2] clock(GLIBC_2.3) [SUSv3] 1553 close(GLIBC_2.3) [SUSv3] closedir(GLIBC_2.3) [SUSv3] 1554 creat(GLIBC_2.3) [SUSv3] dup(GLIBC_2.3) [SUSv3] 1555 dup2(GLIBC_2.3) [SUSv3] execl(GLIBC_2.3) [SUSv3] 1556 execle(GLIBC_2.3) [SUSv3] execlp(GLIBC_2.3) [SUSv3] 1557 execv(GLIBC_2.3) [SUSv3] execve(GLIBC_2.3) [SUSv3] 1558 execvp(GLIBC_2.3) [SUSv3] exit(GLIBC_2.3) [SUSv3] 1559 fchdir(GLIBC_2.3) [SUSv3] fchmod(GLIBC_2.3) [SUSv3] 1560 fchown(GLIBC_2.3) [SUSv3] fcntl(GLIBC_2.3) [LSB] 1561 fdatasync(GLIBC_2.3) [SUSv3] flock(GLIBC_2.3) [LSB] 1562 fork(GLIBC_2.3) [SUSv3] fstatfs(GLIBC_2.3) [LSB] 1563 fstatvfs(GLIBC_2.3) [SUSv3] fsync(GLIBC_2.3) [SUSv3] 1564 ftime(GLIBC_2.3) [SUSv3] ftruncate(GLIBC_2.3) [SUSv3] 1565 getcontext(GLIBC_2.3.4) [SUSv3] getegid(GLIBC_2.3) [SUSv3] 1566 geteuid(GLIBC_2.3) [SUSv3] getgid(GLIBC_2.3) [SUSv3] 1567 getgroups(GLIBC_2.3) [SUSv3] getitimer(GLIBC_2.3) [SUSv3] 1568 getloadavg(GLIBC_2.3) [LSB] getpagesize(GLIBC_2.3) [SUSv2] 1569 getpgid(GLIBC_2.3) [SUSv3] getpgrp(GLIBC_2.3) [SUSv3] 1570 getpid(GLIBC_2.3) [SUSv3] getppid(GLIBC_2.3) [SUSv3] 1571 getpriority(GLIBC_2.3) [SUSv3] getrlimit(GLIBC_2.3) [SUSv3] 1572 getrusage(GLIBC_2.3) [SUSv3] getsid(GLIBC_2.3) [SUSv3] 1573 getuid(GLIBC_2.3) [SUSv3] getwd(GLIBC_2.3) [SUSv3] 1574 initgroups(GLIBC_2.3) [LSB] ioctl(GLIBC_2.3) [LSB] 1575 kill(GLIBC_2.3) [LSB] killpg(GLIBC_2.3) [SUSv3] 1576 lchown(GLIBC_2.3) [SUSv3] link(GLIBC_2.3) [LSB] 1577 lockf(GLIBC_2.3) [SUSv3] lseek(GLIBC_2.3) [SUSv3] 1578 mkdir(GLIBC_2.3) [SUSv3] mkfifo(GLIBC_2.3) [SUSv3] 1579 mlock(GLIBC_2.3) [SUSv3] mlockall(GLIBC_2.3) [SUSv3] 1580 mmap(GLIBC_2.3) [SUSv3] mprotect(GLIBC_2.3) [SUSv3] 1581 msync(GLIBC_2.3) [SUSv3] munlock(GLIBC_2.3) [SUSv3] 1582 munlockall(GLIBC_2.3) [SUSv3] munmap(GLIBC_2.3) [SUSv3] 1583 nanosleep(GLIBC_2.3) [SUSv3] nice(GLIBC_2.3) [SUSv3] 1584 open(GLIBC_2.3) [SUSv3] opendir(GLIBC_2.3) [SUSv3] 1585 pathconf(GLIBC_2.3) [SUSv3] pause(GLIBC_2.3) [SUSv3] 1586 pipe(GLIBC_2.3) [SUSv3] poll(GLIBC_2.3) [SUSv3] 1587 read(GLIBC_2.3) [SUSv3] readdir(GLIBC_2.3) [SUSv3] 1588 readdir_r(GLIBC_2.3) [SUSv3] readlink(GLIBC_2.3) [SUSv3] 1589 readv(GLIBC_2.3) [SUSv3] rename(GLIBC_2.3) [SUSv3] 1590 rmdir(GLIBC_2.3) [SUSv3] sbrk(GLIBC_2.3) [SUSv2] 1591 sched_get_priority_max(GLIBC_2.3) [SUSv3] 1592 sched_get_priority_min(GLIBC_2.3) [SUSv3] 1593 sched_getparam(GLIBC_2.3) [SUSv3] 1594 sched_getscheduler(GLIBC_2.3) [SUSv3] 1595 sched_rr_get_interval(GLIBC_2.3) [SUSv3] 1596 sched_setparam(GLIBC_2.3) [SUSv3] 1597 sched_setscheduler(GLIBC_2.3) [SUSv3] sched_yield(GLIBC_2.3) 1598 [SUSv3] select(GLIBC_2.3) [SUSv3] setcontext(GLIBC_2.3.4) 1599 [SUSv3] 1600 setegid(GLIBC_2.3) [SUSv3] seteuid(GLIBC_2.3) [SUSv3] 1601 setgid(GLIBC_2.3) [SUSv3] setitimer(GLIBC_2.3) [SUSv3] 1602 setpgid(GLIBC_2.3) [SUSv3] setpgrp(GLIBC_2.3) [SUSv3] 1603 setpriority(GLIBC_2.3) [SUSv3] setregid(GLIBC_2.3) [SUSv3] 1604 setreuid(GLIBC_2.3) [SUSv3] setrlimit(GLIBC_2.3) [SUSv3] 1605 setrlimit64(GLIBC_2.3) [LFS] setsid(GLIBC_2.3) [SUSv3] 1606 setuid(GLIBC_2.3) [SUSv3] sleep(GLIBC_2.3) [SUSv3] 1607 statfs(GLIBC_2.3) [LSB] statvfs(GLIBC_2.3) [SUSv3] 1608 stime(GLIBC_2.3) [LSB] symlink(GLIBC_2.3) [SUSv3] 1609 sync(GLIBC_2.3) [SUSv3] sysconf(GLIBC_2.3) [SUSv3] 1610 time(GLIBC_2.3) [SUSv3] times(GLIBC_2.3) [SUSv3] 1611 truncate(GLIBC_2.3) [SUSv3] ulimit(GLIBC_2.3) [SUSv3] 1612 umask(GLIBC_2.3) [SUSv3] uname(GLIBC_2.3) [SUSv3] 1613 unlink(GLIBC_2.3) [LSB] utime(GLIBC_2.3) [SUSv3] 1614 utimes(GLIBC_2.3) [SUSv3] vfork(GLIBC_2.3) [SUSv3] 1615 wait(GLIBC_2.3) [SUSv3] wait4(GLIBC_2.3) [LSB] 1616 waitpid(GLIBC_2.3) [LSB] write(GLIBC_2.3) [SUSv3] 1617 writev(GLIBC_2.3) [SUSv3] 1618 _________________________________________________________ 1619 1620 11.2.3. Standard I/O 1621 _________________________________________________________ 1622 1623 11.2.3.1. Interfaces for Standard I/O 1624 1625 An LSB conforming implementation shall provide the 1626 architecture specific functions for Standard I/O specified in 1627 Table 11-4, with the full mandatory functionality as described 1628 in the referenced underlying specification. 1629 1630 Table 11-4. libc - Standard I/O Function Interfaces 1631 _IO_feof(GLIBC_2.3) [LSB] _IO_getc(GLIBC_2.3) [LSB] 1632 _IO_putc(GLIBC_2.3) [LSB] _IO_puts(GLIBC_2.3) [LSB] 1633 asprintf(GLIBC_2.3) [LSB] clearerr(GLIBC_2.3) [SUSv3] 1634 ctermid(GLIBC_2.3) [SUSv3] fclose(GLIBC_2.3) [SUSv3] 1635 fdopen(GLIBC_2.3) [SUSv3] feof(GLIBC_2.3) [SUSv3] 1636 ferror(GLIBC_2.3) [SUSv3] fflush(GLIBC_2.3) [SUSv3] 1637 fflush_unlocked(GLIBC_2.3) [LSB] fgetc(GLIBC_2.3) [SUSv3] 1638 fgetpos(GLIBC_2.3) [SUSv3] fgets(GLIBC_2.3) [SUSv3] 1639 fgetwc_unlocked(GLIBC_2.3) [LSB] fileno(GLIBC_2.3) [SUSv3] 1640 flockfile(GLIBC_2.3) [SUSv3] fopen(GLIBC_2.3) [SUSv3] 1641 fprintf(GLIBC_2.3) [SUSv3] fputc(GLIBC_2.3) [SUSv3] 1642 fputs(GLIBC_2.3) [SUSv3] fread(GLIBC_2.3) [SUSv3] 1643 freopen(GLIBC_2.3) [SUSv3] fscanf(GLIBC_2.3) [LSB] 1644 fseek(GLIBC_2.3) [SUSv3] fseeko(GLIBC_2.3) [SUSv3] 1645 fsetpos(GLIBC_2.3) [SUSv3] ftell(GLIBC_2.3) [SUSv3] 1646 ftello(GLIBC_2.3) [SUSv3] fwrite(GLIBC_2.3) [SUSv3] 1647 getc(GLIBC_2.3) [SUSv3] getc_unlocked(GLIBC_2.3) [SUSv3] 1648 getchar(GLIBC_2.3) [SUSv3] getchar_unlocked(GLIBC_2.3) [SUSv3] 1649 getw(GLIBC_2.3) [SUSv2] pclose(GLIBC_2.3) [SUSv3] 1650 popen(GLIBC_2.3) [SUSv3] printf(GLIBC_2.3) [SUSv3] 1651 putc(GLIBC_2.3) [SUSv3] putc_unlocked(GLIBC_2.3) [SUSv3] 1652 putchar(GLIBC_2.3) [SUSv3] putchar_unlocked(GLIBC_2.3) [SUSv3] 1653 puts(GLIBC_2.3) [SUSv3] putw(GLIBC_2.3) [SUSv2] 1654 remove(GLIBC_2.3) [SUSv3] rewind(GLIBC_2.3) [SUSv3] 1655 rewinddir(GLIBC_2.3) [SUSv3] scanf(GLIBC_2.3) [LSB] 1656 seekdir(GLIBC_2.3) [SUSv3] setbuf(GLIBC_2.3) [SUSv3] 1657 setbuffer(GLIBC_2.3) [LSB] setvbuf(GLIBC_2.3) [SUSv3] 1658 snprintf(GLIBC_2.3) [SUSv3] sprintf(GLIBC_2.3) [SUSv3] 1659 sscanf(GLIBC_2.3) [LSB] telldir(GLIBC_2.3) [SUSv3] 1660 tempnam(GLIBC_2.3) [SUSv3] ungetc(GLIBC_2.3) [SUSv3] 1661 vasprintf(GLIBC_2.3) [LSB] vdprintf(GLIBC_2.3) [LSB] 1662 vfprintf(GLIBC_2.3) [SUSv3] vprintf(GLIBC_2.3) [SUSv3] 1663 vsnprintf(GLIBC_2.3) [SUSv3] vsprintf(GLIBC_2.3) [SUSv3] 1664 1665 An LSB conforming implementation shall provide the 1666 architecture specific data interfaces for Standard I/O 1667 specified in Table 11-5, with the full mandatory functionality 1668 as described in the referenced underlying specification. 1669 1670 Table 11-5. libc - Standard I/O Data Interfaces 1671 stderr(GLIBC_2.3) [SUSv3] stdin(GLIBC_2.3) [SUSv3] 1672 stdout(GLIBC_2.3) [SUSv3] 1673 _________________________________________________________ 1674 1675 11.2.4. Signal Handling 1676 _________________________________________________________ 1677 1678 11.2.4.1. Interfaces for Signal Handling 1679 1680 An LSB conforming implementation shall provide the 1681 architecture specific functions for Signal Handling specified 1682 in Table 11-6, with the full mandatory functionality as 1683 described in the referenced underlying specification. 1684 1685 Table 11-6. libc - Signal Handling Function Interfaces 1686 __libc_current_sigrtmax(GLIBC_2.3) [LSB] 1687 __libc_current_sigrtmin(GLIBC_2.3) [LSB] 1688 __sigsetjmp(GLIBC_2.3.4) [LSB] __sysv_signal(GLIBC_2.3) [LSB] 1689 bsd_signal(GLIBC_2.3) [SUSv3] psignal(GLIBC_2.3) [LSB] 1690 raise(GLIBC_2.3) [SUSv3] sigaction(GLIBC_2.3) [SUSv3] 1691 sigaddset(GLIBC_2.3) [SUSv3] sigaltstack(GLIBC_2.3) [SUSv3] 1692 sigandset(GLIBC_2.3) [LSB] sigdelset(GLIBC_2.3) [SUSv3] 1693 sigemptyset(GLIBC_2.3) [SUSv3] sigfillset(GLIBC_2.3) [SUSv3] 1694 sighold(GLIBC_2.3) [SUSv3] sigignore(GLIBC_2.3) [SUSv3] 1695 siginterrupt(GLIBC_2.3) [SUSv3] sigisemptyset(GLIBC_2.3) [LSB] 1696 sigismember(GLIBC_2.3) [SUSv3] siglongjmp(GLIBC_2.3.4) [SUSv3] 1697 signal(GLIBC_2.3) [SUSv3] sigorset(GLIBC_2.3) [LSB] 1698 sigpause(GLIBC_2.3) [SUSv3] sigpending(GLIBC_2.3) [SUSv3] 1699 sigprocmask(GLIBC_2.3) [SUSv3] sigqueue(GLIBC_2.3) [SUSv3] 1700 sigrelse(GLIBC_2.3) [SUSv3] sigreturn(GLIBC_2.3) [LSB] 1701 sigset(GLIBC_2.3) [SUSv3] sigsuspend(GLIBC_2.3) [SUSv3] 1702 sigtimedwait(GLIBC_2.3) [SUSv3] sigwait(GLIBC_2.3) [SUSv3] 1703 sigwaitinfo(GLIBC_2.3) [SUSv3] 1704 1705 An LSB conforming implementation shall provide the 1706 architecture specific data interfaces for Signal Handling 1707 specified in Table 11-7, with the full mandatory functionality 1708 as described in the referenced underlying specification. 1709 1710 Table 11-7. libc - Signal Handling Data Interfaces 1711 _sys_siglist(GLIBC_2.3.3) [LSB] 1712 _________________________________________________________ 1713 1714 11.2.5. Localization Functions 1715 _________________________________________________________ 1716 1717 11.2.5.1. Interfaces for Localization Functions 1718 1719 An LSB conforming implementation shall provide the 1720 architecture specific functions for Localization Functions 1721 specified in Table 11-8, with the full mandatory functionality 1722 as described in the referenced underlying specification. 1723 1724 Table 11-8. libc - Localization Functions Function Interfaces 1725 bind_textdomain_codeset(GLIBC_2.3) [LSB] 1726 bindtextdomain(GLIBC_2.3) [LSB] catclose(GLIBC_2.3) [SUSv3] 1727 catgets(GLIBC_2.3) [SUSv3] 1728 catopen(GLIBC_2.3) [SUSv3] dcgettext(GLIBC_2.3) [LSB] 1729 dcngettext(GLIBC_2.3) [LSB] dgettext(GLIBC_2.3) [LSB] 1730 dngettext(GLIBC_2.3) [LSB] gettext(GLIBC_2.3) [LSB] 1731 iconv(GLIBC_2.3) [SUSv3] iconv_close(GLIBC_2.3) [SUSv3] 1732 iconv_open(GLIBC_2.3) [SUSv3] localeconv(GLIBC_2.3) [SUSv3] 1733 ngettext(GLIBC_2.3) [LSB] nl_langinfo(GLIBC_2.3) [SUSv3] 1734 setlocale(GLIBC_2.3) [SUSv3] textdomain(GLIBC_2.3) [LSB] 1735 1736 An LSB conforming implementation shall provide the 1737 architecture specific data interfaces for Localization 1738 Functions specified in Table 11-9, with the full mandatory 1739 functionality as described in the referenced underlying 1740 specification. 1741 1742 Table 11-9. libc - Localization Functions Data Interfaces 1743 _nl_msg_cat_cntr(GLIBC_2.3) [LSB] 1744 _________________________________________________________ 1745 1746 11.2.6. Socket Interface 1747 _________________________________________________________ 1748 1749 11.2.6.1. Interfaces for Socket Interface 1750 1751 An LSB conforming implementation shall provide the 1752 architecture specific functions for Socket Interface specified 1753 in Table 11-10, with the full mandatory functionality as 1754 described in the referenced underlying specification. 1755 1756 Table 11-10. libc - Socket Interface Function Interfaces 1757 __h_errno_location(GLIBC_2.3) [LSB] accept(GLIBC_2.3) [SUSv3] 1758 bind(GLIBC_2.3) [SUSv3] bindresvport(GLIBC_2.3) [LSB] 1759 connect(GLIBC_2.3) [SUSv3] gethostid(GLIBC_2.3) [SUSv3] 1760 gethostname(GLIBC_2.3) [SUSv3] getpeername(GLIBC_2.3) [SUSv3] 1761 getsockname(GLIBC_2.3) [SUSv3] getsockopt(GLIBC_2.3) [LSB] 1762 if_freenameindex(GLIBC_2.3) [SUSv3] if_indextoname(GLIBC_2.3) 1763 [SUSv3] 1764 if_nameindex(GLIBC_2.3) [SUSv3] if_nametoindex(GLIBC_2.3) 1765 [SUSv3] listen(GLIBC_2.3) [SUSv3] recv(GLIBC_2.3) [SUSv3] 1766 recvfrom(GLIBC_2.3) [SUSv3] recvmsg(GLIBC_2.3) [SUSv3] 1767 send(GLIBC_2.3) [SUSv3] sendmsg(GLIBC_2.3) [SUSv3] 1768 sendto(GLIBC_2.3) [SUSv3] setsockopt(GLIBC_2.3) [LSB] 1769 shutdown(GLIBC_2.3) [SUSv3] sockatmark(GLIBC_2.3) [SUSv3] 1770 socket(GLIBC_2.3) [SUSv3] socketpair(GLIBC_2.3) [SUSv3] 1771 _________________________________________________________ 1772 1773 11.2.7. Wide Characters 1774 _________________________________________________________ 1775 1776 11.2.7.1. Interfaces for Wide Characters 1777 1778 An LSB conforming implementation shall provide the 1779 architecture specific functions for Wide Characters specified 1780 in Table 11-11, with the full mandatory functionality as 1781 described in the referenced underlying specification. 1782 1783 Table 11-11. libc - Wide Characters Function Interfaces 1784 __wcstod_internal(GLIBC_2.3) [LSB] 1785 __wcstof_internal(GLIBC_2.3) [LSB] 1786 __wcstol_internal(GLIBC_2.3) [LSB] 1787 __wcstold_internal(GLIBC_2.3) [LSB] 1788 __wcstoul_internal(GLIBC_2.3) [LSB] btowc(GLIBC_2.3) [SUSv3] 1789 fgetwc(GLIBC_2.3) [SUSv3] fgetws(GLIBC_2.3) [SUSv3] 1790 fputwc(GLIBC_2.3) [SUSv3] fputws(GLIBC_2.3) [SUSv3] 1791 fwide(GLIBC_2.3) [SUSv3] fwprintf(GLIBC_2.3) [SUSv3] 1792 fwscanf(GLIBC_2.3) [LSB] getwc(GLIBC_2.3) [SUSv3] 1793 getwchar(GLIBC_2.3) [SUSv3] mblen(GLIBC_2.3) [SUSv3] 1794 mbrlen(GLIBC_2.3) [SUSv3] mbrtowc(GLIBC_2.3) [SUSv3] 1795 mbsinit(GLIBC_2.3) [SUSv3] mbsnrtowcs(GLIBC_2.3) [LSB] 1796 mbsrtowcs(GLIBC_2.3) [SUSv3] mbstowcs(GLIBC_2.3) [SUSv3] 1797 mbtowc(GLIBC_2.3) [SUSv3] putwc(GLIBC_2.3) [SUSv3] 1798 putwchar(GLIBC_2.3) [SUSv3] swprintf(GLIBC_2.3) [SUSv3] 1799 swscanf(GLIBC_2.3) [LSB] towctrans(GLIBC_2.3) [SUSv3] 1800 towlower(GLIBC_2.3) [SUSv3] towupper(GLIBC_2.3) [SUSv3] 1801 ungetwc(GLIBC_2.3) [SUSv3] vfwprintf(GLIBC_2.3) [SUSv3] 1802 vfwscanf(GLIBC_2.3) [LSB] vswprintf(GLIBC_2.3) [SUSv3] 1803 vswscanf(GLIBC_2.3) [LSB] vwprintf(GLIBC_2.3) [SUSv3] 1804 vwscanf(GLIBC_2.3) [LSB] wcpcpy(GLIBC_2.3) [LSB] 1805 wcpncpy(GLIBC_2.3) [LSB] wcrtomb(GLIBC_2.3) [SUSv3] 1806 wcscasecmp(GLIBC_2.3) [LSB] wcscat(GLIBC_2.3) [SUSv3] 1807 wcschr(GLIBC_2.3) [SUSv3] wcscmp(GLIBC_2.3) [SUSv3] 1808 wcscoll(GLIBC_2.3) [SUSv3] wcscpy(GLIBC_2.3) [SUSv3] 1809 wcscspn(GLIBC_2.3) [SUSv3] wcsdup(GLIBC_2.3) [LSB] 1810 wcsftime(GLIBC_2.3) [SUSv3] wcslen(GLIBC_2.3) [SUSv3] 1811 wcsncasecmp(GLIBC_2.3) [LSB] wcsncat(GLIBC_2.3) [SUSv3] 1812 wcsncmp(GLIBC_2.3) [SUSv3] wcsncpy(GLIBC_2.3) [SUSv3] 1813 wcsnlen(GLIBC_2.3) [LSB] wcsnrtombs(GLIBC_2.3) [LSB] 1814 wcspbrk(GLIBC_2.3) [SUSv3] wcsrchr(GLIBC_2.3) [SUSv3] 1815 wcsrtombs(GLIBC_2.3) [SUSv3] wcsspn(GLIBC_2.3) [SUSv3] 1816 wcsstr(GLIBC_2.3) [SUSv3] wcstod(GLIBC_2.3) [SUSv3] 1817 wcstof(GLIBC_2.3) [SUSv3] wcstoimax(GLIBC_2.3) [SUSv3] 1818 wcstok(GLIBC_2.3) [SUSv3] wcstol(GLIBC_2.3) [SUSv3] 1819 wcstold(GLIBC_2.3) [SUSv3] wcstoll(GLIBC_2.3) [SUSv3] 1820 wcstombs(GLIBC_2.3) [SUSv3] wcstoq(GLIBC_2.3) [LSB] 1821 wcstoul(GLIBC_2.3) [SUSv3] wcstoull(GLIBC_2.3) [SUSv3] 1822 wcstoumax(GLIBC_2.3) [SUSv3] wcstouq(GLIBC_2.3) [LSB] 1823 wcswcs(GLIBC_2.3) [SUSv3] wcswidth(GLIBC_2.3) [SUSv3] 1824 wcsxfrm(GLIBC_2.3) [SUSv3] wctob(GLIBC_2.3) [SUSv3] 1825 wctomb(GLIBC_2.3) [SUSv3] wctrans(GLIBC_2.3) [SUSv3] 1826 wctype(GLIBC_2.3) [SUSv3] wcwidth(GLIBC_2.3) [SUSv3] 1827 wmemchr(GLIBC_2.3) [SUSv3] wmemcmp(GLIBC_2.3) [SUSv3] 1828 wmemcpy(GLIBC_2.3) [SUSv3] wmemmove(GLIBC_2.3) [SUSv3] 1829 wmemset(GLIBC_2.3) [SUSv3] wprintf(GLIBC_2.3) [SUSv3] 1830 wscanf(GLIBC_2.3) [LSB] 1831 _________________________________________________________ 1832 1833 11.2.8. String Functions 1834 _________________________________________________________ 1835 1836 11.2.8.1. Interfaces for String Functions 1837 1838 An LSB conforming implementation shall provide the 1839 architecture specific functions for String Functions specified 1840 in Table 11-12, with the full mandatory functionality as 1841 described in the referenced underlying specification. 1842 1843 Table 11-12. libc - String Functions Function Interfaces 1844 __mempcpy(GLIBC_2.3) [LSB] __rawmemchr(GLIBC_2.3) [LSB] 1845 __stpcpy(GLIBC_2.3) [LSB] __strdup(GLIBC_2.3) [LSB] 1846 __strtod_internal(GLIBC_2.3) [LSB] 1847 __strtof_internal(GLIBC_2.3) [LSB] __strtok_r(GLIBC_2.3) [LSB] 1848 __strtol_internal(GLIBC_2.3) [LSB] 1849 __strtold_internal(GLIBC_2.3) [LSB] 1850 __strtoll_internal(GLIBC_2.3) [LSB] 1851 __strtoul_internal(GLIBC_2.3) [LSB] 1852 __strtoull_internal(GLIBC_2.3) [LSB] 1853 bcmp(GLIBC_2.3) [SUSv3] bcopy(GLIBC_2.3) [SUSv3] 1854 bzero(GLIBC_2.3) [SUSv3] ffs(GLIBC_2.3) [SUSv3] 1855 index(GLIBC_2.3) [SUSv3] memccpy(GLIBC_2.3) [SUSv3] 1856 memchr(GLIBC_2.3) [SUSv3] memcmp(GLIBC_2.3) [SUSv3] 1857 memcpy(GLIBC_2.3) [SUSv3] memmove(GLIBC_2.3) [SUSv3] 1858 memrchr(GLIBC_2.3) [LSB] memset(GLIBC_2.3) [SUSv3] 1859 rindex(GLIBC_2.3) [SUSv3] stpcpy(GLIBC_2.3) [LSB] 1860 stpncpy(GLIBC_2.3) [LSB] strcasecmp(GLIBC_2.3) [SUSv3] 1861 strcasestr(GLIBC_2.3) [LSB] strcat(GLIBC_2.3) [SUSv3] 1862 strchr(GLIBC_2.3) [SUSv3] strcmp(GLIBC_2.3) [SUSv3] 1863 strcoll(GLIBC_2.3) [SUSv3] strcpy(GLIBC_2.3) [SUSv3] 1864 strcspn(GLIBC_2.3) [SUSv3] strdup(GLIBC_2.3) [SUSv3] 1865 strerror(GLIBC_2.3) [SUSv3] strerror_r(GLIBC_2.3) [LSB] 1866 strfmon(GLIBC_2.3) [SUSv3] strftime(GLIBC_2.3) [SUSv3] 1867 strlen(GLIBC_2.3) [SUSv3] strncasecmp(GLIBC_2.3) [SUSv3] 1868 strncat(GLIBC_2.3) [SUSv3] strncmp(GLIBC_2.3) [SUSv3] 1869 strncpy(GLIBC_2.3) [SUSv3] strndup(GLIBC_2.3) [LSB] 1870 strnlen(GLIBC_2.3) [LSB] strpbrk(GLIBC_2.3) [SUSv3] 1871 strptime(GLIBC_2.3) [LSB] strrchr(GLIBC_2.3) [SUSv3] 1872 strsep(GLIBC_2.3) [LSB] strsignal(GLIBC_2.3) [LSB] 1873 strspn(GLIBC_2.3) [SUSv3] strstr(GLIBC_2.3) [SUSv3] 1874 strtof(GLIBC_2.3) [SUSv3] strtoimax(GLIBC_2.3) [SUSv3] 1875 strtok(GLIBC_2.3) [SUSv3] strtok_r(GLIBC_2.3) [SUSv3] 1876 strtold(GLIBC_2.3) [SUSv3] strtoll(GLIBC_2.3) [SUSv3] 1877 strtoq(GLIBC_2.3) [LSB] strtoull(GLIBC_2.3) [SUSv3] 1878 strtoumax(GLIBC_2.3) [SUSv3] strtouq(GLIBC_2.3) [LSB] 1879 strxfrm(GLIBC_2.3) [SUSv3] swab(GLIBC_2.3) [SUSv3] 1880 _________________________________________________________ 1881 1882 11.2.9. IPC Functions 1883 _________________________________________________________ 1884 1885 11.2.9.1. Interfaces for IPC Functions 1886 1887 An LSB conforming implementation shall provide the 1888 architecture specific functions for IPC Functions specified in 1889 Table 11-13, with the full mandatory functionality as 1890 described in the referenced underlying specification. 1891 1892 Table 11-13. libc - IPC Functions Function Interfaces 1893 ftok(GLIBC_2.3) [SUSv3] msgctl(GLIBC_2.3) [SUSv3] 1894 msgget(GLIBC_2.3) [SUSv3] msgrcv(GLIBC_2.3) [SUSv3] 1895 msgsnd(GLIBC_2.3) [SUSv3] semctl(GLIBC_2.3) [SUSv3] 1896 semget(GLIBC_2.3) [SUSv3] semop(GLIBC_2.3) [SUSv3] 1897 shmat(GLIBC_2.3) [SUSv3] shmctl(GLIBC_2.3) [SUSv3] 1898 shmdt(GLIBC_2.3) [SUSv3] shmget(GLIBC_2.3) [SUSv3] 1899 _________________________________________________________ 1900 1901 11.2.10. Regular Expressions 1902 _________________________________________________________ 1903 1904 11.2.10.1. Interfaces for Regular Expressions 1905 1906 An LSB conforming implementation shall provide the 1907 architecture specific functions for Regular Expressions 1908 specified in Table 11-14, with the full mandatory 1909 functionality as described in the referenced underlying 1910 specification. 1911 1912 Table 11-14. libc - Regular Expressions Function Interfaces 1913 regcomp(GLIBC_2.3) [SUSv3] regerror(GLIBC_2.3) [SUSv3] 1914 regexec(GLIBC_2.3.4) [LSB] regfree(GLIBC_2.3) [SUSv3] 1915 _________________________________________________________ 1916 1917 11.2.11. Character Type Functions 1918 _________________________________________________________ 1919 1920 11.2.11.1. Interfaces for Character Type Functions 1921 1922 An LSB conforming implementation shall provide the 1923 architecture specific functions for Character Type Functions 1924 specified in Table 11-15, with the full mandatory 1925 functionality as described in the referenced underlying 1926 specification. 1927 1928 Table 11-15. libc - Character Type Functions Function 1929 Interfaces 1930 __ctype_get_mb_cur_max(GLIBC_2.3) [LSB] _tolower(GLIBC_2.3) 1931 [SUSv3] _toupper(GLIBC_2.3) [SUSv3] isalnum(GLIBC_2.3) [SUSv3] 1932 isalpha(GLIBC_2.3) [SUSv3] isascii(GLIBC_2.3) [SUSv3] 1933 iscntrl(GLIBC_2.3) [SUSv3] isdigit(GLIBC_2.3) [SUSv3] 1934 isgraph(GLIBC_2.3) [SUSv3] islower(GLIBC_2.3) [SUSv3] 1935 isprint(GLIBC_2.3) [SUSv3] ispunct(GLIBC_2.3) [SUSv3] 1936 isspace(GLIBC_2.3) [SUSv3] isupper(GLIBC_2.3) [SUSv3] 1937 iswalnum(GLIBC_2.3) [SUSv3] iswalpha(GLIBC_2.3) [SUSv3] 1938 iswblank(GLIBC_2.3) [SUSv3] iswcntrl(GLIBC_2.3) [SUSv3] 1939 iswctype(GLIBC_2.3) [SUSv3] iswdigit(GLIBC_2.3) [SUSv3] 1940 iswgraph(GLIBC_2.3) [SUSv3] iswlower(GLIBC_2.3) [SUSv3] 1941 iswprint(GLIBC_2.3) [SUSv3] iswpunct(GLIBC_2.3) [SUSv3] 1942 iswspace(GLIBC_2.3) [SUSv3] iswupper(GLIBC_2.3) [SUSv3] 1943 iswxdigit(GLIBC_2.3) [SUSv3] isxdigit(GLIBC_2.3) [SUSv3] 1944 toascii(GLIBC_2.3) [SUSv3] tolower(GLIBC_2.3) [SUSv3] 1945 toupper(GLIBC_2.3) [SUSv3] 1946 _________________________________________________________ 1947 1948 11.2.12. Time Manipulation 1949 _________________________________________________________ 1950 1951 11.2.12.1. Interfaces for Time Manipulation 1952 1953 An LSB conforming implementation shall provide the 1954 architecture specific functions for Time Manipulation 1955 specified in Table 11-16, with the full mandatory 1956 functionality as described in the referenced underlying 1957 specification. 1958 1959 Table 11-16. libc - Time Manipulation Function Interfaces 1960 adjtime(GLIBC_2.3) [LSB] asctime(GLIBC_2.3) [SUSv3] 1961 asctime_r(GLIBC_2.3) [SUSv3] ctime(GLIBC_2.3) [SUSv3] 1962 ctime_r(GLIBC_2.3) [SUSv3] difftime(GLIBC_2.3) [SUSv3] 1963 gmtime(GLIBC_2.3) [SUSv3] gmtime_r(GLIBC_2.3) [SUSv3] 1964 localtime(GLIBC_2.3) [SUSv3] localtime_r(GLIBC_2.3) [SUSv3] 1965 mktime(GLIBC_2.3) [SUSv3] tzset(GLIBC_2.3) [SUSv3] 1966 ualarm(GLIBC_2.3) [SUSv3] 1967 1968 An LSB conforming implementation shall provide the 1969 architecture specific data interfaces for Time Manipulation 1970 specified in Table 11-17, with the full mandatory 1971 functionality as described in the referenced underlying 1972 specification. 1973 1974 Table 11-17. libc - Time Manipulation Data Interfaces 1975 __daylight(GLIBC_2.3) [LSB] __timezone(GLIBC_2.3) [LSB] 1976 __tzname(GLIBC_2.3) [LSB] daylight(GLIBC_2.3) [SUSv3] 1977 timezone(GLIBC_2.3) [SUSv3] tzname(GLIBC_2.3) [SUSv3] 1978 _________________________________________________________ 1979 1980 11.2.13. Terminal Interface Functions 1981 _________________________________________________________ 1982 1983 11.2.13.1. Interfaces for Terminal Interface Functions 1984 1985 An LSB conforming implementation shall provide the 1986 architecture specific functions for Terminal Interface 1987 Functions specified in Table 11-18, with the full mandatory 1988 functionality as described in the referenced underlying 1989 specification. 1990 1991 Table 11-18. libc - Terminal Interface Functions Function 1992 Interfaces 1993 cfgetispeed(GLIBC_2.3) [SUSv3] cfgetospeed(GLIBC_2.3) [SUSv3] 1994 cfmakeraw(GLIBC_2.3) [LSB] cfsetispeed(GLIBC_2.3) [SUSv3] 1995 cfsetospeed(GLIBC_2.3) [SUSv3] cfsetspeed(GLIBC_2.3) [LSB] 1996 tcdrain(GLIBC_2.3) [SUSv3] tcflow(GLIBC_2.3) [SUSv3] 1997 tcflush(GLIBC_2.3) [SUSv3] tcgetattr(GLIBC_2.3) [SUSv3] 1998 tcgetpgrp(GLIBC_2.3) [SUSv3] tcgetsid(GLIBC_2.3) [SUSv3] 1999 tcsendbreak(GLIBC_2.3) [SUSv3] tcsetattr(GLIBC_2.3) [SUSv3] 2000 tcsetpgrp(GLIBC_2.3) [SUSv3] 2001 _________________________________________________________ 2002 2003 11.2.14. System Database Interface 2004 _________________________________________________________ 2005 2006 11.2.14.1. Interfaces for System Database Interface 2007 2008 An LSB conforming implementation shall provide the 2009 architecture specific functions for System Database Interface 2010 specified in Table 11-19, with the full mandatory 2011 functionality as described in the referenced underlying 2012 specification. 2013 2014 Table 11-19. libc - System Database Interface Function 2015 Interfaces 2016 endgrent(GLIBC_2.3) [SUSv3] endprotoent(GLIBC_2.3) [SUSv3] 2017 endpwent(GLIBC_2.3) [SUSv3] endservent(GLIBC_2.3) [SUSv3] 2018 endutent(GLIBC_2.3) [LSB] endutxent(GLIBC_2.3) [SUSv3] 2019 getgrent(GLIBC_2.3) [SUSv3] getgrgid(GLIBC_2.3) [SUSv3] 2020 getgrgid_r(GLIBC_2.3) [SUSv3] getgrnam(GLIBC_2.3) [SUSv3] 2021 getgrnam_r(GLIBC_2.3) [SUSv3] getgrouplist(GLIBC_2.3) [LSB] 2022 gethostbyaddr(GLIBC_2.3) [SUSv3] gethostbyname(GLIBC_2.3) 2023 [SUSv3] getprotobyname(GLIBC_2.3) [SUSv3] 2024 getprotobynumber(GLIBC_2.3) [SUSv3] 2025 getprotoent(GLIBC_2.3) [SUSv3] getpwent(GLIBC_2.3) [SUSv3] 2026 getpwnam(GLIBC_2.3) [SUSv3] getpwnam_r(GLIBC_2.3) [SUSv3] 2027 getpwuid(GLIBC_2.3) [SUSv3] getpwuid_r(GLIBC_2.3) [SUSv3] 2028 getservbyname(GLIBC_2.3) [SUSv3] getservbyport(GLIBC_2.3) 2029 [SUSv3] 2030 getservent(GLIBC_2.3) [SUSv3] getutent(GLIBC_2.3) [LSB] 2031 getutent_r(GLIBC_2.3) [LSB] getutxent(GLIBC_2.3) [SUSv3] 2032 getutxid(GLIBC_2.3) [SUSv3] getutxline(GLIBC_2.3) [SUSv3] 2033 pututxline(GLIBC_2.3) [SUSv3] setgrent(GLIBC_2.3) [SUSv3] 2034 setgroups(GLIBC_2.3) [LSB] setprotoent(GLIBC_2.3) [SUSv3] 2035 setpwent(GLIBC_2.3) [SUSv3] setservent(GLIBC_2.3) [SUSv3] 2036 setutent(GLIBC_2.3) [LSB] setutxent(GLIBC_2.3) [SUSv3] 2037 utmpname(GLIBC_2.3) [LSB] 2038 _________________________________________________________ 2039 2040 11.2.15. Language Support 2041 _________________________________________________________ 2042 2043 11.2.15.1. Interfaces for Language Support 2044 2045 An LSB conforming implementation shall provide the 2046 architecture specific functions for Language Support specified 2047 in Table 11-20, with the full mandatory functionality as 2048 described in the referenced underlying specification. 2049 2050 Table 11-20. libc - Language Support Function Interfaces 2051 __libc_start_main(GLIBC_2.3) [LSB] 2052 _________________________________________________________ 2053 2054 11.2.16. Large File Support 2055 _________________________________________________________ 2056 2057 11.2.16.1. Interfaces for Large File Support 2058 2059 An LSB conforming implementation shall provide the 2060 architecture specific functions for Large File Support 2061 specified in Table 11-21, with the full mandatory 2062 functionality as described in the referenced underlying 2063 specification. 2064 2065 Table 11-21. libc - Large File Support Function Interfaces 2066 __fxstat64(GLIBC_2.3) [LSB] __lxstat64(GLIBC_2.3) [LSB] 2067 __xstat64(GLIBC_2.3) [LSB] creat64(GLIBC_2.3) [LFS] 2068 fgetpos64(GLIBC_2.3) [LFS] fopen64(GLIBC_2.3) [LFS] 2069 freopen64(GLIBC_2.3) [LFS] fseeko64(GLIBC_2.3) [LFS] 2070 fsetpos64(GLIBC_2.3) [LFS] fstatfs64(GLIBC_2.3) [LSB] 2071 fstatvfs64(GLIBC_2.3) [LFS] ftello64(GLIBC_2.3) [LFS] 2072 ftruncate64(GLIBC_2.3) [LFS] ftw64(GLIBC_2.3) [LFS] 2073 getrlimit64(GLIBC_2.3) [LFS] lockf64(GLIBC_2.3) [LFS] 2074 mkstemp64(GLIBC_2.3) [LFS] mmap64(GLIBC_2.3) [LFS] 2075 nftw64(GLIBC_2.3.3) [LFS] readdir64(GLIBC_2.3) [LFS] 2076 statfs64(GLIBC_2.3) [LSB] statvfs64(GLIBC_2.3) [LFS] 2077 tmpfile64(GLIBC_2.3) [LFS] truncate64(GLIBC_2.3) [LFS] 2078 _________________________________________________________ 2079 2080 11.2.17. Standard Library 2081 _________________________________________________________ 2082 2083 11.2.17.1. Interfaces for Standard Library 2084 2085 An LSB conforming implementation shall provide the 2086 architecture specific functions for Standard Library specified 2087 in Table 11-22, with the full mandatory functionality as 2088 described in the referenced underlying specification. 2089 2090 Table 11-22. libc - Standard Library Function Interfaces 2091 _Exit(GLIBC_2.3) [SUSv3] __assert_fail(GLIBC_2.3) [LSB] 2092 __cxa_atexit(GLIBC_2.3) [LSB] __errno_location(GLIBC_2.3) 2093 [LSB] 2094 __fpending(GLIBC_2.3) [LSB] __getpagesize(GLIBC_2.3) [LSB] 2095 __isinf(GLIBC_2.3) [LSB] __isinff(GLIBC_2.3) [LSB] 2096 __isinfl(GLIBC_2.3) [LSB] __isnan(GLIBC_2.3) [LSB] 2097 __isnanf(GLIBC_2.3) [LSB] __isnanl(GLIBC_2.3) [LSB] 2098 __sysconf(GLIBC_2.3) [LSB] _exit(GLIBC_2.3) [SUSv3] 2099 _longjmp(GLIBC_2.3.4) [SUSv3] _setjmp(GLIBC_2.3.4) [SUSv3] 2100 a64l(GLIBC_2.3) [SUSv3] abort(GLIBC_2.3) [SUSv3] 2101 abs(GLIBC_2.3) [SUSv3] atof(GLIBC_2.3) [SUSv3] 2102 atoi(GLIBC_2.3) [SUSv3] atol(GLIBC_2.3) [SUSv3] 2103 atoll(GLIBC_2.3) [SUSv3] basename(GLIBC_2.3) [SUSv3] 2104 bsearch(GLIBC_2.3) [SUSv3] calloc(GLIBC_2.3) [SUSv3] 2105 closelog(GLIBC_2.3) [SUSv3] confstr(GLIBC_2.3) [SUSv3] 2106 cuserid(GLIBC_2.3) [SUSv2] daemon(GLIBC_2.3) [LSB] 2107 dirname(GLIBC_2.3) [SUSv3] div(GLIBC_2.3) [SUSv3] 2108 drand48(GLIBC_2.3) [SUSv3] ecvt(GLIBC_2.3) [SUSv3] 2109 erand48(GLIBC_2.3) [SUSv3] err(GLIBC_2.3) [LSB] 2110 error(GLIBC_2.3) [LSB] errx(GLIBC_2.3) [LSB] fcvt(GLIBC_2.3) 2111 [SUSv3] fmtmsg(GLIBC_2.3) [SUSv3] 2112 fnmatch(GLIBC_2.3) [SUSv3] fpathconf(GLIBC_2.3) [SUSv3] 2113 free(GLIBC_2.3) [SUSv3] freeaddrinfo(GLIBC_2.3) [SUSv3] 2114 ftrylockfile(GLIBC_2.3) [SUSv3] ftw(GLIBC_2.3) [SUSv3] 2115 funlockfile(GLIBC_2.3) [SUSv3] gai_strerror(GLIBC_2.3) [SUSv3] 2116 gcvt(GLIBC_2.3) [SUSv3] getaddrinfo(GLIBC_2.3) [SUSv3] 2117 getcwd(GLIBC_2.3) [SUSv3] getdate(GLIBC_2.3) [SUSv3] 2118 getenv(GLIBC_2.3) [SUSv3] getlogin(GLIBC_2.3) [SUSv3] 2119 getnameinfo(GLIBC_2.3) [SUSv3] getopt(GLIBC_2.3) [LSB] 2120 getopt_long(GLIBC_2.3) [LSB] getopt_long_only(GLIBC_2.3) [LSB] 2121 getsubopt(GLIBC_2.3) [SUSv3] gettimeofday(GLIBC_2.3) [SUSv3] 2122 glob(GLIBC_2.3) [SUSv3] glob64(GLIBC_2.3) [LSB] 2123 globfree(GLIBC_2.3) [SUSv3] globfree64(GLIBC_2.3) [LSB] 2124 grantpt(GLIBC_2.3) [SUSv3] hcreate(GLIBC_2.3) [SUSv3] 2125 hdestroy(GLIBC_2.3) [SUSv3] hsearch(GLIBC_2.3) [SUSv3] 2126 htonl(GLIBC_2.3) [SUSv3] htons(GLIBC_2.3) [SUSv3] 2127 imaxabs(GLIBC_2.3) [SUSv3] imaxdiv(GLIBC_2.3) [SUSv3] 2128 inet_addr(GLIBC_2.3) [SUSv3] inet_ntoa(GLIBC_2.3) [SUSv3] 2129 inet_ntop(GLIBC_2.3) [SUSv3] inet_pton(GLIBC_2.3) [SUSv3] 2130 initstate(GLIBC_2.3) [SUSv3] insque(GLIBC_2.3) [SUSv3] 2131 isatty(GLIBC_2.3) [SUSv3] isblank(GLIBC_2.3) [SUSv3] 2132 jrand48(GLIBC_2.3) [SUSv3] l64a(GLIBC_2.3) [SUSv3] 2133 labs(GLIBC_2.3) [SUSv3] lcong48(GLIBC_2.3) [SUSv3] 2134 ldiv(GLIBC_2.3) [SUSv3] lfind(GLIBC_2.3) [SUSv3] 2135 llabs(GLIBC_2.3) [SUSv3] lldiv(GLIBC_2.3) [SUSv3] 2136 longjmp(GLIBC_2.3.4) [SUSv3] lrand48(GLIBC_2.3) [SUSv3] 2137 lsearch(GLIBC_2.3) [SUSv3] makecontext(GLIBC_2.3) [SUSv3] 2138 malloc(GLIBC_2.3) [SUSv3] memmem(GLIBC_2.3) [LSB] 2139 mkstemp(GLIBC_2.3) [SUSv3] mktemp(GLIBC_2.3) [SUSv3] 2140 mrand48(GLIBC_2.3) [SUSv3] nftw(GLIBC_2.3.3) [SUSv3] 2141 nrand48(GLIBC_2.3) [SUSv3] ntohl(GLIBC_2.3) [SUSv3] 2142 ntohs(GLIBC_2.3) [SUSv3] openlog(GLIBC_2.3) [SUSv3] 2143 perror(GLIBC_2.3) [SUSv3] posix_memalign(GLIBC_2.3) [SUSv3] 2144 posix_openpt(GLIBC_2.3) [SUSv3] ptsname(GLIBC_2.3) [SUSv3] 2145 putenv(GLIBC_2.3) [SUSv3] qsort(GLIBC_2.3) [SUSv3] 2146 rand(GLIBC_2.3) [SUSv3] rand_r(GLIBC_2.3) [SUSv3] 2147 random(GLIBC_2.3) [SUSv3] realloc(GLIBC_2.3) [SUSv3] 2148 realpath(GLIBC_2.3) [SUSv3] remque(GLIBC_2.3) [SUSv3] 2149 seed48(GLIBC_2.3) [SUSv3] setenv(GLIBC_2.3) [SUSv3] 2150 sethostname(GLIBC_2.3) [LSB] setlogmask(GLIBC_2.3) [SUSv3] 2151 setstate(GLIBC_2.3) [SUSv3] srand(GLIBC_2.3) [SUSv3] 2152 srand48(GLIBC_2.3) [SUSv3] srandom(GLIBC_2.3) [SUSv3] 2153 strtod(GLIBC_2.3) [SUSv3] strtol(GLIBC_2.3) [SUSv3] 2154 strtoul(GLIBC_2.3) [SUSv3] swapcontext(GLIBC_2.3.4) [SUSv3] 2155 syslog(GLIBC_2.3) [SUSv3] system(GLIBC_2.3) [LSB] 2156 tdelete(GLIBC_2.3) [SUSv3] tfind(GLIBC_2.3) [SUSv3] 2157 tmpfile(GLIBC_2.3) [SUSv3] tmpnam(GLIBC_2.3) [SUSv3] 2158 tsearch(GLIBC_2.3) [SUSv3] ttyname(GLIBC_2.3) [SUSv3] 2159 ttyname_r(GLIBC_2.3) [SUSv3] twalk(GLIBC_2.3) [SUSv3] 2160 unlockpt(GLIBC_2.3) [SUSv3] unsetenv(GLIBC_2.3) [SUSv3] 2161 usleep(GLIBC_2.3) [SUSv3] verrx(GLIBC_2.3) [LSB] 2162 vfscanf(GLIBC_2.3) [LSB] vscanf(GLIBC_2.3) [LSB] 2163 vsscanf(GLIBC_2.3) [LSB] vsyslog(GLIBC_2.3) [LSB] 2164 warn(GLIBC_2.3) [LSB] warnx(GLIBC_2.3) [LSB] 2165 wordexp(GLIBC_2.3) [SUSv3] wordfree(GLIBC_2.3) [SUSv3] 2166 2167 An LSB conforming implementation shall provide the 2168 architecture specific data interfaces for Standard Library 2169 specified in Table 11-23, with the full mandatory 2170 functionality as described in the referenced underlying 2171 specification. 2172 2173 Table 11-23. libc - Standard Library Data Interfaces 2174 __environ(GLIBC_2.3) [LSB] _environ(GLIBC_2.3) [LSB] 2175 _sys_errlist(GLIBC_2.3) [LSB] environ(GLIBC_2.3) [SUSv3] 2176 getdate_err(GLIBC_2.3) [SUSv3] optarg(GLIBC_2.3) [SUSv3] 2177 opterr(GLIBC_2.3) [SUSv3] optind(GLIBC_2.3) [SUSv3] 2178 optopt(GLIBC_2.3) [SUSv3] 2179 _________________________________________________________ 2180 2181 11.3. Data Definitions for libc 2182 2183 This section defines global identifiers and their values that 2184 are associated with interfaces contained in libc. These 2185 definitions are organized into groups that correspond to 2186 system headers. This convention is used as a convenience for 2187 the reader, and does not imply the existence of these headers, 2188 or their content. Where an interface is defined as requiring a 2189 particular system header file all of the data definitions for 2190 that system header file presented here shall be in effect. 2191 2192 This section gives data definitions to promote binary 2193 application portability, not to repeat source interface 2194 definitions available elsewhere. System providers and 2195 application developers should use this ABI to supplement - not 2196 to replace - source interface definition specifications. 2197 2198 This specification uses the ISO C (1999) C Language as the 2199 reference programming language, and data definitions are 2200 specified in ISO C format. The C language is used here as a 2201 convenient notation. Using a C language description of these 2202 data objects does not preclude their use by other programming 2203 languages. 2204 _________________________________________________________ 2205 2206 11.3.1. ctype.h 2207 2208 /* 2209 * This header is architecture neutral 2210 * Please refer to the generic specification for details 2211 */ 2212 _________________________________________________________ 2213 2214 11.3.2. dirent.h 2215 2216 /* 2217 * This header is architecture neutral 2218 * Please refer to the generic specification for details 2219 */ 2220 _________________________________________________________ 2221 2222 11.3.3. errno.h 2223 2224 #define EDEADLOCK 58 2225 _________________________________________________________ 2226 2227 11.3.4. fcntl.h 2228 2229 #define F_GETLK64 12 2230 #define F_SETLK64 13 2231 #define F_SETLKW64 14 2232 _________________________________________________________ 2233 2234 11.3.5. fnmatch.h 2235 2236 /* 2237 * This header is architecture neutral 2238 * Please refer to the generic specification for details 2239 */ 2240 _________________________________________________________ 2241 2242 11.3.6. ftw.h 2243 2244 /* 2245 * This header is architecture neutral 2246 * Please refer to the generic specification for details 2247 */ 2248 _________________________________________________________ 2249 2250 11.3.7. getopt.h 2251 2252 /* 2253 * This header is architecture neutral 2254 * Please refer to the generic specification for details 2255 */ 2256 _________________________________________________________ 2257 2258 11.3.8. glob.h 2259 2260 /* 2261 * This header is architecture neutral 2262 * Please refer to the generic specification for details 2263 */ 2264 _________________________________________________________ 2265 2266 11.3.9. iconv.h 2267 2268 /* 2269 * This header is architecture neutral 2270 * Please refer to the generic specification for details 2271 */ 2272 _________________________________________________________ 2273 2274 11.3.10. inttypes.h 2275 2276 typedef long int intmax_t; 2277 typedef unsigned long int uintmax_t; 2278 typedef unsigned long int uintptr_t; 2279 typedef unsigned long int uint64_t; 2280 _________________________________________________________ 2281 2282 11.3.11. langinfo.h 2283 2284 /* 2285 * This header is architecture neutral 2286 * Please refer to the generic specification for details 2287 */ 2288 _________________________________________________________ 2289 2290 11.3.12. limits.h 2291 2292 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 2293 #define LONG_MAX 9223372036854775807L 2294 2295 #define CHAR_MIN 0 2296 #define CHAR_MAX 255 2297 2298 #define PTHREAD_STACK_MIN 16384 2299 _________________________________________________________ 2300 2301 11.3.13. locale.h 2302 2303 /* 2304 * This header is architecture neutral 2305 * Please refer to the generic specification for details 2306 */ 2307 _________________________________________________________ 2308 2309 11.3.14. net/if.h 2310 2311 /* 2312 * This header is architecture neutral 2313 * Please refer to the generic specification for details 2314 */ 2315 _________________________________________________________ 2316 2317 11.3.15. netdb.h 2318 2319 /* 2320 * This header is architecture neutral 2321 * Please refer to the generic specification for details 2322 */ 2323 _________________________________________________________ 2324 2325 11.3.16. netinet/in.h 2326 2327 /* 2328 * This header is architecture neutral 2329 * Please refer to the generic specification for details 2330 */ 2331 _________________________________________________________ 2332 2333 11.3.17. netinet/ip.h 2334 2335 /* 2336 * This header is architecture neutral 2337 * Please refer to the generic specification for details 2338 */ 2339 _________________________________________________________ 2340 2341 11.3.18. netinet/tcp.h 2342 2343 /* 2344 * This header is architecture neutral 2345 * Please refer to the generic specification for details 2346 */ 2347 _________________________________________________________ 2348 2349 11.3.19. netinet/udp.h 2350 2351 /* 2352 * This header is architecture neutral 2353 * Please refer to the generic specification for details 2354 */ 2355 _________________________________________________________ 2356 2357 11.3.20. nl_types.h 2358 2359 /* 2360 * This header is architecture neutral 2361 * Please refer to the generic specification for details 2362 */ 2363 _________________________________________________________ 2364 2365 11.3.21. pwd.h 2366 2367 /* 2368 * This header is architecture neutral 2369 * Please refer to the generic specification for details 2370 */ 2371 _________________________________________________________ 2372 2373 11.3.22. regex.h 2374 2375 /* 2376 * This header is architecture neutral 2377 * Please refer to the generic specification for details 2378 */ 2379 _________________________________________________________ 2380 2381 11.3.23. rpc/auth.h 2382 2383 /* 2384 * This header is architecture neutral 2385 * Please refer to the generic specification for details 2386 */ 2387 _________________________________________________________ 2388 2389 11.3.24. rpc/clnt.h 2390 2391 /* 2392 * This header is architecture neutral 2393 * Please refer to the generic specification for details 2394 */ 2395 _________________________________________________________ 2396 2397 11.3.25. rpc/rpc_msg.h 2398 2399 /* 2400 * This header is architecture neutral 2401 * Please refer to the generic specification for details 2402 */ 2403 _________________________________________________________ 2404 2405 11.3.26. rpc/svc.h 2406 2407 /* 2408 * This header is architecture neutral 2409 * Please refer to the generic specification for details 2410 */ 2411 _________________________________________________________ 2412 2413 11.3.27. rpc/types.h 2414 2415 /* 2416 * This header is architecture neutral 2417 * Please refer to the generic specification for details 2418 */ 2419 _________________________________________________________ 2420 2421 11.3.28. rpc/xdr.h 2422 2423 /* 2424 * This header is architecture neutral 2425 * Please refer to the generic specification for details 2426 */ 2427 _________________________________________________________ 2428 2429 11.3.29. sched.h 2430 2431 /* 2432 * This header is architecture neutral 2433 * Please refer to the generic specification for details 2434 */ 2435 _________________________________________________________ 2436 2437 11.3.30. search.h 2438 2439 /* 2440 * This header is architecture neutral 2441 * Please refer to the generic specification for details 2442 */ 2443 _________________________________________________________ 2444 2445 11.3.31. setjmp.h 2446 2447 typedef long int __jmp_buf[64] __attribute__ ((aligned(16))); 2448 _________________________________________________________ 2449 2450 11.3.32. signal.h 2451 2452 struct pt_regs { 2453 unsigned long int gpr[32]; 2454 unsigned long int nip; 2455 unsigned long int msr; 2456 unsigned long int orig_gpr3; 2457 unsigned long int ctr; 2458 unsigned long int link; 2459 unsigned long int xer; 2460 unsigned long int ccr; 2461 unsigned long int softe; 2462 unsigned long int trap; 2463 unsigned long int dar; 2464 unsigned long int dsisr; 2465 unsigned long int result; 2466 }; 2467 2468 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-4) 2469 2470 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-4) 2471 2472 struct sigaction { 2473 union { 2474 sighandler_t _sa_handler; 2475 void (*_sa_sigaction) (int, siginfo_t *, void *); 2476 } __sigaction_handler; 2477 sigset_t sa_mask; 2478 int sa_flags; 2479 void (*sa_restorer) (void); 2480 }; 2481 2482 #define MINSIGSTKSZ 2048 2483 #define SIGSTKSZ 8192 2484 2485 struct sigcontext { 2486 unsigned long int _unused[4]; 2487 int signal; 2488 unsigned long int handler; 2489 unsigned long int oldmask; 2490 struct pt_regs *regs; 2491 unsigned long int gp_regs[48]; 2492 double fp_regs[33]; 2493 }; 2494 _________________________________________________________ 2495 2496 11.3.33. stddef.h 2497 2498 typedef unsigned long int size_t; 2499 typedef long int ptrdiff_t; 2500 _________________________________________________________ 2501 2502 11.3.34. stdio.h 2503 2504 #define __IO_FILE_SIZE 216 2505 _________________________________________________________ 2506 2507 11.3.35. stdlib.h 2508 2509 /* 2510 * This header is architecture neutral 2511 * Please refer to the generic specification for details 2512 */ 2513 _________________________________________________________ 2514 2515 11.3.36. sys/file.h 2516 2517 /* 2518 * This header is architecture neutral 2519 * Please refer to the generic specification for details 2520 */ 2521 _________________________________________________________ 2522 2523 11.3.37. sys/ioctl.h 2524 2525 #define TIOCGWINSZ 0x40087468 2526 #define FIONREAD 1074030207 2527 #define TIOCNOTTY 21538 2528 _________________________________________________________ 2529 2530 11.3.38. sys/ipc.h 2531 2532 struct ipc_perm { 2533 key_t __key; 2534 uid_t uid; 2535 gid_t gid; 2536 uid_t cuid; 2537 gid_t cgid; 2538 mode_t mode; 2539 unsigned int __seq; 2540 unsigned int __pad1; 2541 unsigned long int __unused1; 2542 unsigned long int __unused2; 2543 }; 2544 _________________________________________________________ 2545 2546 11.3.39. sys/mman.h 2547 2548 #define MCL_FUTURE 16384 2549 #define MCL_CURRENT 8192 2550 _________________________________________________________ 2551 2552 11.3.40. sys/msg.h 2553 2554 typedef unsigned long int msglen_t; 2555 typedef unsigned long int msgqnum_t; 2556 2557 struct msqid_ds { 2558 struct ipc_perm msg_perm; 2559 time_t msg_stime; 2560 time_t msg_rtime; 2561 time_t msg_ctime; 2562 unsigned long int __msg_cbytes; 2563 msgqnum_t msg_qnum; 2564 msglen_t msg_qbytes; 2565 pid_t msg_lspid; 2566 pid_t msg_lrpid; 2567 unsigned long int __unused4; 2568 unsigned long int __unused5; 2569 }; 2570 _________________________________________________________ 2571 2572 11.3.41. sys/param.h 2573 2574 /* 2575 * This header is architecture neutral 2576 * Please refer to the generic specification for details 2577 */ 2578 _________________________________________________________ 2579 2580 11.3.42. sys/poll.h 2581 2582 /* 2583 * This header is architecture neutral 2584 * Please refer to the generic specification for details 2585 */ 2586 _________________________________________________________ 2587 2588 11.3.43. sys/resource.h 2589 2590 /* 2591 * This header is architecture neutral 2592 * Please refer to the generic specification for details 2593 */ 2594 _________________________________________________________ 2595 2596 11.3.44. sys/sem.h 2597 2598 struct semid_ds { 2599 struct ipc_perm sem_perm; 2600 time_t sem_otime; 2601 time_t sem_ctime; 2602 unsigned long int sem_nsems; 2603 unsigned long int __unused3; 2604 unsigned long int __unused4; 2605 }; 2606 _________________________________________________________ 2607 2608 11.3.45. sys/shm.h 2609 2610 #define SHMLBA (__getpagesize()) 2611 2612 typedef unsigned long int shmatt_t; 2613 2614 struct shmid_ds { 2615 struct ipc_perm shm_perm; 2616 time_t shm_atime; 2617 time_t shm_dtime; 2618 time_t shm_ctime; 2619 size_t shm_segsz; 2620 pid_t shm_cpid; 2621 pid_t shm_lpid; 2622 shmatt_t shm_nattch; 2623 unsigned long int __unused5; 2624 unsigned long int __unused6; 2625 }; 2626 _________________________________________________________ 2627 2628 11.3.46. sys/socket.h 2629 2630 typedef uint64_t __ss_aligntype; 2631 2632 #define SO_RCVLOWAT 16 2633 #define SO_SNDLOWAT 17 2634 #define SO_RCVTIMEO 18 2635 #define SO_SNDTIMEO 19 2636 _________________________________________________________ 2637 2638 11.3.47. sys/stat.h 2639 2640 #define _STAT_VER 1 2641 2642 struct stat { 2643 dev_t st_dev; 2644 ino_t st_ino; 2645 nlink_t st_nlink; 2646 mode_t st_mode; 2647 uid_t st_uid; 2648 gid_t st_gid; 2649 int __pad2; 2650 dev_t st_rdev; 2651 off_t st_size; 2652 blksize_t st_blksize; 2653 blkcnt_t st_blocks; 2654 struct timespec st_atim; 2655 struct timespec st_mtim; 2656 struct timespec st_ctim; 2657 unsigned long int __unused4; 2658 unsigned long int __unused5; 2659 unsigned long int __unused6; 2660 }; 2661 struct stat64 { 2662 dev_t st_dev; 2663 ino64_t st_ino; 2664 nlink_t st_nlink; 2665 mode_t st_mode; 2666 uid_t st_uid; 2667 gid_t st_gid; 2668 int __pad2; 2669 dev_t st_rdev; 2670 off64_t st_size; 2671 blksize_t st_blksize; 2672 blkcnt64_t st_blocks; 2673 struct timespec st_atim; 2674 struct timespec st_mtim; 2675 struct timespec st_ctim; 2676 unsigned long int __unused4; 2677 unsigned long int __unused5; 2678 unsigned long int __unused6; 2679 }; 2680 _________________________________________________________ 2681 2682 11.3.48. sys/statfs.h 2683 2684 /* 2685 * This header is architecture neutral 2686 * Please refer to the generic specification for details 2687 */ 2688 _________________________________________________________ 2689 2690 11.3.49. sys/statvfs.h 2691 2692 struct statvfs { 2693 unsigned long int f_bsize; 2694 unsigned long int f_frsize; 2695 fsblkcnt_t f_blocks; 2696 fsblkcnt_t f_bfree; 2697 fsblkcnt_t f_bavail; 2698 fsfilcnt_t f_files; 2699 fsfilcnt_t f_ffree; 2700 fsfilcnt_t f_favail; 2701 unsigned long int f_fsid; 2702 unsigned long int f_flag; 2703 unsigned long int f_namemax; 2704 int __f_spare[6]; 2705 }; 2706 struct statvfs64 { 2707 unsigned long int f_bsize; 2708 unsigned long int f_frsize; 2709 fsblkcnt64_t f_blocks; 2710 fsblkcnt64_t f_bfree; 2711 fsblkcnt64_t f_bavail; 2712 fsfilcnt64_t f_files; 2713 fsfilcnt64_t f_ffree; 2714 fsfilcnt64_t f_favail; 2715 unsigned long int f_fsid; 2716 unsigned long int f_flag; 2717 unsigned long int f_namemax; 2718 int __f_spare[6]; 2719 }; 2720 _________________________________________________________ 2721 2722 11.3.50. sys/time.h 2723 2724 /* 2725 * This header is architecture neutral 2726 * Please refer to the generic specification for details 2727 */ 2728 _________________________________________________________ 2729 2730 11.3.51. sys/timeb.h 2731 2732 /* 2733 * This header is architecture neutral 2734 * Please refer to the generic specification for details 2735 */ 2736 _________________________________________________________ 2737 2738 11.3.52. sys/times.h 2739 2740 /* 2741 * This header is architecture neutral 2742 * Please refer to the generic specification for details 2743 */ 2744 _________________________________________________________ 2745 2746 11.3.53. sys/types.h 2747 2748 typedef long int int64_t; 2749 2750 typedef int64_t ssize_t; 2751 2752 #define __FDSET_LONGS 16 2753 _________________________________________________________ 2754 2755 11.3.54. sys/un.h 2756 2757 /* 2758 * This header is architecture neutral 2759 * Please refer to the generic specification for details 2760 */ 2761 _________________________________________________________ 2762 2763 11.3.55. sys/utsname.h 2764 2765 /* 2766 * This header is architecture neutral 2767 * Please refer to the generic specification for details 2768 */ 2769 _________________________________________________________ 2770 2771 11.3.56. sys/wait.h 2772 2773 /* 2774 * This header is architecture neutral 2775 * Please refer to the generic specification for details 2776 */ 2777 _________________________________________________________ 2778 2779 11.3.57. syslog.h 2780 2781 /* 2782 * This header is architecture neutral 2783 * Please refer to the generic specification for details 2784 */ 2785 _________________________________________________________ 2786 2787 11.3.58. termios.h 2788 2789 #define TAB1 1024 2790 #define CR3 12288 2791 #define CRDLY 12288 2792 #define FF1 16384 2793 #define FFDLY 16384 2794 #define XCASE 16384 2795 #define ONLCR 2 2796 #define TAB2 2048 2797 #define TAB3 3072 2798 #define TABDLY 3072 2799 #define BS1 32768 2800 #define BSDLY 32768 2801 #define OLCUC 4 2802 #define CR1 4096 2803 #define IUCLC 4096 2804 #define VT1 65536 2805 #define VTDLY 65536 2806 #define NLDLY 768 2807 #define CR2 8192 2808 2809 #define VWERASE 10 2810 #define VREPRINT 11 2811 #define VSUSP 12 2812 #define VSTART 13 2813 #define VSTOP 14 2814 #define VDISCARD 16 2815 #define VMIN 5 2816 #define VEOL 6 2817 #define VEOL2 8 2818 #define VSWTC 9 2819 2820 #define IXOFF 1024 2821 #define IXON 512 2822 2823 #define CSTOPB 1024 2824 #define HUPCL 16384 2825 #define CREAD 2048 2826 #define CS6 256 2827 #define CLOCAL 32768 2828 #define PARENB 4096 2829 #define CS7 512 2830 #define VTIME 7 2831 #define CS8 768 2832 #define CSIZE 768 2833 #define PARODD 8192 2834 2835 #define NOFLSH 0x80000000 2836 #define ECHOKE 1 2837 #define IEXTEN 1024 2838 #define ISIG 128 2839 #define ECHONL 16 2840 #define ECHOE 2 2841 #define ICANON 256 2842 #define ECHOPRT 32 2843 #define ECHOK 4 2844 #define TOSTOP 4194304 2845 #define PENDIN 536870912 2846 #define ECHOCTL 64 2847 #define FLUSHO 8388608 2848 _________________________________________________________ 2849 2850 11.3.59. ucontext.h 2851 2852 typedef struct _libc_vscr { 2853 int __pad[3]; 2854 int vscr_word; 2855 } vscr_t; 2856 typedef struct _libc_vrstate { 2857 unsigned int vrregs[128]; 2858 vscr_t vscr; 2859 unsigned int vrsave; 2860 unsigned int __pad[3]; 2861 } vrregset_t __attribute__ ((__aligned__(16))); 2862 2863 #define NGREG 48 2864 2865 typedef unsigned long int gregset_t[48]; 2866 2867 typedef double fpregset_t[33]; 2868 2869 typedef struct { 2870 unsigned long int __unused[4]; 2871 int signal; 2872 int pad0; 2873 unsigned long int handler; 2874 unsigned long int oldmask; 2875 struct pt_regs *regs; 2876 gregset_t gp_regs; 2877 fpregset_t fp_regs; 2878 vrregset_t *v_regs; 2879 long int vmx_reserve[69]; 2880 } mcontext_t; 2881 2882 typedef struct ucontext { 2883 unsigned long int uc_flags; 2884 struct ucontext *uc_link; 2885 stack_t uc_stack; 2886 sigset_t uc_sigmask; 2887 mcontext_t uc_mcontext; 2888 } ucontext_t; 2889 _________________________________________________________ 2890 2891 11.3.60. ulimit.h 2892 2893 /* 2894 * This header is architecture neutral 2895 * Please refer to the generic specification for details 2896 */ 2897 _________________________________________________________ 2898 2899 11.3.61. unistd.h 2900 2901 typedef long int intptr_t; 2902 _________________________________________________________ 2903 2904 11.3.62. utime.h 2905 2906 /* 2907 * This header is architecture neutral 2908 * Please refer to the generic specification for details 2909 */ 2910 _________________________________________________________ 2911 2912 11.3.63. utmp.h 2913 2914 struct lastlog { 2915 int32_t ll_time; 2916 char ll_line[UT_LINESIZE]; 2917 char ll_host[UT_HOSTSIZE]; 2918 }; 2919 2920 struct utmp { 2921 short ut_type; 2922 pid_t ut_pid; 2923 char ut_line[UT_LINESIZE]; 2924 char ut_id[4]; 2925 char ut_user[UT_NAMESIZE]; 2926 char ut_host[UT_HOSTSIZE]; 2927 struct exit_status ut_exit; 2928 int32_t ut_session; 2929 struct { 2930 int32_t tv_sec; 2931 int32_t tv_usec; 2932 } ut_tv; 2933 int32_t ut_addr_v6[4]; 2934 char __unused[20]; 2935 }; 2936 _________________________________________________________ 2937 2938 11.3.64. utmpx.h 2939 2940 struct utmpx { 2941 short ut_type; 2942 pid_t ut_pid; 2943 char ut_line[UT_LINESIZE]; 2944 char ut_id[4]; 2945 char ut_user[UT_NAMESIZE]; 2946 char ut_host[UT_HOSTSIZE]; 2947 struct exit_status ut_exit; 2948 int32_t ut_session; 2949 struct { 2950 int32_t tv_sec; 2951 int32_t tv_usec; 2952 } ut_tv; 2953 int32_t ut_addr_v6[4]; 2954 char __unused[20]; 2955 }; 2956 _________________________________________________________ 2957 2958 11.3.65. wctype.h 2959 2960 /* 2961 * This header is architecture neutral 2962 * Please refer to the generic specification for details 2963 */ 2964 _________________________________________________________ 2965 2966 11.3.66. wordexp.h 2967 2968 /* 2969 * This header is architecture neutral 2970 * Please refer to the generic specification for details 2971 */ 2972 _________________________________________________________ 2973 2974 11.4. Interfaces for libm 2975 2976 Table 11-24 defines the library name and shared object name 2977 for the libm library 2978 2979 Table 11-24. libm Definition 2980 Library: libm 2981 SONAME: libm.so.6 2982 2983 The behavior of the interfaces in this library is specified by 2984 the following specifications: 2985 2986 [ISOC99] ISO C (1999) 2987 [LSB] ISO/IEC 23360 Part 1 2988 [SUSv2] SUSv2 2989 [SUSv3] ISO POSIX (2003) 2990 [SVID.3] SVID Issue 3 2991 _________________________________________________________ 2992 2993 11.4.1. Math 2994 _________________________________________________________ 2995 2996 11.4.1.1. Interfaces for Math 2997 2998 An LSB conforming implementation shall provide the 2999 architecture specific functions for Math specified in Table 3000 11-25, with the full mandatory functionality as described in 3001 the referenced underlying specification. 3002 3003 Table 11-25. libm - Math Function Interfaces 3004 __finite(GLIBC_2.3) [ISOC99] __finitef(GLIBC_2.3) [ISOC99] 3005 __finitel(GLIBC_2.3) [ISOC99] __fpclassify(GLIBC_2.3) [LSB] 3006 __fpclassifyf(GLIBC_2.3) [LSB] __signbit(GLIBC_2.3) [ISOC99] 3007 __signbitf(GLIBC_2.3) [ISOC99] acos(GLIBC_2.3) [SUSv3] 3008 acosf(GLIBC_2.3) [SUSv3] acosh(GLIBC_2.3) [SUSv3] 3009 acoshf(GLIBC_2.3) [SUSv3] acoshl(GLIBC_2.3) [SUSv3] 3010 acosl(GLIBC_2.3) [SUSv3] asin(GLIBC_2.3) [SUSv3] 3011 asinf(GLIBC_2.3) [SUSv3] asinh(GLIBC_2.3) [SUSv3] 3012 asinhf(GLIBC_2.3) [SUSv3] asinhl(GLIBC_2.3) [SUSv3] 3013 asinl(GLIBC_2.3) [SUSv3] atan(GLIBC_2.3) [SUSv3] 3014 atan2(GLIBC_2.3) [SUSv3] atan2f(GLIBC_2.3) [SUSv3] 3015 atan2l(GLIBC_2.3) [SUSv3] atanf(GLIBC_2.3) [SUSv3] 3016 atanh(GLIBC_2.3) [SUSv3] atanhf(GLIBC_2.3) [SUSv3] 3017 atanhl(GLIBC_2.3) [SUSv3] atanl(GLIBC_2.3) [SUSv3] 3018 cabs(GLIBC_2.3) [SUSv3] cabsf(GLIBC_2.3) [SUSv3] 3019 cabsl(GLIBC_2.3) [SUSv3] cacos(GLIBC_2.3) [SUSv3] 3020 cacosf(GLIBC_2.3) [SUSv3] cacosh(GLIBC_2.3) [SUSv3] 3021 cacoshf(GLIBC_2.3) [SUSv3] cacoshl(GLIBC_2.3) [SUSv3] 3022 cacosl(GLIBC_2.3) [SUSv3] carg(GLIBC_2.3) [SUSv3] 3023 cargf(GLIBC_2.3) [SUSv3] cargl(GLIBC_2.3) [SUSv3] 3024 casin(GLIBC_2.3) [SUSv3] casinf(GLIBC_2.3) [SUSv3] 3025 casinh(GLIBC_2.3) [SUSv3] casinhf(GLIBC_2.3) [SUSv3] 3026 casinhl(GLIBC_2.3) [SUSv3] casinl(GLIBC_2.3) [SUSv3] 3027 catan(GLIBC_2.3) [SUSv3] catanf(GLIBC_2.3) [SUSv3] 3028 catanh(GLIBC_2.3) [SUSv3] catanhf(GLIBC_2.3) [SUSv3] 3029 catanhl(GLIBC_2.3) [SUSv3] catanl(GLIBC_2.3) [SUSv3] 3030 cbrt(GLIBC_2.3) [SUSv3] cbrtf(GLIBC_2.3) [SUSv3] 3031 cbrtl(GLIBC_2.3) [SUSv3] ccos(GLIBC_2.3) [SUSv3] 3032 ccosf(GLIBC_2.3) [SUSv3] ccosh(GLIBC_2.3) [SUSv3] 3033 ccoshf(GLIBC_2.3) [SUSv3] ccoshl(GLIBC_2.3) [SUSv3] 3034 ccosl(GLIBC_2.3) [SUSv3] ceil(GLIBC_2.3) [SUSv3] 3035 ceilf(GLIBC_2.3) [SUSv3] ceill(GLIBC_2.3) [SUSv3] 3036 cexp(GLIBC_2.3) [SUSv3] cexpf(GLIBC_2.3) [SUSv3] 3037 cexpl(GLIBC_2.3) [SUSv3] cimag(GLIBC_2.3) [SUSv3] 3038 cimagf(GLIBC_2.3) [SUSv3] cimagl(GLIBC_2.3) [SUSv3] 3039 clog(GLIBC_2.3) [SUSv3] clog10(GLIBC_2.3) [ISOC99] 3040 clog10f(GLIBC_2.3) [ISOC99] clog10l(GLIBC_2.3) [ISOC99] 3041 clogf(GLIBC_2.3) [SUSv3] clogl(GLIBC_2.3) [SUSv3] 3042 conj(GLIBC_2.3) [SUSv3] conjf(GLIBC_2.3) [SUSv3] 3043 conjl(GLIBC_2.3) [SUSv3] copysign(GLIBC_2.3) [SUSv3] 3044 copysignf(GLIBC_2.3) [SUSv3] copysignl(GLIBC_2.3) [SUSv3] 3045 cos(GLIBC_2.3) [SUSv3] cosf(GLIBC_2.3) [SUSv3] 3046 cosh(GLIBC_2.3) [SUSv3] coshf(GLIBC_2.3) [SUSv3] 3047 coshl(GLIBC_2.3) [SUSv3] cosl(GLIBC_2.3) [SUSv3] 3048 cpow(GLIBC_2.3) [SUSv3] cpowf(GLIBC_2.3) [SUSv3] 3049 cpowl(GLIBC_2.3) [SUSv3] cproj(GLIBC_2.3) [SUSv3] 3050 cprojf(GLIBC_2.3) [SUSv3] cprojl(GLIBC_2.3) [SUSv3] 3051 creal(GLIBC_2.3) [SUSv3] crealf(GLIBC_2.3) [SUSv3] 3052 creall(GLIBC_2.3) [SUSv3] csin(GLIBC_2.3) [SUSv3] 3053 csinf(GLIBC_2.3) [SUSv3] csinh(GLIBC_2.3) [SUSv3] 3054 csinhf(GLIBC_2.3) [SUSv3] csinhl(GLIBC_2.3) [SUSv3] 3055 csinl(GLIBC_2.3) [SUSv3] csqrt(GLIBC_2.3) [SUSv3] 3056 csqrtf(GLIBC_2.3) [SUSv3] csqrtl(GLIBC_2.3) [SUSv3] 3057 ctan(GLIBC_2.3) [SUSv3] ctanf(GLIBC_2.3) [SUSv3] 3058 ctanh(GLIBC_2.3) [SUSv3] ctanhf(GLIBC_2.3) [SUSv3] 3059 ctanhl(GLIBC_2.3) [SUSv3] ctanl(GLIBC_2.3) [SUSv3] 3060 dremf(GLIBC_2.3) [ISOC99] dreml(GLIBC_2.3) [ISOC99] 3061 erf(GLIBC_2.3) [SUSv3] erfc(GLIBC_2.3) [SUSv3] 3062 erfcf(GLIBC_2.3) [SUSv3] erfcl(GLIBC_2.3) [SUSv3] 3063 erff(GLIBC_2.3) [SUSv3] erfl(GLIBC_2.3) [SUSv3] 3064 exp(GLIBC_2.3) [SUSv3] exp2(GLIBC_2.3) [SUSv3] 3065 exp2f(GLIBC_2.3) [SUSv3] expf(GLIBC_2.3) [SUSv3] 3066 expl(GLIBC_2.3) [SUSv3] expm1(GLIBC_2.3) [SUSv3] 3067 expm1f(GLIBC_2.3) [SUSv3] expm1l(GLIBC_2.3) [SUSv3] 3068 fabs(GLIBC_2.3) [SUSv3] fabsf(GLIBC_2.3) [SUSv3] 3069 fabsl(GLIBC_2.3) [SUSv3] fdim(GLIBC_2.3) [SUSv3] 3070 fdimf(GLIBC_2.3) [SUSv3] fdiml(GLIBC_2.3) [SUSv3] 3071 feclearexcept(GLIBC_2.3) [SUSv3] fegetenv(GLIBC_2.3) [SUSv3] 3072 fegetexceptflag(GLIBC_2.3) [SUSv3] fegetround(GLIBC_2.3) 3073 [SUSv3] feholdexcept(GLIBC_2.3) [SUSv3] 3074 feraiseexcept(GLIBC_2.3) [SUSv3] 3075 fesetenv(GLIBC_2.3) [SUSv3] fesetexceptflag(GLIBC_2.3) [SUSv3] 3076 fesetround(GLIBC_2.3) [SUSv3] fetestexcept(GLIBC_2.3) [SUSv3] 3077 feupdateenv(GLIBC_2.3) [SUSv3] finite(GLIBC_2.3) [SUSv2] 3078 finitef(GLIBC_2.3) [ISOC99] finitel(GLIBC_2.3) [ISOC99] 3079 floor(GLIBC_2.3) [SUSv3] floorf(GLIBC_2.3) [SUSv3] 3080 floorl(GLIBC_2.3) [SUSv3] fma(GLIBC_2.3) [SUSv3] 3081 fmaf(GLIBC_2.3) [SUSv3] fmal(GLIBC_2.3) [SUSv3] 3082 fmax(GLIBC_2.3) [SUSv3] fmaxf(GLIBC_2.3) [SUSv3] 3083 fmaxl(GLIBC_2.3) [SUSv3] fmin(GLIBC_2.3) [SUSv3] 3084 fminf(GLIBC_2.3) [SUSv3] fminl(GLIBC_2.3) [SUSv3] 3085 fmod(GLIBC_2.3) [SUSv3] fmodf(GLIBC_2.3) [SUSv3] 3086 fmodl(GLIBC_2.3) [SUSv3] frexp(GLIBC_2.3) [SUSv3] 3087 frexpf(GLIBC_2.3) [SUSv3] frexpl(GLIBC_2.3) [SUSv3] 3088 gamma(GLIBC_2.3) [SUSv2] gammaf(GLIBC_2.3) [ISOC99] 3089 gammal(GLIBC_2.3) [ISOC99] hypot(GLIBC_2.3) [SUSv3] 3090 hypotf(GLIBC_2.3) [SUSv3] hypotl(GLIBC_2.3) [SUSv3] 3091 ilogb(GLIBC_2.3) [SUSv3] ilogbf(GLIBC_2.3) [SUSv3] 3092 ilogbl(GLIBC_2.3) [SUSv3] j0(GLIBC_2.3) [SUSv3] 3093 j0f(GLIBC_2.3) [ISOC99] j0l(GLIBC_2.3) [ISOC99] j1(GLIBC_2.3) 3094 [SUSv3] j1f(GLIBC_2.3) [ISOC99] 3095 j1l(GLIBC_2.3) [ISOC99] jn(GLIBC_2.3) [SUSv3] jnf(GLIBC_2.3) 3096 [ISOC99] jnl(GLIBC_2.3) [ISOC99] 3097 ldexp(GLIBC_2.3) [SUSv3] ldexpf(GLIBC_2.3) [SUSv3] 3098 ldexpl(GLIBC_2.3) [SUSv3] lgamma(GLIBC_2.3) [SUSv3] 3099 lgamma_r(GLIBC_2.3) [ISOC99] lgammaf(GLIBC_2.3) [SUSv3] 3100 lgammaf_r(GLIBC_2.3) [ISOC99] lgammal(GLIBC_2.3) [SUSv3] 3101 lgammal_r(GLIBC_2.3) [ISOC99] llrint(GLIBC_2.3) [SUSv3] 3102 llrintf(GLIBC_2.3) [SUSv3] llrintl(GLIBC_2.3) [SUSv3] 3103 llround(GLIBC_2.3) [SUSv3] llroundf(GLIBC_2.3) [SUSv3] 3104 llroundl(GLIBC_2.3) [SUSv3] log(GLIBC_2.3) [SUSv3] 3105 log10(GLIBC_2.3) [SUSv3] log10f(GLIBC_2.3) [SUSv3] 3106 log10l(GLIBC_2.3) [SUSv3] log1p(GLIBC_2.3) [SUSv3] 3107 log1pf(GLIBC_2.3) [SUSv3] log1pl(GLIBC_2.3) [SUSv3] 3108 log2(GLIBC_2.3) [SUSv3] log2f(GLIBC_2.3) [SUSv3] 3109 log2l(GLIBC_2.3) [SUSv3] logb(GLIBC_2.3) [SUSv3] 3110 logbf(GLIBC_2.3) [SUSv3] logbl(GLIBC_2.3) [SUSv3] 3111 logf(GLIBC_2.3) [SUSv3] logl(GLIBC_2.3) [SUSv3] 3112 lrint(GLIBC_2.3) [SUSv3] lrintf(GLIBC_2.3) [SUSv3] 3113 lrintl(GLIBC_2.3) [SUSv3] lround(GLIBC_2.3) [SUSv3] 3114 lroundf(GLIBC_2.3) [SUSv3] lroundl(GLIBC_2.3) [SUSv3] 3115 matherr(GLIBC_2.3) [SVID.3] modf(GLIBC_2.3) [SUSv3] 3116 modff(GLIBC_2.3) [SUSv3] modfl(GLIBC_2.3) [SUSv3] 3117 nan(GLIBC_2.3) [SUSv3] nanf(GLIBC_2.3) [SUSv3] nanl(GLIBC_2.3) 3118 [SUSv3] nearbyint(GLIBC_2.3) [SUSv3] 3119 nearbyintf(GLIBC_2.3) [SUSv3] nearbyintl(GLIBC_2.3) [SUSv3] 3120 nextafter(GLIBC_2.3) [SUSv3] nextafterf(GLIBC_2.3) [SUSv3] 3121 nextafterl(GLIBC_2.3) [SUSv3] nexttoward(GLIBC_2.3) [SUSv3] 3122 nexttowardf(GLIBC_2.3) [SUSv3] nexttowardl(GLIBC_2.3) [SUSv3] 3123 pow(GLIBC_2.3) [SUSv3] pow10(GLIBC_2.3) [ISOC99] 3124 pow10f(GLIBC_2.3) [ISOC99] pow10l(GLIBC_2.3) [ISOC99] 3125 powf(GLIBC_2.3) [SUSv3] powl(GLIBC_2.3) [SUSv3] 3126 remainder(GLIBC_2.3) [SUSv3] remainderf(GLIBC_2.3) [SUSv3] 3127 remainderl(GLIBC_2.3) [SUSv3] remquo(GLIBC_2.3) [SUSv3] 3128 remquof(GLIBC_2.3) [SUSv3] remquol(GLIBC_2.3) [SUSv3] 3129 rint(GLIBC_2.3) [SUSv3] rintf(GLIBC_2.3) [SUSv3] 3130 rintl(GLIBC_2.3) [SUSv3] round(GLIBC_2.3) [SUSv3] 3131 roundf(GLIBC_2.3) [SUSv3] roundl(GLIBC_2.3) [SUSv3] 3132 scalb(GLIBC_2.3) [SUSv3] scalbf(GLIBC_2.3) [ISOC99] 3133 scalbl(GLIBC_2.3) [ISOC99] scalbln(GLIBC_2.3) [SUSv3] 3134 scalblnf(GLIBC_2.3) [SUSv3] scalblnl(GLIBC_2.3) [SUSv3] 3135 scalbn(GLIBC_2.3) [SUSv3] scalbnf(GLIBC_2.3) [SUSv3] 3136 scalbnl(GLIBC_2.3) [SUSv3] significand(GLIBC_2.3) [ISOC99] 3137 significandf(GLIBC_2.3) [ISOC99] significandl(GLIBC_2.3) 3138 [ISOC99] sin(GLIBC_2.3) [SUSv3] sincos(GLIBC_2.3) [ISOC99] 3139 sincosf(GLIBC_2.3) [ISOC99] sincosl(GLIBC_2.3) [ISOC99] 3140 sinf(GLIBC_2.3) [SUSv3] sinh(GLIBC_2.3) [SUSv3] 3141 sinhf(GLIBC_2.3) [SUSv3] sinhl(GLIBC_2.3) [SUSv3] 3142 sinl(GLIBC_2.3) [SUSv3] sqrt(GLIBC_2.3) [SUSv3] 3143 sqrtf(GLIBC_2.3) [SUSv3] sqrtl(GLIBC_2.3) [SUSv3] 3144 tan(GLIBC_2.3) [SUSv3] tanf(GLIBC_2.3) [SUSv3] 3145 tanh(GLIBC_2.3) [SUSv3] tanhf(GLIBC_2.3) [SUSv3] 3146 tanhl(GLIBC_2.3) [SUSv3] tanl(GLIBC_2.3) [SUSv3] 3147 tgamma(GLIBC_2.3) [SUSv3] tgammaf(GLIBC_2.3) [SUSv3] 3148 tgammal(GLIBC_2.3) [SUSv3] trunc(GLIBC_2.3) [SUSv3] 3149 truncf(GLIBC_2.3) [SUSv3] truncl(GLIBC_2.3) [SUSv3] 3150 y0(GLIBC_2.3) [SUSv3] y0f(GLIBC_2.3) [ISOC99] 3151 y0l(GLIBC_2.3) [ISOC99] y1(GLIBC_2.3) [SUSv3] y1f(GLIBC_2.3) 3152 [ISOC99] y1l(GLIBC_2.3) [ISOC99] 3153 yn(GLIBC_2.3) [SUSv3] ynf(GLIBC_2.3) [ISOC99] ynl(GLIBC_2.3) 3154 [ISOC99] 3155 3156 An LSB conforming implementation shall provide the 3157 architecture specific data interfaces for Math specified in 3158 Table 11-26, with the full mandatory functionality as 3159 described in the referenced underlying specification. 3160 3161 Table 11-26. libm - Math Data Interfaces 3162 signgam(GLIBC_2.3) [SUSv3] 3163 _________________________________________________________ 3164 3165 11.5. Data Definitions for libm 3166 3167 This section defines global identifiers and their values that 3168 are associated with interfaces contained in libm. These 3169 definitions are organized into groups that correspond to 3170 system headers. This convention is used as a convenience for 3171 the reader, and does not imply the existence of these headers, 3172 or their content. Where an interface is defined as requiring a 3173 particular system header file all of the data definitions for 3174 that system header file presented here shall be in effect. 3175 3176 This section gives data definitions to promote binary 3177 application portability, not to repeat source interface 3178 definitions available elsewhere. System providers and 3179 application developers should use this ABI to supplement - not 3180 to replace - source interface definition specifications. 3181 3182 This specification uses the ISO C (1999) C Language as the 3183 reference programming language, and data definitions are 3184 specified in ISO C format. The C language is used here as a 3185 convenient notation. Using a C language description of these 3186 data objects does not preclude their use by other programming 3187 languages. 3188 _________________________________________________________ 3189 3190 11.5.1. complex.h 3191 3192 /* 3193 * This header is architecture neutral 3194 * Please refer to the generic specification for details 3195 */ 3196 _________________________________________________________ 3197 3198 11.5.2. fenv.h 3199 3200 #define FE_INVALID (1 << (31 - 2)) 3201 #define FE_OVERFLOW (1 << (31 - 3)) 3202 #define FE_UNDERFLOW (1 << (31 - 4)) 3203 #define FE_DIVBYZERO (1 << (31 - 5)) 3204 #define FE_INEXACT (1 << (31 - 6)) 3205 3206 #define FE_ALL_EXCEPT \ 3207 (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) 3208 3209 #define FE_TONEAREST 0 3210 #define FE_TOWARDZERO 1 3211 #define FE_UPWARD 2 3212 #define FE_DOWNWARD 3 3213 3214 typedef unsigned int fexcept_t; 3215 3216 typedef double fenv_t; 3217 3218 #define FE_DFL_ENV (&__fe_dfl_env) 3219 _________________________________________________________ 3220 3221 11.5.3. math.h 3222 3223 #define fpclassify(x) \ 3224 (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x) ) 3225 #define signbit(x) \ 3226 (sizeof (x) == sizeof (float)? __signbitf (x): __signbit (x)) 3227 3228 #define FP_ILOGB0 -2147483647 3229 #define FP_ILOGBNAN 2147483647 3230 _________________________________________________________ 3231 3232 11.6. Interfaces for libpthread 3233 3234 Table 11-27 defines the library name and shared object name 3235 for the libpthread library 3236 3237 Table 11-27. libpthread Definition 3238 Library: libpthread 3239 SONAME: libpthread.so.0 3240 3241 The behavior of the interfaces in this library is specified by 3242 the following specifications: 3243 3244 [LFS] Large File Support 3245 [LSB] ISO/IEC 23360 Part 1 3246 [SUSv3] ISO POSIX (2003) 3247 _________________________________________________________ 3248 3249 11.6.1. Realtime Threads 3250 _________________________________________________________ 3251 3252 11.6.1.1. Interfaces for Realtime Threads 3253 3254 An LSB conforming implementation shall provide the 3255 architecture specific functions for Realtime Threads specified 3256 in Table 11-28, with the full mandatory functionality as 3257 described in the referenced underlying specification. 3258 3259 Table 11-28. libpthread - Realtime Threads Function Interfaces 3260 pthread_attr_getinheritsched(GLIBC_2.3) [SUSv3] 3261 pthread_attr_getschedpolicy(GLIBC_2.3) [SUSv3] 3262 pthread_attr_getscope(GLIBC_2.3) [SUSv3] 3263 pthread_attr_setinheritsched(GLIBC_2.3) [SUSv3] 3264 pthread_attr_setschedpolicy(GLIBC_2.3) [SUSv3] 3265 pthread_attr_setscope(GLIBC_2.3) [SUSv3] 3266 pthread_getschedparam(GLIBC_2.3) [SUSv3] 3267 pthread_setschedparam(GLIBC_2.3) [SUSv3] 3268 _________________________________________________________ 3269 3270 11.6.2. Advanced Realtime Threads 3271 _________________________________________________________ 3272 3273 11.6.2.1. Interfaces for Advanced Realtime Threads 3274 3275 No external functions are defined for libpthread - Advanced 3276 Realtime Threads in this part of the specification. See also 3277 the generic specification, ISO/IEC 23360 Part 1. 3278 _________________________________________________________ 3279 3280 11.6.3. Posix Threads 3281 _________________________________________________________ 3282 3283 11.6.3.1. Interfaces for Posix Threads 3284 3285 An LSB conforming implementation shall provide the 3286 architecture specific functions for Posix Threads specified in 3287 Table 11-29, with the full mandatory functionality as 3288 described in the referenced underlying specification. 3289 3290 Table 11-29. libpthread - Posix Threads Function Interfaces 3291 _pthread_cleanup_pop(GLIBC_2.3) [LSB] 3292 _pthread_cleanup_push(GLIBC_2.3) [LSB] 3293 pthread_attr_destroy(GLIBC_2.3) [SUSv3] 3294 pthread_attr_getdetachstate(GLIBC_2.3) [SUSv3] 3295 pthread_attr_getguardsize(GLIBC_2.3) [SUSv3] 3296 pthread_attr_getschedparam(GLIBC_2.3) [SUSv3] 3297 pthread_attr_getstack(GLIBC_2.3) [SUSv3] 3298 pthread_attr_getstackaddr(GLIBC_2.3) [SUSv3] 3299 pthread_attr_getstacksize(GLIBC_2.3) [SUSv3] 3300 pthread_attr_init(GLIBC_2.3) [SUSv3] 3301 pthread_attr_setdetachstate(GLIBC_2.3) [SUSv3] 3302 pthread_attr_setguardsize(GLIBC_2.3) [SUSv3] 3303 pthread_attr_setschedparam(GLIBC_2.3) [SUSv3] 3304 pthread_attr_setstackaddr(GLIBC_2.3) [SUSv3] 3305 pthread_attr_setstacksize(GLIBC_2.3) [SUSv3] 3306 pthread_cancel(GLIBC_2.3) [SUSv3] 3307 pthread_cond_broadcast(GLIBC_2.3.2) [SUSv3] 3308 pthread_cond_destroy(GLIBC_2.3.2) [SUSv3] 3309 pthread_cond_init(GLIBC_2.3.2) [SUSv3] 3310 pthread_cond_signal(GLIBC_2.3.2) [SUSv3] 3311 pthread_cond_timedwait(GLIBC_2.3.2) [SUSv3] 3312 pthread_cond_wait(GLIBC_2.3.2) [SUSv3] 3313 pthread_condattr_destroy(GLIBC_2.3) [SUSv3] 3314 pthread_condattr_getpshared(GLIBC_2.3) [SUSv3] 3315 pthread_condattr_init(GLIBC_2.3) [SUSv3] 3316 pthread_condattr_setpshared(GLIBC_2.3) [SUSv3] 3317 pthread_create(GLIBC_2.3) [SUSv3] pthread_detach(GLIBC_2.3) 3318 [SUSv3] 3319 pthread_equal(GLIBC_2.3) [SUSv3] pthread_exit(GLIBC_2.3) 3320 [SUSv3] pthread_getconcurrency(GLIBC_2.3) [SUSv3] 3321 pthread_getspecific(GLIBC_2.3) [SUSv3] 3322 pthread_join(GLIBC_2.3) [SUSv3] pthread_key_create(GLIBC_2.3) 3323 [SUSv3] pthread_key_delete(GLIBC_2.3) [SUSv3] 3324 pthread_kill(GLIBC_2.3) [SUSv3] 3325 pthread_mutex_destroy(GLIBC_2.3) [SUSv3] 3326 pthread_mutex_init(GLIBC_2.3) [SUSv3] 3327 pthread_mutex_lock(GLIBC_2.3) [SUSv3] 3328 pthread_mutex_trylock(GLIBC_2.3) [SUSv3] 3329 pthread_mutex_unlock(GLIBC_2.3) [SUSv3] 3330 pthread_mutexattr_destroy(GLIBC_2.3) [SUSv3] 3331 pthread_mutexattr_getpshared(GLIBC_2.3) [SUSv3] 3332 pthread_mutexattr_gettype(GLIBC_2.3) [SUSv3] 3333 pthread_mutexattr_init(GLIBC_2.3) [SUSv3] 3334 pthread_mutexattr_setpshared(GLIBC_2.3) [SUSv3] 3335 pthread_mutexattr_settype(GLIBC_2.3) [SUSv3] 3336 pthread_once(GLIBC_2.3) [SUSv3] 3337 pthread_rwlock_destroy(GLIBC_2.3) [SUSv3] 3338 pthread_rwlock_init(GLIBC_2.3) [SUSv3] 3339 pthread_rwlock_rdlock(GLIBC_2.3) [SUSv3] 3340 pthread_rwlock_timedrdlock(GLIBC_2.3) [SUSv3] 3341 pthread_rwlock_timedwrlock(GLIBC_2.3) [SUSv3] 3342 pthread_rwlock_tryrdlock(GLIBC_2.3) [SUSv3] 3343 pthread_rwlock_trywrlock(GLIBC_2.3) [SUSv3] 3344 pthread_rwlock_unlock(GLIBC_2.3) [SUSv3] 3345 pthread_rwlock_wrlock(GLIBC_2.3) [SUSv3] 3346 pthread_rwlockattr_destroy(GLIBC_2.3) [SUSv3] 3347 pthread_rwlockattr_getpshared(GLIBC_2.3) [SUSv3] 3348 pthread_rwlockattr_init(GLIBC_2.3) [SUSv3] 3349 pthread_rwlockattr_setpshared(GLIBC_2.3) [SUSv3] 3350 pthread_self(GLIBC_2.3) [SUSv3] 3351 pthread_setcancelstate(GLIBC_2.3) [SUSv3] 3352 pthread_setcanceltype(GLIBC_2.3) [SUSv3] 3353 pthread_setconcurrency(GLIBC_2.3) [SUSv3] 3354 pthread_setspecific(GLIBC_2.3) [SUSv3] 3355 pthread_sigmask(GLIBC_2.3) [SUSv3] 3356 pthread_testcancel(GLIBC_2.3) [SUSv3] 3357 sem_close(GLIBC_2.3) [SUSv3] sem_destroy(GLIBC_2.3) [SUSv3] 3358 sem_getvalue(GLIBC_2.3) [SUSv3] sem_init(GLIBC_2.3) [SUSv3] 3359 sem_open(GLIBC_2.3) [SUSv3] sem_post(GLIBC_2.3) [SUSv3] 3360 sem_timedwait(GLIBC_2.3) [SUSv3] sem_trywait(GLIBC_2.3) 3361 [SUSv3] 3362 sem_unlink(GLIBC_2.3) [SUSv3] sem_wait(GLIBC_2.3) [SUSv3] 3363 _________________________________________________________ 3364 3365 11.6.4. Thread aware versions of libc interfaces 3366 _________________________________________________________ 3367 3368 11.6.4.1. Interfaces for Thread aware versions of libc interfaces 3369 3370 An LSB conforming implementation shall provide the 3371 architecture specific functions for Thread aware versions of 3372 libc interfaces specified in Table 11-30, with the full 3373 mandatory functionality as described in the referenced 3374 underlying specification. 3375 3376 Table 11-30. libpthread - Thread aware versions of libc 3377 interfaces Function Interfaces 3378 lseek64(GLIBC_2.3) [LFS] open64(GLIBC_2.3) [LFS] 3379 pread(GLIBC_2.3) [SUSv3] pread64(GLIBC_2.3) [LFS] 3380 pwrite(GLIBC_2.3) [SUSv3] pwrite64(GLIBC_2.3) [LFS] 3381 _________________________________________________________ 3382 3383 11.7. Data Definitions for libpthread 3384 3385 This section defines global identifiers and their values that 3386 are associated with interfaces contained in libpthread. These 3387 definitions are organized into groups that correspond to 3388 system headers. This convention is used as a convenience for 3389 the reader, and does not imply the existence of these headers, 3390 or their content. Where an interface is defined as requiring a 3391 particular system header file all of the data definitions for 3392 that system header file presented here shall be in effect. 3393 3394 This section gives data definitions to promote binary 3395 application portability, not to repeat source interface 3396 definitions available elsewhere. System providers and 3397 application developers should use this ABI to supplement - not 3398 to replace - source interface definition specifications. 3399 3400 This specification uses the ISO C (1999) C Language as the 3401 reference programming language, and data definitions are 3402 specified in ISO C format. The C language is used here as a 3403 convenient notation. Using a C language description of these 3404 data objects does not preclude their use by other programming 3405 languages. 3406 _________________________________________________________ 3407 3408 11.7.1. pthread.h 3409 3410 /* 3411 * This header is architecture neutral 3412 * Please refer to the generic specification for details 3413 */ 3414 _________________________________________________________ 3415 3416 11.7.2. semaphore.h 3417 3418 /* 3419 * This header is architecture neutral 3420 * Please refer to the generic specification for details 3421 */ 3422 _________________________________________________________ 3423 3424 11.8. Interfaces for libgcc_s 3425 3426 Table 11-31 defines the library name and shared object name 3427 for the libgcc_s library 3428 3429 Table 11-31. libgcc_s Definition 3430 Library: libgcc_s 3431 SONAME: libgcc_s.so.1 3432 3433 The behavior of the interfaces in this library is specified by 3434 the following specifications: 3435 3436 [LSB] ISO/IEC 23360 Part 1 3437 _________________________________________________________ 3438 3439 11.8.1. Unwind Library 3440 _________________________________________________________ 3441 3442 11.8.1.1. Interfaces for Unwind Library 3443 3444 An LSB conforming implementation shall provide the 3445 architecture specific functions for Unwind Library specified 3446 in Table 11-32, with the full mandatory functionality as 3447 described in the referenced underlying specification. 3448 3449 Table 11-32. libgcc_s - Unwind Library Function Interfaces 3450 _Unwind_Backtrace(GCC_3.3) [LSB] 3451 _Unwind_DeleteException(GCC_3.0) [LSB] 3452 _Unwind_FindEnclosingFunction(GCC_3.3) [LSB] 3453 _Unwind_Find_FDE(GCC_3.0) [LSB] 3454 _Unwind_ForcedUnwind(GCC_3.0) [LSB] _Unwind_GetCFA(GCC_3.3) 3455 [LSB] _Unwind_GetDataRelBase(GCC_3.0) [LSB] 3456 _Unwind_GetGR(GCC_3.0) [LSB] 3457 _Unwind_GetIP(GCC_3.0) [LSB] 3458 _Unwind_GetLanguageSpecificData(GCC_3.0) [LSB] 3459 _Unwind_GetRegionStart(GCC_3.0) [LSB] 3460 _Unwind_GetTextRelBase(GCC_3.0) [LSB] 3461 _Unwind_RaiseException(GCC_3.0) [LSB] _Unwind_Resume(GCC_3.0) 3462 [LSB] _Unwind_Resume_or_Rethrow(GCC_3.3) [LSB] 3463 _Unwind_SetGR(GCC_3.0) [LSB] 3464 _Unwind_SetIP(GCC_3.0) [LSB] 3465 _________________________________________________________ 3466 3467 11.9. Data Definitions for libgcc_s 3468 3469 This section defines global identifiers and their values that 3470 are associated with interfaces contained in libgcc_s. These 3471 definitions are organized into groups that correspond to 3472 system headers. This convention is used as a convenience for 3473 the reader, and does not imply the existence of these headers, 3474 or their content. Where an interface is defined as requiring a 3475 particular system header file all of the data definitions for 3476 that system header file presented here shall be in effect. 3477 3478 This section gives data definitions to promote binary 3479 application portability, not to repeat source interface 3480 definitions available elsewhere. System providers and 3481 application developers should use this ABI to supplement - not 3482 to replace - source interface definition specifications. 3483 3484 This specification uses the ISO C (1999) C Language as the 3485 reference programming language, and data definitions are 3486 specified in ISO C format. The C language is used here as a 3487 convenient notation. Using a C language description of these 3488 data objects does not preclude their use by other programming 3489 languages. 3490 _________________________________________________________ 3491 3492 11.9.1. unwind.h 3493 3494 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 3495 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 3496 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 3497 _Unwind_Stop_Fn, void *); 3498 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 3499 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 3500 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 3501 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 3502 *); 3503 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 3504 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 3505 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 3506 *); 3507 extern void _Unwind_Resume(struct _Unwind_Exception *); 3508 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 3509 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 3510 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 3511 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 3512 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 3513 _Unwind_Exception*); 3514 extern void *_Unwind_FindEnclosingFunction(void *); 3515 _________________________________________________________ 3516 3517 11.10. Interface Definitions for libgcc_s 3518 3519 Table of Contents 3520 _Unwind_DeleteException -- private C++ error handling method 3521 _Unwind_Find_FDE -- private C++ error handling method 3522 _Unwind_ForcedUnwind -- private C++ error handling method 3523 _Unwind_GetDataRelBase -- private IA64 C++ error handling 3524 method 3525 3526 _Unwind_GetGR -- private C++ error handling method 3527 _Unwind_GetIP -- private C++ error handling method 3528 _Unwind_GetLanguageSpecificData -- private C++ error handling 3529 method 3530 3531 _Unwind_GetRegionStart -- private C++ error handling method 3532 _Unwind_GetTextRelBase -- private IA64 C++ error handling 3533 method 3534 3535 _Unwind_RaiseException -- private C++ error handling method 3536 _Unwind_Resume -- private C++ error handling method 3537 _Unwind_SetGR -- private C++ error handling method 3538 _Unwind_SetIP -- private C++ error handling method 3539 3540 The interfaces defined on the following pages are included in 3541 libgcc_s and are defined by this specification. Unless 3542 otherwise noted, these interfaces shall be included in the 3543 source standard. 3544 3545 Other interfaces listed in Section 11.8 shall behave as 3546 described in the referenced base document. 3547 3548 _Unwind_DeleteException 3549 3550 Name 3551 3552 _Unwind_DeleteException -- private C++ error handling method 3553 3554 Synopsis 3555 3556 void _Unwind_DeleteException(struct _Unwind_Exception * 3557 object); 3558 3559 Description 3560 3561 _Unwind_DeleteException() deletes the given exception object. 3562 If a given runtime resumes normal execution after catching a 3563 foreign exception, it will not know how to delete that 3564 exception. Such an exception shall be deleted by calling 3565 _Unwind_DeleteException(). This is a convenience function that 3566 calls the function pointed to by the exception_cleanup field 3567 of the exception header. 3568 3569 _Unwind_Find_FDE 3570 3571 Name 3572 3573 _Unwind_Find_FDE -- private C++ error handling method 3574 3575 Synopsis 3576 3577 fde * _Unwind_Find_FDE(void * pc, struct dwarf_eh_bases * 3578 bases); 3579 3580 Description 3581 3582 _Unwind_Find_FDE() looks for the object containing pc, then 3583 inserts into bases. 3584 3585 _Unwind_ForcedUnwind 3586 3587 Name 3588 3589 _Unwind_ForcedUnwind -- private C++ error handling method 3590 3591 Synopsis 3592 3593 _Unwind_Reason_Code _Unwind_ForcedUnwind(struct 3594 _Unwind_Exception * object, _Unwind_Stop_Fn stop, void * 3595 stop_parameter); 3596 3597 Description 3598 3599 _Unwind_ForcedUnwind() raises an exception for forced 3600 unwinding, passing along the given exception object, which 3601 should have its exception_class and exception_cleanup fields 3602 set. The exception object has been allocated by the 3603 language-specific runtime, and has a language-specific format, 3604 except that it shall contain an _Unwind_Exception struct. 3605 3606 Forced unwinding is a single-phase process. stop and 3607 stop_parameter control the termination of the unwind process 3608 instead of the usual personality routine query. stop is called 3609 for each unwind frame, with the parameteres described for the 3610 usual personality routine below, plus an additional 3611 stop_parameter. 3612 3613 Return Value 3614 3615 When stop identifies the destination frame, it transfers 3616 control to the user code as appropriate without returning, 3617 normally after calling _Unwind_DeleteException(). If not, then 3618 it should return an _Unwind_Reason_Code value. 3619 3620 If stop returns any reason code other than _URC_NO_REASON, 3621 then the stack state is indeterminate from the point of view 3622 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 3623 to return, therefore, the unwind library should use the 3624 exception_cleanup entry in the exception, and then call 3625 abort(). 3626 3627 _URC_NO_REASON 3628 This is not the destination from. The unwind runtime 3629 will call frame's personality routine with the 3630 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 3631 actions, and then unwind to the next frame and call the 3632 stop() function again. 3633 3634 _URC_END_OF_STACK 3635 In order to allow _Unwind_ForcedUnwind() to perform 3636 special processing when it reaches the end of the 3637 stack, the unwind runtime will call it after the last 3638 frame is rejected, with a NULL stack pointer in the 3639 context, and the stop() function shall catch this 3640 condition. It may return this code if it cannot handle 3641 end-of-stack. 3642 3643 _URC_FATAL_PHASE2_ERROR 3644 The stop() function may return this code for other 3645 fatal conditions like stack corruption. 3646 3647 _Unwind_GetDataRelBase 3648 3649 Name 3650 3651 _Unwind_GetDataRelBase -- private IA64 C++ error handling 3652 method 3653 3654 Synopsis 3655 3656 _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context * 3657 context); 3658 3659 Description 3660 3661 _Unwind_GetDataRelBase() returns the global pointer in 3662 register one for context. 3663 3664 _Unwind_GetGR 3665 3666 Name 3667 3668 _Unwind_GetGR -- private C++ error handling method 3669 3670 Synopsis 3671 3672 _Unwind_Word _Unwind_GetGR(struct _Unwind_Context * context, 3673 int index); 3674 3675 Description 3676 3677 _Unwind_GetGR() returns data at index found in context. The 3678 register is identified by its index: 0 to 31 are for the fixed 3679 registers, and 32 to 127 are for the stacked registers. 3680 3681 During the two phases of unwinding, only GR1 has a guaranteed 3682 value, which is the global pointer of the frame referenced by 3683 the unwind context. If the register has its NAT bit set, the 3684 behavior is unspecified. 3685 3686 _Unwind_GetIP 3687 3688 Name 3689 3690 _Unwind_GetIP -- private C++ error handling method 3691 3692 Synopsis 3693 3694 _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context * context); 3695 3696 Description 3697 3698 _Unwind_GetIP() returns the instruction pointer value for the 3699 routine identified by the unwind context. 3700 3701 _Unwind_GetLanguageSpecificData 3702 3703 Name 3704 3705 _Unwind_GetLanguageSpecificData -- private C++ error handling 3706 method 3707 3708 Synopsis 3709 3710 _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct 3711 _Unwind_Context * context, uint value); 3712 3713 Description 3714 3715 _Unwind_GetLanguageSpecificData() returns the address of the 3716 language specific data area for the current stack frame. 3717 3718 _Unwind_GetRegionStart 3719 3720 Name 3721 3722 _Unwind_GetRegionStart -- private C++ error handling method 3723 3724 Synopsis 3725 3726 _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context * 3727 context); 3728 3729 Description 3730 3731 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 3732 of the beginning of the procedure or code fragment described 3733 by the current unwind descriptor block. 3734 3735 _Unwind_GetTextRelBase 3736 3737 Name 3738 3739 _Unwind_GetTextRelBase -- private IA64 C++ error handling 3740 method 3741 3742 Synopsis 3743 3744 _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context * 3745 context); 3746 3747 Description 3748 3749 _Unwind_GetTextRelBase() calls the abort method, then returns. 3750 3751 _Unwind_RaiseException 3752 3753 Name 3754 3755 _Unwind_RaiseException -- private C++ error handling method 3756 3757 Synopsis 3758 3759 _Unwind_Reason_Code _Unwind_RaiseException(struct 3760 _Unwind_Exception * object); 3761 3762 Description 3763 3764 _Unwind_RaiseException() raises an exception, passing along 3765 the given exception object, which should have its 3766 exception_class and exception_cleanup fields set. The 3767 exception object has been allocated by the language-specific 3768 runtime, and has a language-specific format, exception that it 3769 shall contain an _Unwind_Exception. 3770 3771 Return Value 3772 3773 _Unwind_RaiseException() does not return unless an error 3774 condition is found. If an error condition occurs, an 3775 _Unwind_Reason_Code is returnd: 3776 3777 _URC_END_OF_STACK 3778 The unwinder encountered the end of the stack during 3779 phase one without finding a handler. The unwind runtime 3780 will not have modified the stack. The C++ runtime will 3781 normally call uncaught_exception() in this case. 3782 3783 _URC_FATAL_PHASE1_ERROR 3784 The unwinder encountered an unexpected error during 3785 phase one, because of something like stack corruption. 3786 The unwind runtime will not have modified the stack. 3787 The C++ runtime will normally call terminate() in this 3788 case. 3789 3790 _URC_FATAL_PHASE2_ERROR 3791 The unwinder encountered an unexpected error during 3792 phase two. This is usually a throw, which will call 3793 terminate(). 3794 3795 _Unwind_Resume 3796 3797 Name 3798 3799 _Unwind_Resume -- private C++ error handling method 3800 3801 Synopsis 3802 3803 void _Unwind_Resume(struct _Unwind_Exception * object); 3804 3805 Description 3806 3807 _Unwind_Resume() resumes propagation of an existing exception 3808 object. A call to this routine is inserted as the end of a 3809 landing pad that performs cleanup, but does not resume normal 3810 execution. It causes unwinding to proceed further. 3811 3812 _Unwind_SetGR 3813 3814 Name 3815 3816 _Unwind_SetGR -- private C++ error handling method 3817 3818 Synopsis 3819 3820 void _Unwind_SetGR(struct _Unwind_Context * context, int 3821 index, uint value); 3822 3823 Description 3824 3825 _Unwind_SetGR() sets the value of the register indexed for the 3826 routine identified by the unwind context. 3827 3828 _Unwind_SetIP 3829 3830 Name 3831 3832 _Unwind_SetIP -- private C++ error handling method 3833 3834 Synopsis 3835 3836 void _Unwind_SetIP(struct _Unwind_Context * context, uint 3837 value); 3838 3839 Description 3840 3841 _Unwind_SetIP() sets the value of the instruction pointer for 3842 the routine identified by the unwind context 3843 _________________________________________________________ 3844 3845 11.11. Interfaces for libdl 3846 3847 Table 11-33 defines the library name and shared object name 3848 for the libdl library 3849 3850 Table 11-33. libdl Definition 3851 Library: libdl 3852 SONAME: libdl.so.2 3853 3854 The behavior of the interfaces in this library is specified by 3855 the following specifications: 3856 3857 [LSB] ISO/IEC 23360 Part 1 3858 [SUSv3] ISO POSIX (2003) 3859 _________________________________________________________ 3860 3861 11.11.1. Dynamic Loader 3862 _________________________________________________________ 3863 3864 11.11.1.1. Interfaces for Dynamic Loader 3865 3866 An LSB conforming implementation shall provide the 3867 architecture specific functions for Dynamic Loader specified 3868 in Table 11-34, with the full mandatory functionality as 3869 described in the referenced underlying specification. 3870 3871 Table 11-34. libdl - Dynamic Loader Function Interfaces 3872 dladdr(GLIBC_2.3) [LSB] dlclose(GLIBC_2.3) [SUSv3] 3873 dlerror(GLIBC_2.3) [SUSv3] dlopen(GLIBC_2.3) [LSB] 3874 dlsym(GLIBC_2.3) [LSB] 3875 _________________________________________________________ 3876 3877 11.12. Data Definitions for libdl 3878 3879 This section defines global identifiers and their values that 3880 are associated with interfaces contained in libdl. These 3881 definitions are organized into groups that correspond to 3882 system headers. This convention is used as a convenience for 3883 the reader, and does not imply the existence of these headers, 3884 or their content. Where an interface is defined as requiring a 3885 particular system header file all of the data definitions for 3886 that system header file presented here shall be in effect. 3887 3888 This section gives data definitions to promote binary 3889 application portability, not to repeat source interface 3890 definitions available elsewhere. System providers and 3891 application developers should use this ABI to supplement - not 3892 to replace - source interface definition specifications. 3893 3894 This specification uses the ISO C (1999) C Language as the 3895 reference programming language, and data definitions are 3896 specified in ISO C format. The C language is used here as a 3897 convenient notation. Using a C language description of these 3898 data objects does not preclude their use by other programming 3899 languages. 3900 _________________________________________________________ 3901 3902 11.12.1. dlfcn.h 3903 3904 /* 3905 * This header is architecture neutral 3906 * Please refer to the generic specification for details 3907 */ 3908 _________________________________________________________ 3909 3910 11.13. Interfaces for libcrypt 3911 3912 Table 11-35 defines the library name and shared object name 3913 for the libcrypt library 3914 3915 Table 11-35. libcrypt Definition 3916 Library: libcrypt 3917 SONAME: libcrypt.so.1 3918 3919 The behavior of the interfaces in this library is specified by 3920 the following specifications: 3921 3922 [SUSv3] ISO POSIX (2003) 3923 _________________________________________________________ 3924 3925 11.13.1. Encryption 3926 _________________________________________________________ 3927 3928 11.13.1.1. Interfaces for Encryption 3929 3930 An LSB conforming implementation shall provide the 3931 architecture specific functions for Encryption specified in 3932 Table 11-36, with the full mandatory functionality as 3933 described in the referenced underlying specification. 3934 3935 Table 11-36. libcrypt - Encryption Function Interfaces 3936 crypt(GLIBC_2.3) [SUSv3] encrypt(GLIBC_2.3) [SUSv3] 3937 setkey(GLIBC_2.3) [SUSv3] 3938 3939 IV. Utility Libraries 3940 3941 Table of Contents 3942 12. Libraries 3943 3944 12.1. Interfaces for libz 3945 3946 12.1.1. Compression Library 3947 3948 12.2. Data Definitions for libz 3949 3950 12.2.1. zlib.h 3951 3952 12.3. Interfaces for libncurses 3953 3954 12.3.1. Curses 3955 3956 12.4. Data Definitions for libncurses 3957 3958 12.4.1. curses.h 3959 3960 12.5. Interfaces for libutil 3961 3962 12.5.1. Utility Functions 3963 _________________________________________________________ 3964 3965 Chapter 12. Libraries 3966 3967 An LSB-conforming implementation shall also support some 3968 utility libraries which are built on top of the interfaces 3969 provided by the base libraries. These libraries implement 3970 common functionality, and hide additional system dependent 3971 information such as file formats and device names. 3972 _________________________________________________________ 3973 3974 12.1. Interfaces for libz 3975 3976 Table 12-1 defines the library name and shared object name for 3977 the libz library 3978 3979 Table 12-1. libz Definition 3980 Library: libz 3981 SONAME: libz.so.1 3982 _________________________________________________________ 3983 3984 12.1.1. Compression Library 3985 _________________________________________________________ 3986 3987 12.1.1.1. Interfaces for Compression Library 3988 3989 No external functions are defined for libz - Compression 3990 Library in this part of the specification. See also the 3991 generic specification, ISO/IEC 23360 Part 1. 3992 _________________________________________________________ 3993 3994 12.2. Data Definitions for libz 3995 3996 This section defines global identifiers and their values that 3997 are associated with interfaces contained in libz. These 3998 definitions are organized into groups that correspond to 3999 system headers. This convention is used as a convenience for 4000 the reader, and does not imply the existence of these headers, 4001 or their content. Where an interface is defined as requiring a 4002 particular system header file all of the data definitions for 4003 that system header file presented here shall be in effect. 4004 4005 This section gives data definitions to promote binary 4006 application portability, not to repeat source interface 4007 definitions available elsewhere. System providers and 4008 application developers should use this ABI to supplement - not 4009 to replace - source interface definition specifications. 4010 4011 This specification uses the ISO C (1999) C Language as the 4012 reference programming language, and data definitions are 4013 specified in ISO C . The C language is used here as a 4014 convenient notation. Using a C language description of these 4015 data objects does not preclude their use by other programming 4016 languages. 4017 _________________________________________________________ 4018 4019 12.2.1. zlib.h 4020 4021 /* 4022 * This header is architecture neutral 4023 * Please refer to the generic specification for details 4024 */ 4025 _________________________________________________________ 4026 4027 12.3. Interfaces for libncurses 4028 4029 Table 12-2 defines the library name and shared object name for 4030 the libncurses library 4031 4032 Table 12-2. libncurses Definition 4033 Library: libncurses 4034 SONAME: libncurses.so.5 4035 _________________________________________________________ 4036 4037 12.3.1. Curses 4038 _________________________________________________________ 4039 4040 12.3.1.1. Interfaces for Curses 4041 4042 No external functions are defined for libncurses - Curses in 4043 this part of the specification. See also the generic 4044 specification, ISO/IEC 23360 Part 1. 4045 _________________________________________________________ 4046 4047 12.4. Data Definitions for libncurses 4048 4049 This section defines global identifiers and their values that 4050 are associated with interfaces contained in libncurses. These 4051 definitions are organized into groups that correspond to 4052 system headers. This convention is used as a convenience for 4053 the reader, and does not imply the existence of these headers, 4054 or their content. Where an interface is defined as requiring a 4055 particular system header file all of the data definitions for 4056 that system header file presented here shall be in effect. 4057 4058 This section gives data definitions to promote binary 4059 application portability, not to repeat source interface 4060 definitions available elsewhere. System providers and 4061 application developers should use this ABI to supplement - not 4062 to replace - source interface definition specifications. 4063 4064 This specification uses the ISO C (1999) C Language as the 4065 reference programming language, and data definitions are 4066 specified in ISO C . The C language is used here as a 4067 convenient notation. Using a C language description of these 4068 data objects does not preclude their use by other programming 4069 languages. 4070 _________________________________________________________ 4071 4072 12.4.1. curses.h 4073 4074 /* 4075 * This header is architecture neutral 4076 * Please refer to the generic specification for details 4077 */ 4078 _________________________________________________________ 4079 4080 12.5. Interfaces for libutil 4081 4082 Table 12-3 defines the library name and shared object name for 4083 the libutil library 4084 4085 Table 12-3. libutil Definition 4086 Library: libutil 4087 SONAME: libutil.so.1 4088 4089 The behavior of the interfaces in this library is specified by 4090 the following specifications: 4091 4092 [LSB] ISO/IEC 23360 Part 1 4093 _________________________________________________________ 4094 4095 12.5.1. Utility Functions 4096 _________________________________________________________ 4097 4098 12.5.1.1. Interfaces for Utility Functions 4099 4100 An LSB conforming implementation shall provide the 4101 architecture specific functions for Utility Functions 4102 specified in Table 12-4, with the full mandatory functionality 4103 as described in the referenced underlying specification. 4104 4105 Table 12-4. libutil - Utility Functions Function Interfaces 4106 forkpty(GLIBC_2.3) [LSB] login(GLIBC_2.3) [LSB] 4107 login_tty(GLIBC_2.3) [LSB] logout(GLIBC_2.3) [LSB] 4108 logwtmp(GLIBC_2.3) [LSB] openpty(GLIBC_2.3) [LSB] 4109 4110 V. Package Format and Installation 4111 4112 Table of Contents 4113 13. Software Installation 4114 4115 13.1. Package Dependencies 4116 13.2. Package Architecture Considerations 4117 _________________________________________________________ 4118 4119 Chapter 13. Software Installation 4120 _________________________________________________________ 4121 4122 13.1. Package Dependencies 4123 4124 The LSB runtime environment shall provde the following 4125 dependencies. 4126 4127 lsb-core-ppc64 4128 4129 This dependency is used to indicate that the application is 4130 dependent on features contained in the LSB-Core specification. 4131 4132 This dependency shall have a version of 3.0. 4133 4134 Other LSB modules may add additional dependencies; such 4135 dependencies shall have the format lsb-module-ppc64. 4136 _________________________________________________________ 4137 4138 13.2. Package Architecture Considerations 4139 4140 All packages must specify an architecture of ppc64. A LSB 4141 runtime environment must accept an architecture of ppc64 even 4142 if the native architecture is different. 4143 4144 The archnum value in the Lead Section shall be 0x0010. 4145 _________________________________________________________ 4146 4147 Appendix A. Alphabetical Listing of Interfaces 4148 _________________________________________________________ 4149 4150 A.1. libgcc_s 4151 4152 The behavior of the interfaces in this library is specified by 4153 the following Standards. 4154 4155 ISO/IEC 23360 Part 1 [LSB] 4156 4157 Table A-1. libgcc_s Function Interfaces 4158 _Unwind_Backtrace[LSB] _Unwind_GetDataRelBase[LSB] 4159 _Unwind_RaiseException[LSB] 4160 _Unwind_DeleteException[LSB] _Unwind_GetGR[LSB] 4161 _Unwind_Resume[LSB] 4162 _Unwind_FindEnclosingFunction[LSB] _Unwind_GetIP[LSB] 4163 _Unwind_Resume_or_Rethrow[LSB] 4164 _Unwind_Find_FDE[LSB] _Unwind_GetLanguageSpecificData[LSB] 4165 _Unwind_SetGR[LSB] 4166 _Unwind_ForcedUnwind[LSB] _Unwind_GetRegionStart[LSB] 4167 _Unwind_SetIP[LSB] 4168 _Unwind_GetCFA[LSB] _Unwind_GetTextRelBase[LSB] 4169 _________________________________________________________ 4170 4171 Appendix B. GNU Free Documentation License (Informative) 4172 4173 This specification is published under the terms of the GNU 4174 Free Documentation License, Version 1.1, March 2000 4175 4176 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 4177 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 4178 permitted to copy and distribute verbatim copies of this 4179 license document, but changing it is not allowed. 4180 _________________________________________________________ 4181 4182 B.1. PREAMBLE 4183 4184 The purpose of this License is to make a manual, textbook, or 4185 other written document "free" in the sense of freedom: to 4186 assure everyone the effective freedom to copy and redistribute 4187 it, with or without modifying it, either commercially or 4188 noncommercially. Secondarily, this License preserves for the 4189 author and publisher a way to get credit for their work, while 4190 not being considered responsible for modifications made by 4191 others. 4192 4193 This License is a kind of "copyleft", which means that 4194 derivative works of the document must themselves be free in 4195 the same sense. It complements the GNU General Public License, 4196 which is a copyleft license designed for free software. 4197 4198 We have designed this License in order to use it for manuals 4199 for free software, because free software needs free 4200 documentation: a free program should come with manuals 4201 providing the same freedoms that the software does. But this 4202 License is not limited to software manuals; it can be used for 4203 any textual work, regardless of subject matter or whether it 4204 is published as a printed book. We recommend this License 4205 principally for works whose purpose is instruction or 4206 reference. 4207 _________________________________________________________ 4208 4209 B.2. APPLICABILITY AND DEFINITIONS 4210 4211 This License applies to any manual or other work that contains 4212 a notice placed by the copyright holder saying it can be 4213 distributed under the terms of this License. The "Document", 4214 below, refers to any such manual or work. Any member of the 4215 public is a licensee, and is addressed as "you". 4216 4217 A "Modified Version" of the Document means any work containing 4218 the Document or a portion of it, either copied verbatim, or 4219 with modifications and/or translated into another language. 4220 4221 A "Secondary Section" is a named appendix or a front-matter 4222 section of the Document that deals exclusively with the 4223 relationship of the publishers or authors of the Document to 4224 the Document's overall subject (or to related matters) and 4225 contains nothing that could fall directly within that overall 4226 subject. (For example, if the Document is in part a textbook 4227 of mathematics, a Secondary Section may not explain any 4228 mathematics.) The relationship could be a matter of historical 4229 connection with the subject or with related matters, or of 4230 legal, commercial, philosophical, ethical or political 4231 position regarding them. 4232 4233 The "Invariant Sections" are certain Secondary Sections whose 4234 titles are designated, as being those of Invariant Sections, 4235 in the notice that says that the Document is released under 4236 this License. 4237 4238 The "Cover Texts" are certain short passages of text that are 4239 listed, as Front-Cover Texts or Back-Cover Texts, in the 4240 notice that says that the Document is released under this 4241 License. 4242 4243 A "Transparent" copy of the Document means a machine-readable 4244 copy, represented in a format whose specification is available 4245 to the general public, whose contents can be viewed and edited 4246 directly and straightforwardly with generic text editors or 4247 (for images composed of pixels) generic paint programs or (for 4248 drawings) some widely available drawing editor, and that is 4249 suitable for input to text formatters or for automatic 4250 translation to a variety of formats suitable for input to text 4251 formatters. A copy made in an otherwise Transparent file 4252 format whose markup has been designed to thwart or discourage 4253 subsequent modification by readers is not Transparent. A copy 4254 that is not "Transparent" is called "Opaque". 4255 4256 Examples of suitable formats for Transparent copies include 4257 plain ASCII without markup, Texinfo input format, LaTeX input 4258 format, SGML or XML using a publicly available DTD, and 4259 standard-conforming simple HTML designed for human 4260 modification. Opaque formats include PostScript, PDF, 4261 proprietary formats that can be read and edited only by 4262 proprietary word processors, SGML or XML for which the DTD 4263 and/or processing tools are not generally available, and the 4264 machine-generated HTML produced by some word processors for 4265 output purposes only. 4266 4267 The "Title Page" means, for a printed book, the title page 4268 itself, plus such following pages as are needed to hold, 4269 legibly, the material this License requires to appear in the 4270 title page. For works in formats which do not have any title 4271 page as such, "Title Page" means the text near the most 4272 prominent appearance of the work's title, preceding the 4273 beginning of the body of the text. 4274 _________________________________________________________ 4275 4276 B.3. VERBATIM COPYING 4277 4278 You may copy and distribute the Document in any medium, either 4279 commercially or noncommercially, provided that this License, 4280 the copyright notices, and the license notice saying this 4281 License applies to the Document are reproduced in all copies, 4282 and that you add no other conditions whatsoever to those of 4283 this License. You may not use technical measures to obstruct 4284 or control the reading or further copying of the copies you 4285 make or distribute. However, you may accept compensation in 4286 exchange for copies. If you distribute a large enough number 4287 of copies you must also follow the conditions in section 3. 4288 4289 You may also lend copies, under the same conditions stated 4290 above, and you may publicly display copies. 4291 _________________________________________________________ 4292 4293 B.4. COPYING IN QUANTITY 4294 4295 If you publish printed copies of the Document numbering more 4296 than 100, and the Document's license notice requires Cover 4297 Texts, you must enclose the copies in covers that carry, 4298 clearly and legibly, all these Cover Texts: Front-Cover Texts 4299 on the front cover, and Back-Cover Texts on the back cover. 4300 Both covers must also clearly and legibly identify you as the 4301 publisher of these copies. The front cover must present the 4302 full title with all words of the title equally prominent and 4303 visible. You may add other material on the covers in addition. 4304 Copying with changes limited to the covers, as long as they 4305 preserve the title of the Document and satisfy these 4306 conditions, can be treated as verbatim copying in other 4307 respects. 4308 4309 If the required texts for either cover are too voluminous to 4310 fit legibly, you should put the first ones listed (as many as 4311 fit reasonably) on the actual cover, and continue the rest 4312 onto adjacent pages. 4313 4314 If you publish or distribute Opaque copies of the Document 4315 numbering more than 100, you must either include a 4316 machine-readable Transparent copy along with each Opaque copy, 4317 or state in or with each Opaque copy a publicly-accessible 4318 computer-network location containing a complete Transparent 4319 copy of the Document, free of added material, which the 4320 general network-using public has access to download 4321 anonymously at no charge using public-standard network 4322 protocols. If you use the latter option, you must take 4323 reasonably prudent steps, when you begin distribution of 4324 Opaque copies in quantity, to ensure that this Transparent 4325 copy will remain thus accessible at the stated location until 4326 at least one year after the last time you distribute an Opaque 4327 copy (directly or through your agents or retailers) of that 4328 edition to the public. 4329 4330 It is requested, but not required, that you contact the 4331 authors of the Document well before redistributing any large 4332 number of copies, to give them a chance to provide you with an 4333 updated version of the Document. 4334 _________________________________________________________ 4335 4336 B.5. MODIFICATIONS 4337 4338 You may copy and distribute a Modified Version of the Document 4339 under the conditions of sections 2 and 3 above, provided that 4340 you release the Modified Version under precisely this License, 4341 with the Modified Version filling the role of the Document, 4342 thus licensing distribution and modification of the Modified 4343 Version to whoever possesses a copy of it. In addition, you 4344 must do these things in the Modified Version: 4345 4346 A. Use in the Title Page (and on the covers, if any) a title 4347 distinct from that of the Document, and from those of 4348 previous versions (which should, if there were any, be 4349 listed in the History section of the Document). You may 4350 use the same title as a previous version if the original 4351 publisher of that version gives permission. 4352 B. List on the Title Page, as authors, one or more persons or 4353 entities responsible for authorship of the modifications 4354 in the Modified Version, together with at least five of 4355 the principal authors of the Document (all of its 4356 principal authors, if it has less than five). 4357 C. State on the Title page the name of the publisher of the 4358 Modified Version, as the publisher. 4359 D. Preserve all the copyright notices of the Document. 4360 E. Add an appropriate copyright notice for your modifications 4361 adjacent to the other copyright notices. 4362 F. Include, immediately after the copyright notices, a 4363 license notice giving the public permission to use the 4364 Modified Version under the terms of this License, in the 4365 form shown in the Addendum below. 4366 G. Preserve in that license notice the full lists of 4367 Invariant Sections and required Cover Texts given in the 4368 Document's license notice. 4369 H. Include an unaltered copy of this License. 4370 I. Preserve the section entitled "History", and its title, 4371 and add to it an item stating at least the title, year, 4372 new authors, and publisher of the Modified Version as 4373 given on the Title Page. If there is no section entitled 4374 "History" in the Document, create one stating the title, 4375 year, authors, and publisher of the Document as given on 4376 its Title Page, then add an item describing the Modified 4377 Version as stated in the previous sentence. 4378 J. Preserve the network location, if any, given in the 4379 Document for public access to a Transparent copy of the 4380 Document, and likewise the network locations given in the 4381 Document for previous versions it was based on. These may 4382 be placed in the "History" section. You may omit a network 4383 location for a work that was published at least four years 4384 before the Document itself, or if the original publisher 4385 of the version it refers to gives permission. 4386 K. In any section entitled "Acknowledgements" or 4387 "Dedications", preserve the section's title, and preserve 4388 in the section all the substance and tone of each of the 4389 contributor acknowledgements and/or dedications given 4390 therein. 4391 L. Preserve all the Invariant Sections of the Document, 4392 unaltered in their text and in their titles. Section 4393 numbers or the equivalent are not considered part of the 4394 section titles. 4395 M. Delete any section entitled "Endorsements". Such a section 4396 may not be included in the Modified Version. 4397 N. Do not retitle any existing section as "Endorsements" or 4398 to conflict in title with any Invariant Section. 4399 4400 If the Modified Version includes new front-matter sections or 4401 appendices that qualify as Secondary Sections and contain no 4402 material copied from the Document, you may at your option 4403 designate some or all of these sections as invariant. To do 4404 this, add their titles to the list of Invariant Sections in 4405 the Modified Version's license notice. These titles must be 4406 distinct from any other section titles. 4407 4408 You may add a section entitled "Endorsements", provided it 4409 contains nothing but endorsements of your Modified Version by 4410 various parties--for example, statements of peer review or 4411 that the text has been approved by an organization as the 4412 authoritative definition of a standard. 4413 4414 You may add a passage of up to five words as a Front-Cover 4415 Text, and a passage of up to 25 words as a Back-Cover Text, to 4416 the end of the list of Cover Texts in the Modified Version. 4417 Only one passage of Front-Cover Text and one of Back-Cover 4418 Text may be added by (or through arrangements made by) any one 4419 entity. If the Document already includes a cover text for the 4420 same cover, previously added by you or by arrangement made by 4421 the same entity you are acting on behalf of, you may not add 4422 another; but you may replace the old one, on explicit 4423 permission from the previous publisher that added the old one. 4424 4425 The author(s) and publisher(s) of the Document do not by this 4426 License give permission to use their names for publicity for 4427 or to assert or imply endorsement of any Modified Version. 4428 _________________________________________________________ 4429 4430 B.6. COMBINING DOCUMENTS 4431 4432 You may combine the Document with other documents released 4433 under this License, under the terms defined in section 4 above 4434 for modified versions, provided that you include in the 4435 combination all of the Invariant Sections of all of the 4436 original documents, unmodified, and list them all as Invariant 4437 Sections of your combined work in its license notice. 4438 4439 The combined work need only contain one copy of this License, 4440 and multiple identical Invariant Sections may be replaced with 4441 a single copy. If there are multiple Invariant Sections with 4442 the same name but different contents, make the title of each 4443 such section unique by adding at the end of it, in 4444 parentheses, the name of the original author or publisher of 4445 that section if known, or else a unique number. Make the same 4446 adjustment to the section titles in the list of Invariant 4447 Sections in the license notice of the combined work. 4448 4449 In the combination, you must combine any sections entitled 4450 "History" in the various original documents, forming one 4451 section entitled "History"; likewise combine any sections 4452 entitled "Acknowledgements", and any sections entitled 4453 "Dedications". You must delete all sections entitled 4454 "Endorsements." 4455 _________________________________________________________ 4456 4457 B.7. COLLECTIONS OF DOCUMENTS 4458 4459 You may make a collection consisting of the Document and other 4460 documents released under this License, and replace the 4461 individual copies of this License in the various documents 4462 with a single copy that is included in the collection, 4463 provided that you follow the rules of this License for 4464 verbatim copying of each of the documents in all other 4465 respects. 4466 4467 You may extract a single document from such a collection, and 4468 distribute it individually under this License, provided you 4469 insert a copy of this License into the extracted document, and 4470 follow this License in all other respects regarding verbatim 4471 copying of that document. 4472 _________________________________________________________ 4473 4474 B.8. AGGREGATION WITH INDEPENDENT WORKS 4475 4476 A compilation of the Document or its derivatives with other 4477 separate and independent documents or works, in or on a volume 4478 of a storage or distribution medium, does not as a whole count 4479 as a Modified Version of the Document, provided no compilation 4480 copyright is claimed for the compilation. Such a compilation 4481 is called an "aggregate", and this License does not apply to 4482 the other self-contained works thus compiled with the 4483 Document, on account of their being thus compiled, if they are 4484 not themselves derivative works of the Document. 4485 4486 If the Cover Text requirement of section 3 is applicable to 4487 these copies of the Document, then if the Document is less 4488 than one quarter of the entire aggregate, the Document's Cover 4489 Texts may be placed on covers that surround only the Document 4490 within the aggregate. Otherwise they must appear on covers 4491 around the whole aggregate. 4492 _________________________________________________________ 4493 4494 B.9. TRANSLATION 4495 4496 Translation is considered a kind of modification, so you may 4497 distribute translations of the Document under the terms of 4498 section 4. Replacing Invariant Sections with translations 4499 requires special permission from their copyright holders, but 4500 you may include translations of some or all Invariant Sections 4501 in addition to the original versions of these Invariant 4502 Sections. You may include a translation of this License 4503 provided that you also include the original English version of 4504 this License. In case of a disagreement between the 4505 translation and the original English version of this License, 4506 the original English version will prevail. 4507 _________________________________________________________ 4508 4509 B.10. TERMINATION 4510 4511 You may not copy, modify, sublicense, or distribute the 4512 Document except as expressly provided for under this License. 4513 Any other attempt to copy, modify, sublicense or distribute 4514 the Document is void, and will automatically terminate your 4515 rights under this License. However, parties who have received 4516 copies, or rights, from you under this License will not have 4517 their licenses terminated so long as such parties remain in 4518 full compliance. 4519 _________________________________________________________ 4520 4521 B.11. FUTURE REVISIONS OF THIS LICENSE 4522 4523 The Free Software Foundation may publish new, revised versions 4524 of the GNU Free Documentation License from time to time. Such 4525 new versions will be similar in spirit to the present version, 4526 but may differ in detail to address new problems or concerns. 4527 See http://www.gnu.org/copyleft/. 4528 4529 Each version of the License is given a distinguishing version 4530 number. If the Document specifies that a particular numbered 4531 version of this License "or any later version" applies to it, 4532 you have the option of following the terms and conditions 4533 either of that specified version or of any later version that 4534 has been published (not as a draft) by the Free Software 4535 Foundation. If the Document does not specify a version number 4536 of this License, you may choose any version ever published 4537 (not as a draft) by the Free Software Foundation. 4538 _________________________________________________________ 4539 4540 B.12. How to use this License for your documents 4541 4542 To use this License in a document you have written, include a 4543 copy of the License in the document and put the following 4544 copyright and license notices just after the title page: 4545 4546 Copyright (c) YEAR YOUR NAME. Permission is granted to 4547 copy, distribute and/or modify this document under the 4548 terms of the GNU Free Documentation License, Version 1.1 or 4549 any later version published by the Free Software 4550 Foundation; with the Invariant Sections being LIST THEIR 4551 TITLES, with the Front-Cover Texts being LIST, and with the 4552 Back-Cover Texts being LIST. A copy of the license is 4553 included in the section entitled "GNU Free Documentation 4554 License". 4555 4556 If you have no Invariant Sections, write "with no Invariant 4557 Sections" instead of saying which ones are invariant. If you 4558 have no Front-Cover Texts, write "no Front-Cover Texts" 4559 instead of "Front-Cover Texts being LIST"; likewise for 4560 Back-Cover Texts. 4561 4562 If your document contains nontrivial examples of program code, 4563 we recommend releasing these examples in parallel under your 4564 choice of free software license, such as the GNU General 4565 Public License, to permit their use in free software.