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