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