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