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