1 2 Linux Standard Base Core Specification for S390X 3.1 3 4 Copyright © 2004, 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 a trademark of Linus Torvalds. 28 29 UNIX a registered trademark of the Open Group in the United 30 States and other countries. 31 32 LSB is a trademark of the Free Standards Group in the USA and 33 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 trademarks of Intel Corporation. 39 40 PowerPC and PowerPC Architecture are trademarks of the IBM 41 Corporation. 42 43 OpenGL is a registered trademark of Silicon Graphics, Inc. 44 _________________________________________________________ 45 46 Table of Contents 47 Foreword 48 Introduction 49 I. Introductory Elements 50 51 1. Scope 52 53 1.1. General 54 1.2. Module Specific Scope 55 56 2. References 57 58 2.1. Normative References 59 2.2. Informative References/Bibliography 60 61 3. Requirements 62 63 3.1. Relevant Libraries 64 3.2. LSB Implementation Conformance 65 3.3. LSB Application Conformance 66 67 4. Definitions 68 5. Terminology 69 6. Documentation Conventions 70 71 II. Executable and Linking Format (ELF) 72 73 7. Introduction 74 8. Low Level System Information 75 76 8.1. Machine Interface 77 8.2. Function Calling Sequence 78 8.3. Operating System Interface 79 8.4. Process Initialization 80 8.5. Coding Examples 81 8.6. Debug Information 82 83 9. Object Format 84 85 9.1. Introduction 86 9.2. ELF Header 87 9.3. Sections 88 9.4. Symbol Table 89 9.5. Relocation 90 91 10. Program Loading and Dynamic Linking 92 93 10.1. Introduction 94 10.2. Program Loading 95 10.3. Dynamic Linking 96 97 III. Base Libraries 98 99 11. Libraries 100 101 11.1. Program Interpreter/Dynamic Linker 102 11.2. Interfaces for libc 103 11.3. Data Definitions for libc 104 11.4. Interfaces for libm 105 11.5. Data Definitions for libm 106 11.6. Interfaces for libpthread 107 11.7. Data Definitions for libpthread 108 11.8. Interfaces for libgcc_s 109 11.9. Data Definitions for libgcc_s 110 11.10. Interface Definitions for libgcc_s 111 11.11. Interfaces for libdl 112 11.12. Data Definitions for libdl 113 11.13. Interfaces for libcrypt 114 115 IV. Utility Libraries 116 117 12. Libraries 118 119 12.1. Interfaces for libz 120 12.2. Data Definitions for libz 121 12.3. Interfaces for libncurses 122 12.4. Data Definitions for libncurses 123 12.5. Interfaces for libutil 124 125 V. Package Format and Installation 126 127 13. Software Installation 128 129 13.1. Package Dependencies 130 13.2. Package Architecture Considerations 131 132 A. Alphabetical Listing of Interfaces 133 134 A.1. libgcc_s 135 136 B. GNU Free Documentation License (Informative) 137 138 B.1. PREAMBLE 139 B.2. APPLICABILITY AND DEFINITIONS 140 B.3. VERBATIM COPYING 141 B.4. COPYING IN QUANTITY 142 B.5. MODIFICATIONS 143 B.6. COMBINING DOCUMENTS 144 B.7. COLLECTIONS OF DOCUMENTS 145 B.8. AGGREGATION WITH INDEPENDENT WORKS 146 B.9. TRANSLATION 147 B.10. TERMINATION 148 B.11. FUTURE REVISIONS OF THIS LICENSE 149 B.12. How to use this License for your documents 150 151 List of Tables 152 2-1. Normative References 153 2-2. Other References 154 3-1. Standard Library Names 155 9-1. ELF Special Sections 156 9-2. Additional Special Sections 157 11-1. libc Definition 158 11-2. libc - RPC Function Interfaces 159 11-3. libc - System Calls Function Interfaces 160 11-4. libc - Standard I/O Function Interfaces 161 11-5. libc - Standard I/O Data Interfaces 162 11-6. libc - Signal Handling Function Interfaces 163 11-7. libc - Signal Handling Data Interfaces 164 11-8. libc - Localization Functions Function Interfaces 165 11-9. libc - Localization Functions Data Interfaces 166 11-10. libc - Socket Interface Function Interfaces 167 11-11. libc - Wide Characters Function Interfaces 168 11-12. libc - String Functions Function Interfaces 169 11-13. libc - IPC Functions Function Interfaces 170 11-14. libc - Regular Expressions Function Interfaces 171 11-15. libc - Character Type Functions Function Interfaces 172 11-16. libc - Time Manipulation Function Interfaces 173 11-17. libc - Time Manipulation Data Interfaces 174 11-18. libc - Terminal Interface Functions Function Interfaces 175 11-19. libc - System Database Interface Function Interfaces 176 11-20. libc - Language Support Function Interfaces 177 11-21. libc - Large File Support Function Interfaces 178 11-22. libc - Standard Library Function Interfaces 179 11-23. libc - Standard Library Data Interfaces 180 11-24. libm Definition 181 11-25. libm - Math Function Interfaces 182 11-26. libm - Math Data Interfaces 183 11-27. libpthread Definition 184 11-28. libpthread - Realtime Threads Function Interfaces 185 11-29. libpthread - Posix Threads Function Interfaces 186 11-30. libpthread - Thread aware versions of libc interfaces 187 Function Interfaces 188 189 11-31. libgcc_s Definition 190 11-32. libgcc_s - Unwind Library Function Interfaces 191 11-33. libdl Definition 192 11-34. libdl - Dynamic Loader Function Interfaces 193 11-35. libcrypt Definition 194 11-36. libcrypt - Encryption Function Interfaces 195 12-1. libz Definition 196 12-2. libncurses Definition 197 12-3. libutil Definition 198 12-4. libutil - Utility Functions Function Interfaces 199 A-1. libgcc_s Function Interfaces 200 _________________________________________________________ 201 202 Foreword 203 204 This is version 3.1 of the Linux Standard Base Core 205 Specification for S390X. This specification is part of a 206 family of specifications under the general title "Linux 207 Standard Base". Developers of applications or implementations 208 interested in using the LSB trademark should see the Free 209 Standards Group Certification Policy for details. 210 _________________________________________________________ 211 212 Introduction 213 214 The LSB defines a binary interface for application programs 215 that are compiled and packaged for LSB-conforming 216 implementations on many different hardware architectures. 217 Since a binary specification shall include information 218 specific to the computer processor architecture for which it 219 is intended, it is not possible for a single document to 220 specify the interface for all possible LSB-conforming 221 implementations. Therefore, the LSB is a family of 222 specifications, rather than a single one. 223 224 This document should be used in conjunction with the documents 225 it references. This document enumerates the system components 226 it includes, but descriptions of those components may be 227 included entirely or partly in this document, partly in other 228 documents, or entirely in other reference documents. For 229 example, the section that describes system service routines 230 includes a list of the system routines supported in this 231 interface, formal declarations of the data structures they use 232 that are visible to applications, and a pointer to the 233 underlying referenced specification for information about the 234 syntax and semantics of each call. Only those routines not 235 described in standards referenced by this document, or 236 extensions to those standards, are described in the detail. 237 Information referenced in this way is as much a part of this 238 document as is the information explicitly included here. 239 240 The specification carries a version number of either the form 241 x.y or x.y.z. This version number carries the following 242 meaning: 243 244 * The first number (x) is the major version number. All 245 versions with the same major version number should share 246 binary compatibility. Any addition or deletion of a new 247 library results in a new version number. Interfaces marked 248 as deprecated may be removed from the specification at a 249 major version change. 250 * The second number (y) is the minor version number. 251 Individual interfaces may be added if all certified 252 implementations already had that (previously undocumented) 253 interface. Interfaces may be marked as deprecated at a 254 minor version change. Other minor changes may be permitted 255 at the discretion of the LSB workgroup. 256 * The third number (z), if present, is the editorial level. 257 Only editorial changes should be included in such 258 versions. 259 260 Since this specification is a descriptive Application Binary 261 Interface, and not a source level API specification, it is not 262 possible to make a guarantee of 100% backward compatibility 263 between major releases. However, it is the intent that those 264 parts of the binary interface that are visible in the source 265 level API will remain backward compatible from version to 266 version, except where a feature marked as "Deprecated" in one 267 release may be removed from a future release. 268 269 Implementors are strongly encouraged to make use of symbol 270 versioning to permit simultaneous support of applications 271 conforming to different releases of this specification. 272 273 I. Introductory Elements 274 275 Table of Contents 276 1. Scope 277 278 1.1. General 279 1.2. Module Specific Scope 280 281 2. References 282 283 2.1. Normative References 284 2.2. Informative References/Bibliography 285 286 3. Requirements 287 288 3.1. Relevant Libraries 289 3.2. LSB Implementation Conformance 290 3.3. LSB Application Conformance 291 292 4. Definitions 293 5. Terminology 294 6. Documentation Conventions 295 _________________________________________________________ 296 297 Chapter 1. Scope 298 299 1.1. General 300 301 The Linux Standard Base (LSB) defines a system interface for 302 compiled applications and a minimal environment for support of 303 installation scripts. Its purpose is to enable a uniform 304 industry standard environment for high-volume applications 305 conforming to the LSB. 306 307 These specifications are composed of two basic parts: A common 308 specification ("LSB-generic" or "generic LSB") describing 309 those parts of the interface that remain constant across all 310 implementations of the LSB, and an architecture-specific 311 supplement ("LSB-arch" or "archLSB") describing the parts of 312 the interface that vary by processor architecture. Together, 313 the LSB-generic and the architecture-specific supplement for a 314 single hardware architecture provide a complete interface 315 specification for compiled application programs on systems 316 that share a common hardware architecture. 317 318 The LSB-generic document shall be used in conjunction with an 319 architecture-specific supplement. Whenever a section of the 320 LSB-generic specification shall be supplemented by 321 architecture-specific information, the LSB-generic document 322 includes a reference to the architecture supplement. 323 Architecture supplements may also contain additional 324 information that is not referenced in the LSB-generic 325 document. 326 327 The LSB contains both a set of Application Program Interfaces 328 (APIs) and Application Binary Interfaces (ABIs). APIs may 329 appear in the source code of portable applications, while the 330 compiled binary of that application may use the larger set of 331 ABIs. A conforming implementation shall provide all of the 332 ABIs listed here. The compilation system may replace (e.g. by 333 macro definition) certain APIs with calls to one or more of 334 the underlying binary interfaces, and may insert calls to 335 binary interfaces as needed. 336 337 The LSB is primarily a binary interface definition. Not all of 338 the source level APIs available to applications may be 339 contained in this specification. 340 _________________________________________________________ 341 342 1.2. Module Specific Scope 343 344 This is the S390X architecture specific Core module of the 345 Linux Standards Base (LSB). This module supplements the 346 generic LSB Core module with those interfaces that differ 347 between architectures. 348 349 Interfaces described in this module are mandatory except where 350 explicitly listed otherwise. Core interfaces may be 351 supplemented by other modules; all modules are built upon the 352 core. 353 _________________________________________________________ 354 355 Chapter 2. References 356 357 2.1. Normative References 358 359 The following referenced documents are indispensable for the 360 application of this document. For dated references, only the 361 edition cited applies. For undated references, the latest 362 edition of the referenced document (including any amendments) 363 applies. 364 365 Note: Where copies of a document are available on the World 366 Wide Web, a Uniform Resource Locator (URL) is given for 367 informative purposes only. This may point to a more recent 368 copy of the referenced specification, or may be out of 369 date. Reference copies of specifications at the revision 370 level indicated may be found at the Free Standards Group's 371 Reference Specifications site. 372 373 Table 2-1. Normative References 374 Name Title URL 375 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 376 (FHS) 2.3 http://www.pathname.com/fhs/ 377 IEC 60559/IEEE 754 Floating Point IEC 60559:1989 Binary 378 floating-point arithmetic for microprocessor systems 379 http://www.ieee.org/ 380 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 381 ISO POSIX (2003) 382 383 ISO/IEC 9945-1:2003 Information technology -- Portable 384 Operating System Interface (POSIX) -- Part 1: Base Definitions 385 386 ISO/IEC 9945-2:2003 Information technology -- Portable 387 Operating System Interface (POSIX) -- Part 2: System 388 Interfaces 389 390 ISO/IEC 9945-3:2003 Information technology -- Portable 391 Operating System Interface (POSIX) -- Part 3: Shell and 392 Utilities 393 394 ISO/IEC 9945-4:2003 Information technology -- Portable 395 Operating System Interface (POSIX) -- Part 4: Rationale 396 397 Including Technical Cor. 1: 2004 398 http://www.unix.org/version3/ 399 ISO/IEC 14882: 2003 C++ Language ISO/IEC 14882: 2003 400 Programming languages --C++ 401 Itanium C++ ABI Itanium C++ ABI (Revision 1.83) 402 http://refspecs.freestandards.org/cxxabi-1.83.html 403 Large File Support Large File Support 404 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 405 LINUX for zSeries Application Binary Interface Supplement 406 LINUX for zSeries Application Binary Interface Supplement 407 http://oss.software.ibm.com/linux390/documentation-2.2.shtml 408 SUSv2 CAE Specification, January 1997, System Interfaces and 409 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 410 http://www.opengroup.org/publications/catalog/un.htm 411 SUSv2 Commands and Utilities The Single UNIX® 412 Specification(SUS) Version 2, Commands and Utilities (XCU), 413 Issue 5 (ISBN: 1-85912-191-8, C604) 414 http://www.opengroup.org/publications/catalog/un.htm 415 SVID Issue 3 American Telephone and Telegraph Company, System 416 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 417 1989.(ISBN 0201566524) 418 SVID Issue 4 System V Interface Definition,Fourth Edition 419 System V ABI System V Application Binary Interface, Edition 420 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 421 System V ABI Update System V Application Binary Interface - 422 DRAFT - 17 December 2003 423 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 424 l 425 X/Open Curses CAE Specification, May 1996, X/Open Curses, 426 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 427 Corrigendum U018 428 http://www.opengroup.org/publications/catalog/un.htm 429 z/Architecture Principles of Operation z/Architecture 430 Principles of Operation 431 http://oss.software.ibm.com/linux390/documentation-2.2.shtml 432 _________________________________________________________ 433 434 2.2. Informative References/Bibliography 435 436 In addition, the specifications listed below provide essential 437 background information to implementors of this specification. 438 These references are included for information only. 439 440 Table 2-2. Other References 441 Name Title URL 442 DWARF Debugging Information Format, Revision 2.0.0 DWARF 443 Debugging Information Format, Revision 2.0.0 (July 27, 1993) 444 http://refspecs.freestandards.org/dwarf/dwarf-2.0.0.pdf 445 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 446 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 447 http://refspecs.freestandards.org/dwarf/ 448 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 449 Specification method for cultural conventions 450 ITU-T V.42 International Telecommunication Union 451 Recommendation V.42 (2002): Error-correcting procedures for 452 DCEs using asynchronous-to-synchronous conversionITUV 453 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 454 parent=T-REC-V.42 455 Li18nux Globalization Specification LI18NUX 2000 Globalization 456 Specification, Version 1.0 with Amendment 4 457 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 458 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 459 http://www.lanana.org/docs/device-list/devices.txt 460 PAM Open Software Foundation, Request For Comments: 86.0 , 461 October 1995, V. Samar & R.Schemers (SunSoft) 462 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 463 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 464 MD5 Message-Digest Algorithm 465 http://www.ietf.org/rfc/rfc1321.txt 466 RFC 1831/1832 RPC & XDR IETF RFC 1831 & 1832 467 http://www.ietf.org/ 468 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 469 1833: Binding Protocols for ONC RPC Version 2 470 http://www.ietf.org/rfc/rfc1833.txt 471 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 472 1950: ZLIB Compressed Data Format Specification 473 http://www.ietf.org/rfc/rfc1950.txt 474 RFC 1951: DEFLATE Compressed Data Format Specification IETF 475 RFC 1951: DEFLATE Compressed Data Format Specification version 476 1.3 http://www.ietf.org/rfc/rfc1951.txt 477 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 478 file format specification version 4.3 479 http://www.ietf.org/rfc/rfc1952.txt 480 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 481 Message Format http://www.ietf.org/rfc/rfc2440.txt 482 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 483 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 484 RFC 2822:Internet Message Format IETF RFC 2822: Internet 485 Message Format http://www.ietf.org/rfc/rfc2822.txt 486 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 487 Specification http://www.ietf.org/rfc/rfc791.txt 488 RPM Package Format RPM Package Format V3.0 489 http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format. 490 html 491 zlib Manual zlib 1.2 Manual http://www.gzip.org/zlib/ 492 _________________________________________________________ 493 494 Chapter 3. Requirements 495 496 3.1. Relevant Libraries 497 498 The libraries listed in Table 3-1 shall be available on S390X 499 Linux Standard Base systems, with the specified runtime names. 500 These names override or supplement the names specified in the 501 generic LSB specification. The specified program interpreter, 502 referred to as proginterp in this table, shall be used to load 503 the shared libraries specified by DT_NEEDED entries at run 504 time. 505 506 Table 3-1. Standard Library Names 507 Library Runtime Name 508 libm libm.so.6 509 libdl libdl.so.2 510 libcrypt libcrypt.so.1 511 libz libz.so.1 512 libncurses libncurses.so.5 513 libutil libutil.so.1 514 libc libc.so.6 515 libpthread libpthread.so.0 516 proginterp /lib64/ld-lsb-s390x.so.3 517 libgcc_s libgcc_s.so.1 518 519 These libraries will be in an implementation-defined directory 520 which the dynamic linker shall search by default. 521 _________________________________________________________ 522 523 3.2. LSB Implementation Conformance 524 525 A conforming implementation is necessarily architecture 526 specific, and must provide the interfaces specified by both 527 the generic LSB Core specification and its relevant 528 architecture specific supplement. 529 530 Rationale: An implementation must provide at least the 531 interfaces specified in these specifications. It may also 532 provide additional interfaces. 533 534 A conforming implementation shall satisfy the following 535 requirements: 536 537 * A processor architecture represents a family of related 538 processors which may not have identical feature sets. The 539 architecture specific supplement to this specification for 540 a given target processor architecture describes a minimum 541 acceptable processor. The implementation shall provide all 542 features of this processor, whether in hardware or through 543 emulation transparent to the application. 544 * The implementation shall be capable of executing compiled 545 applications having the format and using the system 546 interfaces described in this document. 547 * The implementation shall provide libraries containing the 548 interfaces specified by this document, and shall provide a 549 dynamic linking mechanism that allows these interfaces to 550 be attached to applications at runtime. All the interfaces 551 shall behave as specified in this document. 552 * The map of virtual memory provided by the implementation 553 shall conform to the requirements of this document. 554 * The implementation's low-level behavior with respect to 555 function call linkage, system traps, signals, and other 556 such activities shall conform to the formats described in 557 this document. 558 * The implementation shall provide all of the mandatory 559 interfaces in their entirety. 560 * The implementation may provide one or more of the optional 561 interfaces. Each optional interface that is provided shall 562 be provided in its entirety. The product documentation 563 shall state which optional interfaces are provided. 564 * The implementation shall provide all files and utilities 565 specified as part of this document in the format defined 566 here and in other referenced documents. All commands and 567 utilities shall behave as required by this document. The 568 implementation shall also provide all mandatory components 569 of an application's runtime environment that are included 570 or referenced in this document. 571 * The implementation, when provided with standard data 572 formats and values at a named interface, shall provide the 573 behavior defined for those values and data formats at that 574 interface. However, a conforming implementation may 575 consist of components which are separately packaged and/or 576 sold. For example, a vendor of a conforming implementation 577 might sell the hardware, operating system, and windowing 578 system as separately packaged items. 579 * The implementation may provide additional interfaces with 580 different names. It may also provide additional behavior 581 corresponding to data values outside the standard ranges, 582 for standard named interfaces. 583 _________________________________________________________ 584 585 3.3. LSB Application Conformance 586 587 A conforming application is necessarily architecture specific, 588 and must conform to both the generic LSB Core specification 589 and its relevant architecture specific supplement. 590 591 A conforming application shall satisfy the following 592 requirements: 593 594 * Its executable files shall be either shell scripts or 595 object files in the format defined for the Object File 596 Format system interface. 597 * Its object files shall participate in dynamic linking as 598 defined in the Program Loading and Linking System 599 interface. 600 * It shall employ only the instructions, traps, and other 601 low-level facilities defined in the Low-Level System 602 interface as being for use by applications. 603 * If it requires any optional interface defined in this 604 document in order to be installed or to execute 605 successfully, the requirement for that optional interface 606 shall be stated in the application's documentation. 607 * It shall not use any interface or data format that is not 608 required to be provided by a conforming implementation, 609 unless: 610 + If such an interface or data format is supplied by 611 another application through direct invocation of that 612 application during execution, that application shall 613 be in turn an LSB conforming application. 614 + The use of that interface or data format, as well as 615 its source, shall be identified in the documentation 616 of the application. 617 * It shall not use any values for a named interface that are 618 reserved for vendor extensions. 619 620 A strictly conforming application shall not require or use any 621 interface, facility, or implementation-defined extension that 622 is not defined in this document in order to be installed or to 623 execute successfully. 624 _________________________________________________________ 625 626 Chapter 4. Definitions 627 628 For the purposes of this document, the following definitions, 629 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 630 Edition, apply: 631 632 can 633 634 be able to; there is a possibility of; it is possible to 635 cannot 636 637 be unable to; there is no possibilty of; it is not possible to 638 may 639 640 is permitted; is allowed; is permissible 641 need not 642 643 it is not required that; no...is required 644 shall 645 646 is to; is required to; it is required that; has to; only...is 647 permitted; it is necessary 648 shall not 649 650 is not allowed [permitted] [acceptable] [permissible]; is 651 required to be not; is required that...be not; is not to be 652 should 653 654 it is recommended that; ought to 655 should not 656 657 it is not recommended that; ought not to 658 _________________________________________________________ 659 660 Chapter 5. Terminology 661 662 For the purposes of this document, the following terms apply: 663 664 archLSB 665 The architectural part of the LSB Specification which 666 describes the specific parts of the interface that are 667 platform specific. The archLSB is complementary to the 668 gLSB. 669 670 Binary Standard 671 The total set of interfaces that are available to be 672 used in the compiled binary code of a conforming 673 application. 674 675 gLSB 676 The common part of the LSB Specification that describes 677 those parts of the interface that remain constant 678 across all hardware implementations of the LSB. 679 680 implementation-defined 681 Describes a value or behavior that is not defined by 682 this document but is selected by an implementor. The 683 value or behavior may vary among implementations that 684 conform to this document. An application should not 685 rely on the existence of the value or behavior. An 686 application that relies on such a value or behavior 687 cannot be assured to be portable across conforming 688 implementations. The implementor shall document such a 689 value or behavior so that it can be used correctly by 690 an application. 691 692 Shell Script 693 A file that is read by an interpreter (e.g., awk). The 694 first line of the shell script includes a reference to 695 its interpreter binary. 696 697 Source Standard 698 The set of interfaces that are available to be used in 699 the source code of a conforming application. 700 701 undefined 702 Describes the nature of a value or behavior not defined 703 by this document which results from use of an invalid 704 program construct or invalid data input. The value or 705 behavior may vary among implementations that conform to 706 this document. An application should not rely on the 707 existence or validity of the value or behavior. An 708 application that relies on any particular value or 709 behavior cannot be assured to be portable across 710 conforming implementations. 711 712 unspecified 713 Describes the nature of a value or behavior not 714 specified by this document which results from use of a 715 valid program construct or valid data input. The value 716 or behavior may vary among implementations that conform 717 to this document. An application should not rely on the 718 existence or validity of the value or behavior. An 719 application that relies on any particular value or 720 behavior cannot be assured to be portable across 721 conforming implementations. 722 723 Other terms and definitions used in this document shall have 724 the same meaning as defined in Chapter 3 of the Base 725 Definitions volume of ISO POSIX (2003). 726 _________________________________________________________ 727 728 Chapter 6. Documentation Conventions 729 730 Throughout this document, the following typographic 731 conventions are used: 732 733 function() 734 735 the name of a function 736 command 737 738 the name of a command or utility 739 CONSTANT 740 741 a constant value 742 parameter 743 744 a parameter 745 variable 746 747 a variable 748 749 Throughout this specification, several tables of interfaces 750 are presented. Each entry in these tables has the following 751 format: 752 753 name 754 755 the name of the interface 756 (symver) 757 758 An optional symbol version identifier, if required. 759 [refno] 760 761 A reference number indexing the table of referenced 762 specifications that follows this table. 763 764 For example, 765 766 forkpty(GLIBC_2.0) [SUSv3] 767 768 refers to the interface named forkpty() with symbol version 769 GLIBC_2.0 that is defined in the SUSv3 reference. 770 771 Note: Symbol versions are defined in the architecture 772 specific supplements only. 773 774 II. Executable and Linking Format (ELF) 775 776 Table of Contents 777 7. Introduction 778 8. Low Level System Information 779 780 8.1. Machine Interface 781 782 8.1.1. Processor Architecture 783 8.1.2. Data Representation 784 785 8.2. Function Calling Sequence 786 787 8.2.1. Registers 788 8.2.2. Stack Frame 789 8.2.3. Parameter Passing 790 8.2.4. Variable Argument Lists 791 8.2.5. Return Values 792 793 8.3. Operating System Interface 794 795 8.3.1. Virtual Address Space 796 8.3.2. Page Size 797 8.3.3. Virtual Address Assignments 798 8.3.4. Managing the Process Stack 799 8.3.5. Coding Guidelines 800 8.3.6. Processor Execution Mode 801 8.3.7. Exception Interface 802 8.3.8. Signal Delivery 803 804 8.4. Process Initialization 805 806 8.4.1. Registers 807 8.4.2. Process Stack 808 809 8.5. Coding Examples 810 811 8.5.1. Code Model Overview 812 8.5.2. Function Prolog and Epilog 813 8.5.3. Profiling 814 8.5.4. Data Objects 815 8.5.5. Function Calls 816 8.5.6. Dynamic Stack Space Allocation 817 818 8.6. Debug Information 819 820 9. Object Format 821 822 9.1. Introduction 823 9.2. ELF Header 824 825 9.2.1. Machine Information 826 827 9.3. Sections 828 829 9.3.1. Special Sections 830 9.3.2. Linux Special Sections 831 832 9.4. Symbol Table 833 9.5. Relocation 834 835 9.5.1. Relocation Types 836 837 10. Program Loading and Dynamic Linking 838 839 10.1. Introduction 840 10.2. Program Loading 841 10.3. Dynamic Linking 842 843 10.3.1. Dynamic Section 844 10.3.2. Global Offset Table 845 10.3.3. Function Addresses 846 10.3.4. Procedure Linkage Table 847 _________________________________________________________ 848 849 Chapter 7. Introduction 850 851 Executable and Linking Format (ELF) defines the object format 852 for compiled applications. This specification supplements the 853 information found in System V ABI Update and LINUX for zSeries 854 Application Binary Interface Supplement, and is intended to 855 document additions made since the publication of that 856 document. 857 _________________________________________________________ 858 859 Chapter 8. Low Level System Information 860 861 8.1. Machine Interface 862 863 8.1.1. Processor Architecture 864 865 The z/Architecture is specified by the following documents 866 867 * LINUX for zSeries Application Binary Interface Supplement 868 * z/Architecture Principles of Operation 869 870 Only the non optional features of z/Architecture processor 871 instruction set may be assumed to be present. An application 872 should determine if any additional instruction set features 873 are available before using those additional features. If a 874 feature is not present, then a conforming application shall 875 not use it. 876 877 Conforming applications shall not invoke the implementations 878 underlying system call interface directly. The interfaces in 879 the implementation base libraries shall be used instead. 880 881 Rationale: Implementation-supplied base libraries may use 882 the system call interface but applications must not assume 883 any particular operating system or kernel version is 884 present. 885 886 Applications conforming to this specification must provide 887 feedback to the user if a feature that is required for correct 888 execution of the application is not present. Applications 889 conforming to this specification should attempt to execute in 890 a diminished capacity if a required instruction set feature is 891 not present. 892 893 This specfication does not provide any performance guarantees 894 of a conforming system. A system conforming to this 895 specification may be implemented in either hardware or 896 software. 897 _________________________________________________________ 898 899 8.1.2. Data Representation 900 901 LSB-conforming applications shall use the data representation 902 as defined in Chapter 1 of the LINUX for zSeries Application 903 Binary Interface Supplement. 904 _________________________________________________________ 905 906 8.1.2.1. Byte Ordering 907 908 See chapter 1 of the LINUX for zSeries Application Binary 909 Interface Supplement. 910 _________________________________________________________ 911 912 8.1.2.2. Fundamental Types 913 914 See chapter 1 of the LINUX for zSeries Application Binary 915 Interface Supplement. 916 _________________________________________________________ 917 918 8.1.2.3. Aggregates and Unions 919 920 See chapter 1 of the LINUX for zSeries Application Binary 921 Interface Supplement. 922 _________________________________________________________ 923 924 8.1.2.4. Bit Fields 925 926 See chapter 1 of the LINUX for zSeries Application Binary 927 Interface Supplement. 928 _________________________________________________________ 929 930 8.2. Function Calling Sequence 931 932 LSB-conforming applications shall use the function calling 933 sequence as defined in Chapter 1 of the LINUX for zSeries 934 Application Binary Interface Supplement. 935 _________________________________________________________ 936 937 8.2.1. Registers 938 939 See chapter 1 of the LINUX for zSeries Application Binary 940 Interface Supplement. 941 _________________________________________________________ 942 943 8.2.2. Stack Frame 944 945 See chapter 1 of the LINUX for zSeries Application Binary 946 Interface Supplement. 947 _________________________________________________________ 948 949 8.2.3. Parameter Passing 950 951 See chapter 1 of the LINUX for zSeries Application Binary 952 Interface Supplement. 953 _________________________________________________________ 954 955 8.2.4. Variable Argument Lists 956 957 See chapter 1 of the LINUX for zSeries Application Binary 958 Interface Supplement. 959 _________________________________________________________ 960 961 8.2.5. Return Values 962 963 See chapter 1 of the LINUX for zSeries Application Binary 964 Interface Supplement. 965 _________________________________________________________ 966 967 8.3. Operating System Interface 968 969 LSB-conforming applications shall use the Operating System 970 Interfaces as defined in Chapter 1 of the LINUX for zSeries 971 Application Binary Interface Supplement. 972 _________________________________________________________ 973 974 8.3.1. Virtual Address Space 975 976 See chapter 1 of the LINUX for zSeries Application Binary 977 Interface Supplement. 978 _________________________________________________________ 979 980 8.3.2. Page Size 981 982 See chapter 1 of the LINUX for zSeries Application Binary 983 Interface Supplement. 984 _________________________________________________________ 985 986 8.3.3. Virtual Address Assignments 987 988 See chapter 1 of the LINUX for zSeries Application Binary 989 Interface Supplement. 990 _________________________________________________________ 991 992 8.3.4. Managing the Process Stack 993 994 See chapter 1 of the LINUX for zSeries Application Binary 995 Interface Supplement. 996 _________________________________________________________ 997 998 8.3.5. Coding Guidelines 999 1000 See chapter 1 of the LINUX for zSeries Application Binary 1001 Interface Supplement. 1002 _________________________________________________________ 1003 1004 8.3.6. Processor Execution Mode 1005 1006 See chapter 1 of the LINUX for zSeries Application Binary 1007 Interface Supplement. 1008 _________________________________________________________ 1009 1010 8.3.7. Exception Interface 1011 1012 See chapter 1 of the LINUX for zSeries Application Binary 1013 Interface Supplement. 1014 _________________________________________________________ 1015 1016 8.3.8. Signal Delivery 1017 1018 See chapter 1 of the LINUX for zSeries Application Binary 1019 Interface Supplement. 1020 _________________________________________________________ 1021 1022 8.3.8.1. Signal Handler Interface 1023 1024 See chapter 1 of the LINUX for zSeries Application Binary 1025 Interface Supplement. 1026 _________________________________________________________ 1027 1028 8.4. Process Initialization 1029 1030 LSB-conforming applications shall use the Process 1031 Initialization as defined in Chapter 1 of the LINUX for 1032 zSeries Application Binary Interface Supplement. 1033 _________________________________________________________ 1034 1035 8.4.1. Registers 1036 1037 See chapter 1 of the LINUX for zSeries Application Binary 1038 Interface Supplement. 1039 _________________________________________________________ 1040 1041 8.4.2. Process Stack 1042 1043 See chapter 1 of the LINUX for zSeries Application Binary 1044 Interface Supplement. 1045 _________________________________________________________ 1046 1047 8.5. Coding Examples 1048 1049 LSB-conforming applications may implement fundamental 1050 operations using the Coding Examples as defined in Chapter 1 1051 of the LINUX for zSeries Application Binary Interface 1052 Supplement. 1053 _________________________________________________________ 1054 1055 8.5.1. Code Model Overview 1056 1057 See chapter 1 of the LINUX for zSeries Application Binary 1058 Interface Supplement. 1059 _________________________________________________________ 1060 1061 8.5.2. Function Prolog and Epilog 1062 1063 See chapter 1 of the LINUX for zSeries Application Binary 1064 Interface Supplement. 1065 _________________________________________________________ 1066 1067 8.5.3. Profiling 1068 1069 See chapter 1 of the LINUX for zSeries Application Binary 1070 Interface Supplement. 1071 _________________________________________________________ 1072 1073 8.5.4. Data Objects 1074 1075 See chapter 1 of the LINUX for zSeries Application Binary 1076 Interface Supplement. 1077 _________________________________________________________ 1078 1079 8.5.5. Function Calls 1080 1081 See chapter 1 of the LINUX for zSeries Application Binary 1082 Interface Supplement. 1083 _________________________________________________________ 1084 1085 8.5.6. Dynamic Stack Space Allocation 1086 1087 See chapter 1 of the LINUX for zSeries Application Binary 1088 Interface Supplement. 1089 _________________________________________________________ 1090 1091 8.6. Debug Information 1092 1093 The LSB does not currently specify the format of Debug 1094 information. 1095 _________________________________________________________ 1096 1097 Chapter 9. Object Format 1098 1099 9.1. Introduction 1100 1101 LSB-conforming implementations shall support an object file , 1102 called Executable and Linking Format (ELF) as defined by the 1103 System V ABI , System V ABI Update , LINUX for zSeries 1104 Application Binary Interface Supplement and as supplemented by 1105 the generic LSB and this document. 1106 _________________________________________________________ 1107 1108 9.2. ELF Header 1109 1110 9.2.1. Machine Information 1111 1112 LSB-conforming applications shall use the Machine Information 1113 as defined in Chapter 2 of the LINUX for zSeries Application 1114 Binary Interface Supplement. 1115 _________________________________________________________ 1116 1117 9.3. Sections 1118 1119 See chapter 2 of the LINUX for zSeries Application Binary 1120 Interface Supplement. 1121 _________________________________________________________ 1122 1123 9.3.1. Special Sections 1124 1125 The following sections are defined in the LINUX for zSeries 1126 Application Binary Interface Supplement. 1127 1128 Table 9-1. ELF Special Sections 1129 Name Type Attributes 1130 .got SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1131 .plt SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 1132 1133 .got 1134 1135 This section holds the global offset table 1136 .plt 1137 1138 This section holds the procedure linkage table 1139 _________________________________________________________ 1140 1141 9.3.2. Linux Special Sections 1142 1143 The following Linux S/390 specific sections are defined here. 1144 1145 Table 9-2. Additional Special Sections 1146 Name Type Attributes 1147 .rela.dyn SHT_RELA SHF_ALLOC 1148 .rela.plt SHT_RELA SHF_ALLOC 1149 .sbss SHT_PROGBITS SHF_WRITE 1150 1151 .rela.dyn 1152 1153 This section holds RELA type relocation information for all 1154 sections of a shared library except the PLT 1155 .rela.plt 1156 1157 This section holds RELA type relocation information for the 1158 PLT section of a shared library or dynamically linked 1159 application 1160 .sbss 1161 1162 This section holds uninitialized data that contribute to the 1163 program's memory image. The system initializes the data with 1164 zeroes when the program begins to run. 1165 _________________________________________________________ 1166 1167 9.4. Symbol Table 1168 1169 LSB-conforming applications shall use the Symbol Table as 1170 defined in Chapter 2 of the LINUX for zSeries Application 1171 Binary Interface Supplement. 1172 _________________________________________________________ 1173 1174 9.5. Relocation 1175 1176 LSB-conforming applications shall use Relocations as defined 1177 in Chapter 2 of the LINUX for zSeries Application Binary 1178 Interface Supplement. 1179 _________________________________________________________ 1180 1181 9.5.1. Relocation Types 1182 1183 See chapter 2 of the LINUX for zSeries Application Binary 1184 Interface Supplement. 1185 _________________________________________________________ 1186 1187 Chapter 10. Program Loading and Dynamic Linking 1188 1189 10.1. Introduction 1190 1191 LSB-conforming implementations shall support the object file 1192 information and system actions that create running programs as 1193 specified in the System V ABI , System V ABI Update , LINUX 1194 for zSeries Application Binary Interface Supplement and as 1195 supplemented by the This Specification and this document. 1196 _________________________________________________________ 1197 1198 10.2. Program Loading 1199 1200 See Chapter 3 of the LINUX for zSeries Application Binary 1201 Interface Supplement. 1202 _________________________________________________________ 1203 1204 10.3. Dynamic Linking 1205 1206 See Chapter 3 of the LINUX for zSeries Application Binary 1207 Interface Supplement. 1208 _________________________________________________________ 1209 1210 10.3.1. Dynamic Section 1211 1212 The following dynamic entries are defined in the LINUX for 1213 zSeries Application Binary Interface Supplement. 1214 1215 DT_JMPREL 1216 1217 This entry is associated with a table of relocation entries 1218 for the procedure linkage table. This entry is mandatory both 1219 for executable and shared object files 1220 DT_PLTGOT 1221 1222 This entry's d_ptr member gives the address of the first byte 1223 in the procedure linkage table 1224 _________________________________________________________ 1225 1226 10.3.2. Global Offset Table 1227 1228 See Chapter 3 of the LINUX for zSeries Application Binary 1229 Interface Supplement. 1230 _________________________________________________________ 1231 1232 10.3.3. Function Addresses 1233 1234 See chapter 3 of the LINUX for zSeries Application Binary 1235 Interface Supplement. 1236 _________________________________________________________ 1237 1238 10.3.4. Procedure Linkage Table 1239 1240 See chapter 3 of the LINUX for zSeries Application Binary 1241 Interface Supplement. 1242 1243 III. Base Libraries 1244 1245 Table of Contents 1246 11. Libraries 1247 1248 11.1. Program Interpreter/Dynamic Linker 1249 11.2. Interfaces for libc 1250 1251 11.2.1. RPC 1252 11.2.2. System Calls 1253 11.2.3. Standard I/O 1254 11.2.4. Signal Handling 1255 11.2.5. Localization Functions 1256 11.2.6. Socket Interface 1257 11.2.7. Wide Characters 1258 11.2.8. String Functions 1259 11.2.9. IPC Functions 1260 11.2.10. Regular Expressions 1261 11.2.11. Character Type Functions 1262 11.2.12. Time Manipulation 1263 11.2.13. Terminal Interface Functions 1264 11.2.14. System Database Interface 1265 11.2.15. Language Support 1266 11.2.16. Large File Support 1267 11.2.17. Standard Library 1268 1269 11.3. Data Definitions for libc 1270 1271 11.3.1. arpa/inet.h 1272 11.3.2. assert.h 1273 11.3.3. ctype.h 1274 11.3.4. dirent.h 1275 11.3.5. err.h 1276 11.3.6. errno.h 1277 11.3.7. fcntl.h 1278 11.3.8. fmtmsg.h 1279 11.3.9. fnmatch.h 1280 11.3.10. ftw.h 1281 11.3.11. getopt.h 1282 11.3.12. glob.h 1283 11.3.13. grp.h 1284 11.3.14. iconv.h 1285 11.3.15. inttypes.h 1286 11.3.16. langinfo.h 1287 11.3.17. libgen.h 1288 11.3.18. libintl.h 1289 11.3.19. limits.h 1290 11.3.20. locale.h 1291 11.3.21. monetary.h 1292 11.3.22. net/if.h 1293 11.3.23. netdb.h 1294 11.3.24. netinet/in.h 1295 11.3.25. netinet/ip.h 1296 11.3.26. netinet/tcp.h 1297 11.3.27. netinet/udp.h 1298 11.3.28. nl_types.h 1299 11.3.29. poll.h 1300 11.3.30. pty.h 1301 11.3.31. pwd.h 1302 11.3.32. regex.h 1303 11.3.33. rpc/auth.h 1304 11.3.34. rpc/clnt.h 1305 11.3.35. rpc/pmap_clnt.h 1306 11.3.36. rpc/rpc_msg.h 1307 11.3.37. rpc/svc.h 1308 11.3.38. rpc/types.h 1309 11.3.39. rpc/xdr.h 1310 11.3.40. sched.h 1311 11.3.41. search.h 1312 11.3.42. setjmp.h 1313 11.3.43. signal.h 1314 11.3.44. stddef.h 1315 11.3.45. stdio.h 1316 11.3.46. stdlib.h 1317 11.3.47. string.h 1318 11.3.48. sys/file.h 1319 11.3.49. sys/ioctl.h 1320 11.3.50. sys/ipc.h 1321 11.3.51. sys/mman.h 1322 11.3.52. sys/msg.h 1323 11.3.53. sys/param.h 1324 11.3.54. sys/poll.h 1325 11.3.55. sys/resource.h 1326 11.3.56. sys/sem.h 1327 11.3.57. sys/shm.h 1328 11.3.58. sys/socket.h 1329 11.3.59. sys/stat.h 1330 11.3.60. sys/statvfs.h 1331 11.3.61. sys/time.h 1332 11.3.62. sys/timeb.h 1333 11.3.63. sys/times.h 1334 11.3.64. sys/types.h 1335 11.3.65. sys/uio.h 1336 11.3.66. sys/un.h 1337 11.3.67. sys/utsname.h 1338 11.3.68. sys/wait.h 1339 11.3.69. syslog.h 1340 11.3.70. termios.h 1341 11.3.71. time.h 1342 11.3.72. ucontext.h 1343 11.3.73. ulimit.h 1344 11.3.74. unistd.h 1345 11.3.75. utime.h 1346 11.3.76. utmp.h 1347 11.3.77. utmpx.h 1348 11.3.78. wchar.h 1349 11.3.79. wctype.h 1350 11.3.80. wordexp.h 1351 1352 11.4. Interfaces for libm 1353 1354 11.4.1. Math 1355 1356 11.5. Data Definitions for libm 1357 1358 11.5.1. complex.h 1359 11.5.2. fenv.h 1360 11.5.3. math.h 1361 1362 11.6. Interfaces for libpthread 1363 1364 11.6.1. Realtime Threads 1365 11.6.2. Advanced Realtime Threads 1366 11.6.3. Posix Threads 1367 11.6.4. Thread aware versions of libc interfaces 1368 1369 11.7. Data Definitions for libpthread 1370 1371 11.7.1. pthread.h 1372 11.7.2. semaphore.h 1373 1374 11.8. Interfaces for libgcc_s 1375 1376 11.8.1. Unwind Library 1377 1378 11.9. Data Definitions for libgcc_s 1379 1380 11.9.1. unwind.h 1381 1382 11.10. Interface Definitions for libgcc_s 1383 1384 _Unwind_DeleteException -- private C++ error 1385 handling method 1386 1387 _Unwind_Find_FDE -- private C++ error handling 1388 method 1389 1390 _Unwind_ForcedUnwind -- private C++ error handling 1391 method 1392 1393 _Unwind_GetDataRelBase -- private IA64 C++ error 1394 handling method 1395 1396 _Unwind_GetGR -- private C++ error handling method 1397 _Unwind_GetIP -- private C++ error handling method 1398 _Unwind_GetLanguageSpecificData -- private C++ 1399 error handling method 1400 1401 _Unwind_GetRegionStart -- private C++ error 1402 handling method 1403 1404 _Unwind_GetTextRelBase -- private IA64 C++ error 1405 handling method 1406 1407 _Unwind_RaiseException -- private C++ error 1408 handling method 1409 1410 _Unwind_Resume -- private C++ error handling method 1411 _Unwind_SetGR -- private C++ error handling method 1412 _Unwind_SetIP -- private C++ error handling method 1413 1414 11.11. Interfaces for libdl 1415 1416 11.11.1. Dynamic Loader 1417 1418 11.12. Data Definitions for libdl 1419 1420 11.12.1. dlfcn.h 1421 1422 11.13. Interfaces for libcrypt 1423 1424 11.13.1. Encryption 1425 _________________________________________________________ 1426 1427 Chapter 11. Libraries 1428 1429 An LSB-conforming implementation shall support base libraries 1430 which provide interfaces for accessing the operating system, 1431 processor and other hardware in the system. 1432 1433 Only those interfaces that are unique to the z/Architecture 1434 platform are defined here. This section should be used in 1435 conjunction with the corresponding section in the Linux 1436 Standard Base Specification. 1437 _________________________________________________________ 1438 1439 11.1. Program Interpreter/Dynamic Linker 1440 1441 The Program Interpreter shall be /lib64/ld-lsb-s390x.so.3. 1442 _________________________________________________________ 1443 1444 11.2. Interfaces for libc 1445 1446 Table 11-1 defines the library name and shared object name for 1447 the libc library 1448 1449 Table 11-1. libc Definition 1450 Library: libc 1451 SONAME: libc.so.6 1452 1453 The behavior of the interfaces in this library is specified by 1454 the following specifications: 1455 1456 [LFS] Large File Support 1457 [LSB] This Specification 1458 [SUSv2] SUSv2 1459 [SUSv3] ISO POSIX (2003) 1460 [SVID.3] SVID Issue 3 1461 [SVID.4] SVID Issue 4 1462 _________________________________________________________ 1463 1464 11.2.1. RPC 1465 _________________________________________________________ 1466 1467 11.2.1.1. Interfaces for RPC 1468 1469 An LSB conforming implementation shall provide the 1470 architecture specific functions for RPC specified in Table 1471 11-2, with the full mandatory functionality as described in 1472 the referenced underlying specification. 1473 1474 Table 11-2. libc - RPC Function Interfaces 1475 authnone_create(GLIBC_2.2) [SVID.4] clnt_create(GLIBC_2.2) 1476 [SVID.4] clnt_pcreateerror(GLIBC_2.2) [SVID.4] 1477 clnt_perrno(GLIBC_2.2) [SVID.4] 1478 clnt_perror(GLIBC_2.2) [SVID.4] clnt_spcreateerror(GLIBC_2.2) 1479 [SVID.4] clnt_sperrno(GLIBC_2.2) [SVID.4] 1480 clnt_sperror(GLIBC_2.2) [SVID.4] 1481 key_decryptsession(GLIBC_2.2) [SVID.3] pmap_getport(GLIBC_2.2) 1482 [LSB] pmap_set(GLIBC_2.2) [LSB] pmap_unset(GLIBC_2.2) [LSB] 1483 svc_getreqset(GLIBC_2.2) [SVID.3] svc_register(GLIBC_2.2) 1484 [LSB] svc_run(GLIBC_2.2) [LSB] svc_sendreply(GLIBC_2.2) [LSB] 1485 svcerr_auth(GLIBC_2.2) [SVID.3] svcerr_decode(GLIBC_2.2) 1486 [SVID.3] svcerr_noproc(GLIBC_2.2) [SVID.3] 1487 svcerr_noprog(GLIBC_2.2) [SVID.3] 1488 svcerr_progvers(GLIBC_2.2) [SVID.3] 1489 svcerr_systemerr(GLIBC_2.2) [SVID.3] 1490 svcerr_weakauth(GLIBC_2.2) [SVID.3] svctcp_create(GLIBC_2.2) 1491 [LSB] 1492 svcudp_create(GLIBC_2.2) [LSB] xdr_accepted_reply(GLIBC_2.2) 1493 [SVID.3] xdr_array(GLIBC_2.2) [SVID.3] xdr_bool(GLIBC_2.2) 1494 [SVID.3] 1495 xdr_bytes(GLIBC_2.2) [SVID.3] xdr_callhdr(GLIBC_2.2) [SVID.3] 1496 xdr_callmsg(GLIBC_2.2) [SVID.3] xdr_char(GLIBC_2.2) [SVID.3] 1497 xdr_double(GLIBC_2.2) [SVID.3] xdr_enum(GLIBC_2.2) [SVID.3] 1498 xdr_float(GLIBC_2.2) [SVID.3] xdr_free(GLIBC_2.2) [SVID.3] 1499 xdr_int(GLIBC_2.2) [SVID.3] xdr_long(GLIBC_2.2) [SVID.3] 1500 xdr_opaque(GLIBC_2.2) [SVID.3] xdr_opaque_auth(GLIBC_2.2) 1501 [SVID.3] 1502 xdr_pointer(GLIBC_2.2) [SVID.3] xdr_reference(GLIBC_2.2) 1503 [SVID.3] xdr_rejected_reply(GLIBC_2.2) [SVID.3] 1504 xdr_replymsg(GLIBC_2.2) [SVID.3] 1505 xdr_short(GLIBC_2.2) [SVID.3] xdr_string(GLIBC_2.2) [SVID.3] 1506 xdr_u_char(GLIBC_2.2) [SVID.3] xdr_u_int(GLIBC_2.2) [LSB] 1507 xdr_u_long(GLIBC_2.2) [SVID.3] xdr_u_short(GLIBC_2.2) [SVID.3] 1508 xdr_union(GLIBC_2.2) [SVID.3] xdr_vector(GLIBC_2.2) [SVID.3] 1509 xdr_void(GLIBC_2.2) [SVID.3] xdr_wrapstring(GLIBC_2.2) 1510 [SVID.3] xdrmem_create(GLIBC_2.2) [SVID.3] 1511 xdrrec_create(GLIBC_2.2) [SVID.3] 1512 xdrrec_eof(GLIBC_2.2) [SVID.3] 1513 _________________________________________________________ 1514 1515 11.2.2. System Calls 1516 _________________________________________________________ 1517 1518 11.2.2.1. Interfaces for System Calls 1519 1520 An LSB conforming implementation shall provide the 1521 architecture specific functions for System Calls specified in 1522 Table 11-3, with the full mandatory functionality as described 1523 in the referenced underlying specification. 1524 1525 Table 11-3. libc - System Calls Function Interfaces 1526 __fxstat(GLIBC_2.2) [LSB] __getpgid(GLIBC_2.2) [LSB] 1527 __lxstat(GLIBC_2.2) [LSB] __xmknod(GLIBC_2.2) [LSB] 1528 __xstat(GLIBC_2.2) [LSB] access(GLIBC_2.2) [SUSv3] 1529 acct(GLIBC_2.2) [LSB] alarm(GLIBC_2.2) [SUSv3] 1530 brk(GLIBC_2.2) [SUSv2] chdir(GLIBC_2.2) [SUSv3] 1531 chmod(GLIBC_2.2) [SUSv3] chown(GLIBC_2.2) [SUSv3] 1532 chroot(GLIBC_2.2) [SUSv2] clock(GLIBC_2.2) [SUSv3] 1533 close(GLIBC_2.2) [SUSv3] closedir(GLIBC_2.2) [SUSv3] 1534 creat(GLIBC_2.2) [SUSv3] dup(GLIBC_2.2) [SUSv3] 1535 dup2(GLIBC_2.2) [SUSv3] execl(GLIBC_2.2) [SUSv3] 1536 execle(GLIBC_2.2) [SUSv3] execlp(GLIBC_2.2) [SUSv3] 1537 execv(GLIBC_2.2) [SUSv3] execve(GLIBC_2.2) [SUSv3] 1538 execvp(GLIBC_2.2) [SUSv3] exit(GLIBC_2.2) [SUSv3] 1539 fchdir(GLIBC_2.2) [SUSv3] fchmod(GLIBC_2.2) [SUSv3] 1540 fchown(GLIBC_2.2) [SUSv3] fcntl(GLIBC_2.2) [LSB] 1541 fdatasync(GLIBC_2.2) [SUSv3] flock(GLIBC_2.2) [LSB] 1542 fork(GLIBC_2.2) [SUSv3] fstatvfs(GLIBC_2.2) [SUSv3] 1543 fsync(GLIBC_2.2) [SUSv3] ftime(GLIBC_2.2) [SUSv3] 1544 ftruncate(GLIBC_2.2) [SUSv3] getcontext(GLIBC_2.2) [SUSv3] 1545 getegid(GLIBC_2.2) [SUSv3] geteuid(GLIBC_2.2) [SUSv3] 1546 getgid(GLIBC_2.2) [SUSv3] getgroups(GLIBC_2.2) [SUSv3] 1547 getitimer(GLIBC_2.2) [SUSv3] getloadavg(GLIBC_2.2) [LSB] 1548 getpagesize(GLIBC_2.2) [SUSv2] getpgid(GLIBC_2.2) [SUSv3] 1549 getpgrp(GLIBC_2.2) [SUSv3] getpid(GLIBC_2.2) [SUSv3] 1550 getppid(GLIBC_2.2) [SUSv3] getpriority(GLIBC_2.2) [SUSv3] 1551 getrlimit(GLIBC_2.2) [SUSv3] getrusage(GLIBC_2.2) [SUSv3] 1552 getsid(GLIBC_2.2) [SUSv3] getuid(GLIBC_2.2) [SUSv3] 1553 getwd(GLIBC_2.2) [SUSv3] initgroups(GLIBC_2.2) [LSB] 1554 ioctl(GLIBC_2.2) [LSB] kill(GLIBC_2.2) [LSB] killpg(GLIBC_2.2) 1555 [SUSv3] lchown(GLIBC_2.2) [SUSv3] 1556 link(GLIBC_2.2) [LSB] lockf(GLIBC_2.2) [SUSv3] 1557 lseek(GLIBC_2.2) [SUSv3] mkdir(GLIBC_2.2) [SUSv3] 1558 mkfifo(GLIBC_2.2) [SUSv3] mlock(GLIBC_2.2) [SUSv3] 1559 mlockall(GLIBC_2.2) [SUSv3] mmap(GLIBC_2.2) [SUSv3] 1560 mprotect(GLIBC_2.2) [SUSv3] msync(GLIBC_2.2) [SUSv3] 1561 munlock(GLIBC_2.2) [SUSv3] munlockall(GLIBC_2.2) [SUSv3] 1562 munmap(GLIBC_2.2) [SUSv3] nanosleep(GLIBC_2.2) [SUSv3] 1563 nice(GLIBC_2.2) [SUSv3] open(GLIBC_2.2) [SUSv3] 1564 opendir(GLIBC_2.2) [SUSv3] pathconf(GLIBC_2.2) [SUSv3] 1565 pause(GLIBC_2.2) [SUSv3] pipe(GLIBC_2.2) [SUSv3] 1566 poll(GLIBC_2.2) [SUSv3] read(GLIBC_2.2) [SUSv3] 1567 readdir(GLIBC_2.2) [SUSv3] readdir_r(GLIBC_2.2) [SUSv3] 1568 readlink(GLIBC_2.2) [SUSv3] readv(GLIBC_2.2) [SUSv3] 1569 rename(GLIBC_2.2) [SUSv3] rmdir(GLIBC_2.2) [SUSv3] 1570 sbrk(GLIBC_2.2) [SUSv2] sched_get_priority_max(GLIBC_2.2) 1571 [SUSv3] sched_get_priority_min(GLIBC_2.2) [SUSv3] 1572 sched_getparam(GLIBC_2.2) [SUSv3] 1573 sched_getscheduler(GLIBC_2.2) [SUSv3] 1574 sched_rr_get_interval(GLIBC_2.2) [SUSv3] 1575 sched_setparam(GLIBC_2.2) [SUSv3] 1576 sched_setscheduler(GLIBC_2.2) [SUSv3] 1577 sched_yield(GLIBC_2.2) [SUSv3] select(GLIBC_2.2) [SUSv3] 1578 setcontext(GLIBC_2.2) [SUSv3] setegid(GLIBC_2.2) [SUSv3] 1579 seteuid(GLIBC_2.2) [SUSv3] setgid(GLIBC_2.2) [SUSv3] 1580 setitimer(GLIBC_2.2) [SUSv3] setpgid(GLIBC_2.2) [SUSv3] 1581 setpgrp(GLIBC_2.2) [SUSv3] setpriority(GLIBC_2.2) [SUSv3] 1582 setregid(GLIBC_2.2) [SUSv3] setreuid(GLIBC_2.2) [SUSv3] 1583 setrlimit(GLIBC_2.2) [SUSv3] setrlimit64(GLIBC_2.2) [LFS] 1584 setsid(GLIBC_2.2) [SUSv3] setuid(GLIBC_2.2) [SUSv3] 1585 sleep(GLIBC_2.2) [SUSv3] statvfs(GLIBC_2.2) [SUSv3] 1586 stime(GLIBC_2.2) [LSB] symlink(GLIBC_2.2) [SUSv3] 1587 sync(GLIBC_2.2) [SUSv3] sysconf(GLIBC_2.2) [SUSv3] 1588 time(GLIBC_2.2) [SUSv3] times(GLIBC_2.2) [SUSv3] 1589 truncate(GLIBC_2.2) [SUSv3] ulimit(GLIBC_2.2) [SUSv3] 1590 umask(GLIBC_2.2) [SUSv3] uname(GLIBC_2.2) [SUSv3] 1591 unlink(GLIBC_2.2) [LSB] utime(GLIBC_2.2) [SUSv3] 1592 utimes(GLIBC_2.2) [SUSv3] vfork(GLIBC_2.2) [SUSv3] 1593 wait(GLIBC_2.2) [SUSv3] wait4(GLIBC_2.2) [LSB] 1594 waitpid(GLIBC_2.2) [LSB] write(GLIBC_2.2) [SUSv3] 1595 writev(GLIBC_2.2) [SUSv3] 1596 _________________________________________________________ 1597 1598 11.2.3. Standard I/O 1599 _________________________________________________________ 1600 1601 11.2.3.1. Interfaces for Standard I/O 1602 1603 An LSB conforming implementation shall provide the 1604 architecture specific functions for Standard I/O specified in 1605 Table 11-4, with the full mandatory functionality as described 1606 in the referenced underlying specification. 1607 1608 Table 11-4. libc - Standard I/O Function Interfaces 1609 _IO_feof(GLIBC_2.2) [LSB] _IO_getc(GLIBC_2.2) [LSB] 1610 _IO_putc(GLIBC_2.2) [LSB] _IO_puts(GLIBC_2.2) [LSB] 1611 asprintf(GLIBC_2.2) [LSB] clearerr(GLIBC_2.2) [SUSv3] 1612 ctermid(GLIBC_2.2) [SUSv3] fclose(GLIBC_2.2) [SUSv3] 1613 fdopen(GLIBC_2.2) [SUSv3] feof(GLIBC_2.2) [SUSv3] 1614 ferror(GLIBC_2.2) [SUSv3] fflush(GLIBC_2.2) [SUSv3] 1615 fflush_unlocked(GLIBC_2.2) [LSB] fgetc(GLIBC_2.2) [SUSv3] 1616 fgetpos(GLIBC_2.2) [SUSv3] fgets(GLIBC_2.2) [SUSv3] 1617 fgetwc_unlocked(GLIBC_2.2) [LSB] fileno(GLIBC_2.2) [SUSv3] 1618 flockfile(GLIBC_2.2) [SUSv3] fopen(GLIBC_2.2) [SUSv3] 1619 fprintf(GLIBC_2.2) [SUSv3] fputc(GLIBC_2.2) [SUSv3] 1620 fputs(GLIBC_2.2) [SUSv3] fread(GLIBC_2.2) [SUSv3] 1621 freopen(GLIBC_2.2) [SUSv3] fscanf(GLIBC_2.2) [LSB] 1622 fseek(GLIBC_2.2) [SUSv3] fseeko(GLIBC_2.2) [SUSv3] 1623 fsetpos(GLIBC_2.2) [SUSv3] ftell(GLIBC_2.2) [SUSv3] 1624 ftello(GLIBC_2.2) [SUSv3] fwrite(GLIBC_2.2) [SUSv3] 1625 getc(GLIBC_2.2) [SUSv3] getc_unlocked(GLIBC_2.2) [SUSv3] 1626 getchar(GLIBC_2.2) [SUSv3] getchar_unlocked(GLIBC_2.2) [SUSv3] 1627 getw(GLIBC_2.2) [SUSv2] pclose(GLIBC_2.2) [SUSv3] 1628 popen(GLIBC_2.2) [SUSv3] printf(GLIBC_2.2) [SUSv3] 1629 putc(GLIBC_2.2) [SUSv3] putc_unlocked(GLIBC_2.2) [SUSv3] 1630 putchar(GLIBC_2.2) [SUSv3] putchar_unlocked(GLIBC_2.2) [SUSv3] 1631 puts(GLIBC_2.2) [SUSv3] putw(GLIBC_2.2) [SUSv2] 1632 remove(GLIBC_2.2) [SUSv3] rewind(GLIBC_2.2) [SUSv3] 1633 rewinddir(GLIBC_2.2) [SUSv3] scanf(GLIBC_2.2) [LSB] 1634 seekdir(GLIBC_2.2) [SUSv3] setbuf(GLIBC_2.2) [SUSv3] 1635 setbuffer(GLIBC_2.2) [LSB] setvbuf(GLIBC_2.2) [SUSv3] 1636 snprintf(GLIBC_2.2) [SUSv3] sprintf(GLIBC_2.2) [SUSv3] 1637 sscanf(GLIBC_2.2) [LSB] telldir(GLIBC_2.2) [SUSv3] 1638 tempnam(GLIBC_2.2) [SUSv3] ungetc(GLIBC_2.2) [SUSv3] 1639 vasprintf(GLIBC_2.2) [LSB] vdprintf(GLIBC_2.2) [LSB] 1640 vfprintf(GLIBC_2.2) [SUSv3] vprintf(GLIBC_2.2) [SUSv3] 1641 vsnprintf(GLIBC_2.2) [SUSv3] vsprintf(GLIBC_2.2) [SUSv3] 1642 1643 An LSB conforming implementation shall provide the 1644 architecture specific data interfaces for Standard I/O 1645 specified in Table 11-5, with the full mandatory functionality 1646 as described in the referenced underlying specification. 1647 1648 Table 11-5. libc - Standard I/O Data Interfaces 1649 stderr(GLIBC_2.2) [SUSv3] stdin(GLIBC_2.2) [SUSv3] 1650 stdout(GLIBC_2.2) [SUSv3] 1651 _________________________________________________________ 1652 1653 11.2.4. Signal Handling 1654 _________________________________________________________ 1655 1656 11.2.4.1. Interfaces for Signal Handling 1657 1658 An LSB conforming implementation shall provide the 1659 architecture specific functions for Signal Handling specified 1660 in Table 11-6, with the full mandatory functionality as 1661 described in the referenced underlying specification. 1662 1663 Table 11-6. libc - Signal Handling Function Interfaces 1664 __libc_current_sigrtmax(GLIBC_2.2) [LSB] 1665 __libc_current_sigrtmin(GLIBC_2.2) [LSB] 1666 __sigsetjmp(GLIBC_2.2) [LSB] __sysv_signal(GLIBC_2.2) [LSB] 1667 bsd_signal(GLIBC_2.2) [SUSv3] psignal(GLIBC_2.2) [LSB] 1668 raise(GLIBC_2.2) [SUSv3] sigaction(GLIBC_2.2) [SUSv3] 1669 sigaddset(GLIBC_2.2) [SUSv3] sigaltstack(GLIBC_2.2) [SUSv3] 1670 sigandset(GLIBC_2.2) [LSB] sigdelset(GLIBC_2.2) [SUSv3] 1671 sigemptyset(GLIBC_2.2) [SUSv3] sigfillset(GLIBC_2.2) [SUSv3] 1672 sighold(GLIBC_2.2) [SUSv3] sigignore(GLIBC_2.2) [SUSv3] 1673 siginterrupt(GLIBC_2.2) [SUSv3] sigisemptyset(GLIBC_2.2) [LSB] 1674 sigismember(GLIBC_2.2) [SUSv3] siglongjmp(GLIBC_2.2) [SUSv3] 1675 signal(GLIBC_2.2) [SUSv3] sigorset(GLIBC_2.2) [LSB] 1676 sigpause(GLIBC_2.2) [SUSv3] sigpending(GLIBC_2.2) [SUSv3] 1677 sigprocmask(GLIBC_2.2) [SUSv3] sigqueue(GLIBC_2.2) [SUSv3] 1678 sigrelse(GLIBC_2.2) [SUSv3] sigreturn(GLIBC_2.2) [LSB] 1679 sigset(GLIBC_2.2) [SUSv3] sigsuspend(GLIBC_2.2) [SUSv3] 1680 sigtimedwait(GLIBC_2.2) [SUSv3] sigwait(GLIBC_2.2) [SUSv3] 1681 sigwaitinfo(GLIBC_2.2) [SUSv3] 1682 1683 An LSB conforming implementation shall provide the 1684 architecture specific data interfaces for Signal Handling 1685 specified in Table 11-7, with the full mandatory functionality 1686 as described in the referenced underlying specification. 1687 1688 Table 11-7. libc - Signal Handling Data Interfaces 1689 _sys_siglist(GLIBC_2.3.3) [LSB] 1690 _________________________________________________________ 1691 1692 11.2.5. Localization Functions 1693 _________________________________________________________ 1694 1695 11.2.5.1. Interfaces for Localization Functions 1696 1697 An LSB conforming implementation shall provide the 1698 architecture specific functions for Localization Functions 1699 specified in Table 11-8, with the full mandatory functionality 1700 as described in the referenced underlying specification. 1701 1702 Table 11-8. libc - Localization Functions Function Interfaces 1703 bind_textdomain_codeset(GLIBC_2.2) [LSB] 1704 bindtextdomain(GLIBC_2.2) [LSB] catclose(GLIBC_2.2) [SUSv3] 1705 catgets(GLIBC_2.2) [SUSv3] 1706 catopen(GLIBC_2.2) [SUSv3] dcgettext(GLIBC_2.2) [LSB] 1707 dcngettext(GLIBC_2.2) [LSB] dgettext(GLIBC_2.2) [LSB] 1708 dngettext(GLIBC_2.2) [LSB] gettext(GLIBC_2.2) [LSB] 1709 iconv(GLIBC_2.2) [SUSv3] iconv_close(GLIBC_2.2) [SUSv3] 1710 iconv_open(GLIBC_2.2) [SUSv3] localeconv(GLIBC_2.2) [SUSv3] 1711 ngettext(GLIBC_2.2) [LSB] nl_langinfo(GLIBC_2.2) [SUSv3] 1712 setlocale(GLIBC_2.2) [SUSv3] textdomain(GLIBC_2.2) [LSB] 1713 1714 An LSB conforming implementation shall provide the 1715 architecture specific data interfaces for Localization 1716 Functions specified in Table 11-9, with the full mandatory 1717 functionality as described in the referenced underlying 1718 specification. 1719 1720 Table 11-9. libc - Localization Functions Data Interfaces 1721 _nl_msg_cat_cntr(GLIBC_2.2) [LSB] 1722 _________________________________________________________ 1723 1724 11.2.6. Socket Interface 1725 _________________________________________________________ 1726 1727 11.2.6.1. Interfaces for Socket Interface 1728 1729 An LSB conforming implementation shall provide the 1730 architecture specific functions for Socket Interface specified 1731 in Table 11-10, with the full mandatory functionality as 1732 described in the referenced underlying specification. 1733 1734 Table 11-10. libc - Socket Interface Function Interfaces 1735 __h_errno_location(GLIBC_2.2) [LSB] accept(GLIBC_2.2) [SUSv3] 1736 bind(GLIBC_2.2) [SUSv3] bindresvport(GLIBC_2.2) [LSB] 1737 connect(GLIBC_2.2) [SUSv3] gethostid(GLIBC_2.2) [SUSv3] 1738 gethostname(GLIBC_2.2) [SUSv3] getpeername(GLIBC_2.2) [SUSv3] 1739 getsockname(GLIBC_2.2) [SUSv3] getsockopt(GLIBC_2.2) [LSB] 1740 if_freenameindex(GLIBC_2.2) [SUSv3] if_indextoname(GLIBC_2.2) 1741 [SUSv3] 1742 if_nameindex(GLIBC_2.2) [SUSv3] if_nametoindex(GLIBC_2.2) 1743 [SUSv3] listen(GLIBC_2.2) [SUSv3] recv(GLIBC_2.2) [SUSv3] 1744 recvfrom(GLIBC_2.2) [SUSv3] recvmsg(GLIBC_2.2) [SUSv3] 1745 send(GLIBC_2.2) [SUSv3] sendmsg(GLIBC_2.2) [SUSv3] 1746 sendto(GLIBC_2.2) [SUSv3] setsockopt(GLIBC_2.2) [LSB] 1747 shutdown(GLIBC_2.2) [SUSv3] sockatmark(GLIBC_2.2.4) [SUSv3] 1748 socket(GLIBC_2.2) [SUSv3] socketpair(GLIBC_2.2) [SUSv3] 1749 _________________________________________________________ 1750 1751 11.2.7. Wide Characters 1752 _________________________________________________________ 1753 1754 11.2.7.1. Interfaces for Wide Characters 1755 1756 An LSB conforming implementation shall provide the 1757 architecture specific functions for Wide Characters specified 1758 in Table 11-11, with the full mandatory functionality as 1759 described in the referenced underlying specification. 1760 1761 Table 11-11. libc - Wide Characters Function Interfaces 1762 __wcstod_internal(GLIBC_2.2) [LSB] 1763 __wcstof_internal(GLIBC_2.2) [LSB] 1764 __wcstol_internal(GLIBC_2.2) [LSB] 1765 __wcstold_internal(GLIBC_2.2) [LSB] 1766 __wcstoul_internal(GLIBC_2.2) [LSB] btowc(GLIBC_2.2) [SUSv3] 1767 fgetwc(GLIBC_2.2) [SUSv3] fgetws(GLIBC_2.2) [SUSv3] 1768 fputwc(GLIBC_2.2) [SUSv3] fputws(GLIBC_2.2) [SUSv3] 1769 fwide(GLIBC_2.2) [SUSv3] fwprintf(GLIBC_2.2) [SUSv3] 1770 fwscanf(GLIBC_2.2) [LSB] getwc(GLIBC_2.2) [SUSv3] 1771 getwchar(GLIBC_2.2) [SUSv3] mblen(GLIBC_2.2) [SUSv3] 1772 mbrlen(GLIBC_2.2) [SUSv3] mbrtowc(GLIBC_2.2) [SUSv3] 1773 mbsinit(GLIBC_2.2) [SUSv3] mbsnrtowcs(GLIBC_2.2) [LSB] 1774 mbsrtowcs(GLIBC_2.2) [SUSv3] mbstowcs(GLIBC_2.2) [SUSv3] 1775 mbtowc(GLIBC_2.2) [SUSv3] putwc(GLIBC_2.2) [SUSv3] 1776 putwchar(GLIBC_2.2) [SUSv3] swprintf(GLIBC_2.2) [SUSv3] 1777 swscanf(GLIBC_2.2) [LSB] towctrans(GLIBC_2.2) [SUSv3] 1778 towlower(GLIBC_2.2) [SUSv3] towupper(GLIBC_2.2) [SUSv3] 1779 ungetwc(GLIBC_2.2) [SUSv3] vfwprintf(GLIBC_2.2) [SUSv3] 1780 vfwscanf(GLIBC_2.2) [LSB] vswprintf(GLIBC_2.2) [SUSv3] 1781 vswscanf(GLIBC_2.2) [LSB] vwprintf(GLIBC_2.2) [SUSv3] 1782 vwscanf(GLIBC_2.2) [LSB] wcpcpy(GLIBC_2.2) [LSB] 1783 wcpncpy(GLIBC_2.2) [LSB] wcrtomb(GLIBC_2.2) [SUSv3] 1784 wcscasecmp(GLIBC_2.2) [LSB] wcscat(GLIBC_2.2) [SUSv3] 1785 wcschr(GLIBC_2.2) [SUSv3] wcscmp(GLIBC_2.2) [SUSv3] 1786 wcscoll(GLIBC_2.2) [SUSv3] wcscpy(GLIBC_2.2) [SUSv3] 1787 wcscspn(GLIBC_2.2) [SUSv3] wcsdup(GLIBC_2.2) [LSB] 1788 wcsftime(GLIBC_2.2) [SUSv3] wcslen(GLIBC_2.2) [SUSv3] 1789 wcsncasecmp(GLIBC_2.2) [LSB] wcsncat(GLIBC_2.2) [SUSv3] 1790 wcsncmp(GLIBC_2.2) [SUSv3] wcsncpy(GLIBC_2.2) [SUSv3] 1791 wcsnlen(GLIBC_2.2) [LSB] wcsnrtombs(GLIBC_2.2) [LSB] 1792 wcspbrk(GLIBC_2.2) [SUSv3] wcsrchr(GLIBC_2.2) [SUSv3] 1793 wcsrtombs(GLIBC_2.2) [SUSv3] wcsspn(GLIBC_2.2) [SUSv3] 1794 wcsstr(GLIBC_2.2) [SUSv3] wcstod(GLIBC_2.2) [SUSv3] 1795 wcstof(GLIBC_2.2) [SUSv3] wcstoimax(GLIBC_2.2) [SUSv3] 1796 wcstok(GLIBC_2.2) [SUSv3] wcstol(GLIBC_2.2) [SUSv3] 1797 wcstold(GLIBC_2.2) [SUSv3] wcstoll(GLIBC_2.2) [SUSv3] 1798 wcstombs(GLIBC_2.2) [SUSv3] wcstoq(GLIBC_2.2) [LSB] 1799 wcstoul(GLIBC_2.2) [SUSv3] wcstoull(GLIBC_2.2) [SUSv3] 1800 wcstoumax(GLIBC_2.2) [SUSv3] wcstouq(GLIBC_2.2) [LSB] 1801 wcswcs(GLIBC_2.2) [SUSv3] wcswidth(GLIBC_2.2) [SUSv3] 1802 wcsxfrm(GLIBC_2.2) [SUSv3] wctob(GLIBC_2.2) [SUSv3] 1803 wctomb(GLIBC_2.2) [SUSv3] wctrans(GLIBC_2.2) [SUSv3] 1804 wctype(GLIBC_2.2) [SUSv3] wcwidth(GLIBC_2.2) [SUSv3] 1805 wmemchr(GLIBC_2.2) [SUSv3] wmemcmp(GLIBC_2.2) [SUSv3] 1806 wmemcpy(GLIBC_2.2) [SUSv3] wmemmove(GLIBC_2.2) [SUSv3] 1807 wmemset(GLIBC_2.2) [SUSv3] wprintf(GLIBC_2.2) [SUSv3] 1808 wscanf(GLIBC_2.2) [LSB] 1809 _________________________________________________________ 1810 1811 11.2.8. String Functions 1812 _________________________________________________________ 1813 1814 11.2.8.1. Interfaces for String Functions 1815 1816 An LSB conforming implementation shall provide the 1817 architecture specific functions for String Functions specified 1818 in Table 11-12, with the full mandatory functionality as 1819 described in the referenced underlying specification. 1820 1821 Table 11-12. libc - String Functions Function Interfaces 1822 __mempcpy(GLIBC_2.2) [LSB] __rawmemchr(GLIBC_2.2) [LSB] 1823 __stpcpy(GLIBC_2.2) [LSB] __strdup(GLIBC_2.2) [LSB] 1824 __strtod_internal(GLIBC_2.2) [LSB] 1825 __strtof_internal(GLIBC_2.2) [LSB] __strtok_r(GLIBC_2.2) [LSB] 1826 __strtol_internal(GLIBC_2.2) [LSB] 1827 __strtold_internal(GLIBC_2.2) [LSB] 1828 __strtoll_internal(GLIBC_2.2) [LSB] 1829 __strtoul_internal(GLIBC_2.2) [LSB] 1830 __strtoull_internal(GLIBC_2.2) [LSB] 1831 bcmp(GLIBC_2.2) [SUSv3] bcopy(GLIBC_2.2) [SUSv3] 1832 bzero(GLIBC_2.2) [SUSv3] ffs(GLIBC_2.2) [SUSv3] 1833 index(GLIBC_2.2) [SUSv3] memccpy(GLIBC_2.2) [SUSv3] 1834 memchr(GLIBC_2.2) [SUSv3] memcmp(GLIBC_2.2) [SUSv3] 1835 memcpy(GLIBC_2.2) [SUSv3] memmove(GLIBC_2.2) [SUSv3] 1836 memrchr(GLIBC_2.2) [LSB] memset(GLIBC_2.2) [SUSv3] 1837 rindex(GLIBC_2.2) [SUSv3] stpcpy(GLIBC_2.2) [LSB] 1838 stpncpy(GLIBC_2.2) [LSB] strcasecmp(GLIBC_2.2) [SUSv3] 1839 strcasestr(GLIBC_2.2) [LSB] strcat(GLIBC_2.2) [SUSv3] 1840 strchr(GLIBC_2.2) [SUSv3] strcmp(GLIBC_2.2) [SUSv3] 1841 strcoll(GLIBC_2.2) [SUSv3] strcpy(GLIBC_2.2) [SUSv3] 1842 strcspn(GLIBC_2.2) [SUSv3] strdup(GLIBC_2.2) [SUSv3] 1843 strerror(GLIBC_2.2) [SUSv3] strerror_r(GLIBC_2.2) [LSB] 1844 strfmon(GLIBC_2.2) [SUSv3] strftime(GLIBC_2.2) [SUSv3] 1845 strlen(GLIBC_2.2) [SUSv3] strncasecmp(GLIBC_2.2) [SUSv3] 1846 strncat(GLIBC_2.2) [SUSv3] strncmp(GLIBC_2.2) [SUSv3] 1847 strncpy(GLIBC_2.2) [SUSv3] strndup(GLIBC_2.2) [LSB] 1848 strnlen(GLIBC_2.2) [LSB] strpbrk(GLIBC_2.2) [SUSv3] 1849 strptime(GLIBC_2.2) [LSB] strrchr(GLIBC_2.2) [SUSv3] 1850 strsep(GLIBC_2.2) [LSB] strsignal(GLIBC_2.2) [LSB] 1851 strspn(GLIBC_2.2) [SUSv3] strstr(GLIBC_2.2) [SUSv3] 1852 strtof(GLIBC_2.2) [SUSv3] strtoimax(GLIBC_2.2) [SUSv3] 1853 strtok(GLIBC_2.2) [SUSv3] strtok_r(GLIBC_2.2) [SUSv3] 1854 strtold(GLIBC_2.2) [SUSv3] strtoll(GLIBC_2.2) [SUSv3] 1855 strtoq(GLIBC_2.2) [LSB] strtoull(GLIBC_2.2) [SUSv3] 1856 strtoumax(GLIBC_2.2) [SUSv3] strtouq(GLIBC_2.2) [LSB] 1857 strxfrm(GLIBC_2.2) [SUSv3] swab(GLIBC_2.2) [SUSv3] 1858 _________________________________________________________ 1859 1860 11.2.9. IPC Functions 1861 _________________________________________________________ 1862 1863 11.2.9.1. Interfaces for IPC Functions 1864 1865 An LSB conforming implementation shall provide the 1866 architecture specific functions for IPC Functions specified in 1867 Table 11-13, with the full mandatory functionality as 1868 described in the referenced underlying specification. 1869 1870 Table 11-13. libc - IPC Functions Function Interfaces 1871 ftok(GLIBC_2.2) [SUSv3] msgctl(GLIBC_2.2) [SUSv3] 1872 msgget(GLIBC_2.2) [SUSv3] msgrcv(GLIBC_2.2) [SUSv3] 1873 msgsnd(GLIBC_2.2) [SUSv3] semctl(GLIBC_2.2) [SUSv3] 1874 semget(GLIBC_2.2) [SUSv3] semop(GLIBC_2.2) [SUSv3] 1875 shmat(GLIBC_2.2) [SUSv3] shmctl(GLIBC_2.2) [SUSv3] 1876 shmdt(GLIBC_2.2) [SUSv3] shmget(GLIBC_2.2) [SUSv3] 1877 _________________________________________________________ 1878 1879 11.2.10. Regular Expressions 1880 _________________________________________________________ 1881 1882 11.2.10.1. Interfaces for Regular Expressions 1883 1884 An LSB conforming implementation shall provide the 1885 architecture specific functions for Regular Expressions 1886 specified in Table 11-14, with the full mandatory 1887 functionality as described in the referenced underlying 1888 specification. 1889 1890 Table 11-14. libc - Regular Expressions Function Interfaces 1891 regcomp(GLIBC_2.2) [SUSv3] regerror(GLIBC_2.2) [SUSv3] 1892 regexec(GLIBC_2.3.4) [LSB] regfree(GLIBC_2.2) [SUSv3] 1893 _________________________________________________________ 1894 1895 11.2.11. Character Type Functions 1896 _________________________________________________________ 1897 1898 11.2.11.1. Interfaces for Character Type Functions 1899 1900 An LSB conforming implementation shall provide the 1901 architecture specific functions for Character Type Functions 1902 specified in Table 11-15, with the full mandatory 1903 functionality as described in the referenced underlying 1904 specification. 1905 1906 Table 11-15. libc - Character Type Functions Function 1907 Interfaces 1908 __ctype_get_mb_cur_max(GLIBC_2.2) [LSB] _tolower(GLIBC_2.2) 1909 [SUSv3] _toupper(GLIBC_2.2) [SUSv3] isalnum(GLIBC_2.2) [SUSv3] 1910 isalpha(GLIBC_2.2) [SUSv3] isascii(GLIBC_2.2) [SUSv3] 1911 iscntrl(GLIBC_2.2) [SUSv3] isdigit(GLIBC_2.2) [SUSv3] 1912 isgraph(GLIBC_2.2) [SUSv3] islower(GLIBC_2.2) [SUSv3] 1913 isprint(GLIBC_2.2) [SUSv3] ispunct(GLIBC_2.2) [SUSv3] 1914 isspace(GLIBC_2.2) [SUSv3] isupper(GLIBC_2.2) [SUSv3] 1915 iswalnum(GLIBC_2.2) [SUSv3] iswalpha(GLIBC_2.2) [SUSv3] 1916 iswblank(GLIBC_2.2) [SUSv3] iswcntrl(GLIBC_2.2) [SUSv3] 1917 iswctype(GLIBC_2.2) [SUSv3] iswdigit(GLIBC_2.2) [SUSv3] 1918 iswgraph(GLIBC_2.2) [SUSv3] iswlower(GLIBC_2.2) [SUSv3] 1919 iswprint(GLIBC_2.2) [SUSv3] iswpunct(GLIBC_2.2) [SUSv3] 1920 iswspace(GLIBC_2.2) [SUSv3] iswupper(GLIBC_2.2) [SUSv3] 1921 iswxdigit(GLIBC_2.2) [SUSv3] isxdigit(GLIBC_2.2) [SUSv3] 1922 toascii(GLIBC_2.2) [SUSv3] tolower(GLIBC_2.2) [SUSv3] 1923 toupper(GLIBC_2.2) [SUSv3] 1924 _________________________________________________________ 1925 1926 11.2.12. Time Manipulation 1927 _________________________________________________________ 1928 1929 11.2.12.1. Interfaces for Time Manipulation 1930 1931 An LSB conforming implementation shall provide the 1932 architecture specific functions for Time Manipulation 1933 specified in Table 11-16, with the full mandatory 1934 functionality as described in the referenced underlying 1935 specification. 1936 1937 Table 11-16. libc - Time Manipulation Function Interfaces 1938 adjtime(GLIBC_2.2) [LSB] asctime(GLIBC_2.2) [SUSv3] 1939 asctime_r(GLIBC_2.2) [SUSv3] ctime(GLIBC_2.2) [SUSv3] 1940 ctime_r(GLIBC_2.2) [SUSv3] difftime(GLIBC_2.2) [SUSv3] 1941 gmtime(GLIBC_2.2) [SUSv3] gmtime_r(GLIBC_2.2) [SUSv3] 1942 localtime(GLIBC_2.2) [SUSv3] localtime_r(GLIBC_2.2) [SUSv3] 1943 mktime(GLIBC_2.2) [SUSv3] tzset(GLIBC_2.2) [SUSv3] 1944 ualarm(GLIBC_2.2) [SUSv3] 1945 1946 An LSB conforming implementation shall provide the 1947 architecture specific data interfaces for Time Manipulation 1948 specified in Table 11-17, with the full mandatory 1949 functionality as described in the referenced underlying 1950 specification. 1951 1952 Table 11-17. libc - Time Manipulation Data Interfaces 1953 __daylight(GLIBC_2.2) [LSB] __timezone(GLIBC_2.2) [LSB] 1954 __tzname(GLIBC_2.2) [LSB] daylight(GLIBC_2.2) [SUSv3] 1955 timezone(GLIBC_2.2) [SUSv3] tzname(GLIBC_2.2) [SUSv3] 1956 _________________________________________________________ 1957 1958 11.2.13. Terminal Interface Functions 1959 _________________________________________________________ 1960 1961 11.2.13.1. Interfaces for Terminal Interface Functions 1962 1963 An LSB conforming implementation shall provide the 1964 architecture specific functions for Terminal Interface 1965 Functions specified in Table 11-18, with the full mandatory 1966 functionality as described in the referenced underlying 1967 specification. 1968 1969 Table 11-18. libc - Terminal Interface Functions Function 1970 Interfaces 1971 cfgetispeed(GLIBC_2.2) [SUSv3] cfgetospeed(GLIBC_2.2) [SUSv3] 1972 cfmakeraw(GLIBC_2.2) [LSB] cfsetispeed(GLIBC_2.2) [SUSv3] 1973 cfsetospeed(GLIBC_2.2) [SUSv3] cfsetspeed(GLIBC_2.2) [LSB] 1974 tcdrain(GLIBC_2.2) [SUSv3] tcflow(GLIBC_2.2) [SUSv3] 1975 tcflush(GLIBC_2.2) [SUSv3] tcgetattr(GLIBC_2.2) [SUSv3] 1976 tcgetpgrp(GLIBC_2.2) [SUSv3] tcgetsid(GLIBC_2.2) [SUSv3] 1977 tcsendbreak(GLIBC_2.2) [SUSv3] tcsetattr(GLIBC_2.2) [SUSv3] 1978 tcsetpgrp(GLIBC_2.2) [SUSv3] 1979 _________________________________________________________ 1980 1981 11.2.14. System Database Interface 1982 _________________________________________________________ 1983 1984 11.2.14.1. Interfaces for System Database Interface 1985 1986 An LSB conforming implementation shall provide the 1987 architecture specific functions for System Database Interface 1988 specified in Table 11-19, with the full mandatory 1989 functionality as described in the referenced underlying 1990 specification. 1991 1992 Table 11-19. libc - System Database Interface Function 1993 Interfaces 1994 endgrent(GLIBC_2.2) [SUSv3] endprotoent(GLIBC_2.2) [SUSv3] 1995 endpwent(GLIBC_2.2) [SUSv3] endservent(GLIBC_2.2) [SUSv3] 1996 endutent(GLIBC_2.2) [SUSv2] endutxent(GLIBC_2.2) [SUSv3] 1997 getgrent(GLIBC_2.2) [SUSv3] getgrgid(GLIBC_2.2) [SUSv3] 1998 getgrgid_r(GLIBC_2.2) [SUSv3] getgrnam(GLIBC_2.2) [SUSv3] 1999 getgrnam_r(GLIBC_2.2) [SUSv3] getgrouplist(GLIBC_2.2.4) [LSB] 2000 gethostbyaddr(GLIBC_2.2) [SUSv3] gethostbyname(GLIBC_2.2) 2001 [SUSv3] getprotobyname(GLIBC_2.2) [SUSv3] 2002 getprotobynumber(GLIBC_2.2) [SUSv3] 2003 getprotoent(GLIBC_2.2) [SUSv3] getpwent(GLIBC_2.2) [SUSv3] 2004 getpwnam(GLIBC_2.2) [SUSv3] getpwnam_r(GLIBC_2.2) [SUSv3] 2005 getpwuid(GLIBC_2.2) [SUSv3] getpwuid_r(GLIBC_2.2) [SUSv3] 2006 getservbyname(GLIBC_2.2) [SUSv3] getservbyport(GLIBC_2.2) 2007 [SUSv3] 2008 getservent(GLIBC_2.2) [SUSv3] getutent(GLIBC_2.2) [LSB] 2009 getutent_r(GLIBC_2.2) [LSB] getutxent(GLIBC_2.2) [SUSv3] 2010 getutxid(GLIBC_2.2) [SUSv3] getutxline(GLIBC_2.2) [SUSv3] 2011 pututxline(GLIBC_2.2) [SUSv3] setgrent(GLIBC_2.2) [SUSv3] 2012 setgroups(GLIBC_2.2) [LSB] setprotoent(GLIBC_2.2) [SUSv3] 2013 setpwent(GLIBC_2.2) [SUSv3] setservent(GLIBC_2.2) [SUSv3] 2014 setutent(GLIBC_2.2) [LSB] setutxent(GLIBC_2.2) [SUSv3] 2015 utmpname(GLIBC_2.2) [LSB] 2016 _________________________________________________________ 2017 2018 11.2.15. Language Support 2019 _________________________________________________________ 2020 2021 11.2.15.1. Interfaces for Language Support 2022 2023 An LSB conforming implementation shall provide the 2024 architecture specific functions for Language Support specified 2025 in Table 11-20, with the full mandatory functionality as 2026 described in the referenced underlying specification. 2027 2028 Table 11-20. libc - Language Support Function Interfaces 2029 __libc_start_main(GLIBC_2.2) [LSB] 2030 _________________________________________________________ 2031 2032 11.2.16. Large File Support 2033 _________________________________________________________ 2034 2035 11.2.16.1. Interfaces for Large File Support 2036 2037 An LSB conforming implementation shall provide the 2038 architecture specific functions for Large File Support 2039 specified in Table 11-21, with the full mandatory 2040 functionality as described in the referenced underlying 2041 specification. 2042 2043 Table 11-21. libc - Large File Support Function Interfaces 2044 __fxstat64(GLIBC_2.2) [LSB] __lxstat64(GLIBC_2.2) [LSB] 2045 __xstat64(GLIBC_2.2) [LSB] creat64(GLIBC_2.2) [LFS] 2046 fgetpos64(GLIBC_2.2) [LFS] fopen64(GLIBC_2.2) [LFS] 2047 freopen64(GLIBC_2.2) [LFS] fseeko64(GLIBC_2.2) [LFS] 2048 fsetpos64(GLIBC_2.2) [LFS] fstatvfs64(GLIBC_2.2) [LFS] 2049 ftello64(GLIBC_2.2) [LFS] ftruncate64(GLIBC_2.2) [LFS] 2050 ftw64(GLIBC_2.2) [LFS] getrlimit64(GLIBC_2.2) [LFS] 2051 lockf64(GLIBC_2.2) [LFS] mkstemp64(GLIBC_2.2) [LFS] 2052 mmap64(GLIBC_2.2) [LFS] nftw64(GLIBC_2.3.3) [LFS] 2053 readdir64(GLIBC_2.2) [LFS] statvfs64(GLIBC_2.2) [LFS] 2054 tmpfile64(GLIBC_2.2) [LFS] truncate64(GLIBC_2.2) [LFS] 2055 _________________________________________________________ 2056 2057 11.2.17. Standard Library 2058 _________________________________________________________ 2059 2060 11.2.17.1. Interfaces for Standard Library 2061 2062 An LSB conforming implementation shall provide the 2063 architecture specific functions for Standard Library specified 2064 in Table 11-22, with the full mandatory functionality as 2065 described in the referenced underlying specification. 2066 2067 Table 11-22. libc - Standard Library Function Interfaces 2068 _Exit(GLIBC_2.2) [SUSv3] __assert_fail(GLIBC_2.2) [LSB] 2069 __cxa_atexit(GLIBC_2.2) [LSB] __errno_location(GLIBC_2.2) 2070 [LSB] 2071 __fpending(GLIBC_2.2) [LSB] __getpagesize(GLIBC_2.2) [LSB] 2072 __isinf(GLIBC_2.2) [LSB] __isinff(GLIBC_2.2) [LSB] 2073 __isinfl(GLIBC_2.2) [LSB] __isnan(GLIBC_2.2) [LSB] 2074 __isnanf(GLIBC_2.2) [LSB] __isnanl(GLIBC_2.2) [LSB] 2075 __sysconf(GLIBC_2.2) [LSB] _exit(GLIBC_2.2) [SUSv3] 2076 _longjmp(GLIBC_2.2) [SUSv3] _setjmp(GLIBC_2.2) [SUSv3] 2077 a64l(GLIBC_2.2) [SUSv3] abort(GLIBC_2.2) [SUSv3] 2078 abs(GLIBC_2.2) [SUSv3] atof(GLIBC_2.2) [SUSv3] 2079 atoi(GLIBC_2.2) [SUSv3] atol(GLIBC_2.2) [SUSv3] 2080 atoll(GLIBC_2.2) [SUSv3] basename(GLIBC_2.2) [SUSv3] 2081 bsearch(GLIBC_2.2) [SUSv3] calloc(GLIBC_2.2) [SUSv3] 2082 closelog(GLIBC_2.2) [SUSv3] confstr(GLIBC_2.2) [SUSv3] 2083 cuserid(GLIBC_2.2) [SUSv2] daemon(GLIBC_2.2) [LSB] 2084 dirname(GLIBC_2.2) [SUSv3] div(GLIBC_2.2) [SUSv3] 2085 drand48(GLIBC_2.2) [SUSv3] ecvt(GLIBC_2.2) [SUSv3] 2086 erand48(GLIBC_2.2) [SUSv3] err(GLIBC_2.2) [LSB] 2087 error(GLIBC_2.2) [LSB] errx(GLIBC_2.2) [LSB] fcvt(GLIBC_2.2) 2088 [SUSv3] fmtmsg(GLIBC_2.2) [SUSv3] 2089 fnmatch(GLIBC_2.2.3) [SUSv3] fpathconf(GLIBC_2.2) [SUSv3] 2090 free(GLIBC_2.2) [SUSv3] freeaddrinfo(GLIBC_2.2) [SUSv3] 2091 ftrylockfile(GLIBC_2.2) [SUSv3] ftw(GLIBC_2.2) [SUSv3] 2092 funlockfile(GLIBC_2.2) [SUSv3] gai_strerror(GLIBC_2.2) [SUSv3] 2093 gcvt(GLIBC_2.2) [SUSv3] getaddrinfo(GLIBC_2.2) [SUSv3] 2094 getcwd(GLIBC_2.2) [SUSv3] getdate(GLIBC_2.2) [SUSv3] 2095 getenv(GLIBC_2.2) [SUSv3] getlogin(GLIBC_2.2) [SUSv3] 2096 getlogin_r(GLIBC_2.2) [SUSv3] getnameinfo(GLIBC_2.2) [SUSv3] 2097 getopt(GLIBC_2.2) [LSB] getopt_long(GLIBC_2.2) [LSB] 2098 getopt_long_only(GLIBC_2.2) [LSB] getsubopt(GLIBC_2.2) [SUSv3] 2099 gettimeofday(GLIBC_2.2) [SUSv3] glob(GLIBC_2.2) [SUSv3] 2100 glob64(GLIBC_2.2) [LSB] globfree(GLIBC_2.2) [SUSv3] 2101 globfree64(GLIBC_2.2) [LSB] grantpt(GLIBC_2.2) [SUSv3] 2102 hcreate(GLIBC_2.2) [SUSv3] hdestroy(GLIBC_2.2) [SUSv3] 2103 hsearch(GLIBC_2.2) [SUSv3] htonl(GLIBC_2.2) [SUSv3] 2104 htons(GLIBC_2.2) [SUSv3] imaxabs(GLIBC_2.2) [SUSv3] 2105 imaxdiv(GLIBC_2.2) [SUSv3] inet_addr(GLIBC_2.2) [SUSv3] 2106 inet_ntoa(GLIBC_2.2) [SUSv3] inet_ntop(GLIBC_2.2) [SUSv3] 2107 inet_pton(GLIBC_2.2) [SUSv3] initstate(GLIBC_2.2) [SUSv3] 2108 insque(GLIBC_2.2) [SUSv3] isatty(GLIBC_2.2) [SUSv3] 2109 isblank(GLIBC_2.2) [SUSv3] jrand48(GLIBC_2.2) [SUSv3] 2110 l64a(GLIBC_2.2) [SUSv3] labs(GLIBC_2.2) [SUSv3] 2111 lcong48(GLIBC_2.2) [SUSv3] ldiv(GLIBC_2.2) [SUSv3] 2112 lfind(GLIBC_2.2) [SUSv3] llabs(GLIBC_2.2) [SUSv3] 2113 lldiv(GLIBC_2.2) [SUSv3] longjmp(GLIBC_2.2) [SUSv3] 2114 lrand48(GLIBC_2.2) [SUSv3] lsearch(GLIBC_2.2) [SUSv3] 2115 makecontext(GLIBC_2.2) [SUSv3] malloc(GLIBC_2.2) [SUSv3] 2116 memmem(GLIBC_2.2) [LSB] mkstemp(GLIBC_2.2) [SUSv3] 2117 mktemp(GLIBC_2.2) [SUSv3] mrand48(GLIBC_2.2) [SUSv3] 2118 nftw(GLIBC_2.3.3) [SUSv3] nrand48(GLIBC_2.2) [SUSv3] 2119 ntohl(GLIBC_2.2) [SUSv3] ntohs(GLIBC_2.2) [SUSv3] 2120 openlog(GLIBC_2.2) [SUSv3] perror(GLIBC_2.2) [SUSv3] 2121 posix_memalign(GLIBC_2.2) [SUSv3] posix_openpt(GLIBC_2.2.1) 2122 [SUSv3] ptsname(GLIBC_2.2) [SUSv3] putenv(GLIBC_2.2) [SUSv3] 2123 qsort(GLIBC_2.2) [SUSv3] rand(GLIBC_2.2) [SUSv3] 2124 rand_r(GLIBC_2.2) [SUSv3] random(GLIBC_2.2) [SUSv3] 2125 realloc(GLIBC_2.2) [SUSv3] realpath(GLIBC_2.3) [SUSv3] 2126 remque(GLIBC_2.2) [SUSv3] seed48(GLIBC_2.2) [SUSv3] 2127 setenv(GLIBC_2.2) [SUSv3] sethostname(GLIBC_2.2) [LSB] 2128 setlogmask(GLIBC_2.2) [SUSv3] setstate(GLIBC_2.2) [SUSv3] 2129 srand(GLIBC_2.2) [SUSv3] srand48(GLIBC_2.2) [SUSv3] 2130 srandom(GLIBC_2.2) [SUSv3] strtod(GLIBC_2.2) [SUSv3] 2131 strtol(GLIBC_2.2) [SUSv3] strtoul(GLIBC_2.2) [SUSv3] 2132 swapcontext(GLIBC_2.2) [SUSv3] syslog(GLIBC_2.2) [SUSv3] 2133 system(GLIBC_2.2) [LSB] tdelete(GLIBC_2.2) [SUSv3] 2134 tfind(GLIBC_2.2) [SUSv3] tmpfile(GLIBC_2.2) [SUSv3] 2135 tmpnam(GLIBC_2.2) [SUSv3] tsearch(GLIBC_2.2) [SUSv3] 2136 ttyname(GLIBC_2.2) [SUSv3] ttyname_r(GLIBC_2.2) [SUSv3] 2137 twalk(GLIBC_2.2) [SUSv3] unlockpt(GLIBC_2.2) [SUSv3] 2138 unsetenv(GLIBC_2.2) [SUSv3] usleep(GLIBC_2.2) [SUSv3] 2139 verrx(GLIBC_2.2) [LSB] vfscanf(GLIBC_2.2) [LSB] 2140 vscanf(GLIBC_2.2) [LSB] vsscanf(GLIBC_2.2) [LSB] 2141 vsyslog(GLIBC_2.2) [LSB] warn(GLIBC_2.2) [LSB] 2142 warnx(GLIBC_2.2) [LSB] wordexp(GLIBC_2.2) [SUSv3] 2143 wordfree(GLIBC_2.2) [SUSv3] 2144 2145 An LSB conforming implementation shall provide the 2146 architecture specific data interfaces for Standard Library 2147 specified in Table 11-23, with the full mandatory 2148 functionality as described in the referenced underlying 2149 specification. 2150 2151 Table 11-23. libc - Standard Library Data Interfaces 2152 __environ(GLIBC_2.2) [LSB] _environ(GLIBC_2.2) [LSB] 2153 _sys_errlist(GLIBC_2.3) [LSB] environ(GLIBC_2.2) [SUSv3] 2154 getdate_err(GLIBC_2.2) [SUSv3] optarg(GLIBC_2.2) [SUSv3] 2155 opterr(GLIBC_2.2) [SUSv3] optind(GLIBC_2.2) [SUSv3] 2156 optopt(GLIBC_2.2) [SUSv3] 2157 _________________________________________________________ 2158 2159 11.3. Data Definitions for libc 2160 2161 This section defines global identifiers and their values that 2162 are associated with interfaces contained in libc. These 2163 definitions are organized into groups that correspond to 2164 system headers. This convention is used as a convenience for 2165 the reader, and does not imply the existence of these headers, 2166 or their content. Where an interface is defined as requiring a 2167 particular system header file all of the data definitions for 2168 that system header file presented here shall be in effect. 2169 2170 This section gives data definitions to promote binary 2171 application portability, not to repeat source interface 2172 definitions available elsewhere. System providers and 2173 application developers should use this ABI to supplement - not 2174 to replace - source interface definition specifications. 2175 2176 This specification uses the ISO C (1999) C Language as the 2177 reference programming language, and data definitions are 2178 specified in ISO C format. The C language is used here as a 2179 convenient notation. Using a C language description of these 2180 data objects does not preclude their use by other programming 2181 languages. 2182 _________________________________________________________ 2183 2184 11.3.1. arpa/inet.h 2185 2186 extern uint32_t htonl(uint32_t); 2187 extern uint16_t htons(uint16_t); 2188 extern in_addr_t inet_addr(const char *); 2189 extern char *inet_ntoa(struct in_addr); 2190 extern const char *inet_ntop(int, const void *, char *, socklen_t); 2191 extern int inet_pton(int, const char *, void *); 2192 extern uint32_t ntohl(uint32_t); 2193 extern uint16_t ntohs(uint16_t); 2194 _________________________________________________________ 2195 2196 11.3.2. assert.h 2197 2198 extern void __assert_fail(const char *, const char *, unsigned int, 2199 const char *); 2200 _________________________________________________________ 2201 2202 11.3.3. ctype.h 2203 2204 extern int _tolower(int); 2205 extern int _toupper(int); 2206 extern int isalnum(int); 2207 extern int isalpha(int); 2208 extern int isascii(int); 2209 extern int iscntrl(int); 2210 extern int isdigit(int); 2211 extern int isgraph(int); 2212 extern int islower(int); 2213 extern int isprint(int); 2214 extern int ispunct(int); 2215 extern int isspace(int); 2216 extern int isupper(int); 2217 extern int isxdigit(int); 2218 extern int toascii(int); 2219 extern int tolower(int); 2220 extern int toupper(int); 2221 extern int isblank(int); 2222 extern const unsigned short **__ctype_b_loc(void); 2223 extern const int32_t **__ctype_toupper_loc(void); 2224 extern const int32_t **__ctype_tolower_loc(void); 2225 _________________________________________________________ 2226 2227 11.3.4. dirent.h 2228 2229 extern void rewinddir(DIR *); 2230 extern void seekdir(DIR *, long int); 2231 extern long int telldir(DIR *); 2232 extern int closedir(DIR *); 2233 extern DIR *opendir(const char *); 2234 extern struct dirent *readdir(DIR *); 2235 extern struct dirent64 *readdir64(DIR *); 2236 extern int readdir_r(DIR *, struct dirent *, struct dirent **); 2237 _________________________________________________________ 2238 2239 11.3.5. err.h 2240 2241 extern void err(int, const char *, ...); 2242 extern void errx(int, const char *, ...); 2243 extern void warn(const char *, ...); 2244 extern void warnx(const char *, ...); 2245 extern void error(int, int, const char *, ...); 2246 _________________________________________________________ 2247 2248 11.3.6. errno.h 2249 2250 #define EDEADLOCK 35 2251 2252 extern int *__errno_location(void); 2253 _________________________________________________________ 2254 2255 11.3.7. fcntl.h 2256 2257 #define F_GETLK64 5 2258 #define F_SETLK64 6 2259 #define F_SETLKW64 7 2260 2261 extern int lockf64(int, int, off64_t); 2262 extern int fcntl(int, int, ...); 2263 _________________________________________________________ 2264 2265 11.3.8. fmtmsg.h 2266 2267 extern int fmtmsg(long int, const char *, int, const char *, const char *, 2268 const char *); 2269 _________________________________________________________ 2270 2271 11.3.9. fnmatch.h 2272 2273 extern int fnmatch(const char *, const char *, int); 2274 _________________________________________________________ 2275 2276 11.3.10. ftw.h 2277 2278 extern int ftw(const char *, __ftw_func_t, int); 2279 extern int ftw64(const char *, __ftw64_func_t, int); 2280 extern int nftw(const char *, __nftw_func_t, int, int); 2281 extern int nftw64(const char *, __nftw64_func_t, int, int); 2282 _________________________________________________________ 2283 2284 11.3.11. getopt.h 2285 2286 extern int getopt_long(int, char *const, const char *, 2287 const struct option *, int *); 2288 extern int getopt_long_only(int, char *const, const char *, 2289 const struct option *, int *); 2290 _________________________________________________________ 2291 2292 11.3.12. glob.h 2293 2294 extern int glob(const char *, int, 2295 int (*__errfunc) (const char *p1, int p2) 2296 , glob_t *); 2297 extern int glob64(const char *, int, 2298 int (*__errfunc) (const char *p1, int p2) 2299 , glob64_t *); 2300 extern void globfree(glob_t *); 2301 extern void globfree64(glob64_t *); 2302 _________________________________________________________ 2303 2304 11.3.13. grp.h 2305 2306 extern void endgrent(void); 2307 extern struct group *getgrent(void); 2308 extern struct group *getgrgid(gid_t); 2309 extern struct group *getgrnam(char *); 2310 extern int initgroups(const char *, gid_t); 2311 extern void setgrent(void); 2312 extern int setgroups(size_t, const gid_t *); 2313 extern int getgrgid_r(gid_t, struct group *, char *, size_t, 2314 struct group **); 2315 extern int getgrnam_r(const char *, struct group *, char *, size_t, 2316 struct group **); 2317 extern int getgrouplist(const char *, gid_t, gid_t *, int *); 2318 _________________________________________________________ 2319 2320 11.3.14. iconv.h 2321 2322 extern size_t iconv(iconv_t, char **, size_t *, char **, size_t *); 2323 extern int iconv_close(iconv_t); 2324 extern iconv_t iconv_open(char *, char *); 2325 _________________________________________________________ 2326 2327 11.3.15. inttypes.h 2328 2329 typedef long int intmax_t; 2330 typedef unsigned long int uintmax_t; 2331 typedef unsigned long int uintptr_t; 2332 typedef unsigned long int uint64_t; 2333 2334 extern intmax_t strtoimax(const char *, char **, int); 2335 extern uintmax_t strtoumax(const char *, char **, int); 2336 extern intmax_t wcstoimax(const wchar_t *, wchar_t * *, int); 2337 extern uintmax_t wcstoumax(const wchar_t *, wchar_t * *, int); 2338 extern intmax_t imaxabs(intmax_t); 2339 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 2340 _________________________________________________________ 2341 2342 11.3.16. langinfo.h 2343 2344 extern char *nl_langinfo(nl_item); 2345 _________________________________________________________ 2346 2347 11.3.17. libgen.h 2348 2349 extern char *basename(const char *); 2350 extern char *dirname(char *); 2351 _________________________________________________________ 2352 2353 11.3.18. libintl.h 2354 2355 extern char *bindtextdomain(const char *, const char *); 2356 extern char *dcgettext(const char *, const char *, int); 2357 extern char *dgettext(const char *, const char *); 2358 extern char *gettext(const char *); 2359 extern char *textdomain(const char *); 2360 extern char *bind_textdomain_codeset(const char *, const char *); 2361 extern char *dcngettext(const char *, const char *, const char *, 2362 unsigned long int, int); 2363 extern char *dngettext(const char *, const char *, const char *, 2364 unsigned long int); 2365 extern char *ngettext(const char *, const char *, unsigned long int); 2366 _________________________________________________________ 2367 2368 11.3.19. limits.h 2369 2370 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 2371 #define LONG_MAX 9223372036854775807L 2372 2373 #define CHAR_MIN 0 2374 #define CHAR_MAX 255 2375 2376 #define PTHREAD_STACK_MIN 16384 2377 _________________________________________________________ 2378 2379 11.3.20. locale.h 2380 2381 extern struct lconv *localeconv(void); 2382 extern char *setlocale(int, const char *); 2383 extern locale_t uselocale(locale_t); 2384 extern void freelocale(locale_t); 2385 extern locale_t duplocale(locale_t); 2386 extern locale_t newlocale(int, const char *, locale_t); 2387 _________________________________________________________ 2388 2389 11.3.21. monetary.h 2390 2391 extern ssize_t strfmon(char *, size_t, const char *, ...); 2392 _________________________________________________________ 2393 2394 11.3.22. net/if.h 2395 2396 extern void if_freenameindex(struct if_nameindex *); 2397 extern char *if_indextoname(unsigned int, char *); 2398 extern struct if_nameindex *if_nameindex(void); 2399 extern unsigned int if_nametoindex(const char *); 2400 _________________________________________________________ 2401 2402 11.3.23. netdb.h 2403 2404 extern void endprotoent(void); 2405 extern void endservent(void); 2406 extern void freeaddrinfo(struct addrinfo *); 2407 extern const char *gai_strerror(int); 2408 extern int getaddrinfo(const char *, const char *, const struct addrinfo *, 2409 struct addrinfo **); 2410 extern struct hostent *gethostbyaddr(const void *, socklen_t, int); 2411 extern struct hostent *gethostbyname(const char *); 2412 extern struct protoent *getprotobyname(const char *); 2413 extern struct protoent *getprotobynumber(int); 2414 extern struct protoent *getprotoent(void); 2415 extern struct servent *getservbyname(const char *, const char *); 2416 extern struct servent *getservbyport(int, const char *); 2417 extern struct servent *getservent(void); 2418 extern void setprotoent(int); 2419 extern void setservent(int); 2420 extern int *__h_errno_location(void); 2421 _________________________________________________________ 2422 2423 11.3.24. netinet/in.h 2424 2425 extern int bindresvport(int, struct sockaddr_in *); 2426 _________________________________________________________ 2427 2428 11.3.25. netinet/ip.h 2429 2430 /* 2431 * This header is architecture neutral 2432 * Please refer to the generic specification for details 2433 */ 2434 _________________________________________________________ 2435 2436 11.3.26. netinet/tcp.h 2437 2438 /* 2439 * This header is architecture neutral 2440 * Please refer to the generic specification for details 2441 */ 2442 _________________________________________________________ 2443 2444 11.3.27. netinet/udp.h 2445 2446 /* 2447 * This header is architecture neutral 2448 * Please refer to the generic specification for details 2449 */ 2450 _________________________________________________________ 2451 2452 11.3.28. nl_types.h 2453 2454 extern int catclose(nl_catd); 2455 extern char *catgets(nl_catd, int, int, const char *); 2456 extern nl_catd catopen(const char *, int); 2457 _________________________________________________________ 2458 2459 11.3.29. poll.h 2460 2461 extern int poll(struct pollfd *, nfds_t, int); 2462 _________________________________________________________ 2463 2464 11.3.30. pty.h 2465 2466 extern int openpty(int *, int *, char *, struct termios *, 2467 struct winsize *); 2468 extern int forkpty(int *, char *, struct termios *, struct winsize *); 2469 _________________________________________________________ 2470 2471 11.3.31. pwd.h 2472 2473 extern void endpwent(void); 2474 extern struct passwd *getpwent(void); 2475 extern struct passwd *getpwnam(char *); 2476 extern struct passwd *getpwuid(uid_t); 2477 extern void setpwent(void); 2478 extern int getpwnam_r(char *, struct passwd *, char *, size_t, 2479 struct passwd **); 2480 extern int getpwuid_r(uid_t, struct passwd *, char *, size_t, 2481 struct passwd **); 2482 _________________________________________________________ 2483 2484 11.3.32. regex.h 2485 2486 extern int regcomp(regex_t *, const char *, int); 2487 extern size_t regerror(int, const regex_t *, char *, size_t); 2488 extern int regexec(const regex_t *, const char *, size_t, regmatch_t, int); 2489 extern void regfree(regex_t *); 2490 _________________________________________________________ 2491 2492 11.3.33. rpc/auth.h 2493 2494 extern struct AUTH *authnone_create(void); 2495 extern int key_decryptsession(char *, union des_block *); 2496 extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); 2497 _________________________________________________________ 2498 2499 11.3.34. rpc/clnt.h 2500 2501 extern struct CLIENT *clnt_create(const char *, const u_long, const u_long, 2502 const char *); 2503 extern void clnt_pcreateerror(const char *); 2504 extern void clnt_perrno(enum clnt_stat); 2505 extern void clnt_perror(struct CLIENT *, const char *); 2506 extern char *clnt_spcreateerror(const char *); 2507 extern char *clnt_sperrno(enum clnt_stat); 2508 extern char *clnt_sperror(struct CLIENT *, const char *); 2509 _________________________________________________________ 2510 2511 11.3.35. rpc/pmap_clnt.h 2512 2513 extern u_short pmap_getport(struct sockaddr_in *, const u_long, 2514 const u_long, u_int); 2515 extern bool_t pmap_set(const u_long, const u_long, int, u_short); 2516 extern bool_t pmap_unset(u_long, u_long); 2517 _________________________________________________________ 2518 2519 11.3.36. rpc/rpc_msg.h 2520 2521 extern bool_t xdr_callhdr(XDR *, struct rpc_msg *); 2522 _________________________________________________________ 2523 2524 11.3.37. rpc/svc.h 2525 2526 extern void svc_getreqset(fd_set *); 2527 extern bool_t svc_register(SVCXPRT *, rpcprog_t, rpcvers_t, 2528 __dispatch_fn_t, rpcprot_t); 2529 extern void svc_run(void); 2530 extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, caddr_t); 2531 extern void svcerr_auth(SVCXPRT *, enum auth_stat); 2532 extern void svcerr_decode(SVCXPRT *); 2533 extern void svcerr_noproc(SVCXPRT *); 2534 extern void svcerr_noprog(SVCXPRT *); 2535 extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); 2536 extern void svcerr_systemerr(SVCXPRT *); 2537 extern void svcerr_weakauth(SVCXPRT *); 2538 extern SVCXPRT *svctcp_create(int, u_int, u_int); 2539 extern SVCXPRT *svcudp_create(int); 2540 _________________________________________________________ 2541 2542 11.3.38. rpc/types.h 2543 2544 /* 2545 * This header is architecture neutral 2546 * Please refer to the generic specification for details 2547 */ 2548 _________________________________________________________ 2549 2550 11.3.39. rpc/xdr.h 2551 2552 extern bool_t xdr_array(XDR *, caddr_t *, u_int *, u_int, u_int, 2553 xdrproc_t); 2554 extern bool_t xdr_bool(XDR *, bool_t *); 2555 extern bool_t xdr_bytes(XDR *, char **, u_int *, u_int); 2556 extern bool_t xdr_char(XDR *, char *); 2557 extern bool_t xdr_double(XDR *, double *); 2558 extern bool_t xdr_enum(XDR *, enum_t *); 2559 extern bool_t xdr_float(XDR *, float *); 2560 extern void xdr_free(xdrproc_t, char *); 2561 extern bool_t xdr_int(XDR *, int *); 2562 extern bool_t xdr_long(XDR *, long int *); 2563 extern bool_t xdr_opaque(XDR *, caddr_t, u_int); 2564 extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); 2565 extern bool_t xdr_reference(XDR *, caddr_t *, u_int, xdrproc_t); 2566 extern bool_t xdr_short(XDR *, short *); 2567 extern bool_t xdr_string(XDR *, char **, u_int); 2568 extern bool_t xdr_u_char(XDR *, u_char *); 2569 extern bool_t xdr_u_int(XDR *, u_int *); 2570 extern bool_t xdr_u_long(XDR *, u_long *); 2571 extern bool_t xdr_u_short(XDR *, u_short *); 2572 extern bool_t xdr_union(XDR *, enum_t *, char *, 2573 const struct xdr_discrim *, xdrproc_t); 2574 extern bool_t xdr_vector(XDR *, char *, u_int, u_int, xdrproc_t); 2575 extern bool_t xdr_void(void); 2576 extern bool_t xdr_wrapstring(XDR *, char **); 2577 extern void xdrmem_create(XDR *, caddr_t, u_int, enum xdr_op); 2578 extern void xdrrec_create(XDR *, u_int, u_int, caddr_t, 2579 int (*__readit) (char *p1, char *p2, int p3) 2580 , int (*__writeit) (char *p1, char *p2, int p3) 2581 ); 2582 extern typedef int bool_t xdrrec_eof(XDR *); 2583 _________________________________________________________ 2584 2585 11.3.40. sched.h 2586 2587 extern int sched_get_priority_max(int); 2588 extern int sched_get_priority_min(int); 2589 extern int sched_getparam(pid_t, struct sched_param *); 2590 extern int sched_getscheduler(pid_t); 2591 extern int sched_rr_get_interval(pid_t, struct timespec *); 2592 extern int sched_setparam(pid_t, const struct sched_param *); 2593 extern int sched_setscheduler(pid_t, int, const struct sched_param *); 2594 extern int sched_yield(void); 2595 _________________________________________________________ 2596 2597 11.3.41. search.h 2598 2599 extern int hcreate(size_t); 2600 extern ENTRY *hsearch(ENTRY, ACTION); 2601 extern void insque(void *, void *); 2602 extern void *lfind(const void *, const void *, size_t *, size_t, 2603 __compar_fn_t); 2604 extern void *lsearch(const void *, void *, size_t *, size_t, 2605 __compar_fn_t); 2606 extern void remque(void *); 2607 extern void hdestroy(void); 2608 extern void *tdelete(const void *, void **, __compar_fn_t); 2609 extern void *tfind(const void *, void *const *, __compar_fn_t); 2610 extern void *tsearch(const void *, void **, __compar_fn_t); 2611 extern void twalk(const void *, __action_fn_t); 2612 _________________________________________________________ 2613 2614 11.3.42. setjmp.h 2615 2616 typedef long int __jmp_buf[18]; 2617 2618 extern int __sigsetjmp(jmp_buf, int); 2619 extern void longjmp(jmp_buf, int); 2620 extern void siglongjmp(sigjmp_buf, int); 2621 extern void _longjmp(jmp_buf, int); 2622 extern int _setjmp(jmp_buf); 2623 _________________________________________________________ 2624 2625 11.3.43. signal.h 2626 2627 #define __NUM_ACRS 16 2628 #define __NUM_FPRS 16 2629 #define __NUM_GPRS 16 2630 2631 typedef struct { 2632 unsigned long int mask; 2633 unsigned long int addr; 2634 } __attribute__ ((aligned(8))) 2635 _psw_t; 2636 typedef struct { 2637 _psw_t psw; 2638 unsigned long int gprs[16]; 2639 unsigned int acrs[16]; 2640 } _s390_regs_common; 2641 2642 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-4) 2643 2644 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-4) 2645 2646 struct sigaction { 2647 union { 2648 sighandler_t _sa_handler; 2649 void (*_sa_sigaction) (int, siginfo_t *, void *); 2650 } __sigaction_handler; 2651 unsigned long int sa_flags; 2652 void (*sa_restorer) (void); 2653 sigset_t sa_mask; 2654 }; 2655 2656 #define MINSIGSTKSZ 2048 2657 #define SIGSTKSZ 8192 2658 2659 typedef struct { 2660 unsigned int fpc; 2661 double fprs[__NUM_FPRS]; 2662 } _s390_fp_regs; 2663 typedef struct { 2664 _s390_regs_common regs; 2665 _s390_fp_regs fpregs; 2666 } _sigregs; 2667 2668 struct sigcontext { 2669 unsigned long int oldmask; 2670 _sigregs *sregs; 2671 }; 2672 extern int __libc_current_sigrtmax(void); 2673 extern int __libc_current_sigrtmin(void); 2674 extern sighandler_t __sysv_signal(int, sighandler_t); 2675 extern char *const _sys_siglist(void); 2676 extern int killpg(pid_t, int); 2677 extern void psignal(int, const char *); 2678 extern int raise(int); 2679 extern int sigaddset(sigset_t *, int); 2680 extern int sigandset(sigset_t *, const sigset_t *, const sigset_t *); 2681 extern int sigdelset(sigset_t *, int); 2682 extern int sigemptyset(sigset_t *); 2683 extern int sigfillset(sigset_t *); 2684 extern int sighold(int); 2685 extern int sigignore(int); 2686 extern int siginterrupt(int, int); 2687 extern int sigisemptyset(const sigset_t *); 2688 extern int sigismember(const sigset_t *, int); 2689 extern int sigorset(sigset_t *, const sigset_t *, const sigset_t *); 2690 extern int sigpending(sigset_t *); 2691 extern int sigrelse(int); 2692 extern sighandler_t sigset(int, sighandler_t); 2693 extern int pthread_kill(pthread_t, int); 2694 extern int pthread_sigmask(int, sigset_t *, sigset_t *); 2695 extern int sigaction(int, const struct sigaction *, struct sigaction *); 2696 extern int sigwait(sigset_t *, int *); 2697 extern int kill(pid_t, int); 2698 extern int sigaltstack(const struct sigaltstack *, struct sigaltstack *); 2699 extern sighandler_t signal(int, sighandler_t); 2700 extern int sigpause(int); 2701 extern int sigprocmask(int, const sigset_t *, sigset_t *); 2702 extern int sigreturn(struct sigcontext *); 2703 extern int sigsuspend(const sigset_t *); 2704 extern int sigqueue(pid_t, int, const union sigval); 2705 extern int sigwaitinfo(const sigset_t *, siginfo_t *); 2706 extern int sigtimedwait(const sigset_t *, siginfo_t *, 2707 const struct timespec *); 2708 extern sighandler_t bsd_signal(int, sighandler_t); 2709 _________________________________________________________ 2710 2711 11.3.44. stddef.h 2712 2713 typedef unsigned long int size_t; 2714 typedef long int ptrdiff_t; 2715 _________________________________________________________ 2716 2717 11.3.45. stdio.h 2718 2719 #define __IO_FILE_SIZE 216 2720 2721 extern char *const _sys_errlist(void); 2722 extern void clearerr(FILE *); 2723 extern int fclose(FILE *); 2724 extern FILE *fdopen(int, const char *); 2725 extern int fflush_unlocked(FILE *); 2726 extern int fileno(FILE *); 2727 extern FILE *fopen(const char *, const char *); 2728 extern int fprintf(FILE *, const char *, ...); 2729 extern int fputc(int, FILE *); 2730 extern FILE *freopen(const char *, const char *, FILE *); 2731 extern FILE *freopen64(const char *, const char *, FILE *); 2732 extern int fscanf(FILE *, const char *, ...); 2733 extern int fseek(FILE *, long int, int); 2734 extern int fseeko(FILE *, off_t, int); 2735 extern int fseeko64(FILE *, loff_t, int); 2736 extern off_t ftello(FILE *); 2737 extern loff_t ftello64(FILE *); 2738 extern int getchar(void); 2739 extern int getchar_unlocked(void); 2740 extern int getw(FILE *); 2741 extern int pclose(FILE *); 2742 extern void perror(const char *); 2743 extern FILE *popen(const char *, const char *); 2744 extern int printf(const char *, ...); 2745 extern int putc_unlocked(int, FILE *); 2746 extern int putchar(int); 2747 extern int putchar_unlocked(int); 2748 extern int putw(int, FILE *); 2749 extern int remove(const char *); 2750 extern void rewind(FILE *); 2751 extern int scanf(const char *, ...); 2752 extern void setbuf(FILE *, char *); 2753 extern int sprintf(char *, const char *, ...); 2754 extern int sscanf(const char *, const char *, ...); 2755 extern FILE *stderr(void); 2756 extern FILE *stdin(void); 2757 extern FILE *stdout(void); 2758 extern char *tempnam(const char *, const char *); 2759 extern FILE *tmpfile64(void); 2760 extern FILE *tmpfile(void); 2761 extern char *tmpnam(char *); 2762 extern int vfprintf(FILE *, const char *, va_list); 2763 extern int vprintf(const char *, va_list); 2764 extern int feof(FILE *); 2765 extern int ferror(FILE *); 2766 extern int fflush(FILE *); 2767 extern int fgetc(FILE *); 2768 extern int fgetpos(FILE *, fpos_t *); 2769 extern char *fgets(char *, int, FILE *); 2770 extern int fputs(const char *, FILE *); 2771 extern size_t fread(void *, size_t, size_t, FILE *); 2772 extern int fsetpos(FILE *, const fpos_t *); 2773 extern long int ftell(FILE *); 2774 extern size_t fwrite(const void *, size_t, size_t, FILE *); 2775 extern int getc(FILE *); 2776 extern int putc(int, FILE *); 2777 extern int puts(const char *); 2778 extern int setvbuf(FILE *, char *, int, size_t); 2779 extern int snprintf(char *, size_t, const char *, ...); 2780 extern int ungetc(int, FILE *); 2781 extern int vsnprintf(char *, size_t, const char *, va_list); 2782 extern int vsprintf(char *, const char *, va_list); 2783 extern void flockfile(FILE *); 2784 extern int asprintf(char **, const char *, ...); 2785 extern int fgetpos64(FILE *, fpos64_t *); 2786 extern FILE *fopen64(const char *, const char *); 2787 extern int fsetpos64(FILE *, const fpos64_t *); 2788 extern int ftrylockfile(FILE *); 2789 extern void funlockfile(FILE *); 2790 extern int getc_unlocked(FILE *); 2791 extern void setbuffer(FILE *, char *, size_t); 2792 extern int vasprintf(char **, const char *, va_list); 2793 extern int vdprintf(int, const char *, va_list); 2794 extern int vfscanf(FILE *, const char *, va_list); 2795 extern int vscanf(const char *, va_list); 2796 extern int vsscanf(const char *, const char *, va_list); 2797 extern size_t __fpending(FILE *); 2798 _________________________________________________________ 2799 2800 11.3.46. stdlib.h 2801 2802 extern double __strtod_internal(const char *, char **, int); 2803 extern float __strtof_internal(const char *, char **, int); 2804 extern long int __strtol_internal(const char *, char **, int, int); 2805 extern long double __strtold_internal(const char *, char **, int); 2806 extern long long int __strtoll_internal(const char *, char **, int, int); 2807 extern unsigned long int __strtoul_internal(const char *, char **, int, 2808 int); 2809 extern unsigned long long int __strtoull_internal(const char *, char **, 2810 int, int); 2811 extern long int a64l(const char *); 2812 extern void abort(void); 2813 extern int abs(int); 2814 extern double atof(const char *); 2815 extern int atoi(char *); 2816 extern long int atol(char *); 2817 extern long long int atoll(const char *); 2818 extern void *bsearch(const void *, const void *, size_t, size_t, 2819 __compar_fn_t); 2820 extern div_t div(int, int); 2821 extern double drand48(void); 2822 extern char *ecvt(double, int, int *, int *); 2823 extern double erand48(unsigned short); 2824 extern void exit(int); 2825 extern char *fcvt(double, int, int *, int *); 2826 extern char *gcvt(double, int, char *); 2827 extern char *getenv(const char *); 2828 extern int getsubopt(char **, char *const *, char **); 2829 extern int grantpt(int); 2830 extern long int jrand48(unsigned short); 2831 extern char *l64a(long int); 2832 extern long int labs(long int); 2833 extern void lcong48(unsigned short); 2834 extern ldiv_t ldiv(long int, long int); 2835 extern long long int llabs(long long int); 2836 extern lldiv_t lldiv(long long int, long long int); 2837 extern long int lrand48(void); 2838 extern int mblen(const char *, size_t); 2839 extern size_t mbstowcs(wchar_t *, const char *, size_t); 2840 extern int mbtowc(wchar_t *, const char *, size_t); 2841 extern char *mktemp(char *); 2842 extern long int mrand48(void); 2843 extern long int nrand48(unsigned short); 2844 extern char *ptsname(int); 2845 extern int putenv(char *); 2846 extern void qsort(void *, size_t, size_t, __compar_fn_t); 2847 extern int rand(void); 2848 extern int rand_r(unsigned int *); 2849 extern unsigned short *seed48(unsigned short); 2850 extern void srand48(long int); 2851 extern int unlockpt(int); 2852 extern size_t wcstombs(char *, const wchar_t *, size_t); 2853 extern int wctomb(char *, wchar_t); 2854 extern int system(const char *); 2855 extern void *calloc(size_t, size_t); 2856 extern void free(void *); 2857 extern char *initstate(unsigned int, char *, size_t); 2858 extern void *malloc(size_t); 2859 extern long int random(void); 2860 extern void *realloc(void *, size_t); 2861 extern char *setstate(char *); 2862 extern void srand(unsigned int); 2863 extern void srandom(unsigned int); 2864 extern double strtod(char *, char **); 2865 extern float strtof(const char *, char **); 2866 extern long int strtol(char *, char **, int); 2867 extern long double strtold(const char *, char **); 2868 extern long long int strtoll(const char *, char **, int); 2869 extern long long int strtoq(const char *, char **, int); 2870 extern unsigned long int strtoul(const char *, char **, int); 2871 extern unsigned long long int strtoull(const char *, char **, int); 2872 extern unsigned long long int strtouq(const char *, char **, int); 2873 extern void _Exit(int); 2874 extern size_t __ctype_get_mb_cur_max(void); 2875 extern char **environ(void); 2876 extern char *realpath(const char *, char *); 2877 extern int setenv(const char *, const char *, int); 2878 extern int unsetenv(const char *); 2879 extern int getloadavg(double, int); 2880 extern int mkstemp64(char *); 2881 extern int posix_memalign(void **, size_t, size_t); 2882 extern int posix_openpt(int); 2883 _________________________________________________________ 2884 2885 11.3.47. string.h 2886 2887 extern void *__mempcpy(void *, const void *, size_t); 2888 extern char *__stpcpy(char *, const char *); 2889 extern char *__strtok_r(char *, const char *, char **); 2890 extern void bcopy(void *, void *, size_t); 2891 extern void *memchr(void *, int, size_t); 2892 extern int memcmp(void *, void *, size_t); 2893 extern void *memcpy(void *, void *, size_t); 2894 extern void *memmem(const void *, size_t, const void *, size_t); 2895 extern void *memmove(void *, const void *, size_t); 2896 extern void *memset(void *, int, size_t); 2897 extern char *strcat(char *, const char *); 2898 extern char *strchr(char *, int); 2899 extern int strcmp(char *, char *); 2900 extern int strcoll(const char *, const char *); 2901 extern char *strcpy(char *, char *); 2902 extern size_t strcspn(const char *, const char *); 2903 extern char *strerror(int); 2904 extern size_t strlen(char *); 2905 extern char *strncat(char *, char *, size_t); 2906 extern int strncmp(char *, char *, size_t); 2907 extern char *strncpy(char *, char *, size_t); 2908 extern char *strpbrk(const char *, const char *); 2909 extern char *strrchr(char *, int); 2910 extern char *strsignal(int); 2911 extern size_t strspn(const char *, const char *); 2912 extern char *strstr(char *, char *); 2913 extern char *strtok(char *, const char *); 2914 extern size_t strxfrm(char *, const char *, size_t); 2915 extern int bcmp(void *, void *, size_t); 2916 extern void bzero(void *, size_t); 2917 extern int ffs(int); 2918 extern char *index(char *, int); 2919 extern void *memccpy(void *, const void *, int, size_t); 2920 extern char *rindex(char *, int); 2921 extern int strcasecmp(char *, char *); 2922 extern char *strdup(char *); 2923 extern int strncasecmp(char *, char *, size_t); 2924 extern char *strndup(const char *, size_t); 2925 extern size_t strnlen(const char *, size_t); 2926 extern char *strsep(char **, const char *); 2927 extern char *strerror_r(int, char *, size_t); 2928 extern char *strtok_r(char *, const char *, char **); 2929 extern char *strcasestr(const char *, const char *); 2930 extern char *stpcpy(char *, const char *); 2931 extern char *stpncpy(char *, const char *, size_t); 2932 extern void *memrchr(const void *, int, size_t); 2933 _________________________________________________________ 2934 2935 11.3.48. sys/file.h 2936 2937 extern int flock(int, int); 2938 _________________________________________________________ 2939 2940 11.3.49. sys/ioctl.h 2941 2942 #define TIOCGWINSZ 0x5413 2943 #define FIONREAD 21531 2944 #define TIOCNOTTY 21538 2945 2946 extern int ioctl(int, unsigned long int, ...); 2947 _________________________________________________________ 2948 2949 11.3.50. sys/ipc.h 2950 2951 struct ipc_perm { 2952 key_t __key; 2953 uid_t uid; 2954 gid_t gid; 2955 uid_t cuid; 2956 gid_t cgid; 2957 mode_t mode; 2958 unsigned short __seq; 2959 unsigned short __pad2; 2960 unsigned long int __unused1; 2961 unsigned long int __unused2; 2962 }; 2963 2964 extern key_t ftok(char *, int); 2965 _________________________________________________________ 2966 2967 11.3.51. sys/mman.h 2968 2969 #define MCL_CURRENT 1 2970 #define MCL_FUTURE 2 2971 2972 extern int msync(void *, size_t, int); 2973 extern int mlock(const void *, size_t); 2974 extern int mlockall(int); 2975 extern void *mmap(void *, size_t, int, int, int, off_t); 2976 extern int mprotect(void *, size_t, int); 2977 extern int munlock(const void *, size_t); 2978 extern int munlockall(void); 2979 extern int munmap(void *, size_t); 2980 extern void *mmap64(void *, size_t, int, int, int, off64_t); 2981 extern int shm_open(const char *, int, mode_t); 2982 extern int shm_unlink(const char *); 2983 _________________________________________________________ 2984 2985 11.3.52. sys/msg.h 2986 2987 typedef unsigned long int msgqnum_t; 2988 typedef unsigned long int msglen_t; 2989 2990 struct msqid_ds { 2991 struct ipc_perm msg_perm; 2992 time_t msg_stime; 2993 time_t msg_rtime; 2994 time_t msg_ctime; 2995 unsigned long int __msg_cbytes; 2996 msgqnum_t msg_qnum; 2997 msglen_t msg_qbytes; 2998 pid_t msg_lspid; 2999 pid_t msg_lrpid; 3000 unsigned long int __unused4; 3001 unsigned long int __unused5; 3002 }; 3003 extern int msgctl(int, int, struct msqid_ds *); 3004 extern int msgget(key_t, int); 3005 extern int msgrcv(int, void *, size_t, long int, int); 3006 extern int msgsnd(int, const void *, size_t, int); 3007 _________________________________________________________ 3008 3009 11.3.53. sys/param.h 3010 3011 /* 3012 * This header is architecture neutral 3013 * Please refer to the generic specification for details 3014 */ 3015 _________________________________________________________ 3016 3017 11.3.54. sys/poll.h 3018 3019 /* 3020 * This header is architecture neutral 3021 * Please refer to the generic specification for details 3022 */ 3023 _________________________________________________________ 3024 3025 11.3.55. sys/resource.h 3026 3027 extern int getpriority(__priority_which_t, id_t); 3028 extern int getrlimit64(id_t, struct rlimit64 *); 3029 extern int setpriority(__priority_which_t, id_t, int); 3030 extern int setrlimit(__rlimit_resource_t, const struct rlimit *); 3031 extern int setrlimit64(__rlimit_resource_t, const struct rlimit64 *); 3032 extern int getrlimit(__rlimit_resource_t, struct rlimit *); 3033 extern int getrusage(int, struct rusage *); 3034 _________________________________________________________ 3035 3036 11.3.56. sys/sem.h 3037 3038 struct semid_ds { 3039 struct ipc_perm sem_perm; 3040 time_t sem_otime; 3041 time_t sem_ctime; 3042 unsigned long int sem_nsems; 3043 unsigned long int __unused3; 3044 unsigned long int __unused4; 3045 }; 3046 extern int semctl(int, int, int, ...); 3047 extern int semget(key_t, int, int); 3048 extern int semop(int, struct sembuf *, size_t); 3049 _________________________________________________________ 3050 3051 11.3.57. sys/shm.h 3052 3053 #define SHMLBA 4096 3054 3055 typedef unsigned long int shmatt_t; 3056 3057 struct shmid_ds { 3058 struct ipc_perm shm_perm; 3059 size_t shm_segsz; 3060 time_t shm_atime; 3061 time_t shm_dtime; 3062 time_t shm_ctime; 3063 pid_t shm_cpid; 3064 pid_t shm_lpid; 3065 shmatt_t shm_nattch; 3066 unsigned long int __unused4; 3067 unsigned long int __unused5; 3068 }; 3069 extern int __getpagesize(void); 3070 extern void *shmat(int, const void *, int); 3071 extern int shmctl(int, int, struct shmid_ds *); 3072 extern int shmdt(const void *); 3073 extern int shmget(key_t, size_t, int); 3074 _________________________________________________________ 3075 3076 11.3.58. sys/socket.h 3077 3078 typedef uint64_t __ss_aligntype; 3079 3080 #define SO_RCVLOWAT 18 3081 #define SO_SNDLOWAT 19 3082 #define SO_RCVTIMEO 20 3083 #define SO_SNDTIMEO 21 3084 3085 extern int bind(int, const struct sockaddr *, socklen_t); 3086 extern int getnameinfo(const struct sockaddr *, socklen_t, char *, 3087 socklen_t, char *, socklen_t, unsigned int); 3088 extern int getsockname(int, struct sockaddr *, socklen_t *); 3089 extern int listen(int, int); 3090 extern int setsockopt(int, int, int, const void *, socklen_t); 3091 extern int accept(int, struct sockaddr *, socklen_t *); 3092 extern int connect(int, const struct sockaddr *, socklen_t); 3093 extern ssize_t recv(int, void *, size_t, int); 3094 extern ssize_t recvfrom(int, void *, size_t, int, struct sockaddr *, 3095 socklen_t *); 3096 extern ssize_t recvmsg(int, struct msghdr *, int); 3097 extern ssize_t send(int, const void *, size_t, int); 3098 extern ssize_t sendmsg(int, const struct msghdr *, int); 3099 extern ssize_t sendto(int, const void *, size_t, int, 3100 const struct sockaddr *, socklen_t); 3101 extern int getpeername(int, struct sockaddr *, socklen_t *); 3102 extern int getsockopt(int, int, int, void *, socklen_t *); 3103 extern int shutdown(int, int); 3104 extern int socket(int, int, int); 3105 extern int socketpair(int, int, int, int); 3106 extern int sockatmark(int); 3107 _________________________________________________________ 3108 3109 11.3.59. sys/stat.h 3110 3111 #define _STAT_VER 1 3112 3113 struct stat { 3114 dev_t st_dev; 3115 ino_t st_ino; 3116 nlink_t st_nlink; 3117 mode_t st_mode; 3118 uid_t st_uid; 3119 gid_t st_gid; 3120 int pad0; 3121 dev_t st_rdev; 3122 off_t st_size; 3123 struct timespec st_atim; 3124 struct timespec st_mtim; 3125 struct timespec st_ctim; 3126 blksize_t st_blksize; 3127 blkcnt_t st_blocks; 3128 long int __unused[3]; 3129 }; 3130 struct stat64 { 3131 dev_t st_dev; 3132 ino64_t st_ino; 3133 nlink_t st_nlink; 3134 mode_t st_mode; 3135 uid_t st_uid; 3136 gid_t st_gid; 3137 int pad0; 3138 dev_t st_rdev; 3139 off_t st_size; 3140 struct timespec st_atim; 3141 struct timespec st_mtim; 3142 struct timespec st_ctim; 3143 blksize_t st_blksize; 3144 blkcnt64_t st_blocks; 3145 long int __unused[3]; 3146 }; 3147 3148 extern int __fxstat(int, int, struct stat *); 3149 extern int __fxstat64(int, int, struct stat64 *); 3150 extern int __lxstat(int, char *, struct stat *); 3151 extern int __lxstat64(int, const char *, struct stat64 *); 3152 extern int __xmknod(int, const char *, mode_t, dev_t *); 3153 extern int __xstat(int, const char *, struct stat *); 3154 extern int __xstat64(int, const char *, struct stat64 *); 3155 extern int mkfifo(const char *, mode_t); 3156 extern int chmod(const char *, mode_t); 3157 extern int fchmod(int, mode_t); 3158 extern mode_t umask(mode_t); 3159 _________________________________________________________ 3160 3161 11.3.60. sys/statvfs.h 3162 3163 struct statvfs { 3164 unsigned long int f_bsize; 3165 unsigned long int f_frsize; 3166 fsblkcnt64_t f_blocks; 3167 fsblkcnt64_t f_bfree; 3168 fsblkcnt64_t f_bavail; 3169 fsfilcnt64_t f_files; 3170 fsfilcnt64_t f_ffree; 3171 fsfilcnt64_t f_favail; 3172 unsigned long int f_fsid; 3173 unsigned long int f_flag; 3174 unsigned long int f_namemax; 3175 int __f_spare[6]; 3176 }; 3177 struct statvfs64 { 3178 unsigned long int f_bsize; 3179 unsigned long int f_frsize; 3180 fsblkcnt64_t f_blocks; 3181 fsblkcnt64_t f_bfree; 3182 fsblkcnt64_t f_bavail; 3183 fsfilcnt64_t f_files; 3184 fsfilcnt64_t f_ffree; 3185 fsfilcnt64_t f_favail; 3186 unsigned long int f_fsid; 3187 unsigned long int f_flag; 3188 unsigned long int f_namemax; 3189 int __f_spare[6]; 3190 }; 3191 extern int fstatvfs(int, struct statvfs *); 3192 extern int fstatvfs64(int, struct statvfs64 *); 3193 extern int statvfs(const char *, struct statvfs *); 3194 extern int statvfs64(const char *, struct statvfs64 *); 3195 _________________________________________________________ 3196 3197 11.3.61. sys/time.h 3198 3199 extern int getitimer(__itimer_which_t, struct itimerval *); 3200 extern int setitimer(__itimer_which_t, const struct itimerval *, 3201 struct itimerval *); 3202 extern int adjtime(const struct timeval *, struct timeval *); 3203 extern int gettimeofday(struct timeval *, struct timezone *); 3204 extern int utimes(const char *, const struct timeval *); 3205 _________________________________________________________ 3206 3207 11.3.62. sys/timeb.h 3208 3209 extern int ftime(struct timeb *); 3210 _________________________________________________________ 3211 3212 11.3.63. sys/times.h 3213 3214 extern clock_t times(struct tms *); 3215 _________________________________________________________ 3216 3217 11.3.64. sys/types.h 3218 3219 typedef long int int64_t; 3220 3221 typedef int64_t ssize_t; 3222 3223 #define __FDSET_LONGS 16 3224 _________________________________________________________ 3225 3226 11.3.65. sys/uio.h 3227 3228 extern ssize_t readv(int, const struct iovec *, int); 3229 extern ssize_t writev(int, const struct iovec *, int); 3230 _________________________________________________________ 3231 3232 11.3.66. sys/un.h 3233 3234 /* 3235 * This header is architecture neutral 3236 * Please refer to the generic specification for details 3237 */ 3238 _________________________________________________________ 3239 3240 11.3.67. sys/utsname.h 3241 3242 extern int uname(struct utsname *); 3243 _________________________________________________________ 3244 3245 11.3.68. sys/wait.h 3246 3247 extern pid_t wait(int *); 3248 extern pid_t waitpid(pid_t, int *, int); 3249 extern pid_t wait4(pid_t, int *, int, struct rusage *); 3250 _________________________________________________________ 3251 3252 11.3.69. syslog.h 3253 3254 extern void closelog(void); 3255 extern void openlog(const char *, int, int); 3256 extern int setlogmask(int); 3257 extern void syslog(int, const char *, ...); 3258 extern void vsyslog(int, const char *, va_list); 3259 _________________________________________________________ 3260 3261 11.3.70. termios.h 3262 3263 #define CR2 1024 3264 #define CR3 1536 3265 #define CRDLY 1536 3266 #define VT1 16384 3267 #define VTDLY 16384 3268 #define OLCUC 2 3269 #define TAB1 2048 3270 #define NLDLY 256 3271 #define FF1 32768 3272 #define FFDLY 32768 3273 #define ONLCR 4 3274 #define XCASE 4 3275 #define TAB2 4096 3276 #define CR1 512 3277 #define IUCLC 512 3278 #define TAB3 6144 3279 #define TABDLY 6144 3280 #define BS1 8192 3281 #define BSDLY 8192 3282 3283 #define VSUSP 10 3284 #define VEOL 11 3285 #define VREPRINT 12 3286 #define VDISCARD 13 3287 #define VWERASE 14 3288 #define VEOL2 16 3289 #define VMIN 6 3290 #define VSWTC 7 3291 #define VSTART 8 3292 #define VSTOP 9 3293 3294 #define IXON 1024 3295 #define IXOFF 4096 3296 3297 #define HUPCL 1024 3298 #define CREAD 128 3299 #define CS6 16 3300 #define CLOCAL 2048 3301 #define PARENB 256 3302 #define CS7 32 3303 #define CS8 48 3304 #define CSIZE 48 3305 #define VTIME 5 3306 #define PARODD 512 3307 #define CSTOPB 64 3308 3309 #define ISIG 1 3310 #define ECHOPRT 1024 3311 #define NOFLSH 128 3312 #define ECHOE 16 3313 #define PENDIN 16384 3314 #define ICANON 2 3315 #define ECHOKE 2048 3316 #define TOSTOP 256 3317 #define ECHOK 32 3318 #define IEXTEN 32768 3319 #define FLUSHO 4096 3320 #define ECHOCTL 512 3321 #define ECHONL 64 3322 3323 extern speed_t cfgetispeed(const struct termios *); 3324 extern speed_t cfgetospeed(const struct termios *); 3325 extern void cfmakeraw(struct termios *); 3326 extern int cfsetispeed(struct termios *, speed_t); 3327 extern int cfsetospeed(struct termios *, speed_t); 3328 extern int cfsetspeed(struct termios *, speed_t); 3329 extern int tcflow(int, int); 3330 extern int tcflush(int, int); 3331 extern pid_t tcgetsid(int); 3332 extern int tcsendbreak(int, int); 3333 extern int tcsetattr(int, int, const struct termios *); 3334 extern int tcdrain(int); 3335 extern int tcgetattr(int, struct termios *); 3336 _________________________________________________________ 3337 3338 11.3.71. time.h 3339 3340 extern int __daylight(void); 3341 extern long int __timezone(void); 3342 extern char *__tzname(void); 3343 extern char *asctime(const struct tm *); 3344 extern clock_t clock(void); 3345 extern char *ctime(const time_t *); 3346 extern char *ctime_r(const time_t *, char *); 3347 extern double difftime(time_t, time_t); 3348 extern struct tm *getdate(const char *); 3349 extern int getdate_err(void); 3350 extern struct tm *gmtime(const time_t *); 3351 extern struct tm *localtime(const time_t *); 3352 extern time_t mktime(struct tm *); 3353 extern int stime(const time_t *); 3354 extern size_t strftime(char *, size_t, const char *, const struct tm *); 3355 extern char *strptime(const char *, const char *, struct tm *); 3356 extern time_t time(time_t *); 3357 extern int nanosleep(const struct timespec *, struct timespec *); 3358 extern int daylight(void); 3359 extern long int timezone(void); 3360 extern char *tzname(void); 3361 extern void tzset(void); 3362 extern char *asctime_r(const struct tm *, char *); 3363 extern struct tm *gmtime_r(const time_t *, struct tm *); 3364 extern struct tm *localtime_r(const time_t *, struct tm *); 3365 extern int clock_getcpuclockid(pid_t, clockid_t *); 3366 extern int clock_getres(clockid_t, struct timespec *); 3367 extern int clock_gettime(clockid_t, struct timespec *); 3368 extern int clock_nanosleep(clockid_t, int, const struct timespec *, 3369 struct timespec *); 3370 extern int clock_settime(clockid_t, const struct timespec *); 3371 extern int timer_create(clockid_t, struct sigevent *, timer_t *); 3372 extern int timer_delete(timer_t); 3373 extern int timer_getoverrun(timer_t); 3374 extern int timer_gettime(timer_t, struct itimerspec *); 3375 extern int timer_settime(timer_t, int, const struct itimerspec *, 3376 struct itimerspec *); 3377 _________________________________________________________ 3378 3379 11.3.72. ucontext.h 3380 3381 #define NGREG 27 3382 3383 typedef union { 3384 double d; 3385 float f; 3386 } fpreg_t; 3387 3388 typedef struct { 3389 unsigned int fpc; 3390 fpreg_t fprs[16]; 3391 } fpregset_t; 3392 3393 typedef struct { 3394 _psw_t psw; 3395 unsigned long int gregs[16]; 3396 unsigned int aregs[16]; 3397 fpregset_t fpregs; 3398 } mcontext_t; 3399 3400 typedef struct ucontext { 3401 unsigned long int uc_flags; 3402 struct ucontext *uc_link; 3403 stack_t uc_stack; 3404 mcontext_t uc_mcontext; 3405 sigset_t uc_sigmask; 3406 } ucontext_t; 3407 extern int getcontext(ucontext_t *); 3408 extern int makecontext(ucontext_t *, void (*func) (void) 3409 , int, ...); 3410 extern int setcontext(const struct ucontext *); 3411 extern int swapcontext(ucontext_t *, const struct ucontext *); 3412 _________________________________________________________ 3413 3414 11.3.73. ulimit.h 3415 3416 extern long int ulimit(int, ...); 3417 _________________________________________________________ 3418 3419 11.3.74. unistd.h 3420 3421 extern char **__environ(void); 3422 extern pid_t __getpgid(pid_t); 3423 extern void _exit(int); 3424 extern int acct(const char *); 3425 extern unsigned int alarm(unsigned int); 3426 extern int chown(const char *, uid_t, gid_t); 3427 extern int chroot(const char *); 3428 extern size_t confstr(int, char *, size_t); 3429 extern int creat(const char *, mode_t); 3430 extern int creat64(const char *, mode_t); 3431 extern char *ctermid(char *); 3432 extern char *cuserid(char *); 3433 extern int daemon(int, int); 3434 extern int execl(const char *, const char *, ...); 3435 extern int execle(const char *, const char *, ...); 3436 extern int execlp(const char *, const char *, ...); 3437 extern int execv(const char *, char *const); 3438 extern int execvp(const char *, char *const); 3439 extern int fdatasync(int); 3440 extern int ftruncate64(int, off64_t); 3441 extern long int gethostid(void); 3442 extern char *getlogin(void); 3443 extern int getlogin_r(char *, size_t); 3444 extern int getopt(int, char *const, const char *); 3445 extern pid_t getpgrp(void); 3446 extern pid_t getsid(pid_t); 3447 extern char *getwd(char *); 3448 extern int lockf(int, int, off_t); 3449 extern int mkstemp(char *); 3450 extern int nice(int); 3451 extern char *optarg(void); 3452 extern int opterr(void); 3453 extern int optind(void); 3454 extern int optopt(void); 3455 extern int rename(const char *, const char *); 3456 extern int setegid(gid_t); 3457 extern int seteuid(uid_t); 3458 extern int sethostname(const char *, size_t); 3459 extern int setpgrp(void); 3460 extern void swab(const void *, void *, ssize_t); 3461 extern void sync(void); 3462 extern pid_t tcgetpgrp(int); 3463 extern int tcsetpgrp(int, pid_t); 3464 extern int truncate(const char *, off_t); 3465 extern int truncate64(const char *, off64_t); 3466 extern char *ttyname(int); 3467 extern unsigned int ualarm(useconds_t, useconds_t); 3468 extern int usleep(useconds_t); 3469 extern int close(int); 3470 extern int fsync(int); 3471 extern off_t lseek(int, off_t, int); 3472 extern int open(const char *, int, ...); 3473 extern int pause(void); 3474 extern ssize_t read(int, void *, size_t); 3475 extern ssize_t write(int, const void *, size_t); 3476 extern char *crypt(char *, char *); 3477 extern void encrypt(char *, int); 3478 extern void setkey(const char *); 3479 extern int access(const char *, int); 3480 extern int brk(void *); 3481 extern int chdir(const char *); 3482 extern int dup(int); 3483 extern int dup2(int, int); 3484 extern int execve(const char *, char *const, char *const); 3485 extern int fchdir(int); 3486 extern int fchown(int, uid_t, gid_t); 3487 extern pid_t fork(void); 3488 extern gid_t getegid(void); 3489 extern uid_t geteuid(void); 3490 extern gid_t getgid(void); 3491 extern int getgroups(int, gid_t); 3492 extern int gethostname(char *, size_t); 3493 extern pid_t getpgid(pid_t); 3494 extern pid_t getpid(void); 3495 extern uid_t getuid(void); 3496 extern int lchown(const char *, uid_t, gid_t); 3497 extern int link(const char *, const char *); 3498 extern int mkdir(const char *, mode_t); 3499 extern long int pathconf(const char *, int); 3500 extern int pipe(int); 3501 extern int readlink(const char *, char *, size_t); 3502 extern int rmdir(const char *); 3503 extern void *sbrk(ptrdiff_t); 3504 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 3505 extern int setgid(gid_t); 3506 extern int setpgid(pid_t, pid_t); 3507 extern int setregid(gid_t, gid_t); 3508 extern int setreuid(uid_t, uid_t); 3509 extern pid_t setsid(void); 3510 extern int setuid(uid_t); 3511 extern unsigned int sleep(unsigned int); 3512 extern int symlink(const char *, const char *); 3513 extern long int sysconf(int); 3514 extern int unlink(const char *); 3515 extern pid_t vfork(void); 3516 extern ssize_t pread(int, void *, size_t, off_t); 3517 extern ssize_t pwrite(int, const void *, size_t, off_t); 3518 extern char **_environ(void); 3519 extern long int fpathconf(int, int); 3520 extern int ftruncate(int, off_t); 3521 extern char *getcwd(char *, size_t); 3522 extern int getpagesize(void); 3523 extern pid_t getppid(void); 3524 extern int isatty(int); 3525 extern loff_t lseek64(int, loff_t, int); 3526 extern int open64(const char *, int, ...); 3527 extern ssize_t pread64(int, void *, size_t, off64_t); 3528 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 3529 extern int ttyname_r(int, char *, size_t); 3530 _________________________________________________________ 3531 3532 11.3.75. utime.h 3533 3534 extern int utime(const char *, const struct utimbuf *); 3535 _________________________________________________________ 3536 3537 11.3.76. utmp.h 3538 3539 struct lastlog { 3540 time_t ll_time; 3541 char ll_line[UT_LINESIZE]; 3542 char ll_host[UT_HOSTSIZE]; 3543 }; 3544 3545 struct utmp { 3546 short ut_type; 3547 pid_t ut_pid; 3548 char ut_line[UT_LINESIZE]; 3549 char ut_id[4]; 3550 char ut_user[UT_NAMESIZE]; 3551 char ut_host[UT_HOSTSIZE]; 3552 struct exit_status ut_exit; 3553 long int ut_session; 3554 struct timeval ut_tv; 3555 int32_t ut_addr_v6[4]; 3556 char __unused[20]; 3557 }; 3558 3559 extern void endutent(void); 3560 extern struct utmp *getutent(void); 3561 extern void setutent(void); 3562 extern int getutent_r(struct utmp *, struct utmp **); 3563 extern int utmpname(const char *); 3564 extern int login_tty(int); 3565 extern void login(const struct utmp *); 3566 extern int logout(const char *); 3567 extern void logwtmp(const char *, const char *, const char *); 3568 _________________________________________________________ 3569 3570 11.3.77. utmpx.h 3571 3572 struct utmpx { 3573 short ut_type; 3574 pid_t ut_pid; 3575 char ut_line[UT_LINESIZE]; 3576 char ut_id[4]; 3577 char ut_user[UT_NAMESIZE]; 3578 char ut_host[UT_HOSTSIZE]; 3579 struct exit_status ut_exit; 3580 long int ut_session; 3581 struct timeval ut_tv; 3582 int32_t ut_addr_v6[4]; 3583 char __unused[20]; 3584 }; 3585 3586 extern void endutxent(void); 3587 extern struct utmpx *getutxent(void); 3588 extern struct utmpx *getutxid(const struct utmpx *); 3589 extern struct utmpx *getutxline(const struct utmpx *); 3590 extern struct utmpx *pututxline(const struct utmpx *); 3591 extern void setutxent(void); 3592 _________________________________________________________ 3593 3594 11.3.78. wchar.h 3595 3596 extern double __wcstod_internal(const wchar_t *, wchar_t * *, int); 3597 extern float __wcstof_internal(const wchar_t *, wchar_t * *, int); 3598 extern long int __wcstol_internal(const wchar_t *, wchar_t * *, int, int); 3599 extern long double __wcstold_internal(const wchar_t *, wchar_t * *, int); 3600 extern unsigned long int __wcstoul_internal(const wchar_t *, wchar_t **, 3601 int, int); 3602 extern wchar_t *wcscat(wchar_t *, const wchar_t *); 3603 extern wchar_t *wcschr(const wchar_t *, wchar_t); 3604 extern int wcscmp(const wchar_t *, const wchar_t *); 3605 extern int wcscoll(const wchar_t *, const wchar_t *); 3606 extern wchar_t *wcscpy(wchar_t *, const wchar_t *); 3607 extern size_t wcscspn(const wchar_t *, const wchar_t *); 3608 extern wchar_t *wcsdup(const wchar_t *); 3609 extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); 3610 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); 3611 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); 3612 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); 3613 extern wchar_t *wcsrchr(const wchar_t *, wchar_t); 3614 extern size_t wcsspn(const wchar_t *, const wchar_t *); 3615 extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); 3616 extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t * *); 3617 extern int wcswidth(const wchar_t *, size_t); 3618 extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); 3619 extern int wctob(wint_t); 3620 extern int wcwidth(wchar_t); 3621 extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); 3622 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); 3623 extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); 3624 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); 3625 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); 3626 extern size_t mbrlen(const char *, size_t, mbstate_t *); 3627 extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); 3628 extern int mbsinit(const mbstate_t *); 3629 extern size_t mbsnrtowcs(wchar_t *, const char **, size_t, size_t, 3630 mbstate_t *); 3631 extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); 3632 extern wchar_t *wcpcpy(wchar_t *, const wchar_t *); 3633 extern wchar_t *wcpncpy(wchar_t *, const wchar_t *, size_t); 3634 extern size_t wcrtomb(char *, wchar_t, mbstate_t *); 3635 extern size_t wcslen(const wchar_t *); 3636 extern size_t wcsnrtombs(char *, const wchar_t * *, size_t, size_t, 3637 mbstate_t *); 3638 extern size_t wcsrtombs(char *, const wchar_t * *, size_t, mbstate_t *); 3639 extern double wcstod(const wchar_t *, wchar_t * *); 3640 extern float wcstof(const wchar_t *, wchar_t * *); 3641 extern long int wcstol(const wchar_t *, wchar_t * *, int); 3642 extern long double wcstold(const wchar_t *, wchar_t * *); 3643 extern long long int wcstoq(const wchar_t *, wchar_t * *, int); 3644 extern unsigned long int wcstoul(const wchar_t *, wchar_t * *, int); 3645 extern unsigned long long int wcstouq(const wchar_t *, wchar_t * *, int); 3646 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); 3647 extern int wcscasecmp(const wchar_t *, const wchar_t *); 3648 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 3649 extern size_t wcsnlen(const wchar_t *, size_t); 3650 extern long long int wcstoll(const wchar_t *, wchar_t * *, int); 3651 extern unsigned long long int wcstoull(const wchar_t *, wchar_t * *, int); 3652 extern wint_t btowc(int); 3653 extern wint_t fgetwc(FILE *); 3654 extern wint_t fgetwc_unlocked(FILE *); 3655 extern wchar_t *fgetws(wchar_t *, int, FILE *); 3656 extern wint_t fputwc(wchar_t, FILE *); 3657 extern int fputws(const wchar_t *, FILE *); 3658 extern int fwide(FILE *, int); 3659 extern int fwprintf(FILE *, const wchar_t *, ...); 3660 extern int fwscanf(FILE *, const wchar_t *, ...); 3661 extern wint_t getwc(FILE *); 3662 extern wint_t getwchar(void); 3663 extern wint_t putwc(wchar_t, FILE *); 3664 extern wint_t putwchar(wchar_t); 3665 extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); 3666 extern int swscanf(const wchar_t *, const wchar_t *, ...); 3667 extern wint_t ungetwc(wint_t, FILE *); 3668 extern int vfwprintf(FILE *, const wchar_t *, va_list); 3669 extern int vfwscanf(FILE *, const wchar_t *, va_list); 3670 extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list); 3671 extern int vswscanf(const wchar_t *, const wchar_t *, va_list); 3672 extern int vwprintf(const wchar_t *, va_list); 3673 extern int vwscanf(const wchar_t *, va_list); 3674 extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, 3675 const struct tm *); 3676 extern int wprintf(const wchar_t *, ...); 3677 extern int wscanf(const wchar_t *, ...); 3678 _________________________________________________________ 3679 3680 11.3.79. wctype.h 3681 3682 extern int iswblank(wint_t); 3683 extern wint_t towlower(wint_t); 3684 extern wint_t towupper(wint_t); 3685 extern wctrans_t wctrans(const char *); 3686 extern int iswalnum(wint_t); 3687 extern int iswalpha(wint_t); 3688 extern int iswcntrl(wint_t); 3689 extern int iswctype(wint_t, wctype_t); 3690 extern int iswdigit(wint_t); 3691 extern int iswgraph(wint_t); 3692 extern int iswlower(wint_t); 3693 extern int iswprint(wint_t); 3694 extern int iswpunct(wint_t); 3695 extern int iswspace(wint_t); 3696 extern int iswupper(wint_t); 3697 extern int iswxdigit(wint_t); 3698 extern wctype_t wctype(const char *); 3699 extern wint_t towctrans(wint_t, wctrans_t); 3700 _________________________________________________________ 3701 3702 11.3.80. wordexp.h 3703 3704 extern int wordexp(const char *, wordexp_t *, int); 3705 extern void wordfree(wordexp_t *); 3706 _________________________________________________________ 3707 3708 11.4. Interfaces for libm 3709 3710 Table 11-24 defines the library name and shared object name 3711 for the libm library 3712 3713 Table 11-24. libm Definition 3714 Library: libm 3715 SONAME: libm.so.6 3716 3717 The behavior of the interfaces in this library is specified by 3718 the following specifications: 3719 3720 [ISOC99] ISO C (1999) 3721 [LSB] This Specification 3722 [SUSv2] SUSv2 3723 [SUSv3] ISO POSIX (2003) 3724 _________________________________________________________ 3725 3726 11.4.1. Math 3727 _________________________________________________________ 3728 3729 11.4.1.1. Interfaces for Math 3730 3731 An LSB conforming implementation shall provide the 3732 architecture specific functions for Math specified in Table 3733 11-25, with the full mandatory functionality as described in 3734 the referenced underlying specification. 3735 3736 Table 11-25. libm - Math Function Interfaces 3737 __finite(GLIBC_2.2) [ISOC99] __finitef(GLIBC_2.2) [ISOC99] 3738 __finitel(GLIBC_2.2) [ISOC99] __fpclassify(GLIBC_2.2) [LSB] 3739 __fpclassifyf(GLIBC_2.2) [LSB] acos(GLIBC_2.2) [SUSv3] 3740 acosf(GLIBC_2.2) [SUSv3] acosh(GLIBC_2.2) [SUSv3] 3741 acoshf(GLIBC_2.2) [SUSv3] acoshl(GLIBC_2.2) [SUSv3] 3742 acosl(GLIBC_2.2) [SUSv3] asin(GLIBC_2.2) [SUSv3] 3743 asinf(GLIBC_2.2) [SUSv3] asinh(GLIBC_2.2) [SUSv3] 3744 asinhf(GLIBC_2.2) [SUSv3] asinhl(GLIBC_2.2) [SUSv3] 3745 asinl(GLIBC_2.2) [SUSv3] atan(GLIBC_2.2) [SUSv3] 3746 atan2(GLIBC_2.2) [SUSv3] atan2f(GLIBC_2.2) [SUSv3] 3747 atan2l(GLIBC_2.2) [SUSv3] atanf(GLIBC_2.2) [SUSv3] 3748 atanh(GLIBC_2.2) [SUSv3] atanhf(GLIBC_2.2) [SUSv3] 3749 atanhl(GLIBC_2.2) [SUSv3] atanl(GLIBC_2.2) [SUSv3] 3750 cabs(GLIBC_2.2) [SUSv3] cabsf(GLIBC_2.2) [SUSv3] 3751 cabsl(GLIBC_2.2) [SUSv3] cacos(GLIBC_2.2) [SUSv3] 3752 cacosf(GLIBC_2.2) [SUSv3] cacosh(GLIBC_2.2) [SUSv3] 3753 cacoshf(GLIBC_2.2) [SUSv3] cacoshl(GLIBC_2.2) [SUSv3] 3754 cacosl(GLIBC_2.2) [SUSv3] carg(GLIBC_2.2) [SUSv3] 3755 cargf(GLIBC_2.2) [SUSv3] cargl(GLIBC_2.2) [SUSv3] 3756 casin(GLIBC_2.2) [SUSv3] casinf(GLIBC_2.2) [SUSv3] 3757 casinh(GLIBC_2.2) [SUSv3] casinhf(GLIBC_2.2) [SUSv3] 3758 casinhl(GLIBC_2.2) [SUSv3] casinl(GLIBC_2.2) [SUSv3] 3759 catan(GLIBC_2.2) [SUSv3] catanf(GLIBC_2.2) [SUSv3] 3760 catanh(GLIBC_2.2) [SUSv3] catanhf(GLIBC_2.2) [SUSv3] 3761 catanhl(GLIBC_2.2) [SUSv3] catanl(GLIBC_2.2) [SUSv3] 3762 cbrt(GLIBC_2.2) [SUSv3] cbrtf(GLIBC_2.2) [SUSv3] 3763 cbrtl(GLIBC_2.2) [SUSv3] ccos(GLIBC_2.2) [SUSv3] 3764 ccosf(GLIBC_2.2) [SUSv3] ccosh(GLIBC_2.2) [SUSv3] 3765 ccoshf(GLIBC_2.2) [SUSv3] ccoshl(GLIBC_2.2) [SUSv3] 3766 ccosl(GLIBC_2.2) [SUSv3] ceil(GLIBC_2.2) [SUSv3] 3767 ceilf(GLIBC_2.2) [SUSv3] ceill(GLIBC_2.2) [SUSv3] 3768 cexp(GLIBC_2.2) [SUSv3] cexpf(GLIBC_2.2) [SUSv3] 3769 cexpl(GLIBC_2.2) [SUSv3] cimag(GLIBC_2.2) [SUSv3] 3770 cimagf(GLIBC_2.2) [SUSv3] cimagl(GLIBC_2.2) [SUSv3] 3771 clog(GLIBC_2.2) [SUSv3] clog10(GLIBC_2.2) [ISOC99] 3772 clog10f(GLIBC_2.2) [ISOC99] clog10l(GLIBC_2.2) [ISOC99] 3773 clogf(GLIBC_2.2) [SUSv3] clogl(GLIBC_2.2) [SUSv3] 3774 conj(GLIBC_2.2) [SUSv3] conjf(GLIBC_2.2) [SUSv3] 3775 conjl(GLIBC_2.2) [SUSv3] copysign(GLIBC_2.2) [SUSv3] 3776 copysignf(GLIBC_2.2) [SUSv3] copysignl(GLIBC_2.2) [SUSv3] 3777 cos(GLIBC_2.2) [SUSv3] cosf(GLIBC_2.2) [SUSv3] cosh(GLIBC_2.2) 3778 [SUSv3] coshf(GLIBC_2.2) [SUSv3] 3779 coshl(GLIBC_2.2) [SUSv3] cosl(GLIBC_2.2) [SUSv3] 3780 cpow(GLIBC_2.2) [SUSv3] cpowf(GLIBC_2.2) [SUSv3] 3781 cpowl(GLIBC_2.2) [SUSv3] cproj(GLIBC_2.2) [SUSv3] 3782 cprojf(GLIBC_2.2) [SUSv3] cprojl(GLIBC_2.2) [SUSv3] 3783 creal(GLIBC_2.2) [SUSv3] crealf(GLIBC_2.2) [SUSv3] 3784 creall(GLIBC_2.2) [SUSv3] csin(GLIBC_2.2) [SUSv3] 3785 csinf(GLIBC_2.2) [SUSv3] csinh(GLIBC_2.2) [SUSv3] 3786 csinhf(GLIBC_2.2) [SUSv3] csinhl(GLIBC_2.2) [SUSv3] 3787 csinl(GLIBC_2.2) [SUSv3] csqrt(GLIBC_2.2) [SUSv3] 3788 csqrtf(GLIBC_2.2) [SUSv3] csqrtl(GLIBC_2.2) [SUSv3] 3789 ctan(GLIBC_2.2) [SUSv3] ctanf(GLIBC_2.2) [SUSv3] 3790 ctanh(GLIBC_2.2) [SUSv3] ctanhf(GLIBC_2.2) [SUSv3] 3791 ctanhl(GLIBC_2.2) [SUSv3] ctanl(GLIBC_2.2) [SUSv3] 3792 dremf(GLIBC_2.2) [ISOC99] dreml(GLIBC_2.2) [ISOC99] 3793 erf(GLIBC_2.2) [SUSv3] erfc(GLIBC_2.2) [SUSv3] 3794 erfcf(GLIBC_2.2) [SUSv3] erfcl(GLIBC_2.2) [SUSv3] 3795 erff(GLIBC_2.2) [SUSv3] erfl(GLIBC_2.2) [SUSv3] exp(GLIBC_2.2) 3796 [SUSv3] exp2(GLIBC_2.2) [SUSv3] 3797 exp2f(GLIBC_2.2) [SUSv3] expf(GLIBC_2.2) [SUSv3] 3798 expl(GLIBC_2.2) [SUSv3] expm1(GLIBC_2.2) [SUSv3] 3799 expm1f(GLIBC_2.2) [SUSv3] expm1l(GLIBC_2.2) [SUSv3] 3800 fabs(GLIBC_2.2) [SUSv3] fabsf(GLIBC_2.2) [SUSv3] 3801 fabsl(GLIBC_2.2) [SUSv3] fdim(GLIBC_2.2) [SUSv3] 3802 fdimf(GLIBC_2.2) [SUSv3] fdiml(GLIBC_2.2) [SUSv3] 3803 feclearexcept(GLIBC_2.2) [SUSv3] fegetenv(GLIBC_2.2) [SUSv3] 3804 fegetexceptflag(GLIBC_2.2) [SUSv3] fegetround(GLIBC_2.2) 3805 [SUSv3] 3806 feholdexcept(GLIBC_2.2) [SUSv3] feraiseexcept(GLIBC_2.2) 3807 [SUSv3] fesetenv(GLIBC_2.2) [SUSv3] fesetexceptflag(GLIBC_2.2) 3808 [SUSv3] 3809 fesetround(GLIBC_2.2) [SUSv3] fetestexcept(GLIBC_2.2) [SUSv3] 3810 feupdateenv(GLIBC_2.2) [SUSv3] finite(GLIBC_2.2) [SUSv2] 3811 finitef(GLIBC_2.2) [ISOC99] finitel(GLIBC_2.2) [ISOC99] 3812 floor(GLIBC_2.2) [SUSv3] floorf(GLIBC_2.2) [SUSv3] 3813 floorl(GLIBC_2.2) [SUSv3] fma(GLIBC_2.2) [SUSv3] 3814 fmaf(GLIBC_2.2) [SUSv3] fmal(GLIBC_2.2) [SUSv3] 3815 fmax(GLIBC_2.2) [SUSv3] fmaxf(GLIBC_2.2) [SUSv3] 3816 fmaxl(GLIBC_2.2) [SUSv3] fmin(GLIBC_2.2) [SUSv3] 3817 fminf(GLIBC_2.2) [SUSv3] fminl(GLIBC_2.2) [SUSv3] 3818 fmod(GLIBC_2.2) [SUSv3] fmodf(GLIBC_2.2) [SUSv3] 3819 fmodl(GLIBC_2.2) [SUSv3] frexp(GLIBC_2.2) [SUSv3] 3820 frexpf(GLIBC_2.2) [SUSv3] frexpl(GLIBC_2.2) [SUSv3] 3821 gamma(GLIBC_2.2) [SUSv2] gammaf(GLIBC_2.2) [ISOC99] 3822 gammal(GLIBC_2.2) [ISOC99] hypot(GLIBC_2.2) [SUSv3] 3823 hypotf(GLIBC_2.2) [SUSv3] hypotl(GLIBC_2.2) [SUSv3] 3824 ilogb(GLIBC_2.2) [SUSv3] ilogbf(GLIBC_2.2) [SUSv3] 3825 ilogbl(GLIBC_2.2) [SUSv3] j0(GLIBC_2.2) [SUSv3] j0f(GLIBC_2.2) 3826 [ISOC99] j0l(GLIBC_2.2) [ISOC99] 3827 j1(GLIBC_2.2) [SUSv3] j1f(GLIBC_2.2) [ISOC99] j1l(GLIBC_2.2) 3828 [ISOC99] jn(GLIBC_2.2) [SUSv3] 3829 jnf(GLIBC_2.2) [ISOC99] jnl(GLIBC_2.2) [ISOC99] 3830 ldexp(GLIBC_2.2) [SUSv3] ldexpf(GLIBC_2.2) [SUSv3] 3831 ldexpl(GLIBC_2.2) [SUSv3] lgamma(GLIBC_2.2) [SUSv3] 3832 lgamma_r(GLIBC_2.2) [ISOC99] lgammaf(GLIBC_2.2) [SUSv3] 3833 lgammaf_r(GLIBC_2.2) [ISOC99] lgammal(GLIBC_2.2) [SUSv3] 3834 lgammal_r(GLIBC_2.2) [ISOC99] llrint(GLIBC_2.2) [SUSv3] 3835 llrintf(GLIBC_2.2) [SUSv3] llrintl(GLIBC_2.2) [SUSv3] 3836 llround(GLIBC_2.2) [SUSv3] llroundf(GLIBC_2.2) [SUSv3] 3837 llroundl(GLIBC_2.2) [SUSv3] log(GLIBC_2.2) [SUSv3] 3838 log10(GLIBC_2.2) [SUSv3] log10f(GLIBC_2.2) [SUSv3] 3839 log10l(GLIBC_2.2) [SUSv3] log1p(GLIBC_2.2) [SUSv3] 3840 log1pf(GLIBC_2.2) [SUSv3] log1pl(GLIBC_2.2) [SUSv3] 3841 log2(GLIBC_2.2) [SUSv3] log2f(GLIBC_2.2) [SUSv3] 3842 log2l(GLIBC_2.2) [SUSv3] logb(GLIBC_2.2) [SUSv3] 3843 logbf(GLIBC_2.2) [SUSv3] logbl(GLIBC_2.2) [SUSv3] 3844 logf(GLIBC_2.2) [SUSv3] logl(GLIBC_2.2) [SUSv3] 3845 lrint(GLIBC_2.2) [SUSv3] lrintf(GLIBC_2.2) [SUSv3] 3846 lrintl(GLIBC_2.2) [SUSv3] lround(GLIBC_2.2) [SUSv3] 3847 lroundf(GLIBC_2.2) [SUSv3] lroundl(GLIBC_2.2) [SUSv3] 3848 matherr(GLIBC_2.2) [ISOC99] modf(GLIBC_2.2) [SUSv3] 3849 modff(GLIBC_2.2) [SUSv3] modfl(GLIBC_2.2) [SUSv3] 3850 nan(GLIBC_2.2) [SUSv3] nanf(GLIBC_2.2) [SUSv3] 3851 nanl(GLIBC_2.2) [SUSv3] nearbyint(GLIBC_2.2) [SUSv3] 3852 nearbyintf(GLIBC_2.2) [SUSv3] nearbyintl(GLIBC_2.2) [SUSv3] 3853 nextafter(GLIBC_2.2) [SUSv3] nextafterf(GLIBC_2.2) [SUSv3] 3854 nextafterl(GLIBC_2.2) [SUSv3] nexttoward(GLIBC_2.2) [SUSv3] 3855 nexttowardf(GLIBC_2.2) [SUSv3] nexttowardl(GLIBC_2.2) [SUSv3] 3856 pow(GLIBC_2.2) [SUSv3] pow10(GLIBC_2.2) [ISOC99] 3857 pow10f(GLIBC_2.2) [ISOC99] pow10l(GLIBC_2.2) [ISOC99] 3858 powf(GLIBC_2.2) [SUSv3] powl(GLIBC_2.2) [SUSv3] 3859 remainder(GLIBC_2.2) [SUSv3] remainderf(GLIBC_2.2) [SUSv3] 3860 remainderl(GLIBC_2.2) [SUSv3] remquo(GLIBC_2.2) [SUSv3] 3861 remquof(GLIBC_2.2) [SUSv3] remquol(GLIBC_2.2) [SUSv3] 3862 rint(GLIBC_2.2) [SUSv3] rintf(GLIBC_2.2) [SUSv3] 3863 rintl(GLIBC_2.2) [SUSv3] round(GLIBC_2.2) [SUSv3] 3864 roundf(GLIBC_2.2) [SUSv3] roundl(GLIBC_2.2) [SUSv3] 3865 scalb(GLIBC_2.2) [SUSv3] scalbf(GLIBC_2.2) [ISOC99] 3866 scalbl(GLIBC_2.2) [ISOC99] scalbln(GLIBC_2.2) [SUSv3] 3867 scalblnf(GLIBC_2.2) [SUSv3] scalblnl(GLIBC_2.2) [SUSv3] 3868 scalbn(GLIBC_2.2) [SUSv3] scalbnf(GLIBC_2.2) [SUSv3] 3869 scalbnl(GLIBC_2.2) [SUSv3] significand(GLIBC_2.2) [ISOC99] 3870 significandf(GLIBC_2.2) [ISOC99] significandl(GLIBC_2.2) 3871 [ISOC99] 3872 sin(GLIBC_2.2) [SUSv3] sincos(GLIBC_2.2) [ISOC99] 3873 sincosf(GLIBC_2.2) [ISOC99] sincosl(GLIBC_2.2) [ISOC99] 3874 sinf(GLIBC_2.2) [SUSv3] sinh(GLIBC_2.2) [SUSv3] 3875 sinhf(GLIBC_2.2) [SUSv3] sinhl(GLIBC_2.2) [SUSv3] 3876 sinl(GLIBC_2.2) [SUSv3] sqrt(GLIBC_2.2) [SUSv3] 3877 sqrtf(GLIBC_2.2) [SUSv3] sqrtl(GLIBC_2.2) [SUSv3] 3878 tan(GLIBC_2.2) [SUSv3] tanf(GLIBC_2.2) [SUSv3] tanh(GLIBC_2.2) 3879 [SUSv3] tanhf(GLIBC_2.2) [SUSv3] 3880 tanhl(GLIBC_2.2) [SUSv3] tanl(GLIBC_2.2) [SUSv3] 3881 tgamma(GLIBC_2.2) [SUSv3] tgammaf(GLIBC_2.2) [SUSv3] 3882 tgammal(GLIBC_2.2) [SUSv3] trunc(GLIBC_2.2) [SUSv3] 3883 truncf(GLIBC_2.2) [SUSv3] truncl(GLIBC_2.2) [SUSv3] 3884 y0(GLIBC_2.2) [SUSv3] y0f(GLIBC_2.2) [ISOC99] y0l(GLIBC_2.2) 3885 [ISOC99] y1(GLIBC_2.2) [SUSv3] 3886 y1f(GLIBC_2.2) [ISOC99] y1l(GLIBC_2.2) [ISOC99] yn(GLIBC_2.2) 3887 [SUSv3] ynf(GLIBC_2.2) [ISOC99] 3888 ynl(GLIBC_2.2) [ISOC99] 3889 3890 An LSB conforming implementation shall provide the 3891 architecture specific data interfaces for Math specified in 3892 Table 11-26, with the full mandatory functionality as 3893 described in the referenced underlying specification. 3894 3895 Table 11-26. libm - Math Data Interfaces 3896 signgam(GLIBC_2.2) [SUSv3] 3897 _________________________________________________________ 3898 3899 11.5. Data Definitions for libm 3900 3901 This section defines global identifiers and their values that 3902 are associated with interfaces contained in libm. These 3903 definitions are organized into groups that correspond to 3904 system headers. This convention is used as a convenience for 3905 the reader, and does not imply the existence of these headers, 3906 or their content. Where an interface is defined as requiring a 3907 particular system header file all of the data definitions for 3908 that system header file presented here shall be in effect. 3909 3910 This section gives data definitions to promote binary 3911 application portability, not to repeat source interface 3912 definitions available elsewhere. System providers and 3913 application developers should use this ABI to supplement - not 3914 to replace - source interface definition specifications. 3915 3916 This specification uses the ISO C (1999) C Language as the 3917 reference programming language, and data definitions are 3918 specified in ISO C format. The C language is used here as a 3919 convenient notation. Using a C language description of these 3920 data objects does not preclude their use by other programming 3921 languages. 3922 _________________________________________________________ 3923 3924 11.5.1. complex.h 3925 3926 extern double cabs(double complex); 3927 extern float cabsf(float complex); 3928 extern long double cabsl(long double complex); 3929 extern double complex cacos(double complex); 3930 extern float complex cacosf(float complex); 3931 extern double complex cacosh(double complex); 3932 extern float complex cacoshf(float complex); 3933 extern long double complex cacoshl(long double complex); 3934 extern long double complex cacosl(long double complex); 3935 extern double carg(double complex); 3936 extern float cargf(float complex); 3937 extern long double cargl(long double complex); 3938 extern double complex casin(double complex); 3939 extern float complex casinf(float complex); 3940 extern double complex casinh(double complex); 3941 extern float complex casinhf(float complex); 3942 extern long double complex casinhl(long double complex); 3943 extern long double complex casinl(long double complex); 3944 extern double complex catan(double complex); 3945 extern float complex catanf(float complex); 3946 extern double complex catanh(double complex); 3947 extern float complex catanhf(float complex); 3948 extern long double complex catanhl(long double complex); 3949 extern long double complex catanl(long double complex); 3950 extern double complex ccos(double complex); 3951 extern float complex ccosf(float complex); 3952 extern double complex ccosh(double complex); 3953 extern float complex ccoshf(float complex); 3954 extern long double complex ccoshl(long double complex); 3955 extern long double complex ccosl(long double complex); 3956 extern double complex cexp(double complex); 3957 extern float complex cexpf(float complex); 3958 extern long double complex cexpl(long double complex); 3959 extern double cimag(double complex); 3960 extern float cimagf(float complex); 3961 extern long double cimagl(long double complex); 3962 extern double complex clog(double complex); 3963 extern float complex clog10f(float complex); 3964 extern long double complex clog10l(long double complex); 3965 extern float complex clogf(float complex); 3966 extern long double complex clogl(long double complex); 3967 extern double complex conj(double complex); 3968 extern float complex conjf(float complex); 3969 extern long double complex conjl(long double complex); 3970 extern double complex cpow(double complex, double complex); 3971 extern float complex cpowf(float complex, float complex); 3972 extern long double complex cpowl(long double complex, long double complex); 3973 extern double complex cproj(double complex); 3974 extern float complex cprojf(float complex); 3975 extern long double complex cprojl(long double complex); 3976 extern double creal(double complex); 3977 extern float crealf(float complex); 3978 extern long double creall(long double complex); 3979 extern double complex csin(double complex); 3980 extern float complex csinf(float complex); 3981 extern double complex csinh(double complex); 3982 extern float complex csinhf(float complex); 3983 extern long double complex csinhl(long double complex); 3984 extern long double complex csinl(long double complex); 3985 extern double complex csqrt(double complex); 3986 extern float complex csqrtf(float complex); 3987 extern long double complex csqrtl(long double complex); 3988 extern double complex ctan(double complex); 3989 extern float complex ctanf(float complex); 3990 extern double complex ctanh(double complex); 3991 extern float complex ctanhf(float complex); 3992 extern long double complex ctanhl(long double complex); 3993 extern long double complex ctanl(long double complex); 3994 _________________________________________________________ 3995 3996 11.5.2. fenv.h 3997 3998 #define FE_INEXACT 0x08 3999 #define FE_UNDERFLOW 0x10 4000 #define FE_OVERFLOW 0x20 4001 #define FE_DIVBYZERO 0x40 4002 #define FE_INVALID 0x80 4003 4004 #define FE_ALL_EXCEPT \ 4005 (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) 4006 4007 #define FE_TONEAREST 0 4008 #define FE_TOWARDZERO 0x1 4009 #define FE_UPWARD 0x2 4010 #define FE_DOWNWARD 0x3 4011 4012 typedef unsigned int fexcept_t; 4013 4014 typedef struct { 4015 fexcept_t fpc; 4016 void *ieee_instruction_pointer; 4017 } fenv_t; 4018 4019 #define FE_DFL_ENV ((__const fenv_t *) -1) 4020 4021 extern int feclearexcept(int); 4022 extern int fegetenv(fenv_t *); 4023 extern int fegetexceptflag(fexcept_t *, int); 4024 extern int fegetround(void); 4025 extern int feholdexcept(fenv_t *); 4026 extern int feraiseexcept(int); 4027 extern int fesetenv(const fenv_t *); 4028 extern int fesetexceptflag(const fexcept_t *, int); 4029 extern int fesetround(int); 4030 extern int fetestexcept(int); 4031 extern int feupdateenv(const fenv_t *); 4032 _________________________________________________________ 4033 4034 11.5.3. math.h 4035 4036 #define fpclassify(x) \ 4037 (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x) ) 4038 #define signbit(x) \ 4039 (sizeof (x) == sizeof (float)? __signbitf (x): __signbit (x)) 4040 4041 #define FP_ILOGB0 -2147483647 4042 #define FP_ILOGBNAN 2147483647 4043 4044 extern int __finite(double); 4045 extern int __finitef(float); 4046 extern int __finitel(long double); 4047 extern int __isinf(double); 4048 extern int __isinff(float); 4049 extern int __isinfl(long double); 4050 extern int __isnan(double); 4051 extern int __isnanf(float); 4052 extern int __isnanl(long double); 4053 extern int __signbit(double); 4054 extern int __signbitf(float); 4055 extern int __fpclassify(double); 4056 extern int __fpclassifyf(float); 4057 extern int __fpclassifyl(long double); 4058 extern int signgam(void); 4059 extern double copysign(double, double); 4060 extern int finite(double); 4061 extern double frexp(double, int *); 4062 extern double ldexp(double, int); 4063 extern double modf(double, double *); 4064 extern double acos(double); 4065 extern double acosh(double); 4066 extern double asinh(double); 4067 extern double atanh(double); 4068 extern double asin(double); 4069 extern double atan(double); 4070 extern double atan2(double, double); 4071 extern double cbrt(double); 4072 extern double ceil(double); 4073 extern double cos(double); 4074 extern double cosh(double); 4075 extern double erf(double); 4076 extern double erfc(double); 4077 extern double exp(double); 4078 extern double expm1(double); 4079 extern double fabs(double); 4080 extern double floor(double); 4081 extern double fmod(double, double); 4082 extern double gamma(double); 4083 extern double hypot(double, double); 4084 extern int ilogb(double); 4085 extern double j0(double); 4086 extern double j1(double); 4087 extern double jn(int, double); 4088 extern double lgamma(double); 4089 extern double log(double); 4090 extern double log10(double); 4091 extern double log1p(double); 4092 extern double logb(double); 4093 extern double nextafter(double, double); 4094 extern double pow(double, double); 4095 extern double remainder(double, double); 4096 extern double rint(double); 4097 extern double scalb(double, double); 4098 extern double sin(double); 4099 extern double sinh(double); 4100 extern double sqrt(double); 4101 extern double tan(double); 4102 extern double tanh(double); 4103 extern double y0(double); 4104 extern double y1(double); 4105 extern double yn(int, double); 4106 extern float copysignf(float, float); 4107 extern long double copysignl(long double, long double); 4108 extern int finitef(float); 4109 extern int finitel(long double); 4110 extern float frexpf(float, int *); 4111 extern long double frexpl(long double, int *); 4112 extern float ldexpf(float, int); 4113 extern long double ldexpl(long double, int); 4114 extern float modff(float, float *); 4115 extern long double modfl(long double, long double *); 4116 extern double scalbln(double, long int); 4117 extern float scalblnf(float, long int); 4118 extern long double scalblnl(long double, long int); 4119 extern double scalbn(double, int); 4120 extern float scalbnf(float, int); 4121 extern long double scalbnl(long double, int); 4122 extern float acosf(float); 4123 extern float acoshf(float); 4124 extern long double acoshl(long double); 4125 extern long double acosl(long double); 4126 extern float asinf(float); 4127 extern float asinhf(float); 4128 extern long double asinhl(long double); 4129 extern long double asinl(long double); 4130 extern float atan2f(float, float); 4131 extern long double atan2l(long double, long double); 4132 extern float atanf(float); 4133 extern float atanhf(float); 4134 extern long double atanhl(long double); 4135 extern long double atanl(long double); 4136 extern float cbrtf(float); 4137 extern long double cbrtl(long double); 4138 extern float ceilf(float); 4139 extern long double ceill(long double); 4140 extern float cosf(float); 4141 extern float coshf(float); 4142 extern long double coshl(long double); 4143 extern long double cosl(long double); 4144 extern float dremf(float, float); 4145 extern long double dreml(long double, long double); 4146 extern float erfcf(float); 4147 extern long double erfcl(long double); 4148 extern float erff(float); 4149 extern long double erfl(long double); 4150 extern double exp2(double); 4151 extern float exp2f(float); 4152 extern long double exp2l(long double); 4153 extern float expf(float); 4154 extern long double expl(long double); 4155 extern float expm1f(float); 4156 extern long double expm1l(long double); 4157 extern float fabsf(float); 4158 extern long double fabsl(long double); 4159 extern double fdim(double, double); 4160 extern float fdimf(float, float); 4161 extern long double fdiml(long double, long double); 4162 extern float floorf(float); 4163 extern long double floorl(long double); 4164 extern double fma(double, double, double); 4165 extern float fmaf(float, float, float); 4166 extern long double fmal(long double, long double, long double); 4167 extern double fmax(double, double); 4168 extern float fmaxf(float, float); 4169 extern long double fmaxl(long double, long double); 4170 extern double fmin(double, double); 4171 extern float fminf(float, float); 4172 extern long double fminl(long double, long double); 4173 extern float fmodf(float, float); 4174 extern long double fmodl(long double, long double); 4175 extern float gammaf(float); 4176 extern long double gammal(long double); 4177 extern float hypotf(float, float); 4178 extern long double hypotl(long double, long double); 4179 extern int ilogbf(float); 4180 extern int ilogbl(long double); 4181 extern float j0f(float); 4182 extern long double j0l(long double); 4183 extern float j1f(float); 4184 extern long double j1l(long double); 4185 extern float jnf(int, float); 4186 extern long double jnl(int, long double); 4187 extern double lgamma_r(double, int *); 4188 extern float lgammaf(float); 4189 extern float lgammaf_r(float, int *); 4190 extern long double lgammal(long double); 4191 extern long double lgammal_r(long double, int *); 4192 extern long long int llrint(double); 4193 extern long long int llrintf(float); 4194 extern long long int llrintl(long double); 4195 extern long long int llround(double); 4196 extern long long int llroundf(float); 4197 extern long long int llroundl(long double); 4198 extern float log10f(float); 4199 extern long double log10l(long double); 4200 extern float log1pf(float); 4201 extern long double log1pl(long double); 4202 extern double log2(double); 4203 extern float log2f(float); 4204 extern long double log2l(long double); 4205 extern float logbf(float); 4206 extern long double logbl(long double); 4207 extern float logf(float); 4208 extern long double logl(long double); 4209 extern long int lrint(double); 4210 extern long int lrintf(float); 4211 extern long int lrintl(long double); 4212 extern long int lround(double); 4213 extern long int lroundf(float); 4214 extern long int lroundl(long double); 4215 extern int matherr(struct exception *); 4216 extern double nan(const char *); 4217 extern float nanf(const char *); 4218 extern long double nanl(const char *); 4219 extern double nearbyint(double); 4220 extern float nearbyintf(float); 4221 extern long double nearbyintl(long double); 4222 extern float nextafterf(float, float); 4223 extern long double nextafterl(long double, long double); 4224 extern double nexttoward(double, long double); 4225 extern float nexttowardf(float, long double); 4226 extern long double nexttowardl(long double, long double); 4227 extern double pow10(double); 4228 extern float pow10f(float); 4229 extern long double pow10l(long double); 4230 extern float powf(float, float); 4231 extern long double powl(long double, long double); 4232 extern float remainderf(float, float); 4233 extern long double remainderl(long double, long double); 4234 extern double remquo(double, double, int *); 4235 extern float remquof(float, float, int *); 4236 extern long double remquol(long double, long double, int *); 4237 extern float rintf(float); 4238 extern long double rintl(long double); 4239 extern double round(double); 4240 extern float roundf(float); 4241 extern long double roundl(long double); 4242 extern float scalbf(float, float); 4243 extern long double scalbl(long double, long double); 4244 extern double significand(double); 4245 extern float significandf(float); 4246 extern long double significandl(long double); 4247 extern void sincos(double, double *, double *); 4248 extern void sincosf(float, float *, float *); 4249 extern void sincosl(long double, long double *, long double *); 4250 extern float sinf(float); 4251 extern float sinhf(float); 4252 extern long double sinhl(long double); 4253 extern long double sinl(long double); 4254 extern float sqrtf(float); 4255 extern long double sqrtl(long double); 4256 extern float tanf(float); 4257 extern float tanhf(float); 4258 extern long double tanhl(long double); 4259 extern long double tanl(long double); 4260 extern double tgamma(double); 4261 extern float tgammaf(float); 4262 extern long double tgammal(long double); 4263 extern double trunc(double); 4264 extern float truncf(float); 4265 extern long double truncl(long double); 4266 extern float y0f(float); 4267 extern long double y0l(long double); 4268 extern float y1f(float); 4269 extern long double y1l(long double); 4270 extern float ynf(int, float); 4271 extern long double ynl(int, long double); 4272 extern int __fpclassifyl(long double); 4273 extern int __fpclassifyl(long double); 4274 extern int __signbitl(long double); 4275 extern int __signbitl(long double); 4276 extern int __signbitl(long double); 4277 extern long double exp2l(long double); 4278 extern long double exp2l(long double); 4279 _________________________________________________________ 4280 4281 11.6. Interfaces for libpthread 4282 4283 Table 11-27 defines the library name and shared object name 4284 for the libpthread library 4285 4286 Table 11-27. libpthread Definition 4287 Library: libpthread 4288 SONAME: libpthread.so.0 4289 4290 The behavior of the interfaces in this library is specified by 4291 the following specifications: 4292 4293 [LFS] Large File Support 4294 [LSB] This Specification 4295 [SUSv3] ISO POSIX (2003) 4296 _________________________________________________________ 4297 4298 11.6.1. Realtime Threads 4299 _________________________________________________________ 4300 4301 11.6.1.1. Interfaces for Realtime Threads 4302 4303 An LSB conforming implementation shall provide the 4304 architecture specific functions for Realtime Threads specified 4305 in Table 11-28, with the full mandatory functionality as 4306 described in the referenced underlying specification. 4307 4308 Table 11-28. libpthread - Realtime Threads Function Interfaces 4309 pthread_attr_getinheritsched(GLIBC_2.2) [SUSv3] 4310 pthread_attr_getschedpolicy(GLIBC_2.2) [SUSv3] 4311 pthread_attr_getscope(GLIBC_2.2) [SUSv3] 4312 pthread_attr_setinheritsched(GLIBC_2.2) [SUSv3] 4313 pthread_attr_setschedpolicy(GLIBC_2.2) [SUSv3] 4314 pthread_attr_setscope(GLIBC_2.2) [SUSv3] 4315 pthread_getschedparam(GLIBC_2.2) [SUSv3] 4316 pthread_setschedparam(GLIBC_2.2) [SUSv3] 4317 _________________________________________________________ 4318 4319 11.6.2. Advanced Realtime Threads 4320 _________________________________________________________ 4321 4322 11.6.2.1. Interfaces for Advanced Realtime Threads 4323 4324 No external functions are defined for libpthread - Advanced 4325 Realtime Threads in this part of the specification. See also 4326 the generic specification. 4327 _________________________________________________________ 4328 4329 11.6.3. Posix Threads 4330 _________________________________________________________ 4331 4332 11.6.3.1. Interfaces for Posix Threads 4333 4334 An LSB conforming implementation shall provide the 4335 architecture specific functions for Posix Threads specified in 4336 Table 11-29, with the full mandatory functionality as 4337 described in the referenced underlying specification. 4338 4339 Table 11-29. libpthread - Posix Threads Function Interfaces 4340 _pthread_cleanup_pop(GLIBC_2.2) [LSB] 4341 _pthread_cleanup_push(GLIBC_2.2) [LSB] 4342 pthread_attr_destroy(GLIBC_2.2) [SUSv3] 4343 pthread_attr_getdetachstate(GLIBC_2.2) [SUSv3] 4344 pthread_attr_getguardsize(GLIBC_2.2) [SUSv3] 4345 pthread_attr_getschedparam(GLIBC_2.2) [SUSv3] 4346 pthread_attr_getstack(GLIBC_2.2) [SUSv3] 4347 pthread_attr_getstackaddr(GLIBC_2.2) [SUSv3] 4348 pthread_attr_getstacksize(GLIBC_2.2) [SUSv3] 4349 pthread_attr_init(GLIBC_2.2) [SUSv3] 4350 pthread_attr_setdetachstate(GLIBC_2.2) [SUSv3] 4351 pthread_attr_setguardsize(GLIBC_2.2) [SUSv3] 4352 pthread_attr_setschedparam(GLIBC_2.2) [SUSv3] 4353 pthread_attr_setstackaddr(GLIBC_2.2) [SUSv3] 4354 pthread_attr_setstacksize(GLIBC_2.2) [SUSv3] 4355 pthread_cancel(GLIBC_2.2) [SUSv3] 4356 pthread_cond_broadcast(GLIBC_2.3.2) [SUSv3] 4357 pthread_cond_destroy(GLIBC_2.3.2) [SUSv3] 4358 pthread_cond_init(GLIBC_2.3.2) [SUSv3] 4359 pthread_cond_signal(GLIBC_2.3.2) [SUSv3] 4360 pthread_cond_timedwait(GLIBC_2.3.2) [SUSv3] 4361 pthread_cond_wait(GLIBC_2.3.2) [SUSv3] 4362 pthread_condattr_destroy(GLIBC_2.2) [SUSv3] 4363 pthread_condattr_getpshared(GLIBC_2.2) [SUSv3] 4364 pthread_condattr_init(GLIBC_2.2) [SUSv3] 4365 pthread_condattr_setpshared(GLIBC_2.2) [SUSv3] 4366 pthread_create(GLIBC_2.2) [SUSv3] pthread_detach(GLIBC_2.2) 4367 [SUSv3] 4368 pthread_equal(GLIBC_2.2) [SUSv3] pthread_exit(GLIBC_2.2) 4369 [SUSv3] pthread_getconcurrency(GLIBC_2.2) [SUSv3] 4370 pthread_getspecific(GLIBC_2.2) [SUSv3] 4371 pthread_join(GLIBC_2.2) [SUSv3] pthread_key_create(GLIBC_2.2) 4372 [SUSv3] pthread_key_delete(GLIBC_2.2) [SUSv3] 4373 pthread_kill(GLIBC_2.2) [SUSv3] 4374 pthread_mutex_destroy(GLIBC_2.2) [SUSv3] 4375 pthread_mutex_init(GLIBC_2.2) [SUSv3] 4376 pthread_mutex_lock(GLIBC_2.2) [SUSv3] 4377 pthread_mutex_trylock(GLIBC_2.2) [SUSv3] 4378 pthread_mutex_unlock(GLIBC_2.2) [SUSv3] 4379 pthread_mutexattr_destroy(GLIBC_2.2) [SUSv3] 4380 pthread_mutexattr_getpshared(GLIBC_2.2) [SUSv3] 4381 pthread_mutexattr_gettype(GLIBC_2.2) [SUSv3] 4382 pthread_mutexattr_init(GLIBC_2.2) [SUSv3] 4383 pthread_mutexattr_setpshared(GLIBC_2.2) [SUSv3] 4384 pthread_mutexattr_settype(GLIBC_2.2) [SUSv3] 4385 pthread_once(GLIBC_2.2) [SUSv3] 4386 pthread_rwlock_destroy(GLIBC_2.2) [SUSv3] 4387 pthread_rwlock_init(GLIBC_2.2) [SUSv3] 4388 pthread_rwlock_rdlock(GLIBC_2.2) [SUSv3] 4389 pthread_rwlock_timedrdlock(GLIBC_2.2) [SUSv3] 4390 pthread_rwlock_timedwrlock(GLIBC_2.2) [SUSv3] 4391 pthread_rwlock_tryrdlock(GLIBC_2.2) [SUSv3] 4392 pthread_rwlock_trywrlock(GLIBC_2.2) [SUSv3] 4393 pthread_rwlock_unlock(GLIBC_2.2) [SUSv3] 4394 pthread_rwlock_wrlock(GLIBC_2.2) [SUSv3] 4395 pthread_rwlockattr_destroy(GLIBC_2.2) [SUSv3] 4396 pthread_rwlockattr_getpshared(GLIBC_2.2) [SUSv3] 4397 pthread_rwlockattr_init(GLIBC_2.2) [SUSv3] 4398 pthread_rwlockattr_setpshared(GLIBC_2.2) [SUSv3] 4399 pthread_self(GLIBC_2.2) [SUSv3] 4400 pthread_setcancelstate(GLIBC_2.2) [SUSv3] 4401 pthread_setcanceltype(GLIBC_2.2) [SUSv3] 4402 pthread_setconcurrency(GLIBC_2.2) [SUSv3] 4403 pthread_setspecific(GLIBC_2.2) [SUSv3] 4404 pthread_sigmask(GLIBC_2.2) [SUSv3] 4405 pthread_testcancel(GLIBC_2.2) [SUSv3] 4406 sem_close(GLIBC_2.2) [SUSv3] sem_destroy(GLIBC_2.2) [SUSv3] 4407 sem_getvalue(GLIBC_2.2) [SUSv3] sem_init(GLIBC_2.2) [SUSv3] 4408 sem_open(GLIBC_2.2) [SUSv3] sem_post(GLIBC_2.2) [SUSv3] 4409 sem_timedwait(GLIBC_2.2) [SUSv3] sem_trywait(GLIBC_2.2) 4410 [SUSv3] 4411 sem_unlink(GLIBC_2.2) [SUSv3] sem_wait(GLIBC_2.2) [SUSv3] 4412 _________________________________________________________ 4413 4414 11.6.4. Thread aware versions of libc interfaces 4415 _________________________________________________________ 4416 4417 11.6.4.1. Interfaces for Thread aware versions of libc interfaces 4418 4419 An LSB conforming implementation shall provide the 4420 architecture specific functions for Thread aware versions of 4421 libc interfaces specified in Table 11-30, with the full 4422 mandatory functionality as described in the referenced 4423 underlying specification. 4424 4425 Table 11-30. libpthread - Thread aware versions of libc 4426 interfaces Function Interfaces 4427 lseek64(GLIBC_2.2) [LFS] open64(GLIBC_2.2) [LFS] 4428 pread(GLIBC_2.2) [SUSv3] pread64(GLIBC_2.2) [LFS] 4429 pwrite(GLIBC_2.2) [SUSv3] pwrite64(GLIBC_2.2) [LFS] 4430 _________________________________________________________ 4431 4432 11.7. Data Definitions for libpthread 4433 4434 This section defines global identifiers and their values that 4435 are associated with interfaces contained in libpthread. These 4436 definitions are organized into groups that correspond to 4437 system headers. This convention is used as a convenience for 4438 the reader, and does not imply the existence of these headers, 4439 or their content. Where an interface is defined as requiring a 4440 particular system header file all of the data definitions for 4441 that system header file presented here shall be in effect. 4442 4443 This section gives data definitions to promote binary 4444 application portability, not to repeat source interface 4445 definitions available elsewhere. System providers and 4446 application developers should use this ABI to supplement - not 4447 to replace - source interface definition specifications. 4448 4449 This specification uses the ISO C (1999) C Language as the 4450 reference programming language, and data definitions are 4451 specified in ISO C format. The C language is used here as a 4452 convenient notation. Using a C language description of these 4453 data objects does not preclude their use by other programming 4454 languages. 4455 _________________________________________________________ 4456 4457 11.7.1. pthread.h 4458 4459 extern void _pthread_cleanup_pop(struct _pthread_cleanup_buffer *, int); 4460 extern void _pthread_cleanup_push(struct _pthread_cleanup_buffer *, 4461 void (*__routine) (void *) 4462 , void *); 4463 extern int pthread_attr_destroy(pthread_attr_t *); 4464 extern int pthread_attr_getdetachstate(const typedef struct { 4465 int __detachstate; 4466 int __schedpolicy; 4467 struct sched_param __schedparam; 4468 int __inheritsched; 4469 int __scope; 4470 size_t __guardsize; 4471 int __stackaddr_set; 4472 void *__stackaddr; 4473 unsigned long int __stacksize;} 4474 pthread_attr_t *, int *); 4475 extern int pthread_attr_getinheritsched(const typedef struct { 4476 int __detachstate; 4477 int __schedpolicy; 4478 struct sched_param __schedparam; 4479 int __inheritsched; 4480 int __scope; 4481 size_t __guardsize; 4482 int __stackaddr_set; 4483 void *__stackaddr; 4484 unsigned long int __stacksize;} 4485 pthread_attr_t *, int *); 4486 extern int pthread_attr_getschedparam(const typedef struct { 4487 int __detachstate; 4488 int __schedpolicy; 4489 struct sched_param __schedparam; 4490 int __inheritsched; 4491 int __scope; 4492 size_t __guardsize; 4493 int __stackaddr_set; 4494 void *__stackaddr; 4495 unsigned long int __stacksize;} 4496 pthread_attr_t *, struct sched_param { 4497 int sched_priority;} 4498 4499 *); 4500 extern int pthread_attr_getschedpolicy(const typedef struct { 4501 int __detachstate; 4502 int __schedpolicy; 4503 struct sched_param __schedparam; 4504 int __inheritsched; 4505 int __scope; 4506 size_t __guardsize; 4507 int __stackaddr_set; 4508 void *__stackaddr; 4509 unsigned long int __stacksize;} 4510 pthread_attr_t *, int *); 4511 extern int pthread_attr_getscope(const typedef struct { 4512 int __detachstate; 4513 int __schedpolicy; 4514 struct sched_param __schedparam; 4515 int __inheritsched; 4516 int __scope; 4517 size_t __guardsize; 4518 int __stackaddr_set; 4519 void *__stackaddr; 4520 unsigned long int __stacksize;} 4521 pthread_attr_t *, int *); 4522 extern int pthread_attr_init(pthread_attr_t *); 4523 extern int pthread_attr_setdetachstate(pthread_attr_t *, int); 4524 extern int pthread_attr_setinheritsched(pthread_attr_t *, int); 4525 extern int pthread_attr_setschedparam(pthread_attr_t *, const struct sched_param { 4526 int sched_priority;} 4527 4528 *); 4529 extern int pthread_attr_setschedpolicy(pthread_attr_t *, int); 4530 extern int pthread_attr_setscope(pthread_attr_t *, int); 4531 extern int pthread_cancel(typedef unsigned long int pthread_t); 4532 extern int pthread_cond_broadcast(pthread_cond_t *); 4533 extern int pthread_cond_destroy(pthread_cond_t *); 4534 extern int pthread_cond_init(pthread_cond_t *, const typedef struct { 4535 int __dummy;} 4536 4537 pthread_condattr_t *); 4538 extern int pthread_cond_signal(pthread_cond_t *); 4539 extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *,const struct timespec { 4540 time_t tv_sec; long int tv_nsec;} 4541 4542 *); 4543 extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); 4544 extern int pthread_condattr_destroy(pthread_condattr_t *); 4545 extern int pthread_condattr_init(pthread_condattr_t *); 4546 extern int pthread_create(pthread_t *, const typedef struct { 4547 int __detachstate; 4548 int __schedpolicy; 4549 struct sched_param __schedparam; 4550 int __inheritsched; 4551 int __scope; 4552 size_t __guardsize; 4553 int __stackaddr_set; 4554 void *__stackaddr; 4555 unsigned long int __stacksize;} 4556 pthread_attr_t *, 4557 void *(*__start_routine) (void *p1) 4558 , void *); 4559 extern int pthread_detach(typedef unsigned long int pthread_t); 4560 extern int pthread_equal(typedef unsigned long int pthread_t, 4561 typedef unsigned long int pthread_t); 4562 extern void pthread_exit(void *); 4563 extern int pthread_getschedparam(typedef unsigned long int pthread_t, 4564 int *, struct sched_param { 4565 int sched_priority;} 4566 4567 *); 4568 extern void *pthread_getspecific(typedef unsigned int pthread_key_t); 4569 extern int pthread_join(typedef unsigned long int pthread_t, void **); 4570 extern int pthread_key_create(pthread_key_t *, void (*destr_func) (void *) 4571 ); 4572 extern int pthread_key_delete(typedef unsigned int pthread_key_t); 4573 extern int pthread_mutex_destroy(pthread_mutex_t *); 4574 extern int pthread_mutex_init(pthread_mutex_t *, const typedef struct { 4575 int __mutexkind;} 4576 4577 pthread_mutexattr_t *); 4578 extern int pthread_mutex_lock(pthread_mutex_t *); 4579 extern int pthread_mutex_trylock(pthread_mutex_t *); 4580 extern int pthread_mutex_unlock(pthread_mutex_t *); 4581 extern int pthread_mutexattr_destroy(pthread_mutexattr_t *); 4582 extern int pthread_mutexattr_init(pthread_mutexattr_t *); 4583 extern int pthread_once(pthread_once_t *, void (*init_routine) (void) 4584 ); 4585 extern int pthread_rwlock_destroy(pthread_rwlock_t *); 4586 extern int pthread_rwlock_init(pthread_rwlock_t *, pthread_rwlockattr_t *); 4587 extern int pthread_rwlock_rdlock(pthread_rwlock_t *); 4588 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *); 4589 extern int pthread_rwlock_trywrlock(pthread_rwlock_t *); 4590 extern int pthread_rwlock_unlock(pthread_rwlock_t *); 4591 extern int pthread_rwlock_wrlock(pthread_rwlock_t *); 4592 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); 4593 extern int pthread_rwlockattr_getpshared(const typedef struct { 4594 int __lockkind; int __pshared;} 4595 pthread_rwlockattr_t *, int *); 4596 extern int pthread_rwlockattr_init(pthread_rwlockattr_t *); 4597 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); 4598 extern typedef unsigned long int pthread_t pthread_self(void); 4599 extern int pthread_setcancelstate(int, int *); 4600 extern int pthread_setcanceltype(int, int *); 4601 extern int pthread_setschedparam(typedef unsigned long int pthread_t, int, const struct sched_param { 4602 int sched_priority;} 4603 4604 *); 4605 extern int pthread_setspecific(typedef unsigned int pthread_key_t, 4606 const void *); 4607 extern void pthread_testcancel(void); 4608 extern int pthread_attr_getguardsize(const typedef struct { 4609 int __detachstate; 4610 int __schedpolicy; 4611 struct sched_param __schedparam; 4612 int __inheritsched; 4613 int __scope; 4614 size_t __guardsize; 4615 int __stackaddr_set; 4616 void *__stackaddr; 4617 unsigned long int __stacksize;} 4618 pthread_attr_t *, size_t *); 4619 extern int pthread_attr_setguardsize(pthread_attr_t *, 4620 typedef unsigned long int size_t); 4621 extern int pthread_attr_setstackaddr(pthread_attr_t *, void *); 4622 extern int pthread_attr_getstackaddr(const typedef struct { 4623 int __detachstate; 4624 int __schedpolicy; 4625 struct sched_param __schedparam; 4626 int __inheritsched; 4627 int __scope; 4628 size_t __guardsize; 4629 int __stackaddr_set; 4630 void *__stackaddr; 4631 unsigned long int __stacksize;} 4632 pthread_attr_t *, void **); 4633 extern int pthread_attr_setstacksize(pthread_attr_t *, 4634 typedef unsigned long int size_t); 4635 extern int pthread_attr_getstacksize(const typedef struct { 4636 int __detachstate; 4637 int __schedpolicy; 4638 struct sched_param __schedparam; 4639 int __inheritsched; 4640 int __scope; 4641 size_t __guardsize; 4642 int __stackaddr_set; 4643 void *__stackaddr; 4644 unsigned long int __stacksize;} 4645 pthread_attr_t *, size_t *); 4646 extern int pthread_mutexattr_gettype(const typedef struct { 4647 int __mutexkind;} 4648 pthread_mutexattr_t *, int *); 4649 extern int pthread_mutexattr_settype(pthread_mutexattr_t *, int); 4650 extern int pthread_getconcurrency(void); 4651 extern int pthread_setconcurrency(int); 4652 extern int pthread_attr_getstack(const typedef struct { 4653 int __detachstate; 4654 int __schedpolicy; 4655 struct sched_param __schedparam; 4656 int __inheritsched; 4657 int __scope; 4658 size_t __guardsize; 4659 int __stackaddr_set; 4660 void *__stackaddr; 4661 unsigned long int __stacksize;} 4662 pthread_attr_t *, void **, size_t *); 4663 extern int pthread_attr_setstack(pthread_attr_t *, void *, 4664 typedef unsigned long int size_t); 4665 extern int pthread_condattr_getpshared(const typedef struct { 4666 int __dummy;} 4667 pthread_condattr_t *, int *); 4668 extern int pthread_condattr_setpshared(pthread_condattr_t *, int); 4669 extern int pthread_mutexattr_getpshared(const typedef struct { 4670 int __mutexkind;} 4671 pthread_mutexattr_t *, int *); 4672 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); 4673 extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *, const structtimespec { 4674 time_t tv_sec; long int tv_nsec;} 4675 4676 *); 4677 extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *, const structtimespec { 4678 time_t tv_sec; long int tv_nsec;} 4679 4680 *); 4681 extern int __register_atfork(void (*prepare) (void) 4682 , void (*parent) (void) 4683 , void (*child) (void) 4684 , void *); 4685 extern int pthread_setschedprio(typedef unsigned long int pthread_t, int); 4686 _________________________________________________________ 4687 4688 11.7.2. semaphore.h 4689 4690 extern int sem_close(sem_t *); 4691 extern int sem_destroy(sem_t *); 4692 extern int sem_getvalue(sem_t *, int *); 4693 extern int sem_init(sem_t *, int, unsigned int); 4694 extern sem_t *sem_open(const char *, int, ...); 4695 extern int sem_post(sem_t *); 4696 extern int sem_trywait(sem_t *); 4697 extern int sem_unlink(const char *); 4698 extern int sem_wait(sem_t *); 4699 extern int sem_timedwait(sem_t *, const struct timespec *); 4700 _________________________________________________________ 4701 4702 11.8. Interfaces for libgcc_s 4703 4704 Table 11-31 defines the library name and shared object name 4705 for the libgcc_s library 4706 4707 Table 11-31. libgcc_s Definition 4708 Library: libgcc_s 4709 SONAME: libgcc_s.so.1 4710 4711 The behavior of the interfaces in this library is specified by 4712 the following specifications: 4713 4714 [LSB] This Specification 4715 _________________________________________________________ 4716 4717 11.8.1. Unwind Library 4718 _________________________________________________________ 4719 4720 11.8.1.1. Interfaces for Unwind Library 4721 4722 An LSB conforming implementation shall provide the 4723 architecture specific functions for Unwind Library specified 4724 in Table 11-32, with the full mandatory functionality as 4725 described in the referenced underlying specification. 4726 4727 Table 11-32. libgcc_s - Unwind Library Function Interfaces 4728 _Unwind_Backtrace(GCC_3.3) [LSB] 4729 _Unwind_DeleteException(GCC_3.0) [LSB] 4730 _Unwind_FindEnclosingFunction(GCC_3.3) [LSB] 4731 _Unwind_Find_FDE(GCC_3.0) [LSB] 4732 _Unwind_ForcedUnwind(GCC_3.0) [LSB] _Unwind_GetCFA(GCC_3.3) 4733 [LSB] _Unwind_GetDataRelBase(GCC_3.0) [LSB] 4734 _Unwind_GetGR(GCC_3.0) [LSB] 4735 _Unwind_GetIP(GCC_3.0) [LSB] 4736 _Unwind_GetLanguageSpecificData(GCC_3.0) [LSB] 4737 _Unwind_GetRegionStart(GCC_3.0) [LSB] 4738 _Unwind_GetTextRelBase(GCC_3.0) [LSB] 4739 _Unwind_RaiseException(GCC_3.0) [LSB] _Unwind_Resume(GCC_3.0) 4740 [LSB] _Unwind_Resume_or_Rethrow(GCC_3.3) [LSB] 4741 _Unwind_SetGR(GCC_3.0) [LSB] 4742 _Unwind_SetIP(GCC_3.0) [LSB] 4743 _________________________________________________________ 4744 4745 11.9. Data Definitions for libgcc_s 4746 4747 This section defines global identifiers and their values that 4748 are associated with interfaces contained in libgcc_s. These 4749 definitions are organized into groups that correspond to 4750 system headers. This convention is used as a convenience for 4751 the reader, and does not imply the existence of these headers, 4752 or their content. Where an interface is defined as requiring a 4753 particular system header file all of the data definitions for 4754 that system header file presented here shall be in effect. 4755 4756 This section gives data definitions to promote binary 4757 application portability, not to repeat source interface 4758 definitions available elsewhere. System providers and 4759 application developers should use this ABI to supplement - not 4760 to replace - source interface definition specifications. 4761 4762 This specification uses the ISO C (1999) C Language as the 4763 reference programming language, and data definitions are 4764 specified in ISO C format. The C language is used here as a 4765 convenient notation. Using a C language description of these 4766 data objects does not preclude their use by other programming 4767 languages. 4768 _________________________________________________________ 4769 4770 11.9.1. unwind.h 4771 4772 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4773 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4774 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4775 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4776 _Unwind_Stop_Fn, void *); 4777 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4778 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4779 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4780 *); 4781 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4782 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4783 *); 4784 extern void _Unwind_Resume(struct _Unwind_Exception *); 4785 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4786 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4787 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4788 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4789 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4790 _Unwind_Stop_Fn, void *); 4791 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4792 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4793 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4794 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4795 *); 4796 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4797 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4798 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4799 *); 4800 extern void _Unwind_Resume(struct _Unwind_Exception *); 4801 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4802 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4803 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4804 _Unwind_Stop_Fn, void *); 4805 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4806 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4807 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4808 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4809 *); 4810 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4811 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4812 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4813 *); 4814 extern void _Unwind_Resume(struct _Unwind_Exception *); 4815 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4816 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4817 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4818 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4819 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4820 _Unwind_Stop_Fn, void *); 4821 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4822 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4823 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4824 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4825 *); 4826 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4827 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4828 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4829 *); 4830 extern void _Unwind_Resume(struct _Unwind_Exception *); 4831 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4832 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4833 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4834 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4835 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4836 _Unwind_Stop_Fn, void *); 4837 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4838 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4839 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4840 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4841 *); 4842 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4843 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4844 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4845 *); 4846 extern void _Unwind_Resume(struct _Unwind_Exception *); 4847 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4848 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4849 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4850 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4851 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4852 _Unwind_Stop_Fn, void *); 4853 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4854 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4855 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4856 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 4857 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4858 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4859 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4860 *); 4861 extern void _Unwind_Resume(struct _Unwind_Exception *); 4862 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4863 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4864 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4865 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4866 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4867 _Unwind_Stop_Fn, void *); 4868 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 4869 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4870 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4871 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 4872 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4873 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 4874 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4875 *); 4876 extern void _Unwind_Resume(struct _Unwind_Exception *); 4877 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4878 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4879 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4880 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4881 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4882 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4883 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4884 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4885 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 4886 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4887 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4888 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4889 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4890 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4891 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4892 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 4893 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4894 _Unwind_Exception*); 4895 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4896 _Unwind_Exception*); 4897 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4898 _Unwind_Exception*); 4899 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4900 _Unwind_Exception*); 4901 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4902 _Unwind_Exception*); 4903 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4904 _Unwind_Exception*); 4905 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 4906 _Unwind_Exception*); 4907 extern void *_Unwind_FindEnclosingFunction(void *); 4908 extern void *_Unwind_FindEnclosingFunction(void *); 4909 extern void *_Unwind_FindEnclosingFunction(void *); 4910 extern void *_Unwind_FindEnclosingFunction(void *); 4911 extern void *_Unwind_FindEnclosingFunction(void *); 4912 extern void *_Unwind_FindEnclosingFunction(void *); 4913 extern void *_Unwind_FindEnclosingFunction(void *); 4914 extern _Unwind_Word _Unwind_GetBSP(struct _Unwind_Context *); 4915 _________________________________________________________ 4916 4917 11.10. Interface Definitions for libgcc_s 4918 4919 Table of Contents 4920 _Unwind_DeleteException -- private C++ error handling method 4921 _Unwind_Find_FDE -- private C++ error handling method 4922 _Unwind_ForcedUnwind -- private C++ error handling method 4923 _Unwind_GetDataRelBase -- private IA64 C++ error handling 4924 method 4925 4926 _Unwind_GetGR -- private C++ error handling method 4927 _Unwind_GetIP -- private C++ error handling method 4928 _Unwind_GetLanguageSpecificData -- private C++ error handling 4929 method 4930 4931 _Unwind_GetRegionStart -- private C++ error handling method 4932 _Unwind_GetTextRelBase -- private IA64 C++ error handling 4933 method 4934 4935 _Unwind_RaiseException -- private C++ error handling method 4936 _Unwind_Resume -- private C++ error handling method 4937 _Unwind_SetGR -- private C++ error handling method 4938 _Unwind_SetIP -- private C++ error handling method 4939 4940 The interfaces defined on the following pages are included in 4941 libgcc_s and are defined by this specification. Unless 4942 otherwise noted, these interfaces shall be included in the 4943 source standard. 4944 4945 Other interfaces listed in Section 11.8 shall behave as 4946 described in the referenced base document. 4947 4948 _Unwind_DeleteException 4949 4950 Name 4951 4952 _Unwind_DeleteException -- private C++ error handling method 4953 4954 Synopsis 4955 4956 void _Unwind_DeleteException(struct _Unwind_Exception * 4957 object); 4958 4959 Description 4960 4961 _Unwind_DeleteException() deletes the given exception object. 4962 If a given runtime resumes normal execution after catching a 4963 foreign exception, it will not know how to delete that 4964 exception. Such an exception shall be deleted by calling 4965 _Unwind_DeleteException(). This is a convenience function that 4966 calls the function pointed to by the exception_cleanup field 4967 of the exception header. 4968 4969 _Unwind_Find_FDE 4970 4971 Name 4972 4973 _Unwind_Find_FDE -- private C++ error handling method 4974 4975 Synopsis 4976 4977 fde * _Unwind_Find_FDE(void * pc, struct dwarf_eh_bases * 4978 bases); 4979 4980 Description 4981 4982 _Unwind_Find_FDE() looks for the object containing pc, then 4983 inserts into bases. 4984 4985 _Unwind_ForcedUnwind 4986 4987 Name 4988 4989 _Unwind_ForcedUnwind -- private C++ error handling method 4990 4991 Synopsis 4992 4993 _Unwind_Reason_Code _Unwind_ForcedUnwind(struct 4994 _Unwind_Exception * object, _Unwind_Stop_Fn stop, void * 4995 stop_parameter); 4996 4997 Description 4998 4999 _Unwind_ForcedUnwind() raises an exception for forced 5000 unwinding, passing along the given exception object, which 5001 should have its exception_class and exception_cleanup fields 5002 set. The exception object has been allocated by the 5003 language-specific runtime, and has a language-specific format, 5004 except that it shall contain an _Unwind_Exception struct. 5005 5006 Forced unwinding is a single-phase process. stop and 5007 stop_parameter control the termination of the unwind process 5008 instead of the usual personality routine query. stop is called 5009 for each unwind frame, with the parameteres described for the 5010 usual personality routine below, plus an additional 5011 stop_parameter. 5012 5013 Return Value 5014 5015 When stop identifies the destination frame, it transfers 5016 control to the user code as appropriate without returning, 5017 normally after calling _Unwind_DeleteException(). If not, then 5018 it should return an _Unwind_Reason_Code value. 5019 5020 If stop returns any reason code other than _URC_NO_REASON, 5021 then the stack state is indeterminate from the point of view 5022 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 5023 to return, therefore, the unwind library should use the 5024 exception_cleanup entry in the exception, and then call 5025 abort(). 5026 5027 _URC_NO_REASON 5028 This is not the destination from. The unwind runtime 5029 will call frame's personality routine with the 5030 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 5031 actions, and then unwind to the next frame and call the 5032 stop() function again. 5033 5034 _URC_END_OF_STACK 5035 In order to allow _Unwind_ForcedUnwind() to perform 5036 special processing when it reaches the end of the 5037 stack, the unwind runtime will call it after the last 5038 frame is rejected, with a NULL stack pointer in the 5039 context, and the stop() function shall catch this 5040 condition. It may return this code if it cannot handle 5041 end-of-stack. 5042 5043 _URC_FATAL_PHASE2_ERROR 5044 The stop() function may return this code for other 5045 fatal conditions like stack corruption. 5046 5047 _Unwind_GetDataRelBase 5048 5049 Name 5050 5051 _Unwind_GetDataRelBase -- private IA64 C++ error handling 5052 method 5053 5054 Synopsis 5055 5056 _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context * 5057 context); 5058 5059 Description 5060 5061 _Unwind_GetDataRelBase() returns the global pointer in 5062 register one for context. 5063 5064 _Unwind_GetGR 5065 5066 Name 5067 5068 _Unwind_GetGR -- private C++ error handling method 5069 5070 Synopsis 5071 5072 _Unwind_Word _Unwind_GetGR(struct _Unwind_Context * context, 5073 int index); 5074 5075 Description 5076 5077 _Unwind_GetGR() returns data at index found in context. The 5078 register is identified by its index: 0 to 31 are for the fixed 5079 registers, and 32 to 127 are for the stacked registers. 5080 5081 During the two phases of unwinding, only GR1 has a guaranteed 5082 value, which is the global pointer of the frame referenced by 5083 the unwind context. If the register has its NAT bit set, the 5084 behavior is unspecified. 5085 5086 _Unwind_GetIP 5087 5088 Name 5089 5090 _Unwind_GetIP -- private C++ error handling method 5091 5092 Synopsis 5093 5094 _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context * context); 5095 5096 Description 5097 5098 _Unwind_GetIP() returns the instruction pointer value for the 5099 routine identified by the unwind context. 5100 5101 _Unwind_GetLanguageSpecificData 5102 5103 Name 5104 5105 _Unwind_GetLanguageSpecificData -- private C++ error handling 5106 method 5107 5108 Synopsis 5109 5110 _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct 5111 _Unwind_Context * context, uint value); 5112 5113 Description 5114 5115 _Unwind_GetLanguageSpecificData() returns the address of the 5116 language specific data area for the current stack frame. 5117 5118 _Unwind_GetRegionStart 5119 5120 Name 5121 5122 _Unwind_GetRegionStart -- private C++ error handling method 5123 5124 Synopsis 5125 5126 _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context * 5127 context); 5128 5129 Description 5130 5131 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 5132 of the beginning of the procedure or code fragment described 5133 by the current unwind descriptor block. 5134 5135 _Unwind_GetTextRelBase 5136 5137 Name 5138 5139 _Unwind_GetTextRelBase -- private IA64 C++ error handling 5140 method 5141 5142 Synopsis 5143 5144 _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context * 5145 context); 5146 5147 Description 5148 5149 _Unwind_GetTextRelBase() calls the abort method, then returns. 5150 5151 _Unwind_RaiseException 5152 5153 Name 5154 5155 _Unwind_RaiseException -- private C++ error handling method 5156 5157 Synopsis 5158 5159 _Unwind_Reason_Code _Unwind_RaiseException(struct 5160 _Unwind_Exception * object); 5161 5162 Description 5163 5164 _Unwind_RaiseException() raises an exception, passing along 5165 the given exception object, which should have its 5166 exception_class and exception_cleanup fields set. The 5167 exception object has been allocated by the language-specific 5168 runtime, and has a language-specific format, exception that it 5169 shall contain an _Unwind_Exception. 5170 5171 Return Value 5172 5173 _Unwind_RaiseException() does not return unless an error 5174 condition is found. If an error condition occurs, an 5175 _Unwind_Reason_Code is returnd: 5176 5177 _URC_END_OF_STACK 5178 The unwinder encountered the end of the stack during 5179 phase one without finding a handler. The unwind runtime 5180 will not have modified the stack. The C++ runtime will 5181 normally call uncaught_exception() in this case. 5182 5183 _URC_FATAL_PHASE1_ERROR 5184 The unwinder encountered an unexpected error during 5185 phase one, because of something like stack corruption. 5186 The unwind runtime will not have modified the stack. 5187 The C++ runtime will normally call terminate() in this 5188 case. 5189 5190 _URC_FATAL_PHASE2_ERROR 5191 The unwinder encountered an unexpected error during 5192 phase two. This is usually a throw, which will call 5193 terminate(). 5194 5195 _Unwind_Resume 5196 5197 Name 5198 5199 _Unwind_Resume -- private C++ error handling method 5200 5201 Synopsis 5202 5203 void _Unwind_Resume(struct _Unwind_Exception * object); 5204 5205 Description 5206 5207 _Unwind_Resume() resumes propagation of an existing exception 5208 object. A call to this routine is inserted as the end of a 5209 landing pad that performs cleanup, but does not resume normal 5210 execution. It causes unwinding to proceed further. 5211 5212 _Unwind_SetGR 5213 5214 Name 5215 5216 _Unwind_SetGR -- private C++ error handling method 5217 5218 Synopsis 5219 5220 void _Unwind_SetGR(struct _Unwind_Context * context, int 5221 index, uint value); 5222 5223 Description 5224 5225 _Unwind_SetGR() sets the value of the register indexed for the 5226 routine identified by the unwind context. 5227 5228 _Unwind_SetIP 5229 5230 Name 5231 5232 _Unwind_SetIP -- private C++ error handling method 5233 5234 Synopsis 5235 5236 void _Unwind_SetIP(struct _Unwind_Context * context, uint 5237 value); 5238 5239 Description 5240 5241 _Unwind_SetIP() sets the value of the instruction pointer for 5242 the routine identified by the unwind context 5243 _________________________________________________________ 5244 5245 11.11. Interfaces for libdl 5246 5247 Table 11-33 defines the library name and shared object name 5248 for the libdl library 5249 5250 Table 11-33. libdl Definition 5251 Library: libdl 5252 SONAME: libdl.so.2 5253 5254 The behavior of the interfaces in this library is specified by 5255 the following specifications: 5256 5257 [LSB] This Specification 5258 [SUSv3] ISO POSIX (2003) 5259 _________________________________________________________ 5260 5261 11.11.1. Dynamic Loader 5262 _________________________________________________________ 5263 5264 11.11.1.1. Interfaces for Dynamic Loader 5265 5266 An LSB conforming implementation shall provide the 5267 architecture specific functions for Dynamic Loader specified 5268 in Table 11-34, with the full mandatory functionality as 5269 described in the referenced underlying specification. 5270 5271 Table 11-34. libdl - Dynamic Loader Function Interfaces 5272 dladdr(GLIBC_2.2) [LSB] dlclose(GLIBC_2.2) [SUSv3] 5273 dlerror(GLIBC_2.2) [SUSv3] dlopen(GLIBC_2.2) [LSB] 5274 dlsym(GLIBC_2.2) [LSB] 5275 _________________________________________________________ 5276 5277 11.12. Data Definitions for libdl 5278 5279 This section defines global identifiers and their values that 5280 are associated with interfaces contained in libdl. These 5281 definitions are organized into groups that correspond to 5282 system headers. This convention is used as a convenience for 5283 the reader, and does not imply the existence of these headers, 5284 or their content. Where an interface is defined as requiring a 5285 particular system header file all of the data definitions for 5286 that system header file presented here shall be in effect. 5287 5288 This section gives data definitions to promote binary 5289 application portability, not to repeat source interface 5290 definitions available elsewhere. System providers and 5291 application developers should use this ABI to supplement - not 5292 to replace - source interface definition specifications. 5293 5294 This specification uses the ISO C (1999) C Language as the 5295 reference programming language, and data definitions are 5296 specified in ISO C format. The C language is used here as a 5297 convenient notation. Using a C language description of these 5298 data objects does not preclude their use by other programming 5299 languages. 5300 _________________________________________________________ 5301 5302 11.12.1. dlfcn.h 5303 5304 extern int dladdr(const void *, Dl_info *); 5305 extern int dlclose(void *); 5306 extern char *dlerror(void); 5307 extern void *dlopen(char *, int); 5308 extern void *dlsym(void *, char *); 5309 _________________________________________________________ 5310 5311 11.13. Interfaces for libcrypt 5312 5313 Table 11-35 defines the library name and shared object name 5314 for the libcrypt library 5315 5316 Table 11-35. libcrypt Definition 5317 Library: libcrypt 5318 SONAME: libcrypt.so.1 5319 5320 The behavior of the interfaces in this library is specified by 5321 the following specifications: 5322 5323 [SUSv3] ISO POSIX (2003) 5324 _________________________________________________________ 5325 5326 11.13.1. Encryption 5327 _________________________________________________________ 5328 5329 11.13.1.1. Interfaces for Encryption 5330 5331 An LSB conforming implementation shall provide the 5332 architecture specific functions for Encryption specified in 5333 Table 11-36, with the full mandatory functionality as 5334 described in the referenced underlying specification. 5335 5336 Table 11-36. libcrypt - Encryption Function Interfaces 5337 crypt(GLIBC_2.2) [SUSv3] encrypt(GLIBC_2.2) [SUSv3] 5338 setkey(GLIBC_2.2) [SUSv3] 5339 5340 IV. Utility Libraries 5341 5342 Table of Contents 5343 12. Libraries 5344 5345 12.1. Interfaces for libz 5346 5347 12.1.1. Compression Library 5348 5349 12.2. Data Definitions for libz 5350 5351 12.2.1. zlib.h 5352 5353 12.3. Interfaces for libncurses 5354 5355 12.3.1. Curses 5356 5357 12.4. Data Definitions for libncurses 5358 5359 12.4.1. curses.h 5360 12.4.2. term.h 5361 5362 12.5. Interfaces for libutil 5363 5364 12.5.1. Utility Functions 5365 _________________________________________________________ 5366 5367 Chapter 12. Libraries 5368 5369 An LSB-conforming implementation shall also support some 5370 utility libraries which are built on top of the interfaces 5371 provided by the base libraries. These libraries implement 5372 common functionality, and hide additional system dependent 5373 information such as file formats and device names. 5374 _________________________________________________________ 5375 5376 12.1. Interfaces for libz 5377 5378 Table 12-1 defines the library name and shared object name for 5379 the libz library 5380 5381 Table 12-1. libz Definition 5382 Library: libz 5383 SONAME: libz.so.1 5384 _________________________________________________________ 5385 5386 12.1.1. Compression Library 5387 _________________________________________________________ 5388 5389 12.1.1.1. Interfaces for Compression Library 5390 5391 No external functions are defined for libz - Compression 5392 Library in this part of the specification. See also the 5393 generic specification. 5394 _________________________________________________________ 5395 5396 12.2. Data Definitions for libz 5397 5398 This section defines global identifiers and their values that 5399 are associated with interfaces contained in libz. These 5400 definitions are organized into groups that correspond to 5401 system headers. This convention is used as a convenience for 5402 the reader, and does not imply the existence of these headers, 5403 or their content. Where an interface is defined as requiring a 5404 particular system header file all of the data definitions for 5405 that system header file presented here shall be in effect. 5406 5407 This section gives data definitions to promote binary 5408 application portability, not to repeat source interface 5409 definitions available elsewhere. System providers and 5410 application developers should use this ABI to supplement - not 5411 to replace - source interface definition specifications. 5412 5413 This specification uses the ISO C (1999) C Language as the 5414 reference programming language, and data definitions are 5415 specified in ISO C . The C language is used here as a 5416 convenient notation. Using a C language description of these 5417 data objects does not preclude their use by other programming 5418 languages. 5419 _________________________________________________________ 5420 5421 12.2.1. zlib.h 5422 5423 extern int gzread(gzFile, voidp, unsigned int); 5424 extern int gzclose(gzFile); 5425 extern gzFile gzopen(const char *, const char *); 5426 extern gzFile gzdopen(int, const char *); 5427 extern int gzwrite(gzFile, voidpc, unsigned int); 5428 extern int gzflush(gzFile, int); 5429 extern const char *gzerror(gzFile, int *); 5430 extern uLong adler32(uLong, const Bytef *, uInt); 5431 extern int compress(Bytef *, uLongf *, const Bytef *, uLong); 5432 extern int compress2(Bytef *, uLongf *, const Bytef *, uLong, int); 5433 extern uLong crc32(uLong, const Bytef *, uInt); 5434 extern int deflate(z_streamp, int); 5435 extern int deflateCopy(z_streamp, z_streamp); 5436 extern int deflateEnd(z_streamp); 5437 extern int deflateInit2_(z_streamp, int, int, int, int, int, const char *, 5438 int); 5439 extern int deflateInit_(z_streamp, int, const char *, int); 5440 extern int deflateParams(z_streamp, int, int); 5441 extern int deflateReset(z_streamp); 5442 extern int deflateSetDictionary(z_streamp, const Bytef *, uInt); 5443 extern const uLongf *get_crc_table(void); 5444 extern int gzeof(gzFile); 5445 extern int gzgetc(gzFile); 5446 extern char *gzgets(gzFile, char *, int); 5447 extern int gzprintf(gzFile, const char *, ...); 5448 extern int gzputc(gzFile, int); 5449 extern int gzputs(gzFile, const char *); 5450 extern int gzrewind(gzFile); 5451 extern z_off_t gzseek(gzFile, z_off_t, int); 5452 extern int gzsetparams(gzFile, int, int); 5453 extern z_off_t gztell(gzFile); 5454 extern int inflate(z_streamp, int); 5455 extern int inflateEnd(z_streamp); 5456 extern int inflateInit2_(z_streamp, int, const char *, int); 5457 extern int inflateInit_(z_streamp, const char *, int); 5458 extern int inflateReset(z_streamp); 5459 extern int inflateSetDictionary(z_streamp, const Bytef *, uInt); 5460 extern int inflateSync(z_streamp); 5461 extern int inflateSyncPoint(z_streamp); 5462 extern int uncompress(Bytef *, uLongf *, const Bytef *, uLong); 5463 extern const char *zError(int); 5464 extern const char *zlibVersion(void); 5465 extern uLong deflateBound(z_streamp, uLong); 5466 extern uLong compressBound(uLong); 5467 _________________________________________________________ 5468 5469 12.3. Interfaces for libncurses 5470 5471 Table 12-2 defines the library name and shared object name for 5472 the libncurses library 5473 5474 Table 12-2. libncurses Definition 5475 Library: libncurses 5476 SONAME: libncurses.so.5 5477 _________________________________________________________ 5478 5479 12.3.1. Curses 5480 _________________________________________________________ 5481 5482 12.3.1.1. Interfaces for Curses 5483 5484 No external functions are defined for libncurses - Curses in 5485 this part of the specification. See also the generic 5486 specification. 5487 _________________________________________________________ 5488 5489 12.4. Data Definitions for libncurses 5490 5491 This section defines global identifiers and their values that 5492 are associated with interfaces contained in libncurses. These 5493 definitions are organized into groups that correspond to 5494 system headers. This convention is used as a convenience for 5495 the reader, and does not imply the existence of these headers, 5496 or their content. Where an interface is defined as requiring a 5497 particular system header file all of the data definitions for 5498 that system header file presented here shall be in effect. 5499 5500 This section gives data definitions to promote binary 5501 application portability, not to repeat source interface 5502 definitions available elsewhere. System providers and 5503 application developers should use this ABI to supplement - not 5504 to replace - source interface definition specifications. 5505 5506 This specification uses the ISO C (1999) C Language as the 5507 reference programming language, and data definitions are 5508 specified in ISO C . The C language is used here as a 5509 convenient notation. Using a C language description of these 5510 data objects does not preclude their use by other programming 5511 languages. 5512 _________________________________________________________ 5513 5514 12.4.1. curses.h 5515 5516 extern int addch(const chtype); 5517 extern int addchnstr(const chtype *, int); 5518 extern int addchstr(const chtype *); 5519 extern int addnstr(const char *, int); 5520 extern int addstr(const char *); 5521 extern int attroff(int); 5522 extern int attron(int); 5523 extern int attrset(int); 5524 extern int attr_get(attr_t *, short *, void *); 5525 extern int attr_off(attr_t, void *); 5526 extern int attr_on(attr_t, void *); 5527 extern int attr_set(attr_t, short, void *); 5528 extern int baudrate(void); 5529 extern int beep(void); 5530 extern int bkgd(chtype); 5531 extern void bkgdset(chtype); 5532 extern int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, 5533 chtype); 5534 extern int box(WINDOW *, chtype, chtype); 5535 extern bool can_change_color(void); 5536 extern int cbreak(void); 5537 extern int chgat(int, attr_t, short, const void *); 5538 extern int clear(void); 5539 extern int clearok(WINDOW *, bool); 5540 extern int clrtobot(void); 5541 extern int clrtoeol(void); 5542 extern int color_content(short, short *, short *, short *); 5543 extern int color_set(short, void *); 5544 extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, 5545 int); 5546 extern int curs_set(int); 5547 extern int def_prog_mode(void); 5548 extern int def_shell_mode(void); 5549 extern int delay_output(int); 5550 extern int delch(void); 5551 extern void delscreen(SCREEN *); 5552 extern int delwin(WINDOW *); 5553 extern int deleteln(void); 5554 extern WINDOW *derwin(WINDOW *, int, int, int, int); 5555 extern int doupdate(void); 5556 extern WINDOW *dupwin(WINDOW *); 5557 extern int echo(void); 5558 extern int echochar(const chtype); 5559 extern int erase(void); 5560 extern int endwin(void); 5561 extern char erasechar(void); 5562 extern void filter(void); 5563 extern int flash(void); 5564 extern int flushinp(void); 5565 extern chtype getbkgd(WINDOW *); 5566 extern int getch(void); 5567 extern int getnstr(char *, int); 5568 extern int getstr(char *); 5569 extern WINDOW *getwin(FILE *); 5570 extern int halfdelay(int); 5571 extern bool has_colors(void); 5572 extern bool has_ic(void); 5573 extern bool has_il(void); 5574 extern int hline(chtype, int); 5575 extern void idcok(WINDOW *, bool); 5576 extern int idlok(WINDOW *, bool); 5577 extern void immedok(WINDOW *, bool); 5578 extern chtype inch(void); 5579 extern int inchnstr(chtype *, int); 5580 extern int inchstr(chtype *); 5581 extern WINDOW *initscr(void); 5582 extern int init_color(short, short, short, short); 5583 extern int init_pair(short, short, short); 5584 extern int innstr(char *, int); 5585 extern int insch(chtype); 5586 extern int insdelln(int); 5587 extern int insertln(void); 5588 extern int insnstr(const char *, int); 5589 extern int insstr(const char *); 5590 extern int instr(char *); 5591 extern int intrflush(WINDOW *, bool); 5592 extern bool isendwin(void); 5593 extern bool is_linetouched(WINDOW *, int); 5594 extern bool is_wintouched(WINDOW *); 5595 extern const char *keyname(int); 5596 extern int keypad(WINDOW *, bool); 5597 extern char killchar(void); 5598 extern int leaveok(WINDOW *, bool); 5599 extern char *longname(void); 5600 extern int meta(WINDOW *, bool); 5601 extern int move(int, int); 5602 extern int mvaddch(int, int, const chtype); 5603 extern int mvaddchnstr(int, int, const chtype *, int); 5604 extern int mvaddchstr(int, int, const chtype *); 5605 extern int mvaddnstr(int, int, const char *, int); 5606 extern int mvaddstr(int, int, const char *); 5607 extern int mvchgat(int, int, int, attr_t, short, const void *); 5608 extern int mvcur(int, int, int, int); 5609 extern int mvdelch(int, int); 5610 extern int mvderwin(WINDOW *, int, int); 5611 extern int mvgetch(int, int); 5612 extern int mvgetnstr(int, int, char *, int); 5613 extern int mvgetstr(int, int, char *); 5614 extern int mvhline(int, int, chtype, int); 5615 extern chtype mvinch(int, int); 5616 extern int mvinchnstr(int, int, chtype *, int); 5617 extern int mvinchstr(int, int, chtype *); 5618 extern int mvinnstr(int, int, char *, int); 5619 extern int mvinsch(int, int, chtype); 5620 extern int mvinsnstr(int, int, const char *, int); 5621 extern int mvinsstr(int, int, const char *); 5622 extern int mvinstr(int, int, char *); 5623 extern int mvprintw(int, int, char *, ...); 5624 extern int mvscanw(int, int, const char *, ...); 5625 extern int mvvline(int, int, chtype, int); 5626 extern int mvwaddch(WINDOW *, int, int, const chtype); 5627 extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 5628 extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 5629 extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 5630 extern int mvwaddstr(WINDOW *, int, int, const char *); 5631 extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void*); 5632 extern int mvwdelch(WINDOW *, int, int); 5633 extern int mvwgetch(WINDOW *, int, int); 5634 extern int mvwgetnstr(WINDOW *, int, int, char *, int); 5635 extern int mvwgetstr(WINDOW *, int, int, char *); 5636 extern int mvwhline(WINDOW *, int, int, chtype, int); 5637 extern int mvwin(WINDOW *, int, int); 5638 extern chtype mvwinch(WINDOW *, int, int); 5639 extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 5640 extern int mvwinchstr(WINDOW *, int, int, chtype *); 5641 extern int mvwinnstr(WINDOW *, int, int, char *, int); 5642 extern int mvwinsch(WINDOW *, int, int, chtype); 5643 extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 5644 extern int mvwinsstr(WINDOW *, int, int, const char *); 5645 extern int mvwinstr(WINDOW *, int, int, char *); 5646 extern int mvwprintw(WINDOW *, int, int, char *, ...); 5647 extern int mvwscanw(WINDOW *, int, int, const char *, ...); 5648 extern int mvwvline(WINDOW *, int, int, chtype, int); 5649 extern int napms(int); 5650 extern WINDOW *newpad(int, int); 5651 extern SCREEN *newterm(const char *, FILE *, FILE *); 5652 extern WINDOW *newwin(int, int, int, int); 5653 extern int nl(void); 5654 extern int nocbreak(void); 5655 extern int nodelay(WINDOW *, bool); 5656 extern int noecho(void); 5657 extern int nonl(void); 5658 extern void noqiflush(void); 5659 extern int noraw(void); 5660 extern int notimeout(WINDOW *, bool); 5661 extern int overlay(const WINDOW *, WINDOW *); 5662 extern int overwrite(const WINDOW *, WINDOW *); 5663 extern int pair_content(short, short *, short *); 5664 extern int pechochar(WINDOW *, chtype); 5665 extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 5666 extern int prefresh(WINDOW *, int, int, int, int, int, int); 5667 extern int printw(char *, ...); 5668 extern int putwin(WINDOW *, FILE *); 5669 extern void qiflush(void); 5670 extern int raw(void); 5671 extern int redrawwin(WINDOW *); 5672 extern int refresh(void); 5673 extern int resetty(void); 5674 extern int reset_prog_mode(void); 5675 extern int reset_shell_mode(void); 5676 extern int ripoffline(int, int (*init) (WINDOW *, int) 5677 ); 5678 extern int savetty(void); 5679 extern int scanw(const char *, ...); 5680 extern int scr_dump(const char *); 5681 extern int scr_init(const char *); 5682 extern int scrl(int); 5683 extern int scroll(WINDOW *); 5684 extern int scrollok(WINDOW *, typedef unsigned char bool); 5685 extern int scr_restore(const char *); 5686 extern int scr_set(const char *); 5687 extern int setscrreg(int, int); 5688 extern SCREEN *set_term(SCREEN *); 5689 extern int slk_attroff(const typedef unsigned long int chtype); 5690 extern int slk_attron(const typedef unsigned long int chtype); 5691 extern int slk_attrset(const typedef unsigned long int chtype); 5692 extern int slk_attr_set(const typedef chtype attr_t, short, void *); 5693 extern int slk_clear(void); 5694 extern int slk_color(short); 5695 extern int slk_init(int); 5696 extern char *slk_label(int); 5697 extern int slk_noutrefresh(void); 5698 extern int slk_refresh(void); 5699 extern int slk_restore(void); 5700 extern int slk_set(int, const char *, int); 5701 extern int slk_touch(void); 5702 extern int standout(void); 5703 extern int standend(void); 5704 extern int start_color(void); 5705 extern WINDOW *subpad(WINDOW *, int, int, int, int); 5706 extern WINDOW *subwin(WINDOW *, int, int, int, int); 5707 extern int syncok(WINDOW *, typedef unsigned char bool); 5708 extern typedef unsigned long int chtype termattrs(void); 5709 extern char *termname(void); 5710 extern void timeout(int); 5711 extern int typeahead(int); 5712 extern int ungetch(int); 5713 extern int untouchwin(WINDOW *); 5714 extern void use_env(typedef unsigned char bool); 5715 extern int vidattr(typedef unsigned long int chtype); 5716 extern int vidputs(typedef unsigned long int chtype, 5717 int (*vidputs_int) (int) 5718 ); 5719 extern int vline(typedef unsigned long int chtype, int); 5720 extern int vwprintw(WINDOW *, char *, typedef void *va_list); 5721 extern int vw_printw(WINDOW *, const char *, typedef void *va_list); 5722 extern int vwscanw(WINDOW *, const char *, typedef void *va_list); 5723 extern int vw_scanw(WINDOW *, const char *, typedef void *va_list); 5724 extern int waddch(WINDOW *, const typedef unsigned long int chtype); 5725 extern int waddchnstr(WINDOW *, const typedef unsigned long int chtype*, 5726 int); 5727 extern int waddchstr(WINDOW *, const typedef unsigned long int chtype *); 5728 extern int waddnstr(WINDOW *, const char *, int); 5729 extern int waddstr(WINDOW *, const char *); 5730 extern int wattron(WINDOW *, int); 5731 extern int wattroff(WINDOW *, int); 5732 extern int wattrset(WINDOW *, int); 5733 extern int wattr_get(WINDOW *, attr_t *, short *, void *); 5734 extern int wattr_on(WINDOW *, typedef chtype attr_t, void *); 5735 extern int wattr_off(WINDOW *, typedef chtype attr_t, void *); 5736 extern int wattr_set(WINDOW *, typedef chtype attr_t, short, void *); 5737 extern int wbkgd(WINDOW *, typedef unsigned long int chtype); 5738 extern void wbkgdset(WINDOW *, typedef unsigned long int chtype); 5739 extern int wborder(WINDOW *, typedef unsigned long int chtype, 5740 typedef unsigned long int chtype, 5741 typedef unsigned long int chtype, 5742 typedef unsigned long int chtype, 5743 typedef unsigned long int chtype, 5744 typedef unsigned long int chtype, 5745 typedef unsigned long int chtype, 5746 typedef unsigned long int chtype); 5747 extern int wchgat(WINDOW *, int, typedef chtype attr_t, short, 5748 const void *); 5749 extern int wclear(WINDOW *); 5750 extern int wclrtobot(WINDOW *); 5751 extern int wclrtoeol(WINDOW *); 5752 extern int wcolor_set(WINDOW *, short, void *); 5753 extern void wcursyncup(WINDOW *); 5754 extern int wdelch(WINDOW *); 5755 extern int wdeleteln(WINDOW *); 5756 extern int wechochar(WINDOW *, const typedef unsigned long int chtype); 5757 extern int werase(WINDOW *); 5758 extern int wgetch(WINDOW *); 5759 extern int wgetnstr(WINDOW *, char *, int); 5760 extern int wgetstr(WINDOW *, char *); 5761 extern int whline(WINDOW *, typedef unsigned long int chtype, int); 5762 extern typedef unsigned long int chtype winch(WINDOW *); 5763 extern int winchnstr(WINDOW *, chtype *, int); 5764 extern int winchstr(WINDOW *, chtype *); 5765 extern int winnstr(WINDOW *, char *, int); 5766 extern int winsch(WINDOW *, typedef unsigned long int chtype); 5767 extern int winsdelln(WINDOW *, int); 5768 extern int winsertln(WINDOW *); 5769 extern int winsnstr(WINDOW *, const char *, int); 5770 extern int winsstr(WINDOW *, const char *); 5771 extern int winstr(WINDOW *, char *); 5772 extern int wmove(WINDOW *, int, int); 5773 extern int wnoutrefresh(WINDOW *); 5774 extern int wprintw(WINDOW *, char *, ...); 5775 extern int wredrawln(WINDOW *, int, int); 5776 extern int wrefresh(WINDOW *); 5777 extern int wscanw(WINDOW *, const char *, ...); 5778 extern int wscrl(WINDOW *, int); 5779 extern int wsetscrreg(WINDOW *, int, int); 5780 extern int wstandout(WINDOW *); 5781 extern int wstandend(WINDOW *); 5782 extern void wsyncdown(WINDOW *); 5783 extern void wsyncup(WINDOW *); 5784 extern void wtimeout(WINDOW *, int); 5785 extern int wtouchln(WINDOW *, int, int, int); 5786 extern int wvline(WINDOW *, typedef unsigned long int chtype, int); 5787 extern char *unctrl(typedef unsigned long int chtype); 5788 extern int COLORS(void); 5789 extern int COLOR_PAIRS(void); 5790 extern chtype acs_map(void); 5791 extern WINDOW *curscr(void); 5792 extern WINDOW *stdscr(void); 5793 extern int COLS(void); 5794 extern int LINES(void); 5795 extern int touchline(WINDOW *, int, int); 5796 extern int touchwin(WINDOW *); 5797 _________________________________________________________ 5798 5799 12.4.2. term.h 5800 5801 extern int putp(const char *); 5802 extern int tigetflag(const char *); 5803 extern int tigetnum(const char *); 5804 extern char *tigetstr(const char *); 5805 extern char *tparm(const char *, ...); 5806 extern TERMINAL *set_curterm(TERMINAL *); 5807 extern int del_curterm(TERMINAL *); 5808 extern int restartterm(char *, int, int *); 5809 extern int setupterm(char *, int, int *); 5810 extern char *tgetstr(char *, char **); 5811 extern char *tgoto(const char *, int, int); 5812 extern int tgetent(char *, const char *); 5813 extern int tgetflag(char *); 5814 extern int tgetnum(char *); 5815 extern int tputs(const char *, int, int (*putcproc) (int) 5816 ); 5817 extern TERMINAL *cur_term(void); 5818 _________________________________________________________ 5819 5820 12.5. Interfaces for libutil 5821 5822 Table 12-3 defines the library name and shared object name for 5823 the libutil library 5824 5825 Table 12-3. libutil Definition 5826 Library: libutil 5827 SONAME: libutil.so.1 5828 5829 The behavior of the interfaces in this library is specified by 5830 the following specifications: 5831 5832 [LSB] This Specification 5833 _________________________________________________________ 5834 5835 12.5.1. Utility Functions 5836 _________________________________________________________ 5837 5838 12.5.1.1. Interfaces for Utility Functions 5839 5840 An LSB conforming implementation shall provide the 5841 architecture specific functions for Utility Functions 5842 specified in Table 12-4, with the full mandatory functionality 5843 as described in the referenced underlying specification. 5844 5845 Table 12-4. libutil - Utility Functions Function Interfaces 5846 forkpty(GLIBC_2.2) [LSB] login(GLIBC_2.2) [LSB] 5847 login_tty(GLIBC_2.2) [LSB] logout(GLIBC_2.2) [LSB] 5848 logwtmp(GLIBC_2.2) [LSB] openpty(GLIBC_2.2) [LSB] 5849 5850 V. Package Format and Installation 5851 5852 Table of Contents 5853 13. Software Installation 5854 5855 13.1. Package Dependencies 5856 13.2. Package Architecture Considerations 5857 _________________________________________________________ 5858 5859 Chapter 13. Software Installation 5860 _________________________________________________________ 5861 5862 13.1. Package Dependencies 5863 5864 The LSB runtime environment shall provde the following 5865 dependencies. 5866 5867 lsb-core-s390x 5868 5869 This dependency is used to indicate that the application is 5870 dependent on features contained in the LSB-Core specification. 5871 5872 These dependencies shall have a version of 3.0. 5873 5874 Other LSB modules may add additional dependencies; such 5875 dependencies shall have the format lsb-module-s390x. 5876 _________________________________________________________ 5877 5878 13.2. Package Architecture Considerations 5879 5880 All packages must specify an architecture of s390x. A LSB 5881 runtime environment must accept an architecture of s390 even 5882 if the native architecture is different. 5883 5884 The archnum value in the Lead Section shall be 0x000E. 5885 _________________________________________________________ 5886 5887 Appendix A. Alphabetical Listing of Interfaces 5888 _________________________________________________________ 5889 5890 A.1. libgcc_s 5891 5892 The behavior of the interfaces in this library is specified by 5893 the following Standards. 5894 5895 This Specification 5896 5897 Table A-1. libgcc_s Function Interfaces 5898 _Unwind_Backtrace[1] _Unwind_GetDataRelBase[1] 5899 _Unwind_RaiseException[1] 5900 _Unwind_DeleteException[1] _Unwind_GetGR[1] _Unwind_Resume[1] 5901 _Unwind_FindEnclosingFunction[1] _Unwind_GetIP[1] 5902 _Unwind_Resume_or_Rethrow[1] 5903 _Unwind_Find_FDE[1] _Unwind_GetLanguageSpecificData[1] 5904 _Unwind_SetGR[1] 5905 _Unwind_ForcedUnwind[1] _Unwind_GetRegionStart[1] 5906 _Unwind_SetIP[1] 5907 _Unwind_GetCFA[1] _Unwind_GetTextRelBase[1] 5908 _________________________________________________________ 5909 5910 Appendix B. GNU Free Documentation License (Informative) 5911 5912 This specification is published under the terms of the GNU 5913 Free Documentation License, Version 1.1, March 2000 5914 5915 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 5916 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 5917 permitted to copy and distribute verbatim copies of this 5918 license document, but changing it is not allowed. 5919 _________________________________________________________ 5920 5921 B.1. PREAMBLE 5922 5923 The purpose of this License is to make a manual, textbook, or 5924 other written document "free" in the sense of freedom: to 5925 assure everyone the effective freedom to copy and redistribute 5926 it, with or without modifying it, either commercially or 5927 noncommercially. Secondarily, this License preserves for the 5928 author and publisher a way to get credit for their work, while 5929 not being considered responsible for modifications made by 5930 others. 5931 5932 This License is a kind of "copyleft", which means that 5933 derivative works of the document must themselves be free in 5934 the same sense. It complements the GNU General Public License, 5935 which is a copyleft license designed for free software. 5936 5937 We have designed this License in order to use it for manuals 5938 for free software, because free software needs free 5939 documentation: a free program should come with manuals 5940 providing the same freedoms that the software does. But this 5941 License is not limited to software manuals; it can be used for 5942 any textual work, regardless of subject matter or whether it 5943 is published as a printed book. We recommend this License 5944 principally for works whose purpose is instruction or 5945 reference. 5946 _________________________________________________________ 5947 5948 B.2. APPLICABILITY AND DEFINITIONS 5949 5950 This License applies to any manual or other work that contains 5951 a notice placed by the copyright holder saying it can be 5952 distributed under the terms of this License. The "Document", 5953 below, refers to any such manual or work. Any member of the 5954 public is a licensee, and is addressed as "you". 5955 5956 A "Modified Version" of the Document means any work containing 5957 the Document or a portion of it, either copied verbatim, or 5958 with modifications and/or translated into another language. 5959 5960 A "Secondary Section" is a named appendix or a front-matter 5961 section of the Document that deals exclusively with the 5962 relationship of the publishers or authors of the Document to 5963 the Document's overall subject (or to related matters) and 5964 contains nothing that could fall directly within that overall 5965 subject. (For example, if the Document is in part a textbook 5966 of mathematics, a Secondary Section may not explain any 5967 mathematics.) The relationship could be a matter of historical 5968 connection with the subject or with related matters, or of 5969 legal, commercial, philosophical, ethical or political 5970 position regarding them. 5971 5972 The "Invariant Sections" are certain Secondary Sections whose 5973 titles are designated, as being those of Invariant Sections, 5974 in the notice that says that the Document is released under 5975 this License. 5976 5977 The "Cover Texts" are certain short passages of text that are 5978 listed, as Front-Cover Texts or Back-Cover Texts, in the 5979 notice that says that the Document is released under this 5980 License. 5981 5982 A "Transparent" copy of the Document means a machine-readable 5983 copy, represented in a format whose specification is available 5984 to the general public, whose contents can be viewed and edited 5985 directly and straightforwardly with generic text editors or 5986 (for images composed of pixels) generic paint programs or (for 5987 drawings) some widely available drawing editor, and that is 5988 suitable for input to text formatters or for automatic 5989 translation to a variety of formats suitable for input to text 5990 formatters. A copy made in an otherwise Transparent file 5991 format whose markup has been designed to thwart or discourage 5992 subsequent modification by readers is not Transparent. A copy 5993 that is not "Transparent" is called "Opaque". 5994 5995 Examples of suitable formats for Transparent copies include 5996 plain ASCII without markup, Texinfo input format, LaTeX input 5997 format, SGML or XML using a publicly available DTD, and 5998 standard-conforming simple HTML designed for human 5999 modification. Opaque formats include PostScript, PDF, 6000 proprietary formats that can be read and edited only by 6001 proprietary word processors, SGML or XML for which the DTD 6002 and/or processing tools are not generally available, and the 6003 machine-generated HTML produced by some word processors for 6004 output purposes only. 6005 6006 The "Title Page" means, for a printed book, the title page 6007 itself, plus such following pages as are needed to hold, 6008 legibly, the material this License requires to appear in the 6009 title page. For works in formats which do not have any title 6010 page as such, "Title Page" means the text near the most 6011 prominent appearance of the work's title, preceding the 6012 beginning of the body of the text. 6013 _________________________________________________________ 6014 6015 B.3. VERBATIM COPYING 6016 6017 You may copy and distribute the Document in any medium, either 6018 commercially or noncommercially, provided that this License, 6019 the copyright notices, and the license notice saying this 6020 License applies to the Document are reproduced in all copies, 6021 and that you add no other conditions whatsoever to those of 6022 this License. You may not use technical measures to obstruct 6023 or control the reading or further copying of the copies you 6024 make or distribute. However, you may accept compensation in 6025 exchange for copies. If you distribute a large enough number 6026 of copies you must also follow the conditions in section 3. 6027 6028 You may also lend copies, under the same conditions stated 6029 above, and you may publicly display copies. 6030 _________________________________________________________ 6031 6032 B.4. COPYING IN QUANTITY 6033 6034 If you publish printed copies of the Document numbering more 6035 than 100, and the Document's license notice requires Cover 6036 Texts, you must enclose the copies in covers that carry, 6037 clearly and legibly, all these Cover Texts: Front-Cover Texts 6038 on the front cover, and Back-Cover Texts on the back cover. 6039 Both covers must also clearly and legibly identify you as the 6040 publisher of these copies. The front cover must present the 6041 full title with all words of the title equally prominent and 6042 visible. You may add other material on the covers in addition. 6043 Copying with changes limited to the covers, as long as they 6044 preserve the title of the Document and satisfy these 6045 conditions, can be treated as verbatim copying in other 6046 respects. 6047 6048 If the required texts for either cover are too voluminous to 6049 fit legibly, you should put the first ones listed (as many as 6050 fit reasonably) on the actual cover, and continue the rest 6051 onto adjacent pages. 6052 6053 If you publish or distribute Opaque copies of the Document 6054 numbering more than 100, you must either include a 6055 machine-readable Transparent copy along with each Opaque copy, 6056 or state in or with each Opaque copy a publicly-accessible 6057 computer-network location containing a complete Transparent 6058 copy of the Document, free of added material, which the 6059 general network-using public has access to download 6060 anonymously at no charge using public-standard network 6061 protocols. If you use the latter option, you must take 6062 reasonably prudent steps, when you begin distribution of 6063 Opaque copies in quantity, to ensure that this Transparent 6064 copy will remain thus accessible at the stated location until 6065 at least one year after the last time you distribute an Opaque 6066 copy (directly or through your agents or retailers) of that 6067 edition to the public. 6068 6069 It is requested, but not required, that you contact the 6070 authors of the Document well before redistributing any large 6071 number of copies, to give them a chance to provide you with an 6072 updated version of the Document. 6073 _________________________________________________________ 6074 6075 B.5. MODIFICATIONS 6076 6077 You may copy and distribute a Modified Version of the Document 6078 under the conditions of sections 2 and 3 above, provided that 6079 you release the Modified Version under precisely this License, 6080 with the Modified Version filling the role of the Document, 6081 thus licensing distribution and modification of the Modified 6082 Version to whoever possesses a copy of it. In addition, you 6083 must do these things in the Modified Version: 6084 6085 A. Use in the Title Page (and on the covers, if any) a title 6086 distinct from that of the Document, and from those of 6087 previous versions (which should, if there were any, be 6088 listed in the History section of the Document). You may 6089 use the same title as a previous version if the original 6090 publisher of that version gives permission. 6091 B. List on the Title Page, as authors, one or more persons or 6092 entities responsible for authorship of the modifications 6093 in the Modified Version, together with at least five of 6094 the principal authors of the Document (all of its 6095 principal authors, if it has less than five). 6096 C. State on the Title page the name of the publisher of the 6097 Modified Version, as the publisher. 6098 D. Preserve all the copyright notices of the Document. 6099 E. Add an appropriate copyright notice for your modifications 6100 adjacent to the other copyright notices. 6101 F. Include, immediately after the copyright notices, a 6102 license notice giving the public permission to use the 6103 Modified Version under the terms of this License, in the 6104 form shown in the Addendum below. 6105 G. Preserve in that license notice the full lists of 6106 Invariant Sections and required Cover Texts given in the 6107 Document's license notice. 6108 H. Include an unaltered copy of this License. 6109 I. Preserve the section entitled "History", and its title, 6110 and add to it an item stating at least the title, year, 6111 new authors, and publisher of the Modified Version as 6112 given on the Title Page. If there is no section entitled 6113 "History" in the Document, create one stating the title, 6114 year, authors, and publisher of the Document as given on 6115 its Title Page, then add an item describing the Modified 6116 Version as stated in the previous sentence. 6117 J. Preserve the network location, if any, given in the 6118 Document for public access to a Transparent copy of the 6119 Document, and likewise the network locations given in the 6120 Document for previous versions it was based on. These may 6121 be placed in the "History" section. You may omit a network 6122 location for a work that was published at least four years 6123 before the Document itself, or if the original publisher 6124 of the version it refers to gives permission. 6125 K. In any section entitled "Acknowledgements" or 6126 "Dedications", preserve the section's title, and preserve 6127 in the section all the substance and tone of each of the 6128 contributor acknowledgements and/or dedications given 6129 therein. 6130 L. Preserve all the Invariant Sections of the Document, 6131 unaltered in their text and in their titles. Section 6132 numbers or the equivalent are not considered part of the 6133 section titles. 6134 M. Delete any section entitled "Endorsements". Such a section 6135 may not be included in the Modified Version. 6136 N. Do not retitle any existing section as "Endorsements" or 6137 to conflict in title with any Invariant Section. 6138 6139 If the Modified Version includes new front-matter sections or 6140 appendices that qualify as Secondary Sections and contain no 6141 material copied from the Document, you may at your option 6142 designate some or all of these sections as invariant. To do 6143 this, add their titles to the list of Invariant Sections in 6144 the Modified Version's license notice. These titles must be 6145 distinct from any other section titles. 6146 6147 You may add a section entitled "Endorsements", provided it 6148 contains nothing but endorsements of your Modified Version by 6149 various parties--for example, statements of peer review or 6150 that the text has been approved by an organization as the 6151 authoritative definition of a standard. 6152 6153 You may add a passage of up to five words as a Front-Cover 6154 Text, and a passage of up to 25 words as a Back-Cover Text, to 6155 the end of the list of Cover Texts in the Modified Version. 6156 Only one passage of Front-Cover Text and one of Back-Cover 6157 Text may be added by (or through arrangements made by) any one 6158 entity. If the Document already includes a cover text for the 6159 same cover, previously added by you or by arrangement made by 6160 the same entity you are acting on behalf of, you may not add 6161 another; but you may replace the old one, on explicit 6162 permission from the previous publisher that added the old one. 6163 6164 The author(s) and publisher(s) of the Document do not by this 6165 License give permission to use their names for publicity for 6166 or to assert or imply endorsement of any Modified Version. 6167 _________________________________________________________ 6168 6169 B.6. COMBINING DOCUMENTS 6170 6171 You may combine the Document with other documents released 6172 under this License, under the terms defined in section 4 above 6173 for modified versions, provided that you include in the 6174 combination all of the Invariant Sections of all of the 6175 original documents, unmodified, and list them all as Invariant 6176 Sections of your combined work in its license notice. 6177 6178 The combined work need only contain one copy of this License, 6179 and multiple identical Invariant Sections may be replaced with 6180 a single copy. If there are multiple Invariant Sections with 6181 the same name but different contents, make the title of each 6182 such section unique by adding at the end of it, in 6183 parentheses, the name of the original author or publisher of 6184 that section if known, or else a unique number. Make the same 6185 adjustment to the section titles in the list of Invariant 6186 Sections in the license notice of the combined work. 6187 6188 In the combination, you must combine any sections entitled 6189 "History" in the various original documents, forming one 6190 section entitled "History"; likewise combine any sections 6191 entitled "Acknowledgements", and any sections entitled 6192 "Dedications". You must delete all sections entitled 6193 "Endorsements." 6194 _________________________________________________________ 6195 6196 B.7. COLLECTIONS OF DOCUMENTS 6197 6198 You may make a collection consisting of the Document and other 6199 documents released under this License, and replace the 6200 individual copies of this License in the various documents 6201 with a single copy that is included in the collection, 6202 provided that you follow the rules of this License for 6203 verbatim copying of each of the documents in all other 6204 respects. 6205 6206 You may extract a single document from such a collection, and 6207 distribute it individually under this License, provided you 6208 insert a copy of this License into the extracted document, and 6209 follow this License in all other respects regarding verbatim 6210 copying of that document. 6211 _________________________________________________________ 6212 6213 B.8. AGGREGATION WITH INDEPENDENT WORKS 6214 6215 A compilation of the Document or its derivatives with other 6216 separate and independent documents or works, in or on a volume 6217 of a storage or distribution medium, does not as a whole count 6218 as a Modified Version of the Document, provided no compilation 6219 copyright is claimed for the compilation. Such a compilation 6220 is called an "aggregate", and this License does not apply to 6221 the other self-contained works thus compiled with the 6222 Document, on account of their being thus compiled, if they are 6223 not themselves derivative works of the Document. 6224 6225 If the Cover Text requirement of section 3 is applicable to 6226 these copies of the Document, then if the Document is less 6227 than one quarter of the entire aggregate, the Document's Cover 6228 Texts may be placed on covers that surround only the Document 6229 within the aggregate. Otherwise they must appear on covers 6230 around the whole aggregate. 6231 _________________________________________________________ 6232 6233 B.9. TRANSLATION 6234 6235 Translation is considered a kind of modification, so you may 6236 distribute translations of the Document under the terms of 6237 section 4. Replacing Invariant Sections with translations 6238 requires special permission from their copyright holders, but 6239 you may include translations of some or all Invariant Sections 6240 in addition to the original versions of these Invariant 6241 Sections. You may include a translation of this License 6242 provided that you also include the original English version of 6243 this License. In case of a disagreement between the 6244 translation and the original English version of this License, 6245 the original English version will prevail. 6246 _________________________________________________________ 6247 6248 B.10. TERMINATION 6249 6250 You may not copy, modify, sublicense, or distribute the 6251 Document except as expressly provided for under this License. 6252 Any other attempt to copy, modify, sublicense or distribute 6253 the Document is void, and will automatically terminate your 6254 rights under this License. However, parties who have received 6255 copies, or rights, from you under this License will not have 6256 their licenses terminated so long as such parties remain in 6257 full compliance. 6258 _________________________________________________________ 6259 6260 B.11. FUTURE REVISIONS OF THIS LICENSE 6261 6262 The Free Software Foundation may publish new, revised versions 6263 of the GNU Free Documentation License from time to time. Such 6264 new versions will be similar in spirit to the present version, 6265 but may differ in detail to address new problems or concerns. 6266 See http://www.gnu.org/copyleft/. 6267 6268 Each version of the License is given a distinguishing version 6269 number. If the Document specifies that a particular numbered 6270 version of this License "or any later version" applies to it, 6271 you have the option of following the terms and conditions 6272 either of that specified version or of any later version that 6273 has been published (not as a draft) by the Free Software 6274 Foundation. If the Document does not specify a version number 6275 of this License, you may choose any version ever published 6276 (not as a draft) by the Free Software Foundation. 6277 _________________________________________________________ 6278 6279 B.12. How to use this License for your documents 6280 6281 To use this License in a document you have written, include a 6282 copy of the License in the document and put the following 6283 copyright and license notices just after the title page: 6284 6285 Copyright (c) YEAR YOUR NAME. Permission is granted to 6286 copy, distribute and/or modify this document under the 6287 terms of the GNU Free Documentation License, Version 1.1 or 6288 any later version published by the Free Software 6289 Foundation; with the Invariant Sections being LIST THEIR 6290 TITLES, with the Front-Cover Texts being LIST, and with the 6291 Back-Cover Texts being LIST. A copy of the license is 6292 included in the section entitled "GNU Free Documentation 6293 License". 6294 6295 If you have no Invariant Sections, write "with no Invariant 6296 Sections" instead of saying which ones are invariant. If you 6297 have no Front-Cover Texts, write "no Front-Cover Texts" 6298 instead of "Front-Cover Texts being LIST"; likewise for 6299 Back-Cover Texts. 6300 6301 If your document contains nontrivial examples of program code, 6302 we recommend releasing these examples in parallel under your 6303 choice of free software license, such as the GNU General 6304 Public License, to permit their use in free software.