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