1 2 Linux Standard Base Core Specification for S390 3.0Preview1 3 4 Copyright © 2004 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 OpenGL is a registered trademark of Silicon Graphics, Inc. 41 42 Table of Contents 43 Specification Introduction 44 ELF Specification 45 Linux Standard Base Specification 46 Linux Packaging Specification 47 Free Documentation License 48 49 Specification Introduction 50 _________________________________________________________ 51 52 Table of Contents 53 Foreword 54 Introduction 55 I. Introductory Elements 56 57 1. Scope 58 59 1.1. General 60 1.2. Module Specific Scope 61 62 2. Normative References 63 3. Requirements 64 65 3.1. Relevant Libraries 66 3.2. LSB Implementation Conformance 67 3.3. LSB Application Conformance 68 69 4. Definitions 70 5. Terminology 71 6. Documentation Conventions 72 73 List of Tables 74 2-1. Normative References 75 3-1. Standard Library Names 76 _________________________________________________________ 77 78 Foreword 79 80 This is version 3.0Preview1 of the Linux Standard Base Core 81 Specification for S390. An implementation of this version of 82 the specification may not claim to be an implementation of the 83 Linux Standard Base unless it has successfully completed the 84 compliance process as defined by the Free Standards Group. 85 _________________________________________________________ 86 87 Introduction 88 89 The LSB defines a binary interface for application programs 90 that are compiled and packaged for LSB-conforming 91 implementations on many different hardware architectures. 92 Since a binary specification shall include information 93 specific to the computer processor architecture for which it 94 is intended, it is not possible for a single document to 95 specify the interface for all possible LSB-conforming 96 implementations. Therefore, the LSB is a family of 97 specifications, rather than a single one. 98 99 This document should be used in conjunction with the documents 100 it references. This document enumerates the system components 101 it includes, but descriptions of those components may be 102 included entirely or partly in this document, partly in other 103 documents, or entirely in other reference documents. For 104 example, the section that describes system service routines 105 includes a list of the system routines supported in this 106 interface, formal declarations of the data structures they use 107 that are visible to applications, and a pointer to the 108 underlying referenced specification for information about the 109 syntax and semantics of each call. Only those routines not 110 described in standards referenced by this document, or 111 extensions to those standards, are described in the detail. 112 Information referenced in this way is as much a part of this 113 document as is the information explicitly included here. 114 115 The specification carries a version number of either the form 116 x.y or x.y.z. This version number carries the following 117 meaning: 118 119 * The first number (x) is the major version number. All 120 versions with the same major version number should share 121 binary compatibility. Any addition or deletion of a new 122 library results in a new version number. Interfaces marked 123 as deprecated may be removed from the specification at a 124 major version change. 125 * The second number (y) is the minor version number. 126 Individual interfaces may be added if all certified 127 implementations already had that (previously undocumented) 128 interface. Interfaces may be marked as deprecated at a 129 minor version change. Other minor changes may be permitted 130 at the discretion of the LSB workgroup. 131 * The third number (z), if present, is the editorial level. 132 Only editorial changes should be included in such 133 versions. 134 135 I. Introductory Elements 136 137 Table of Contents 138 1. Scope 139 2. Normative References 140 3. Requirements 141 4. Definitions 142 5. Terminology 143 6. Documentation Conventions 144 _________________________________________________________ 145 146 Chapter 1. Scope 147 148 1.1. General 149 150 The Linux Standard Base (LSB) defines a system interface for 151 compiled applications and a minimal environment for support of 152 installation scripts. Its purpose is to enable a uniform 153 industry standard environment for high-volume applications 154 conforming to the LSB. 155 156 These specifications are composed of two basic parts: A common 157 specification ("LSB-generic") describing those parts of the 158 interface that remain constant across all implementations of 159 the LSB, and an architecture-specific specification 160 ("LSB-arch") describing the parts of the interface that vary 161 by processor architecture. Together, the LSB-generic and the 162 architecture-specific supplement for a single hardware 163 architecture provide a complete interface specification for 164 compiled application programs on systems that share a common 165 hardware architecture. 166 167 The LSB-generic document shall be used in conjunction with an 168 architecture-specific supplement. Whenever a section of the 169 LSB-generic specification shall be supplemented by 170 architecture-specific information, the LSB-generic document 171 includes a reference to the architecture supplement. 172 Architecture supplements may also contain additional 173 information that is not referenced in the LSB-generic 174 document. 175 176 The LSB contains both a set of Application Program Interfaces 177 (APIs) and Application Binary Interfaces (ABIs). APIs may 178 appear in the source code of portable applications, while the 179 compiled binary of that application may use the larger set of 180 ABIs. A conforming implementation shall provide all of the 181 ABIs listed here. The compilation system may replace (e.g. by 182 macro definition) certain APIs with calls to one or more of 183 the underlying binary interfaces, and may insert calls to 184 binary interfaces as needed. 185 186 The LSB is primarily a binary interface definition. Not all of 187 the source level APIs available to applications may be 188 contained in this specification. 189 _________________________________________________________ 190 191 1.2. Module Specific Scope 192 193 This is the S390 architecture specific Core module of the 194 Linux Standards Base (LSB). This module supplements the 195 generic LSB Core module with those interfaces that differ 196 between architectures. 197 198 Interfaces described in this module are mandatory except where 199 explicitly listed otherwise. Core interfaces may be 200 supplemented by other modules; all modules are built upon the 201 core. 202 _________________________________________________________ 203 204 Chapter 2. Normative References 205 206 The specifications listed below are referenced in whole or in 207 part by the Linux Standard Base. In this specification, where 208 only a particular section of one of these references is 209 identified, then the normative reference is to that section 210 alone, and the rest of the referenced document is informative. 211 212 Table 2-1. Normative References 213 Name Title URL 214 DWARF Debugging Information Format DWARF Debugging Information 215 Format, Revision 2.0.0 (July 27, 1993) 216 http://www.eagercon.com/dwarf/dwarf-2.0.0.pdf 217 Enterprise Systems Architecture/390 Principles of Operation 218 Enterprise Systems Architecture/390 Principles of Operation 219 http://oss.software.ibm.com/linux390/documentation-2.2.shtml 220 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 221 (FHS) 2.3 http://www.pathname.com/fhs/ 222 Gdk 2.6.2 Reference Manual Gdk 2.6.2 Reference Manual 223 http://www.gtk.org/api/2.6/gdk/index.html 224 Gdk-pixbuf 2.6.2 Reference Manual Gdk-pixbuf 2.6.2 Reference 225 Manual http://www.gtk.org/api/2.6/gdk-pixbuf/index.html 226 Glib 2.6.2 Reference Manual Glib 2.6.2 Reference Manual 227 http://www.gtk.org/api/2.6/glib/index.html 228 Gobject 2.6.2 Reference Manual Gobject 2.6.2 Reference Manual 229 http://www.gtk.org/api/2.6/gobject/index.html 230 Gtk 2.6.2 Reference Manual Gtk 2.6.2 Reference Manual 231 http://www.gtk.org/api/2.6/gtk/index.html 232 IEEE Std 754-1985 IEEE Standard 754 for Binary Floating-Point 233 Arithmetic http://www.ieee.org/ 234 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 235 ISO POSIX (2003) 236 237 ISO/IEC 9945-1:2003 Information technology -- Portable 238 Operating System Interface (POSIX) -- Part 1: Base Definitions 239 240 ISO/IEC 9945-2:2003 Information technology -- Portable 241 Operating System Interface (POSIX) -- Part 2: System 242 Interfaces 243 244 ISO/IEC 9945-3:2003 Information technology -- Portable 245 Operating System Interface (POSIX) -- Part 3: Shell and 246 Utilities 247 248 ISO/IEC 9945-4:2003 Information technology -- Portable 249 Operating System Interface (POSIX) -- Part 4: Rationale 250 251 Including Technical Cor. 1: 2004 252 http://www.unix.org/version3/ 253 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 254 Specification method for cultural conventions 255 ITU-T V.42 International Telecommunication Union 256 Recommendation V.42 (2002): Error-correcting procedures for 257 DCEs using asynchronous-to-synchronous conversionITUV 258 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 259 parent=T-REC-V.42 260 Large File Support Large File Support 261 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 262 Li18nux Globalization Specification LI18NUX 2000 Globalization 263 Specification, Version 1.0 with Amendment 4 264 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 265 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 266 http://www.lanana.org/docs/device-list/devices.txt 267 LINUX for S/390 ELF Application Binary Interface Supplement 268 LINUX for S/390 ELF Application Binary Interface Supplement 269 http://oss.software.ibm.com/linux390/documentation-2.2.shtml 270 PAM Open Software Foundation, Request For Comments: 86.0 , 271 October 1995, V. Samar & R.Schemers (SunSoft) 272 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 273 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 274 MD5 Message-Digest Algorithm 275 http://www.ietf.org/rfc/rfc1321.txt 276 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 277 1833: Binding Protocols for ONC RPC Version 2 278 http://www.ietf.org/rfc/rfc1833.txt 279 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 280 1950: ZLIB Compressed Data Format Specification 281 http://www.ietf.org/rfc/rfc1950.txt 282 RFC 1951: DEFLATE Compressed Data Format Specification IETF 283 RFC 1951: DEFLATE Compressed Data Format Specification version 284 1.3 http://www.ietf.org/rfc/rfc1951.txt 285 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 286 file format specification version 4.3 287 http://www.ietf.org/rfc/rfc1952.txt 288 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 289 Message Format http://www.ietf.org/rfc/rfc2440.txt 290 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 291 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 292 RFC 2822:Internet Message Format IETF RFC 2822: Internet 293 Message Format http://www.ietf.org/rfc/rfc2822.txt 294 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 295 Specification http://www.ietf.org/rfc/rfc791.txt 296 SUSv2 CAE Specification, January 1997, System Interfaces and 297 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 298 http://www.opengroup.org/publications/catalog/un.htm 299 SUSv2 Commands and Utilities The Single UNIX® 300 Specification(SUS) Version 2, Commands and Utilities (XCU), 301 Issue 5 (ISBN: 1-85912-191-8, C604) 302 http://www.opengroup.org/publications/catalog/un.htm 303 SVID Issue 3 American Telephone and Telegraph Company, System 304 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 305 1989.(ISBN 0201566524) 306 SVID Issue 4 System V Interface Definition,Fourth Edition 307 System V ABI System V Application Binary Interface, Edition 308 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 309 System V ABI Update System V Application Binary Interface - 310 DRAFT - 17 December 2003 311 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 312 l 313 this specification Linux Standard Base 314 http://www.linuxbase.org/spec/ 315 X/Open Curses CAE Specification, May 1996, X/Open Curses, 316 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 317 Corrigendum U018 318 http://www.opengroup.org/publications/catalog/un.htm 319 _________________________________________________________ 320 321 Chapter 3. Requirements 322 323 3.1. Relevant Libraries 324 325 The libraries listed in Table 3-1 shall be available on S390 326 Linux Standard Base systems, with the specified runtime names. 327 These names override or supplement the names specified in the 328 generic LSB specification. The specified program interpreter, 329 referred to as proginterp in this table, shall be used to load 330 the shared libraries specified by DT_NEEDED entries at run 331 time. 332 333 Table 3-1. Standard Library Names 334 Library Runtime Name 335 libm libm.so.6 336 libdl libdl.so.2 337 libcrypt libcrypt.so.1 338 libz libz.so.1 339 libncurses libncurses.so.5 340 libutil libutil.so.1 341 libc libc.so.6 342 libpthread libpthread.so.0 343 proginterp /lib/ld-lsb-s390.so.3 344 libgcc_s libgcc_s.so.1 345 346 These libraries will be in an implementation-defined directory 347 which the dynamic linker shall search by default. 348 _________________________________________________________ 349 350 3.2. LSB Implementation Conformance 351 352 A conforming implementation shall satisfy the following 353 requirements: 354 355 * The implementation shall implement fully the architecture 356 described in the hardware manual for the target processor 357 architecture. 358 * The implementation shall be capable of executing compiled 359 applications having the format and using the system 360 interfaces described in this document. 361 * The implementation shall provide libraries containing the 362 interfaces specified by this document, and shall provide a 363 dynamic linking mechanism that allows these interfaces to 364 be attached to applications at runtime. All the interfaces 365 shall behave as specified in this document. 366 * The map of virtual memory provided by the implementation 367 shall conform to the requirements of this document. 368 * The implementation's low-level behavior with respect to 369 function call linkage, system traps, signals, and other 370 such activities shall conform to the formats described in 371 this document. 372 * The implementation shall provide all of the mandatory 373 interfaces in their entirety. 374 * The implementation may provide one or more of the optional 375 interfaces. Each optional interface that is provided shall 376 be provided in its entirety. The product documentation 377 shall state which optional interfaces are provided. 378 * The implementation shall provide all files and utilities 379 specified as part of this document in the format defined 380 here and in other referenced documents. All commands and 381 utilities shall behave as required by this document. The 382 implementation shall also provide all mandatory components 383 of an application's runtime environment that are included 384 or referenced in this document. 385 * The implementation, when provided with standard data 386 formats and values at a named interface, shall provide the 387 behavior defined for those values and data formats at that 388 interface. However, a conforming implementation may 389 consist of components which are separately packaged and/or 390 sold. For example, a vendor of a conforming implementation 391 might sell the hardware, operating system, and windowing 392 system as separately packaged items. 393 * The implementation may provide additional interfaces with 394 different names. It may also provide additional behavior 395 corresponding to data values outside the standard ranges, 396 for standard named interfaces. 397 _________________________________________________________ 398 399 3.3. LSB Application Conformance 400 401 A conforming application shall satisfy the following 402 requirements: 403 404 * Its executable files are either shell scripts or object 405 files in the format defined for the Object File Format 406 system interface. 407 * Its object files participate in dynamic linking as defined 408 in the Program Loading and Linking System interface. 409 * It employs only the instructions, traps, and other 410 low-level facilities defined in the Low-Level System 411 interface as being for use by applications. 412 * If it requires any optional interface defined in this 413 document in order to be installed or to execute 414 successfully, the requirement for that optional interface 415 is stated in the application's documentation. 416 * It does not use any interface or data format that is not 417 required to be provided by a conforming implementation, 418 unless: 419 + If such an interface or data format is supplied by 420 another application through direct invocation of that 421 application during execution, that application is in 422 turn an LSB conforming application. 423 + The use of that interface or data format, as well as 424 its source, is identified in the documentation of the 425 application. 426 * It shall not use any values for a named interface that are 427 reserved for vendor extensions. 428 429 A strictly conforming application does not require or use any 430 interface, facility, or implementation-defined extension that 431 is not defined in this document in order to be installed or to 432 execute successfully. 433 _________________________________________________________ 434 435 Chapter 4. Definitions 436 437 For the purposes of this document, the following definitions, 438 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 439 Edition, apply: 440 441 can 442 be able to; there is a possibility of; it is possible 443 to 444 445 cannot 446 be unable to; there is no possibilty of; it is not 447 possible to 448 449 may 450 is permitted; is allowed; is permissible 451 452 need not 453 it is not required that; no...is required 454 455 shall 456 is to; is required to; it is required that; has to; 457 only...is permitted; it is necessary 458 459 shall not 460 is not allowed [permitted] [acceptable] [permissible]; 461 is required to be not; is required that...be not; is 462 not to be 463 464 should 465 it is recommended that; ought to 466 467 should not 468 it is not recommended that; ought not to 469 _________________________________________________________ 470 471 Chapter 5. Terminology 472 473 For the purposes of this document, the following terms apply: 474 475 archLSB 476 The architectural part of the LSB Specification which 477 describes the specific parts of the interface that are 478 platform specific. The archLSB is complementary to the 479 gLSB. 480 481 Binary Standard 482 The total set of interfaces that are available to be 483 used in the compiled binary code of a conforming 484 application. 485 486 gLSB 487 The common part of the LSB Specification that describes 488 those parts of the interface that remain constant 489 across all hardware implementations of the LSB. 490 491 implementation-defined 492 Describes a value or behavior that is not defined by 493 this document but is selected by an implementor. The 494 value or behavior may vary among implementations that 495 conform to this document. An application should not 496 rely on the existence of the value or behavior. An 497 application that relies on such a value or behavior 498 cannot be assured to be portable across conforming 499 implementations. The implementor shall document such a 500 value or behavior so that it can be used correctly by 501 an application. 502 503 Shell Script 504 A file that is read by an interpreter (e.g., awk). The 505 first line of the shell script includes a reference to 506 its interpreter binary. 507 508 Source Standard 509 The set of interfaces that are available to be used in 510 the source code of a conforming application. 511 512 undefined 513 Describes the nature of a value or behavior not defined 514 by this document which results from use of an invalid 515 program construct or invalid data input. The value or 516 behavior may vary among implementations that conform to 517 this document. An application should not rely on the 518 existence or validity of the value or behavior. An 519 application that relies on any particular value or 520 behavior cannot be assured to be portable across 521 conforming implementations. 522 523 unspecified 524 Describes the nature of a value or behavior not 525 specified by this document which results from use of a 526 valid program construct or valid data input. The value 527 or behavior may vary among implementations that conform 528 to this document. An application should not rely on the 529 existence or validity of the value or behavior. An 530 application that relies on any particular value or 531 behavior cannot be assured to be portable across 532 conforming implementations. 533 534 Other terms and definitions used in this document shall have 535 the same meaning as defined in Chapter 3 of the Base 536 Definitions volume of ISO POSIX (2003). 537 _________________________________________________________ 538 539 Chapter 6. Documentation Conventions 540 541 Throughout this document, the following typographic 542 conventions are used: 543 544 function() 545 the name of a function 546 547 command 548 the name of a command or utility 549 550 CONSTANT 551 a constant value 552 553 parameter 554 a parameter 555 556 variable 557 a variable 558 559 Throughout this specification, several tables of interfaces 560 are presented. Each entry in these tables has the following 561 format: 562 563 name 564 the name of the interface 565 566 (symver) 567 An optional symbol version identifier, if required. 568 569 [refno] 570 A reference number indexing the table of referenced 571 specifications that follows this table. 572 573 For example, 574 575 forkpty(GLIBC_2.0) [1] 576 577 refers to the interface named forkpty() with symbol version 578 GLIBC_2.0 that is defined in the first of the listed 579 references below the table. 580 581 ELF Specification 582 _________________________________________________________ 583 584 Table of Contents 585 I. Low Level System Information 586 587 1. Machine Interface 588 589 1.1. Processor Architecture 590 1.2. Data Representation 591 592 2. Function Calling Sequence 593 594 2.1. Registers 595 2.2. Stack Frame 596 2.3. Parameter Passing 597 2.4. Variable Argument Lists 598 2.5. Return Values 599 600 3. Operating System Interface 601 602 3.1. Virtual Address Space 603 3.2. Processor Execution Mode 604 3.3. Exception Interface 605 606 4. Process Initialization 607 608 4.1. Registers 609 4.2. Process Stack 610 611 5. Coding Examples 612 613 5.1. Code Model Overview 614 5.2. Function Prolog and Epilog 615 5.3. Data Objects 616 5.4. Function Calls 617 5.5. Branching 618 5.6. Dynamic Stack Space Allocation 619 620 6. Debug Information 621 622 II. Object Format 623 624 7. ELF Header 625 626 7.1. Machine Information 627 628 8. Sections 629 630 8.1. Special Sections 631 632 9. Symbol Table 633 10. Relocation 634 635 10.1. Relocation Types 636 637 III. Program Loading and Dynamic Linking 638 639 11. Program Loading 640 12. Dynamic Linking 641 642 12.1. Dynamic Section 643 12.2. Global Offset Table 644 12.3. Shared Object Dependencies 645 12.4. Function Addresses 646 12.5. Procedure Linkage Table 647 648 List of Tables 649 8-1. ELF Special Sections 650 651 I. Low Level System Information 652 653 Table of Contents 654 1. Machine Interface 655 2. Function Calling Sequence 656 3. Operating System Interface 657 4. Process Initialization 658 5. Coding Examples 659 6. Debug Information 660 _________________________________________________________ 661 662 Chapter 1. Machine Interface 663 664 1.1. Processor Architecture 665 666 The ESA/390 Architecture is specified by the following 667 documents 668 669 * LINUX for S/390 ELF Application Binary Interface 670 Supplement 671 * Enterprise Systems Architecture/390 Principles of 672 Operation 673 674 Only the features of ESA/390 processor instruction set and the 675 following optional instructions may be assumed to be present: 676 677 * additional floating point facility 678 * compare and move extended facility 679 * immediate and relative instruction facility 680 * string instruction facility 681 * square-root facility 682 683 An application is responsible for determining if any 684 additional instruction set features are available before using 685 those additional features. If a feature is not present, then 686 the application may not use it. 687 688 Applications may not make system calls directly. The 689 interfaces in the C library must be used instead. 690 691 Applications conforming to this specification must provide 692 feedback to the user if a feature that is required for correct 693 execution of the application is not present. Applications 694 conforming to this specification should attempt to execute in 695 a diminished capacity if a required instruction set feature is 696 not present. 697 698 This specfication does not provide any performance guarantees 699 of a conforming system. A system conforming to this 700 specification may be implemented in either hardware or 701 software. 702 _________________________________________________________ 703 704 1.2. Data Representation 705 706 LSB-conforming applications shall use the data representation 707 as defined in Chapter 1 of the LINUX for S/390 ELF Application 708 Binary Interface Supplement. 709 710 See chapter 1 of the LINUX for S/390 ELF Application Binary 711 Interface Supplement. 712 _________________________________________________________ 713 714 1.2.1. Byte Ordering 715 716 See chapter 1 of the LINUX for S/390 ELF Application Binary 717 Interface Supplement. 718 _________________________________________________________ 719 720 1.2.2. Fundamental Types 721 722 See chapter 1 of the LINUX for S/390 ELF Application Binary 723 Interface Supplement. 724 _________________________________________________________ 725 726 1.2.3. Aggregates and Unions 727 728 See chapter 1 of the LINUX for S/390 ELF Application Binary 729 Interface Supplement. 730 _________________________________________________________ 731 732 1.2.4. Bit Fields 733 734 See chapter 1 of the LINUX for S/390 ELF Application Binary 735 Interface Supplement. 736 _________________________________________________________ 737 738 Chapter 2. Function Calling Sequence 739 740 LSB-conforming applications shall use the function calling 741 sequence as defined in Chapter 1 of the LINUX for S/390 ELF 742 Application Binary Interface Supplement. 743 _________________________________________________________ 744 745 2.1. Registers 746 747 See chapter 1 of the LINUX for S/390 ELF Application Binary 748 Interface Supplement. 749 _________________________________________________________ 750 751 2.2. Stack Frame 752 753 See chapter 1 of the LINUX for S/390 ELF Application Binary 754 Interface Supplement. 755 _________________________________________________________ 756 757 2.3. Parameter Passing 758 759 See chapter 1 of the LINUX for S/390 ELF Application Binary 760 Interface Supplement. 761 _________________________________________________________ 762 763 2.4. Variable Argument Lists 764 765 See chapter 1 of the LINUX for S/390 ELF Application Binary 766 Interface Supplement. 767 _________________________________________________________ 768 769 2.5. Return Values 770 771 See chapter 1 of the LINUX for S/390 ELF Application Binary 772 Interface Supplement. 773 _________________________________________________________ 774 775 Chapter 3. Operating System Interface 776 777 LSB-conforming applications shall use the Operating System 778 Interfaces as defined in Chapter 1 of the LINUX for S/390 ELF 779 Application Binary Interface Supplement. 780 _________________________________________________________ 781 782 3.1. Virtual Address Space 783 784 See chapter 1 of the LINUX for S/390 ELF Application Binary 785 Interface Supplement. 786 _________________________________________________________ 787 788 3.1.1. Page Size 789 790 See chapter 1 of the LINUX for S/390 ELF Application Binary 791 Interface Supplement. 792 _________________________________________________________ 793 794 3.1.2. Virtual Address Assignments 795 796 See chapter 1 of the LINUX for S/390 ELF Application Binary 797 Interface Supplement. 798 _________________________________________________________ 799 800 3.1.3. Managing the Process Stack 801 802 See chapter 1 of the LINUX for S/390 ELF Application Binary 803 Interface Supplement. 804 _________________________________________________________ 805 806 3.1.4. Coding Guidleines 807 808 See chapter 1 of the LINUX for S/390 ELF Application Binary 809 Interface Supplement. 810 _________________________________________________________ 811 812 3.2. Processor Execution Mode 813 814 See chapter 1 of the LINUX for S/390 ELF Application Binary 815 Interface Supplement. 816 _________________________________________________________ 817 818 3.3. Exception Interface 819 820 See chapter 1 of the LINUX for S/390 ELF Application Binary 821 Interface Supplement. 822 _________________________________________________________ 823 824 Chapter 4. Process Initialization 825 826 LSB-conforming applications shall use the Process 827 Initialization as defined in Chapter 1 of the LINUX for S/390 828 ELF Application Binary Interface Supplement. 829 _________________________________________________________ 830 831 4.1. Registers 832 833 See chapter 1 of the LINUX for S/390 ELF Application Binary 834 Interface Supplement. 835 _________________________________________________________ 836 837 4.2. Process Stack 838 839 See chapter 1 of the LINUX for S/390 ELF Application Binary 840 Interface Supplement. 841 _________________________________________________________ 842 843 Chapter 5. Coding Examples 844 845 LSB-conforming applications may implement fundamental 846 operations using the Coding Examples as defined in Chapter 1 847 of the LINUX for S/390 ELF Application Binary Interface 848 Supplement. 849 _________________________________________________________ 850 851 5.1. Code Model Overview 852 853 See chapter 1 of the LINUX for S/390 ELF Application Binary 854 Interface Supplement. 855 _________________________________________________________ 856 857 5.2. Function Prolog and Epilog 858 859 See chapter 1 of the LINUX for S/390 ELF Application Binary 860 Interface Supplement. 861 _________________________________________________________ 862 863 5.3. Data Objects 864 865 See chapter 1 of the LINUX for S/390 ELF Application Binary 866 Interface Supplement. 867 _________________________________________________________ 868 869 5.4. Function Calls 870 871 See chapter 1 of the LINUX for S/390 ELF Application Binary 872 Interface Supplement. 873 _________________________________________________________ 874 875 5.5. Branching 876 877 See chapter 1 of the LINUX for S/390 ELF Application Binary 878 Interface Supplement. 879 _________________________________________________________ 880 881 5.6. Dynamic Stack Space Allocation 882 883 See chapter 1 of the LINUX for S/390 ELF Application Binary 884 Interface Supplement. 885 _________________________________________________________ 886 887 Chapter 6. Debug Information 888 889 The LSB does not currently specify the format of Debug 890 information. 891 892 II. Object Format 893 894 LSB-conforming implementations shall support an object file , 895 called Executable and Linking Format (ELF) as defined by the 896 System V ABI , System V ABI Update, LINUX for S/390 ELF 897 Application Binary Interface Supplement and as supplemented by 898 the this specification and this document. 899 900 Table of Contents 901 7. ELF Header 902 8. Sections 903 9. Symbol Table 904 10. Relocation 905 _________________________________________________________ 906 907 Chapter 7. ELF Header 908 909 7.1. Machine Information 910 911 LSB-conforming applications shall use the Machine Information 912 as defined in Chapter 2 of the LINUX for S/390 ELF Application 913 Binary Interface Supplement. 914 _________________________________________________________ 915 916 Chapter 8. Sections 917 918 See chapter 2 of the LINUX for S/390 ELF Application Binary 919 Interface Supplement. 920 _________________________________________________________ 921 922 8.1. Special Sections 923 924 The following sections are defined in the LINUX for S/390 ELF 925 Application Binary Interface Supplement. 926 927 Table 8-1. ELF Special Sections 928 Name Type Attributes 929 .got SHT_PROGBITS SHF_ALLOC+SHF_WRITE 930 .plt SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 931 932 .got 933 This section holds the global offset table 934 935 .plt 936 This section holds the Procedure Linkage Table 937 _________________________________________________________ 938 939 Chapter 9. Symbol Table 940 941 LSB-conforming applications shall use the Symbol Table as 942 defined in Chapter 2 of the LINUX for S/390 ELF Application 943 Binary Interface Supplement. 944 _________________________________________________________ 945 946 Chapter 10. Relocation 947 948 LSB-conforming applications shall use Relocations as defined 949 in Chapter 2 of the LINUX for S/390 ELF Application Binary 950 Interface Supplement. 951 _________________________________________________________ 952 953 10.1. Relocation Types 954 955 See chapter 2 of the LINUX for S/390 ELF Application Binary 956 Interface Supplement. 957 958 III. Program Loading and Dynamic Linking 959 960 LSB-conforming implementations shall support the object file 961 information and system actions that create running programs as 962 specified in the LINUX for S/390 ELF Application Binary 963 Interface Supplement and as supplemented by the the generic 964 LSB and this document. LSB-conforming implementations need not 965 support tags related functionality. LSB-conforming 966 applications must not rely on tags related funtionatliy. 967 968 Table of Contents 969 11. Program Loading 970 12. Dynamic Linking 971 _________________________________________________________ 972 973 Chapter 11. Program Loading 974 975 See chapter 3 of the LINUX for S/390 ELF Application Binary 976 Interface Supplement. 977 _________________________________________________________ 978 979 Chapter 12. Dynamic Linking 980 981 See chapter 3 of the LINUX for S/390 ELF Application Binary 982 Interface Supplement. 983 _________________________________________________________ 984 985 12.1. Dynamic Section 986 987 The following dynamic entries are defined in the LINUX for 988 S/390 ELF Application Binary Interface Supplement. 989 990 DT_JMPREL 991 This entry is associated with a table of relocation 992 entries for the procedure linkage table. This entry is 993 mandatory both for executable and shared object files 994 995 DT_PLTGOT 996 This entry's d_ptr member gives the address of the 997 first byte in the procedure linkage table 998 _________________________________________________________ 999 1000 12.2. Global Offset Table 1001 1002 See chapter 3 of the LINUX for S/390 ELF Application Binary 1003 Interface Supplement. 1004 _________________________________________________________ 1005 1006 12.3. Shared Object Dependencies 1007 1008 See chapter 3 of the LINUX for S/390 ELF Application Binary 1009 Interface Supplement. 1010 _________________________________________________________ 1011 1012 12.4. Function Addresses 1013 1014 See chapter 3 of the LINUX for S/390 ELF Application Binary 1015 Interface Supplement. 1016 _________________________________________________________ 1017 1018 12.5. Procedure Linkage Table 1019 1020 See chapter 3 of the LINUX for S/390 ELF Application Binary 1021 Interface Supplement. 1022 1023 Linux Standard Base Specification 1024 _________________________________________________________ 1025 1026 Table of Contents 1027 I. Base Libraries 1028 1029 1. Libraries 1030 1031 1.1. Program Interpreter/Dynamic Linker 1032 1.2. Interfaces for libc 1033 1.3. Data Definitions for libc 1034 1.4. Interfaces for libm 1035 1.5. Data Definitions for libm 1036 1.6. Interfaces for libpthread 1037 1.7. Interfaces for libgcc_s 1038 1.8. Interface Definitions for libgcc_s 1039 1.9. Interfaces for libdl 1040 1.10. Interfaces for libcrypt 1041 1042 II. Utility Libraries 1043 1044 2. Libraries 1045 1046 2.1. Interfaces for libz 1047 2.2. Data Definitions for libz 1048 2.3. Interfaces for libncurses 1049 2.4. Data Definitions for libncurses 1050 2.5. Interfaces for libutil 1051 1052 A. Alphabetical Listing of Interfaces 1053 1054 A.1. libgcc_s 1055 1056 List of Tables 1057 1-1. libc Definition 1058 1-2. libc - RPC Function Interfaces 1059 1-3. libc - System Calls Function Interfaces 1060 1-4. libc - Standard I/O Function Interfaces 1061 1-5. libc - Standard I/O Data Interfaces 1062 1-6. libc - Signal Handling Function Interfaces 1063 1-7. libc - Signal Handling Data Interfaces 1064 1-8. libc - Localization Functions Function Interfaces 1065 1-9. libc - Localization Functions Data Interfaces 1066 1-10. libc - Socket Interface Function Interfaces 1067 1-11. libc - Wide Characters Function Interfaces 1068 1-12. libc - String Functions Function Interfaces 1069 1-13. libc - IPC Functions Function Interfaces 1070 1-14. libc - Regular Expressions Function Interfaces 1071 1-15. libc - Character Type Functions Function Interfaces 1072 1-16. libc - Time Manipulation Function Interfaces 1073 1-17. libc - Time Manipulation Data Interfaces 1074 1-18. libc - Terminal Interface Functions Function Interfaces 1075 1-19. libc - System Database Interface Function Interfaces 1076 1-20. libc - Language Support Function Interfaces 1077 1-21. libc - Large File Support Function Interfaces 1078 1-22. libc - Standard Library Function Interfaces 1079 1-23. libc - Standard Library Data Interfaces 1080 1-24. libm Definition 1081 1-25. libm - Math Function Interfaces 1082 1-26. libm - Math Data Interfaces 1083 1-27. libpthread Definition 1084 1-28. libpthread - Realtime Threads Function Interfaces 1085 1-29. libpthread - Posix Threads Function Interfaces 1086 1-30. libgcc_s Definition 1087 1-31. libgcc_s - Unwind Library Function Interfaces 1088 1-32. libdl Definition 1089 1-33. libdl - Dynamic Loader Function Interfaces 1090 1-34. libcrypt Definition 1091 1-35. libcrypt - Encryption Function Interfaces 1092 2-1. libz Definition 1093 2-2. libncurses Definition 1094 2-3. libutil Definition 1095 2-4. libutil - Utility Functions Function Interfaces 1096 A-1. libgcc_s Function Interfaces 1097 1098 I. Base Libraries 1099 1100 Table of Contents 1101 1. Libraries 1102 _________________________________________________________ 1103 1104 Chapter 1. Libraries 1105 1106 An LSB-conforming implementation shall support base libraries 1107 which provide interfaces for accessing the operating system, 1108 processor and other hardware in the system. 1109 1110 Only those interfaces that are unique to the PowerPC 32 1111 platform are defined here. This section should be used in 1112 conjunction with the corresponding section in the Linux 1113 Standard Base Specification. 1114 _________________________________________________________ 1115 1116 1.1. Program Interpreter/Dynamic Linker 1117 1118 The LSB specifies the Program Interpreter to be 1119 /lib/ld-lsb-s390.so.3. 1120 _________________________________________________________ 1121 1122 1.2. Interfaces for libc 1123 1124 Table 1-1 defines the library name and shared object name for 1125 the libc library 1126 1127 Table 1-1. libc Definition 1128 Library: libc 1129 SONAME: libc.so.6 1130 1131 The behavior of the interfaces in this library is specified by 1132 the following specifications: 1133 1134 Large File Support 1135 this specification 1136 SUSv2 1137 ISO POSIX (2003) 1138 SVID Issue 3 1139 SVID Issue 4 1140 _________________________________________________________ 1141 1142 1.2.1. RPC 1143 _________________________________________________________ 1144 1145 1.2.1.1. Interfaces for RPC 1146 1147 An LSB conforming implementation shall provide the 1148 architecture specific functions for RPC specified in Table 1149 1-2, with the full mandatory functionality as described in the 1150 referenced underlying specification. 1151 1152 Table 1-2. libc - RPC Function Interfaces 1153 authnone_create(GLIBC_2.0) [1] svc_getreqset(GLIBC_2.0) [2] 1154 svcudp_create(GLIBC_2.0) [3] xdr_int(GLIBC_2.0) [2] 1155 xdr_u_long(GLIBC_2.0) [2] 1156 clnt_create(GLIBC_2.0) [1] svc_register(GLIBC_2.0) [3] 1157 xdr_accepted_reply(GLIBC_2.0) [2] xdr_long(GLIBC_2.0) [2] 1158 xdr_u_short(GLIBC_2.0) [2] 1159 clnt_pcreateerror(GLIBC_2.0) [1] svc_run(GLIBC_2.0) [3] 1160 xdr_array(GLIBC_2.0) [2] xdr_opaque(GLIBC_2.0) [2] 1161 xdr_union(GLIBC_2.0) [2] 1162 clnt_perrno(GLIBC_2.0) [1] svc_sendreply(GLIBC_2.0) [3] 1163 xdr_bool(GLIBC_2.0) [2] xdr_opaque_auth(GLIBC_2.0) [2] 1164 xdr_vector(GLIBC_2.0) [2] 1165 clnt_perror(GLIBC_2.0) [1] svcerr_auth(GLIBC_2.0) [2] 1166 xdr_bytes(GLIBC_2.0) [2] xdr_pointer(GLIBC_2.0) [2] 1167 xdr_void(GLIBC_2.0) [2] 1168 clnt_spcreateerror(GLIBC_2.0) [1] svcerr_decode(GLIBC_2.0) [2] 1169 xdr_callhdr(GLIBC_2.0) [2] xdr_reference(GLIBC_2.0) [2] 1170 xdr_wrapstring(GLIBC_2.0) [2] 1171 clnt_sperrno(GLIBC_2.0) [1] svcerr_noproc(GLIBC_2.0) [2] 1172 xdr_callmsg(GLIBC_2.0) [2] xdr_rejected_reply(GLIBC_2.0) [2] 1173 xdrmem_create(GLIBC_2.0) [2] 1174 clnt_sperror(GLIBC_2.0) [1] svcerr_noprog(GLIBC_2.0) [2] 1175 xdr_char(GLIBC_2.0) [2] xdr_replymsg(GLIBC_2.0) [2] 1176 xdrrec_create(GLIBC_2.0) [2] 1177 key_decryptsession(GLIBC_2.1) [2] svcerr_progvers(GLIBC_2.0) 1178 [2] xdr_double(GLIBC_2.0) [2] xdr_short(GLIBC_2.0) [2] 1179 xdrrec_eof(GLIBC_2.0) [2] 1180 pmap_getport(GLIBC_2.0) [3] svcerr_systemerr(GLIBC_2.0) [2] 1181 xdr_enum(GLIBC_2.0) [2] xdr_string(GLIBC_2.0) [2] 1182 pmap_set(GLIBC_2.0) [3] svcerr_weakauth(GLIBC_2.0) [2] 1183 xdr_float(GLIBC_2.0) [2] xdr_u_char(GLIBC_2.0) [2] 1184 pmap_unset(GLIBC_2.0) [3] svctcp_create(GLIBC_2.0) [3] 1185 xdr_free(GLIBC_2.0) [2] xdr_u_int(GLIBC_2.0) [3] 1186 1187 Referenced Specification(s) 1188 1189 [1]. SVID Issue 4 1190 1191 [2]. SVID Issue 3 1192 1193 [3]. this specification 1194 _________________________________________________________ 1195 1196 1.2.2. System Calls 1197 _________________________________________________________ 1198 1199 1.2.2.1. Interfaces for System Calls 1200 1201 An LSB conforming implementation shall provide the 1202 architecture specific functions for System Calls specified in 1203 Table 1-3, with the full mandatory functionality as described 1204 in the referenced underlying specification. 1205 1206 Table 1-3. libc - System Calls Function Interfaces 1207 __fxstat(GLIBC_2.0) [1] fchmod(GLIBC_2.0) [2] getwd(GLIBC_2.0) 1208 [2] read(GLIBC_2.0) [2] setrlimit(GLIBC_2.2) [2] 1209 __getpgid(GLIBC_2.0) [1] fchown(GLIBC_2.0) [2] 1210 initgroups(GLIBC_2.0) [1] readdir(GLIBC_2.0) [2] 1211 setrlimit64(GLIBC_2.1) [3] 1212 __lxstat(GLIBC_2.0) [1] fcntl(GLIBC_2.0) [1] ioctl(GLIBC_2.0) 1213 [1] readdir_r(GLIBC_2.0) [2] setsid(GLIBC_2.0) [2] 1214 __xmknod(GLIBC_2.0) [1] fdatasync(GLIBC_2.0) [2] 1215 kill(GLIBC_2.0) [1] readlink(GLIBC_2.0) [2] setuid(GLIBC_2.0) 1216 [2] 1217 __xstat(GLIBC_2.0) [1] flock(GLIBC_2.0) [1] killpg(GLIBC_2.0) 1218 [2] readv(GLIBC_2.0) [2] sleep(GLIBC_2.0) [2] 1219 access(GLIBC_2.0) [2] fork(GLIBC_2.0) [2] lchown(GLIBC_2.0) 1220 [2] rename(GLIBC_2.0) [2] statvfs(GLIBC_2.1) [2] 1221 acct(GLIBC_2.0) [1] fstatvfs(GLIBC_2.1) [2] link(GLIBC_2.0) 1222 [1] rmdir(GLIBC_2.0) [2] stime(GLIBC_2.0) [1] 1223 alarm(GLIBC_2.0) [2] fsync(GLIBC_2.0) [2] lockf(GLIBC_2.0) [2] 1224 sbrk(GLIBC_2.0) [4] symlink(GLIBC_2.0) [2] 1225 brk(GLIBC_2.0) [4] ftime(GLIBC_2.0) [2] lseek(GLIBC_2.0) [2] 1226 sched_get_priority_max(GLIBC_2.0) [2] sync(GLIBC_2.0) [2] 1227 chdir(GLIBC_2.0) [2] ftruncate(GLIBC_2.0) [2] mkdir(GLIBC_2.0) 1228 [2] sched_get_priority_min(GLIBC_2.0) [2] sysconf(GLIBC_2.0) 1229 [2] 1230 chmod(GLIBC_2.0) [2] getcontext(GLIBC_2.1) [2] 1231 mkfifo(GLIBC_2.0) [2] sched_getparam(GLIBC_2.0) [2] 1232 time(GLIBC_2.0) [2] 1233 chown(GLIBC_2.1) [2] getegid(GLIBC_2.0) [2] mlock(GLIBC_2.0) 1234 [2] sched_getscheduler(GLIBC_2.0) [2] times(GLIBC_2.0) [2] 1235 chroot(GLIBC_2.0) [4] geteuid(GLIBC_2.0) [2] 1236 mlockall(GLIBC_2.0) [2] sched_rr_get_interval(GLIBC_2.0) [2] 1237 truncate(GLIBC_2.0) [2] 1238 clock(GLIBC_2.0) [2] getgid(GLIBC_2.0) [2] mmap(GLIBC_2.0) [2] 1239 sched_setparam(GLIBC_2.0) [2] ulimit(GLIBC_2.0) [2] 1240 close(GLIBC_2.0) [2] getgroups(GLIBC_2.0) [2] 1241 mprotect(GLIBC_2.0) [2] sched_setscheduler(GLIBC_2.0) [2] 1242 umask(GLIBC_2.0) [2] 1243 closedir(GLIBC_2.0) [2] getitimer(GLIBC_2.0) [2] 1244 msync(GLIBC_2.0) [2] sched_yield(GLIBC_2.0) [2] 1245 uname(GLIBC_2.0) [2] 1246 creat(GLIBC_2.0) [2] getloadavg(GLIBC_2.2) [1] 1247 munlock(GLIBC_2.0) [2] select(GLIBC_2.0) [2] unlink(GLIBC_2.0) 1248 [1] 1249 dup(GLIBC_2.0) [2] getpagesize(GLIBC_2.0) [4] 1250 munlockall(GLIBC_2.0) [2] setcontext(GLIBC_2.0) [2] 1251 utime(GLIBC_2.0) [2] 1252 dup2(GLIBC_2.0) [2] getpgid(GLIBC_2.0) [2] munmap(GLIBC_2.0) 1253 [2] setegid(GLIBC_2.0) [2] utimes(GLIBC_2.0) [2] 1254 execl(GLIBC_2.0) [2] getpgrp(GLIBC_2.0) [2] 1255 nanosleep(GLIBC_2.0) [2] seteuid(GLIBC_2.0) [2] 1256 vfork(GLIBC_2.0) [2] 1257 execle(GLIBC_2.0) [2] getpid(GLIBC_2.0) [2] nice(GLIBC_2.0) 1258 [2] setgid(GLIBC_2.0) [2] wait(GLIBC_2.0) [2] 1259 execlp(GLIBC_2.0) [2] getppid(GLIBC_2.0) [2] open(GLIBC_2.0) 1260 [2] setitimer(GLIBC_2.0) [2] wait4(GLIBC_2.0) [1] 1261 execv(GLIBC_2.0) [2] getpriority(GLIBC_2.0) [2] 1262 opendir(GLIBC_2.0) [2] setpgid(GLIBC_2.0) [2] 1263 waitpid(GLIBC_2.0) [1] 1264 execve(GLIBC_2.0) [2] getrlimit(GLIBC_2.2) [2] 1265 pathconf(GLIBC_2.0) [2] setpgrp(GLIBC_2.0) [2] 1266 write(GLIBC_2.0) [2] 1267 execvp(GLIBC_2.0) [2] getrusage(GLIBC_2.0) [2] 1268 pause(GLIBC_2.0) [2] setpriority(GLIBC_2.0) [2] 1269 writev(GLIBC_2.0) [2] 1270 exit(GLIBC_2.0) [2] getsid(GLIBC_2.0) [2] pipe(GLIBC_2.0) [2] 1271 setregid(GLIBC_2.0) [2] 1272 fchdir(GLIBC_2.0) [2] getuid(GLIBC_2.0) [2] poll(GLIBC_2.0) 1273 [2] setreuid(GLIBC_2.0) [2] 1274 1275 Referenced Specification(s) 1276 1277 [1]. this specification 1278 1279 [2]. ISO POSIX (2003) 1280 1281 [3]. Large File Support 1282 1283 [4]. SUSv2 1284 _________________________________________________________ 1285 1286 1.2.3. Standard I/O 1287 _________________________________________________________ 1288 1289 1.2.3.1. Interfaces for Standard I/O 1290 1291 An LSB conforming implementation shall provide the 1292 architecture specific functions for Standard I/O specified in 1293 Table 1-4, with the full mandatory functionality as described 1294 in the referenced underlying specification. 1295 1296 Table 1-4. libc - Standard I/O Function Interfaces 1297 _IO_feof(GLIBC_2.0) [1] fgetpos(GLIBC_2.2) [2] 1298 fsetpos(GLIBC_2.2) [2] putchar(GLIBC_2.0) [2] 1299 sscanf(GLIBC_2.0) [1] 1300 _IO_getc(GLIBC_2.0) [1] fgets(GLIBC_2.0) [2] ftell(GLIBC_2.0) 1301 [2] putchar_unlocked(GLIBC_2.0) [2] telldir(GLIBC_2.0) [2] 1302 _IO_putc(GLIBC_2.0) [1] fgetwc_unlocked(GLIBC_2.2) [1] 1303 ftello(GLIBC_2.1) [2] puts(GLIBC_2.0) [2] tempnam(GLIBC_2.0) 1304 [2] 1305 _IO_puts(GLIBC_2.0) [1] fileno(GLIBC_2.0) [2] 1306 fwrite(GLIBC_2.0) [2] putw(GLIBC_2.0) [3] ungetc(GLIBC_2.0) 1307 [2] 1308 asprintf(GLIBC_2.0) [1] flockfile(GLIBC_2.0) [2] 1309 getc(GLIBC_2.0) [2] remove(GLIBC_2.0) [2] vasprintf(GLIBC_2.0) 1310 [1] 1311 clearerr(GLIBC_2.0) [2] fopen(GLIBC_2.1) [2] 1312 getc_unlocked(GLIBC_2.0) [2] rewind(GLIBC_2.0) [2] 1313 vdprintf(GLIBC_2.0) [1] 1314 ctermid(GLIBC_2.0) [2] fprintf(GLIBC_2.0) [2] 1315 getchar(GLIBC_2.0) [2] rewinddir(GLIBC_2.0) [2] 1316 vfprintf(GLIBC_2.0) [2] 1317 fclose(GLIBC_2.1) [2] fputc(GLIBC_2.0) [2] 1318 getchar_unlocked(GLIBC_2.0) [2] scanf(GLIBC_2.0) [1] 1319 vprintf(GLIBC_2.0) [2] 1320 fdopen(GLIBC_2.1) [2] fputs(GLIBC_2.0) [2] getw(GLIBC_2.0) [3] 1321 seekdir(GLIBC_2.0) [2] vsnprintf(GLIBC_2.0) [2] 1322 feof(GLIBC_2.0) [2] fread(GLIBC_2.0) [2] pclose(GLIBC_2.1) [2] 1323 setbuf(GLIBC_2.0) [2] vsprintf(GLIBC_2.0) [2] 1324 ferror(GLIBC_2.0) [2] freopen(GLIBC_2.0) [2] popen(GLIBC_2.1) 1325 [2] setbuffer(GLIBC_2.0) [1] 1326 fflush(GLIBC_2.0) [2] fscanf(GLIBC_2.0) [1] printf(GLIBC_2.0) 1327 [2] setvbuf(GLIBC_2.0) [2] 1328 fflush_unlocked(GLIBC_2.0) [1] fseek(GLIBC_2.0) [2] 1329 putc(GLIBC_2.0) [2] snprintf(GLIBC_2.0) [2] 1330 fgetc(GLIBC_2.0) [2] fseeko(GLIBC_2.1) [2] 1331 putc_unlocked(GLIBC_2.0) [2] sprintf(GLIBC_2.0) [2] 1332 1333 Referenced Specification(s) 1334 1335 [1]. this specification 1336 1337 [2]. ISO POSIX (2003) 1338 1339 [3]. SUSv2 1340 1341 An LSB conforming implementation shall provide the 1342 architecture specific data interfaces for Standard I/O 1343 specified in Table 1-5, with the full mandatory functionality 1344 as described in the referenced underlying specification. 1345 1346 Table 1-5. libc - Standard I/O Data Interfaces 1347 stderr(GLIBC_2.0) [1] stdin(GLIBC_2.0) [1] stdout(GLIBC_2.0) 1348 [1] 1349 1350 Referenced Specification(s) 1351 1352 [1]. ISO POSIX (2003) 1353 _________________________________________________________ 1354 1355 1.2.4. Signal Handling 1356 _________________________________________________________ 1357 1358 1.2.4.1. Interfaces for Signal Handling 1359 1360 An LSB conforming implementation shall provide the 1361 architecture specific functions for Signal Handling specified 1362 in Table 1-6, with the full mandatory functionality as 1363 described in the referenced underlying specification. 1364 1365 Table 1-6. libc - Signal Handling Function Interfaces 1366 __libc_current_sigrtmax(GLIBC_2.1) [1] sigaction(GLIBC_2.0) 1367 [2] sighold(GLIBC_2.1) [2] sigorset(GLIBC_2.0) [1] 1368 sigset(GLIBC_2.1) [2] 1369 __libc_current_sigrtmin(GLIBC_2.1) [1] sigaddset(GLIBC_2.0) 1370 [2] sigignore(GLIBC_2.1) [2] sigpause(GLIBC_2.0) [2] 1371 sigsuspend(GLIBC_2.0) [2] 1372 __sigsetjmp(GLIBC_2.0) [1] sigaltstack(GLIBC_2.0) [2] 1373 siginterrupt(GLIBC_2.0) [2] sigpending(GLIBC_2.0) [2] 1374 sigtimedwait(GLIBC_2.1) [2] 1375 __sysv_signal(GLIBC_2.0) [1] sigandset(GLIBC_2.0) [1] 1376 sigisemptyset(GLIBC_2.0) [1] sigprocmask(GLIBC_2.0) [2] 1377 sigwait(GLIBC_2.0) [2] 1378 bsd_signal(GLIBC_2.0) [2] sigdelset(GLIBC_2.0) [2] 1379 sigismember(GLIBC_2.0) [2] sigqueue(GLIBC_2.1) [2] 1380 sigwaitinfo(GLIBC_2.1) [2] 1381 psignal(GLIBC_2.0) [1] sigemptyset(GLIBC_2.0) [2] 1382 siglongjmp(GLIBC_2.0) [2] sigrelse(GLIBC_2.1) [2] 1383 raise(GLIBC_2.0) [2] sigfillset(GLIBC_2.0) [2] 1384 signal(GLIBC_2.0) [2] sigreturn(GLIBC_2.0) [1] 1385 1386 Referenced Specification(s) 1387 1388 [1]. this specification 1389 1390 [2]. ISO POSIX (2003) 1391 1392 An LSB conforming implementation shall provide the 1393 architecture specific data interfaces for Signal Handling 1394 specified in Table 1-7, with the full mandatory functionality 1395 as described in the referenced underlying specification. 1396 1397 Table 1-7. libc - Signal Handling Data Interfaces 1398 _sys_siglist(GLIBC_2.1) [1] 1399 1400 Referenced Specification(s) 1401 1402 [1]. this specification 1403 _________________________________________________________ 1404 1405 1.2.5. Localization Functions 1406 _________________________________________________________ 1407 1408 1.2.5.1. Interfaces for Localization Functions 1409 1410 An LSB conforming implementation shall provide the 1411 architecture specific functions for Localization Functions 1412 specified in Table 1-8, with the full mandatory functionality 1413 as described in the referenced underlying specification. 1414 1415 Table 1-8. libc - Localization Functions Function Interfaces 1416 bind_textdomain_codeset(GLIBC_2.2) [1] catopen(GLIBC_2.0) [2] 1417 dngettext(GLIBC_2.2) [1] iconv_open(GLIBC_2.1) [2] 1418 setlocale(GLIBC_2.0) [2] 1419 bindtextdomain(GLIBC_2.0) [1] dcgettext(GLIBC_2.0) [1] 1420 gettext(GLIBC_2.0) [1] localeconv(GLIBC_2.2) [2] 1421 textdomain(GLIBC_2.0) [1] 1422 catclose(GLIBC_2.0) [2] dcngettext(GLIBC_2.2) [1] 1423 iconv(GLIBC_2.1) [2] ngettext(GLIBC_2.2) [1] 1424 catgets(GLIBC_2.0) [2] dgettext(GLIBC_2.0) [1] 1425 iconv_close(GLIBC_2.1) [2] nl_langinfo(GLIBC_2.0) [2] 1426 1427 Referenced Specification(s) 1428 1429 [1]. this specification 1430 1431 [2]. ISO POSIX (2003) 1432 1433 An LSB conforming implementation shall provide the 1434 architecture specific data interfaces for Localization 1435 Functions specified in Table 1-9, with the full mandatory 1436 functionality as described in the referenced underlying 1437 specification. 1438 1439 Table 1-9. libc - Localization Functions Data Interfaces 1440 _nl_msg_cat_cntr(GLIBC_2.0) [1] 1441 1442 Referenced Specification(s) 1443 1444 [1]. this specification 1445 _________________________________________________________ 1446 1447 1.2.6. Socket Interface 1448 _________________________________________________________ 1449 1450 1.2.6.1. Interfaces for Socket Interface 1451 1452 An LSB conforming implementation shall provide the 1453 architecture specific functions for Socket Interface specified 1454 in Table 1-10, with the full mandatory functionality as 1455 described in the referenced underlying specification. 1456 1457 Table 1-10. libc - Socket Interface Function Interfaces 1458 __h_errno_location(GLIBC_2.0) [1] gethostname(GLIBC_2.0) [2] 1459 if_nameindex(GLIBC_2.1) [2] send(GLIBC_2.0) [2] 1460 socket(GLIBC_2.0) [2] 1461 accept(GLIBC_2.0) [2] getpeername(GLIBC_2.0) [2] 1462 if_nametoindex(GLIBC_2.1) [2] sendmsg(GLIBC_2.0) [2] 1463 socketpair(GLIBC_2.0) [2] 1464 bind(GLIBC_2.0) [2] getsockname(GLIBC_2.0) [2] 1465 listen(GLIBC_2.0) [2] sendto(GLIBC_2.0) [2] 1466 bindresvport(GLIBC_2.0) [1] getsockopt(GLIBC_2.0) [1] 1467 recv(GLIBC_2.0) [2] setsockopt(GLIBC_2.0) [1] 1468 connect(GLIBC_2.0) [2] if_freenameindex(GLIBC_2.1) [2] 1469 recvfrom(GLIBC_2.0) [2] shutdown(GLIBC_2.0) [2] 1470 gethostid(GLIBC_2.0) [2] if_indextoname(GLIBC_2.1) [2] 1471 recvmsg(GLIBC_2.0) [2] sockatmark(GLIBC_2.2.4) [2] 1472 1473 Referenced Specification(s) 1474 1475 [1]. this specification 1476 1477 [2]. ISO POSIX (2003) 1478 _________________________________________________________ 1479 1480 1.2.7. Wide Characters 1481 _________________________________________________________ 1482 1483 1.2.7.1. Interfaces for Wide Characters 1484 1485 An LSB conforming implementation shall provide the 1486 architecture specific functions for Wide Characters specified 1487 in Table 1-11, with the full mandatory functionality as 1488 described in the referenced underlying specification. 1489 1490 Table 1-11. libc - Wide Characters Function Interfaces 1491 __wcstod_internal(GLIBC_2.0) [1] mbsinit(GLIBC_2.0) [2] 1492 vwscanf(GLIBC_2.2) [1] wcsnlen(GLIBC_2.1) [1] 1493 wcstoumax(GLIBC_2.1) [2] 1494 __wcstof_internal(GLIBC_2.0) [1] mbsnrtowcs(GLIBC_2.0) [1] 1495 wcpcpy(GLIBC_2.0) [1] wcsnrtombs(GLIBC_2.0) [1] 1496 wcstouq(GLIBC_2.0) [1] 1497 __wcstol_internal(GLIBC_2.0) [1] mbsrtowcs(GLIBC_2.0) [2] 1498 wcpncpy(GLIBC_2.0) [1] wcspbrk(GLIBC_2.0) [2] 1499 wcswcs(GLIBC_2.1) [2] 1500 __wcstold_internal(GLIBC_2.0) [1] mbstowcs(GLIBC_2.0) [2] 1501 wcrtomb(GLIBC_2.0) [2] wcsrchr(GLIBC_2.0) [2] 1502 wcswidth(GLIBC_2.0) [2] 1503 __wcstoul_internal(GLIBC_2.0) [1] mbtowc(GLIBC_2.0) [2] 1504 wcscasecmp(GLIBC_2.1) [1] wcsrtombs(GLIBC_2.0) [2] 1505 wcsxfrm(GLIBC_2.0) [2] 1506 btowc(GLIBC_2.0) [2] putwc(GLIBC_2.2) [2] wcscat(GLIBC_2.0) 1507 [2] wcsspn(GLIBC_2.0) [2] wctob(GLIBC_2.0) [2] 1508 fgetwc(GLIBC_2.2) [2] putwchar(GLIBC_2.2) [2] 1509 wcschr(GLIBC_2.0) [2] wcsstr(GLIBC_2.0) [2] wctomb(GLIBC_2.0) 1510 [2] 1511 fgetws(GLIBC_2.2) [2] swprintf(GLIBC_2.2) [2] 1512 wcscmp(GLIBC_2.0) [2] wcstod(GLIBC_2.0) [2] wctrans(GLIBC_2.0) 1513 [2] 1514 fputwc(GLIBC_2.2) [2] swscanf(GLIBC_2.2) [1] 1515 wcscoll(GLIBC_2.0) [2] wcstof(GLIBC_2.0) [2] wctype(GLIBC_2.0) 1516 [2] 1517 fputws(GLIBC_2.2) [2] towctrans(GLIBC_2.0) [2] 1518 wcscpy(GLIBC_2.0) [2] wcstoimax(GLIBC_2.1) [2] 1519 wcwidth(GLIBC_2.0) [2] 1520 fwide(GLIBC_2.2) [2] towlower(GLIBC_2.0) [2] 1521 wcscspn(GLIBC_2.0) [2] wcstok(GLIBC_2.0) [2] 1522 wmemchr(GLIBC_2.0) [2] 1523 fwprintf(GLIBC_2.2) [2] towupper(GLIBC_2.0) [2] 1524 wcsdup(GLIBC_2.0) [1] wcstol(GLIBC_2.0) [2] wmemcmp(GLIBC_2.0) 1525 [2] 1526 fwscanf(GLIBC_2.2) [1] ungetwc(GLIBC_2.2) [2] 1527 wcsftime(GLIBC_2.2) [2] wcstold(GLIBC_2.0) [2] 1528 wmemcpy(GLIBC_2.0) [2] 1529 getwc(GLIBC_2.2) [2] vfwprintf(GLIBC_2.2) [2] 1530 wcslen(GLIBC_2.0) [2] wcstoll(GLIBC_2.1) [2] 1531 wmemmove(GLIBC_2.0) [2] 1532 getwchar(GLIBC_2.2) [2] vfwscanf(GLIBC_2.2) [1] 1533 wcsncasecmp(GLIBC_2.1) [1] wcstombs(GLIBC_2.0) [2] 1534 wmemset(GLIBC_2.0) [2] 1535 mblen(GLIBC_2.0) [2] vswprintf(GLIBC_2.2) [2] 1536 wcsncat(GLIBC_2.0) [2] wcstoq(GLIBC_2.0) [1] 1537 wprintf(GLIBC_2.2) [2] 1538 mbrlen(GLIBC_2.0) [2] vswscanf(GLIBC_2.2) [1] 1539 wcsncmp(GLIBC_2.0) [2] wcstoul(GLIBC_2.0) [2] 1540 wscanf(GLIBC_2.2) [1] 1541 mbrtowc(GLIBC_2.0) [2] vwprintf(GLIBC_2.2) [2] 1542 wcsncpy(GLIBC_2.0) [2] wcstoull(GLIBC_2.1) [2] 1543 1544 Referenced Specification(s) 1545 1546 [1]. this specification 1547 1548 [2]. ISO POSIX (2003) 1549 _________________________________________________________ 1550 1551 1.2.8. String Functions 1552 _________________________________________________________ 1553 1554 1.2.8.1. Interfaces for String Functions 1555 1556 An LSB conforming implementation shall provide the 1557 architecture specific functions for String Functions specified 1558 in Table 1-12, with the full mandatory functionality as 1559 described in the referenced underlying specification. 1560 1561 Table 1-12. libc - String Functions Function Interfaces 1562 __mempcpy(GLIBC_2.0) [1] bzero(GLIBC_2.0) [2] 1563 strcasestr(GLIBC_2.1) [1] strncat(GLIBC_2.0) [2] 1564 strtok(GLIBC_2.0) [2] 1565 __rawmemchr(GLIBC_2.1) [1] ffs(GLIBC_2.0) [2] 1566 strcat(GLIBC_2.0) [2] strncmp(GLIBC_2.0) [2] 1567 strtok_r(GLIBC_2.0) [2] 1568 __stpcpy(GLIBC_2.0) [1] index(GLIBC_2.0) [2] strchr(GLIBC_2.0) 1569 [2] strncpy(GLIBC_2.0) [2] strtold(GLIBC_2.0) [2] 1570 __strdup(GLIBC_2.0) [1] memccpy(GLIBC_2.0) [2] 1571 strcmp(GLIBC_2.0) [2] strndup(GLIBC_2.0) [1] 1572 strtoll(GLIBC_2.0) [2] 1573 __strtod_internal(GLIBC_2.0) [1] memchr(GLIBC_2.0) [2] 1574 strcoll(GLIBC_2.0) [2] strnlen(GLIBC_2.0) [1] 1575 strtoq(GLIBC_2.0) [1] 1576 __strtof_internal(GLIBC_2.0) [1] memcmp(GLIBC_2.0) [2] 1577 strcpy(GLIBC_2.0) [2] strpbrk(GLIBC_2.0) [2] 1578 strtoull(GLIBC_2.0) [2] 1579 __strtok_r(GLIBC_2.0) [1] memcpy(GLIBC_2.0) [2] 1580 strcspn(GLIBC_2.0) [2] strptime(GLIBC_2.0) [1] 1581 strtoumax(GLIBC_2.1) [2] 1582 __strtol_internal(GLIBC_2.0) [1] memmove(GLIBC_2.0) [2] 1583 strdup(GLIBC_2.0) [2] strrchr(GLIBC_2.0) [2] 1584 strtouq(GLIBC_2.0) [1] 1585 __strtold_internal(GLIBC_2.0) [1] memrchr(GLIBC_2.2) [1] 1586 strerror(GLIBC_2.0) [2] strsep(GLIBC_2.0) [1] 1587 strxfrm(GLIBC_2.0) [2] 1588 __strtoll_internal(GLIBC_2.0) [1] memset(GLIBC_2.0) [2] 1589 strerror_r(GLIBC_2.0) [1] strsignal(GLIBC_2.0) [1] 1590 swab(GLIBC_2.0) [2] 1591 __strtoul_internal(GLIBC_2.0) [1] rindex(GLIBC_2.0) [2] 1592 strfmon(GLIBC_2.0) [2] strspn(GLIBC_2.0) [2] 1593 __strtoull_internal(GLIBC_2.0) [1] stpcpy(GLIBC_2.0) [1] 1594 strftime(GLIBC_2.0) [2] strstr(GLIBC_2.0) [2] 1595 bcmp(GLIBC_2.0) [2] stpncpy(GLIBC_2.0) [1] strlen(GLIBC_2.0) 1596 [2] strtof(GLIBC_2.0) [2] 1597 bcopy(GLIBC_2.0) [2] strcasecmp(GLIBC_2.0) [2] 1598 strncasecmp(GLIBC_2.0) [2] strtoimax(GLIBC_2.1) [2] 1599 1600 Referenced Specification(s) 1601 1602 [1]. this specification 1603 1604 [2]. ISO POSIX (2003) 1605 _________________________________________________________ 1606 1607 1.2.9. IPC Functions 1608 _________________________________________________________ 1609 1610 1.2.9.1. Interfaces for IPC Functions 1611 1612 An LSB conforming implementation shall provide the 1613 architecture specific functions for IPC Functions specified in 1614 Table 1-13, with the full mandatory functionality as described 1615 in the referenced underlying specification. 1616 1617 Table 1-13. libc - IPC Functions Function Interfaces 1618 ftok(GLIBC_2.0) [1] msgrcv(GLIBC_2.0) [1] semget(GLIBC_2.0) 1619 [1] shmctl(GLIBC_2.2) [1] 1620 msgctl(GLIBC_2.2) [1] msgsnd(GLIBC_2.0) [1] semop(GLIBC_2.0) 1621 [1] shmdt(GLIBC_2.0) [1] 1622 msgget(GLIBC_2.0) [1] semctl(GLIBC_2.2) [1] shmat(GLIBC_2.0) 1623 [1] shmget(GLIBC_2.0) [1] 1624 1625 Referenced Specification(s) 1626 1627 [1]. ISO POSIX (2003) 1628 _________________________________________________________ 1629 1630 1.2.10. Regular Expressions 1631 _________________________________________________________ 1632 1633 1.2.10.1. Interfaces for Regular Expressions 1634 1635 An LSB conforming implementation shall provide the 1636 architecture specific functions for Regular Expressions 1637 specified in Table 1-14, with the full mandatory functionality 1638 as described in the referenced underlying specification. 1639 1640 Table 1-14. libc - Regular Expressions Function Interfaces 1641 regcomp(GLIBC_2.0) [1] regerror(GLIBC_2.0) [1] 1642 regexec(GLIBC_2.0) [2] regfree(GLIBC_2.0) [1] 1643 1644 Referenced Specification(s) 1645 1646 [1]. ISO POSIX (2003) 1647 1648 [2]. this specification 1649 _________________________________________________________ 1650 1651 1.2.11. Character Type Functions 1652 _________________________________________________________ 1653 1654 1.2.11.1. Interfaces for Character Type Functions 1655 1656 An LSB conforming implementation shall provide the 1657 architecture specific functions for Character Type Functions 1658 specified in Table 1-15, with the full mandatory functionality 1659 as described in the referenced underlying specification. 1660 1661 Table 1-15. libc - Character Type Functions Function 1662 Interfaces 1663 __ctype_get_mb_cur_max(GLIBC_2.0) [1] isdigit(GLIBC_2.0) [2] 1664 iswalnum(GLIBC_2.0) [2] iswlower(GLIBC_2.0) [2] 1665 toascii(GLIBC_2.0) [2] 1666 _tolower(GLIBC_2.0) [2] isgraph(GLIBC_2.0) [2] 1667 iswalpha(GLIBC_2.0) [2] iswprint(GLIBC_2.0) [2] 1668 tolower(GLIBC_2.0) [2] 1669 _toupper(GLIBC_2.0) [2] islower(GLIBC_2.0) [2] 1670 iswblank(GLIBC_2.1) [2] iswpunct(GLIBC_2.0) [2] 1671 toupper(GLIBC_2.0) [2] 1672 isalnum(GLIBC_2.0) [2] isprint(GLIBC_2.0) [2] 1673 iswcntrl(GLIBC_2.0) [2] iswspace(GLIBC_2.0) [2] 1674 isalpha(GLIBC_2.0) [2] ispunct(GLIBC_2.0) [2] 1675 iswctype(GLIBC_2.0) [2] iswupper(GLIBC_2.0) [2] 1676 isascii(GLIBC_2.0) [2] isspace(GLIBC_2.0) [2] 1677 iswdigit(GLIBC_2.0) [2] iswxdigit(GLIBC_2.0) [2] 1678 iscntrl(GLIBC_2.0) [2] isupper(GLIBC_2.0) [2] 1679 iswgraph(GLIBC_2.0) [2] isxdigit(GLIBC_2.0) [2] 1680 1681 Referenced Specification(s) 1682 1683 [1]. this specification 1684 1685 [2]. ISO POSIX (2003) 1686 _________________________________________________________ 1687 1688 1.2.12. Time Manipulation 1689 _________________________________________________________ 1690 1691 1.2.12.1. Interfaces for Time Manipulation 1692 1693 An LSB conforming implementation shall provide the 1694 architecture specific functions for Time Manipulation 1695 specified in Table 1-16, with the full mandatory functionality 1696 as described in the referenced underlying specification. 1697 1698 Table 1-16. libc - Time Manipulation Function Interfaces 1699 adjtime(GLIBC_2.0) [1] ctime(GLIBC_2.0) [2] gmtime(GLIBC_2.0) 1700 [2] localtime_r(GLIBC_2.0) [2] ualarm(GLIBC_2.0) [2] 1701 asctime(GLIBC_2.0) [2] ctime_r(GLIBC_2.0) [2] 1702 gmtime_r(GLIBC_2.0) [2] mktime(GLIBC_2.0) [2] 1703 asctime_r(GLIBC_2.0) [2] difftime(GLIBC_2.0) [2] 1704 localtime(GLIBC_2.0) [2] tzset(GLIBC_2.0) [2] 1705 1706 Referenced Specification(s) 1707 1708 [1]. this specification 1709 1710 [2]. ISO POSIX (2003) 1711 1712 An LSB conforming implementation shall provide the 1713 architecture specific data interfaces for Time Manipulation 1714 specified in Table 1-17, with the full mandatory functionality 1715 as described in the referenced underlying specification. 1716 1717 Table 1-17. libc - Time Manipulation Data Interfaces 1718 __daylight(GLIBC_2.0) [1] __tzname(GLIBC_2.0) [1] 1719 timezone(GLIBC_2.0) [2] 1720 __timezone(GLIBC_2.0) [1] daylight(GLIBC_2.0) [2] 1721 tzname(GLIBC_2.0) [2] 1722 1723 Referenced Specification(s) 1724 1725 [1]. this specification 1726 1727 [2]. ISO POSIX (2003) 1728 _________________________________________________________ 1729 1730 1.2.13. Terminal Interface Functions 1731 _________________________________________________________ 1732 1733 1.2.13.1. Interfaces for Terminal Interface Functions 1734 1735 An LSB conforming implementation shall provide the 1736 architecture specific functions for Terminal Interface 1737 Functions specified in Table 1-18, with the full mandatory 1738 functionality as described in the referenced underlying 1739 specification. 1740 1741 Table 1-18. libc - Terminal Interface Functions Function 1742 Interfaces 1743 cfgetispeed(GLIBC_2.0) [1] cfsetispeed(GLIBC_2.0) [1] 1744 tcdrain(GLIBC_2.0) [1] tcgetattr(GLIBC_2.0) [1] 1745 tcsendbreak(GLIBC_2.0) [1] 1746 cfgetospeed(GLIBC_2.0) [1] cfsetospeed(GLIBC_2.0) [1] 1747 tcflow(GLIBC_2.0) [1] tcgetpgrp(GLIBC_2.0) [1] 1748 tcsetattr(GLIBC_2.0) [1] 1749 cfmakeraw(GLIBC_2.0) [2] cfsetspeed(GLIBC_2.0) [2] 1750 tcflush(GLIBC_2.0) [1] tcgetsid(GLIBC_2.1) [1] 1751 tcsetpgrp(GLIBC_2.0) [1] 1752 1753 Referenced Specification(s) 1754 1755 [1]. ISO POSIX (2003) 1756 1757 [2]. this specification 1758 _________________________________________________________ 1759 1760 1.2.14. System Database Interface 1761 _________________________________________________________ 1762 1763 1.2.14.1. Interfaces for System Database Interface 1764 1765 An LSB conforming implementation shall provide the 1766 architecture specific functions for System Database Interface 1767 specified in Table 1-19, with the full mandatory functionality 1768 as described in the referenced underlying specification. 1769 1770 Table 1-19. libc - System Database Interface Function 1771 Interfaces 1772 endgrent(GLIBC_2.0) [1] getgrgid_r(GLIBC_2.1.2) [1] 1773 getprotoent(GLIBC_2.0) [1] getservent(GLIBC_2.0) [1] 1774 setgroups(GLIBC_2.0) [2] 1775 endprotoent(GLIBC_2.0) [1] getgrnam(GLIBC_2.0) [1] 1776 getpwent(GLIBC_2.0) [1] getutent(GLIBC_2.0) [2] 1777 setprotoent(GLIBC_2.0) [1] 1778 endpwent(GLIBC_2.0) [1] getgrnam_r(GLIBC_2.0) [1] 1779 getpwnam(GLIBC_2.0) [1] getutent_r(GLIBC_2.0) [2] 1780 setpwent(GLIBC_2.0) [1] 1781 endservent(GLIBC_2.0) [1] getgrouplist(GLIBC_2.2.4) [2] 1782 getpwnam_r(GLIBC_2.1.2) [1] getutxent(GLIBC_2.1) [1] 1783 setservent(GLIBC_2.0) [1] 1784 endutent(GLIBC_2.0) [3] gethostbyaddr(GLIBC_2.0) [1] 1785 getpwuid(GLIBC_2.0) [1] getutxid(GLIBC_2.1) [1] 1786 setutent(GLIBC_2.0) [2] 1787 endutxent(GLIBC_2.1) [1] gethostbyname(GLIBC_2.0) [1] 1788 getpwuid_r(GLIBC_2.1.2) [1] getutxline(GLIBC_2.1) [1] 1789 setutxent(GLIBC_2.1) [1] 1790 getgrent(GLIBC_2.0) [1] getprotobyname(GLIBC_2.0) [1] 1791 getservbyname(GLIBC_2.0) [1] pututxline(GLIBC_2.1) [1] 1792 utmpname(GLIBC_2.0) [2] 1793 getgrgid(GLIBC_2.0) [1] getprotobynumber(GLIBC_2.0) [1] 1794 getservbyport(GLIBC_2.0) [1] setgrent(GLIBC_2.0) [1] 1795 1796 Referenced Specification(s) 1797 1798 [1]. ISO POSIX (2003) 1799 1800 [2]. this specification 1801 1802 [3]. SUSv2 1803 _________________________________________________________ 1804 1805 1.2.15. Language Support 1806 _________________________________________________________ 1807 1808 1.2.15.1. Interfaces for Language Support 1809 1810 An LSB conforming implementation shall provide the 1811 architecture specific functions for Language Support specified 1812 in Table 1-20, with the full mandatory functionality as 1813 described in the referenced underlying specification. 1814 1815 Table 1-20. libc - Language Support Function Interfaces 1816 __libc_start_main(GLIBC_2.0) [1] 1817 1818 Referenced Specification(s) 1819 1820 [1]. this specification 1821 _________________________________________________________ 1822 1823 1.2.16. Large File Support 1824 _________________________________________________________ 1825 1826 1.2.16.1. Interfaces for Large File Support 1827 1828 An LSB conforming implementation shall provide the 1829 architecture specific functions for Large File Support 1830 specified in Table 1-21, with the full mandatory functionality 1831 as described in the referenced underlying specification. 1832 1833 Table 1-21. libc - Large File Support Function Interfaces 1834 __fxstat64(GLIBC_2.2) [1] fopen64(GLIBC_2.1) [2] 1835 ftello64(GLIBC_2.1) [2] lseek64(GLIBC_2.1) [2] 1836 readdir64(GLIBC_2.2) [2] 1837 __lxstat64(GLIBC_2.2) [1] freopen64(GLIBC_2.1) [2] 1838 ftruncate64(GLIBC_2.1) [2] mkstemp64(GLIBC_2.2) [2] 1839 statvfs64(GLIBC_2.1) [2] 1840 __xstat64(GLIBC_2.2) [1] fseeko64(GLIBC_2.1) [2] 1841 ftw64(GLIBC_2.1) [2] mmap64(GLIBC_2.1) [2] 1842 tmpfile64(GLIBC_2.1) [2] 1843 creat64(GLIBC_2.1) [2] fsetpos64(GLIBC_2.2) [2] 1844 getrlimit64(GLIBC_2.2) [2] nftw64(GLIBC_2.1) [2] 1845 truncate64(GLIBC_2.1) [2] 1846 fgetpos64(GLIBC_2.2) [2] fstatvfs64(GLIBC_2.1) [2] 1847 lockf64(GLIBC_2.1) [2] open64(GLIBC_2.1) [2] 1848 1849 Referenced Specification(s) 1850 1851 [1]. this specification 1852 1853 [2]. Large File Support 1854 _________________________________________________________ 1855 1856 1.2.17. Standard Library 1857 _________________________________________________________ 1858 1859 1.2.17.1. Interfaces for Standard Library 1860 1861 An LSB conforming implementation shall provide the 1862 architecture specific functions for Standard Library specified 1863 in Table 1-22, with the full mandatory functionality as 1864 described in the referenced underlying specification. 1865 1866 Table 1-22. libc - Standard Library Function Interfaces 1867 _Exit(GLIBC_2.1.1) [1] dirname(GLIBC_2.0) [1] glob(GLIBC_2.0) 1868 [1] lsearch(GLIBC_2.0) [1] srand48(GLIBC_2.0) [1] 1869 __assert_fail(GLIBC_2.0) [2] div(GLIBC_2.0) [1] 1870 glob64(GLIBC_2.1) [2] makecontext(GLIBC_2.1) [1] 1871 srandom(GLIBC_2.0) [1] 1872 __cxa_atexit(GLIBC_2.1.3) [2] drand48(GLIBC_2.0) [1] 1873 globfree(GLIBC_2.0) [1] malloc(GLIBC_2.0) [1] 1874 strtod(GLIBC_2.0) [1] 1875 __errno_location(GLIBC_2.0) [2] ecvt(GLIBC_2.0) [1] 1876 globfree64(GLIBC_2.1) [2] memmem(GLIBC_2.0) [2] 1877 strtol(GLIBC_2.0) [1] 1878 __fpending(GLIBC_2.2) [2] erand48(GLIBC_2.0) [1] 1879 grantpt(GLIBC_2.1) [1] mkstemp(GLIBC_2.0) [1] 1880 strtoul(GLIBC_2.0) [1] 1881 __getpagesize(GLIBC_2.0) [2] err(GLIBC_2.0) [2] 1882 hcreate(GLIBC_2.0) [1] mktemp(GLIBC_2.0) [1] 1883 swapcontext(GLIBC_2.1) [1] 1884 __isinf(GLIBC_2.0) [2] error(GLIBC_2.0) [2] 1885 hdestroy(GLIBC_2.0) [1] mrand48(GLIBC_2.0) [1] 1886 syslog(GLIBC_2.0) [1] 1887 __isinff(GLIBC_2.0) [2] errx(GLIBC_2.0) [2] hsearch(GLIBC_2.0) 1888 [1] nftw(GLIBC_2.1) [1] system(GLIBC_2.0) [2] 1889 __isinfl(GLIBC_2.0) [2] fcvt(GLIBC_2.0) [1] htonl(GLIBC_2.0) 1890 [1] nrand48(GLIBC_2.0) [1] tdelete(GLIBC_2.0) [1] 1891 __isnan(GLIBC_2.0) [2] fmtmsg(GLIBC_2.1) [1] htons(GLIBC_2.0) 1892 [1] ntohl(GLIBC_2.0) [1] tfind(GLIBC_2.0) [1] 1893 __isnanf(GLIBC_2.0) [2] fnmatch(GLIBC_2.2.3) [1] 1894 imaxabs(GLIBC_2.1.1) [1] ntohs(GLIBC_2.0) [1] 1895 tmpfile(GLIBC_2.1) [1] 1896 __isnanl(GLIBC_2.0) [2] fpathconf(GLIBC_2.0) [1] 1897 imaxdiv(GLIBC_2.1.1) [1] openlog(GLIBC_2.0) [1] 1898 tmpnam(GLIBC_2.0) [1] 1899 __sysconf(GLIBC_2.2) [2] free(GLIBC_2.0) [1] 1900 inet_addr(GLIBC_2.0) [1] perror(GLIBC_2.0) [1] 1901 tsearch(GLIBC_2.0) [1] 1902 _exit(GLIBC_2.0) [1] freeaddrinfo(GLIBC_2.0) [1] 1903 inet_ntoa(GLIBC_2.0) [1] posix_memalign(GLIBC_2.2) [1] 1904 ttyname(GLIBC_2.0) [1] 1905 _longjmp(GLIBC_2.0) [1] ftrylockfile(GLIBC_2.0) [1] 1906 inet_ntop(GLIBC_2.0) [1] posix_openpt(GLIBC_2.2.1) [1] 1907 ttyname_r(GLIBC_2.0) [1] 1908 _setjmp(GLIBC_2.0) [1] ftw(GLIBC_2.0) [1] inet_pton(GLIBC_2.0) 1909 [1] ptsname(GLIBC_2.1) [1] twalk(GLIBC_2.0) [1] 1910 a64l(GLIBC_2.0) [1] funlockfile(GLIBC_2.0) [1] 1911 initstate(GLIBC_2.0) [1] putenv(GLIBC_2.0) [1] 1912 unlockpt(GLIBC_2.1) [1] 1913 abort(GLIBC_2.0) [1] gai_strerror(GLIBC_2.1) [1] 1914 insque(GLIBC_2.0) [1] qsort(GLIBC_2.0) [1] unsetenv(GLIBC_2.0) 1915 [1] 1916 abs(GLIBC_2.0) [1] gcvt(GLIBC_2.0) [1] isatty(GLIBC_2.0) [1] 1917 rand(GLIBC_2.0) [1] usleep(GLIBC_2.0) [1] 1918 atof(GLIBC_2.0) [1] getaddrinfo(GLIBC_2.0) [1] 1919 isblank(GLIBC_2.0) [1] rand_r(GLIBC_2.0) [1] verrx(GLIBC_2.0) 1920 [2] 1921 atoi(GLIBC_2.0) [1] getcwd(GLIBC_2.0) [1] jrand48(GLIBC_2.0) 1922 [1] random(GLIBC_2.0) [1] vfscanf(GLIBC_2.0) [2] 1923 atol(GLIBC_2.0) [1] getdate(GLIBC_2.1) [1] l64a(GLIBC_2.0) [1] 1924 realloc(GLIBC_2.0) [1] vscanf(GLIBC_2.0) [2] 1925 atoll(GLIBC_2.0) [1] getenv(GLIBC_2.0) [1] labs(GLIBC_2.0) [1] 1926 realpath(GLIBC_2.3) [1] vsscanf(GLIBC_2.0) [2] 1927 basename(GLIBC_2.0) [1] getlogin(GLIBC_2.0) [1] 1928 lcong48(GLIBC_2.0) [1] remque(GLIBC_2.0) [1] 1929 vsyslog(GLIBC_2.0) [2] 1930 bsearch(GLIBC_2.0) [1] getnameinfo(GLIBC_2.1) [1] 1931 ldiv(GLIBC_2.0) [1] seed48(GLIBC_2.0) [1] warn(GLIBC_2.0) [2] 1932 calloc(GLIBC_2.0) [1] getopt(GLIBC_2.0) [2] lfind(GLIBC_2.0) 1933 [1] setenv(GLIBC_2.0) [1] warnx(GLIBC_2.0) [2] 1934 closelog(GLIBC_2.0) [1] getopt_long(GLIBC_2.0) [2] 1935 llabs(GLIBC_2.0) [1] sethostname(GLIBC_2.0) [2] 1936 wordexp(GLIBC_2.1) [1] 1937 confstr(GLIBC_2.0) [1] getopt_long_only(GLIBC_2.0) [2] 1938 lldiv(GLIBC_2.0) [1] setlogmask(GLIBC_2.0) [1] 1939 wordfree(GLIBC_2.1) [1] 1940 cuserid(GLIBC_2.0) [3] getsubopt(GLIBC_2.0) [1] 1941 longjmp(GLIBC_2.0) [1] setstate(GLIBC_2.0) [1] 1942 daemon(GLIBC_2.0) [2] gettimeofday(GLIBC_2.0) [1] 1943 lrand48(GLIBC_2.0) [1] srand(GLIBC_2.0) [1] 1944 1945 Referenced Specification(s) 1946 1947 [1]. ISO POSIX (2003) 1948 1949 [2]. this specification 1950 1951 [3]. SUSv2 1952 1953 An LSB conforming implementation shall provide the 1954 architecture specific data interfaces for Standard Library 1955 specified in Table 1-23, with the full mandatory functionality 1956 as described in the referenced underlying specification. 1957 1958 Table 1-23. libc - Standard Library Data Interfaces 1959 __environ(GLIBC_2.0) [1] _sys_errlist(GLIBC_2.1) [1] 1960 getdate_err(GLIBC_2.1) [2] opterr(GLIBC_2.0) [2] 1961 optopt(GLIBC_2.0) [2] 1962 _environ(GLIBC_2.0) [1] environ(GLIBC_2.0) [2] 1963 optarg(GLIBC_2.0) [2] optind(GLIBC_2.0) [2] 1964 1965 Referenced Specification(s) 1966 1967 [1]. this specification 1968 1969 [2]. ISO POSIX (2003) 1970 _________________________________________________________ 1971 1972 1.3. Data Definitions for libc 1973 1974 This section defines global identifiers and their values that 1975 are associated with interfaces contained in libc. These 1976 definitions are organized into groups that correspond to 1977 system headers. This convention is used as a convenience for 1978 the reader, and does not imply the existence of these headers, 1979 or their content. 1980 1981 These definitions are intended to supplement those provided in 1982 the referenced underlying specifications. 1983 1984 This specification uses ISO/IEC 9899 C Language as the 1985 reference programming language, and data definitions are 1986 specified in ISO C format. The C language is used here as a 1987 convenient notation. Using a C language description of these 1988 data objects does not preclude their use by other programming 1989 languages. 1990 _________________________________________________________ 1991 1992 1.3.1. errno.h 1993 1994 #define EDEADLOCK EDEADLK 1995 _________________________________________________________ 1996 1997 1.3.2. fcntl.h 1998 1999 #define F_GETLK64 12 2000 #define F_SETLK64 13 2001 #define F_SETLKW64 14 2002 _________________________________________________________ 2003 2004 1.3.3. inttypes.h 2005 2006 typedef unsigned long long int uint64_t; 2007 typedef long long int intmax_t; 2008 typedef unsigned long long int uintmax_t; 2009 typedef unsigned int uintptr_t; 2010 _________________________________________________________ 2011 2012 1.3.4. limits.h 2013 2014 #define ULONG_MAX 0xFFFFFFFFUL 2015 #define LONG_MAX 2147483647 2016 2017 #define CHAR_MIN 0 2018 #define CHAR_MAX 255 2019 2020 #define PTHREAD_STACK_MIN 16384 2021 _________________________________________________________ 2022 2023 1.3.5. setjmp.h 2024 2025 typedef int __jmp_buf[14]; 2026 _________________________________________________________ 2027 2028 1.3.6. signal.h 2029 2030 #define __NUM_ACRS 16 2031 #define __NUM_FPRS 16 2032 #define __NUM_GPRS 16 2033 2034 typedef struct 2035 { 2036 unsigned long int mask; 2037 unsigned long int addr; 2038 } __attribute__ ((aligned (8))) _psw_t; 2039 typedef struct 2040 { 2041 _psw_t psw; 2042 unsigned long int gprs[__NUM_GPRS]; 2043 unsigned int acrs[__NUM_ACRS]; 2044 } 2045 _s390_regs_common; 2046 2047 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-3) 2048 2049 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-3) 2050 2051 struct sigaction 2052 { 2053 union 2054 { 2055 sighandler_t _sa_handler; 2056 void (*_sa_sigaction) (int, siginfo_t *, void *); 2057 } 2058 __sigaction_handler; 2059 sigset_t sa_mask; 2060 unsigned long int sa_flags; 2061 void (*sa_restorer) (void); 2062 } 2063 ; 2064 #define MINSIGSTKSZ 2048 2065 #define SIGSTKSZ 8192 2066 2067 typedef struct 2068 { 2069 unsigned int fpc; 2070 double fprs[__NUM_FPRS]; 2071 } 2072 _s390_fp_regs; 2073 typedef struct 2074 { 2075 _s390_regs_common regs; 2076 _s390_fp_regs fpregs; 2077 } 2078 _sigregs; 2079 2080 struct sigcontext 2081 { 2082 unsigned long int oldmask[2]; 2083 _sigregs *sregs; 2084 } 2085 ; 2086 _________________________________________________________ 2087 2088 1.3.7. stddef.h 2089 2090 typedef unsigned long int size_t; 2091 typedef int ptrdiff_t; 2092 _________________________________________________________ 2093 2094 1.3.8. stdio.h 2095 2096 #define __IO_FILE_SIZE 152 2097 _________________________________________________________ 2098 2099 1.3.9. sys/ioctl.h 2100 2101 #define FIONREAD 0x541B 2102 #define TIOCNOTTY 21538 2103 _________________________________________________________ 2104 2105 1.3.10. sys/ipc.h 2106 2107 struct ipc_perm 2108 { 2109 key_t __key; 2110 uid_t uid; 2111 gid_t gid; 2112 uid_t cuid; 2113 uid_t cgid; 2114 unsigned short mode; 2115 unsigned short __pad1; 2116 unsigned short __seq; 2117 unsigned short __pad2; 2118 unsigned long int __unused1; 2119 unsigned long int __unused2; 2120 } 2121 ; 2122 _________________________________________________________ 2123 2124 1.3.11. sys/mman.h 2125 2126 #define MCL_CURRENT 1 2127 #define MCL_FUTURE 2 2128 _________________________________________________________ 2129 2130 1.3.12. sys/msg.h 2131 2132 typedef unsigned long int msglen_t; 2133 typedef unsigned long int msgqnum_t; 2134 2135 struct msqid_ds 2136 { 2137 struct ipc_perm msg_perm; 2138 time_t msg_stime; 2139 unsigned long int __unused1; 2140 time_t msg_rtime; 2141 unsigned long int __unused2; 2142 time_t msg_ctime; 2143 unsigned long int __unused3; 2144 unsigned long int __msg_cbytes; 2145 msgqnum_t msg_qnum; 2146 msglen_t msg_qbytes; 2147 pid_t msg_lspid; 2148 pid_t msg_lrpid; 2149 unsigned long int __unused4; 2150 unsigned long int __unused5; 2151 } 2152 ; 2153 _________________________________________________________ 2154 2155 1.3.13. sys/sem.h 2156 2157 struct semid_ds 2158 { 2159 struct ipc_perm sem_perm; 2160 time_t sem_otime; 2161 unsigned long int __unused1; 2162 time_t sem_ctime; 2163 unsigned long int __unused2; 2164 unsigned long int sem_nsems; 2165 unsigned long int __unused3; 2166 unsigned long int __unused4; 2167 } 2168 ; 2169 _________________________________________________________ 2170 2171 1.3.14. sys/shm.h 2172 2173 #define SHMLBA (__getpagesize()) 2174 2175 typedef unsigned long int shmatt_t; 2176 2177 struct shmid_ds 2178 { 2179 struct ipc_perm shm_perm; 2180 size_t shm_segsz; 2181 time_t shm_atime; 2182 unsigned long int __unused1; 2183 time_t shm_dtime; 2184 unsigned long int __unused2; 2185 time_t shm_ctime; 2186 unsigned long int __unused3; 2187 pid_t shm_cpid; 2188 pid_t shm_lpid; 2189 shmatt_t shm_nattch; 2190 unsigned long int __unused4; 2191 unsigned long int __unused5; 2192 } 2193 ; 2194 _________________________________________________________ 2195 2196 1.3.15. sys/socket.h 2197 2198 typedef uint32_t __ss_aligntype; 2199 2200 #define SO_RCVLOWAT 18 2201 #define SO_SNDLOWAT 19 2202 #define SO_RCVTIMEO 20 2203 #define SO_SNDTIMEO 21 2204 _________________________________________________________ 2205 2206 1.3.16. sys/stat.h 2207 2208 #define _STAT_VER 3 2209 2210 struct stat 2211 { 2212 dev_t st_dev; 2213 unsigned int __pad1; 2214 ino_t st_ino; 2215 mode_t st_mode; 2216 nlink_t st_nlink; 2217 uid_t st_uid; 2218 gid_t st_gid; 2219 dev_t st_rdev; 2220 unsigned int __pad2; 2221 off_t st_size; 2222 blksize_t st_blksize; 2223 blkcnt_t st_blocks; 2224 struct timespec st_atim; 2225 struct timespec st_mtim; 2226 struct timespec st_ctim; 2227 unsigned long int __unused4; 2228 unsigned long int __unused5; 2229 } 2230 ; 2231 struct stat64 2232 { 2233 dev_t st_dev; 2234 int __pad1; 2235 ino_t __st_ino; 2236 mode_t st_mode; 2237 nlink_t st_nlink; 2238 uid_t st_uid; 2239 gid_t st_gid; 2240 dev_t st_rdev; 2241 int __pad2; 2242 off64_t st_size; 2243 blksize_t st_blksize; 2244 blkcnt64_t st_blocks; 2245 struct timespec st_atim; 2246 struct timespec st_mtim; 2247 struct timespec st_ctim; 2248 ino64_t st_ino; 2249 } 2250 ; 2251 _________________________________________________________ 2252 2253 1.3.17. sys/statvfs.h 2254 2255 struct statvfs 2256 { 2257 unsigned long int f_bsize; 2258 unsigned long int f_frsize; 2259 fsblkcnt_t f_blocks; 2260 fsblkcnt_t f_bfree; 2261 fsblkcnt_t f_bavail; 2262 fsfilcnt_t f_files; 2263 fsfilcnt_t f_ffree; 2264 fsfilcnt_t f_favail; 2265 unsigned long int f_fsid; 2266 int __f_unused; 2267 unsigned long int f_flag; 2268 unsigned long int f_namemax; 2269 int __f_spare[6]; 2270 } 2271 ; 2272 struct statvfs64 2273 { 2274 unsigned long int f_bsize; 2275 unsigned long int f_frsize; 2276 fsblkcnt64_t f_blocks; 2277 fsblkcnt64_t f_bfree; 2278 fsblkcnt64_t f_bavail; 2279 fsfilcnt64_t f_files; 2280 fsfilcnt64_t f_ffree; 2281 fsfilcnt64_t f_favail; 2282 unsigned long int f_fsid; 2283 int __f_unused; 2284 unsigned long int f_flag; 2285 unsigned long int f_namemax; 2286 int __f_spare[6]; 2287 } 2288 ; 2289 _________________________________________________________ 2290 2291 1.3.18. sys/types.h 2292 2293 typedef long long int int64_t; 2294 2295 typedef int32_t ssize_t; 2296 2297 #define __FDSET_LONGS 32 2298 _________________________________________________________ 2299 2300 1.3.19. termios.h 2301 2302 #define OLCUC 0000002 2303 #define ONLCR 0000004 2304 #define XCASE 0000004 2305 #define NLDLY 0000400 2306 #define CR1 0001000 2307 #define IUCLC 0001000 2308 #define CR2 0002000 2309 #define CR3 0003000 2310 #define CRDLY 0003000 2311 #define TAB1 0004000 2312 #define TAB2 0010000 2313 #define TAB3 0014000 2314 #define TABDLY 0014000 2315 #define BS1 0020000 2316 #define BSDLY 0020000 2317 #define VT1 0040000 2318 #define VTDLY 0040000 2319 #define FF1 0100000 2320 #define FFDLY 0100000 2321 2322 #define VSUSP 10 2323 #define VEOL 11 2324 #define VREPRINT 12 2325 #define VDISCARD 13 2326 #define VWERASE 14 2327 #define VEOL2 16 2328 #define VMIN 6 2329 #define VSWTC 7 2330 #define VSTART 8 2331 #define VSTOP 9 2332 2333 #define IXON 0002000 2334 #define IXOFF 0010000 2335 2336 #define CS6 0000020 2337 #define CS7 0000040 2338 #define CS8 0000060 2339 #define CSIZE 0000060 2340 #define CSTOPB 0000100 2341 #define CREAD 0000200 2342 #define PARENB 0000400 2343 #define PARODD 0001000 2344 #define HUPCL 0002000 2345 #define CLOCAL 0004000 2346 #define VTIME 5 2347 2348 #define ISIG 0000001 2349 #define ICANON 0000002 2350 #define ECHOE 0000020 2351 #define ECHOK 0000040 2352 #define ECHONL 0000100 2353 #define NOFLSH 0000200 2354 #define TOSTOP 0000400 2355 #define ECHOCTL 0001000 2356 #define ECHOPRT 0002000 2357 #define ECHOKE 0004000 2358 #define FLUSHO 0010000 2359 #define PENDIN 0040000 2360 #define IEXTEN 0100000 2361 _________________________________________________________ 2362 2363 1.3.20. ucontext.h 2364 2365 #define NGREG 36 2366 2367 typedef union 2368 { 2369 double d; 2370 float f; 2371 } 2372 fpreg_t; 2373 2374 typedef struct 2375 { 2376 unsigned int fpc; 2377 fpreg_t fprs[16]; 2378 } 2379 fpregset_t; 2380 2381 typedef struct 2382 { 2383 _psw_t psw; 2384 unsigned long int gregs[16]; 2385 unsigned int aregs[16]; 2386 fpregset_t fpregs; 2387 } 2388 mcontext_t; 2389 2390 typedef struct ucontext 2391 { 2392 unsigned long int uc_flags; 2393 struct ucontext *uc_link; 2394 stack_t uc_stack; 2395 mcontext_t uc_mcontext; 2396 sigset_t uc_sigmask; 2397 } 2398 ucontext_t; 2399 _________________________________________________________ 2400 2401 1.3.21. unistd.h 2402 2403 typedef int intptr_t; 2404 _________________________________________________________ 2405 2406 1.3.22. utmp.h 2407 2408 struct lastlog 2409 { 2410 time_t ll_time; 2411 char ll_line[UT_LINESIZE]; 2412 char ll_host[UT_HOSTSIZE]; 2413 } 2414 ; 2415 2416 struct utmp 2417 { 2418 short ut_type; 2419 pid_t ut_pid; 2420 char ut_line[UT_LINESIZE]; 2421 char ut_id[4]; 2422 char ut_user[UT_NAMESIZE]; 2423 char ut_host[UT_HOSTSIZE]; 2424 struct exit_status ut_exit; 2425 long int ut_session; 2426 struct timeval ut_tv; 2427 int32_t ut_addr_v6[4]; 2428 char __unused[20]; 2429 } 2430 ; 2431 _________________________________________________________ 2432 2433 1.3.23. utmpx.h 2434 2435 struct utmpx 2436 { 2437 short ut_type; 2438 pid_t ut_pid; 2439 char ut_line[UT_LINESIZE]; 2440 char ut_id[4]; 2441 char ut_user[UT_NAMESIZE]; 2442 char ut_host[UT_HOSTSIZE]; 2443 struct exit_status ut_exit; 2444 long int ut_session; 2445 struct timeval ut_tv; 2446 int32_t ut_addr_v6[4]; 2447 char __unused[20]; 2448 } 2449 ; 2450 _________________________________________________________ 2451 2452 1.4. Interfaces for libm 2453 2454 Table 1-24 defines the library name and shared object name for 2455 the libm library 2456 2457 Table 1-24. libm Definition 2458 Library: libm 2459 SONAME: libm.so.6 2460 2461 The behavior of the interfaces in this library is specified by 2462 the following specifications: 2463 2464 ISO C (1999) 2465 this specification 2466 SUSv2 2467 ISO POSIX (2003) 2468 _________________________________________________________ 2469 2470 1.4.1. Math 2471 _________________________________________________________ 2472 2473 1.4.1.1. Interfaces for Math 2474 2475 An LSB conforming implementation shall provide the 2476 architecture specific functions for Math specified in Table 2477 1-25, with the full mandatory functionality as described in 2478 the referenced underlying specification. 2479 2480 Table 1-25. libm - Math Function Interfaces 2481 __finite(GLIBC_2.1) [1] ceilf(GLIBC_2.0) [2] exp2f(GLIBC_2.1) 2482 [2] jnf(GLIBC_2.0) [1] remainder(GLIBC_2.0) [2] 2483 __finitef(GLIBC_2.1) [1] ceill(GLIBC_2.0) [2] expf(GLIBC_2.0) 2484 [2] jnl(GLIBC_2.0) [1] remainderf(GLIBC_2.0) [2] 2485 __finitel(GLIBC_2.1) [1] cexp(GLIBC_2.1) [2] expl(GLIBC_2.0) 2486 [2] ldexp(GLIBC_2.0) [2] remainderl(GLIBC_2.0) [2] 2487 __fpclassify(GLIBC_2.1) [3] cexpf(GLIBC_2.1) [2] 2488 expm1(GLIBC_2.0) [2] ldexpf(GLIBC_2.0) [2] remquo(GLIBC_2.1) 2489 [2] 2490 __fpclassifyf(GLIBC_2.1) [3] cexpl(GLIBC_2.1) [2] 2491 expm1f(GLIBC_2.0) [2] ldexpl(GLIBC_2.0) [2] remquof(GLIBC_2.1) 2492 [2] 2493 acos(GLIBC_2.0) [2] cimag(GLIBC_2.1) [2] expm1l(GLIBC_2.0) [2] 2494 lgamma(GLIBC_2.0) [2] remquol(GLIBC_2.1) [2] 2495 acosf(GLIBC_2.0) [2] cimagf(GLIBC_2.1) [2] fabs(GLIBC_2.0) [2] 2496 lgamma_r(GLIBC_2.0) [1] rint(GLIBC_2.0) [2] 2497 acosh(GLIBC_2.0) [2] cimagl(GLIBC_2.1) [2] fabsf(GLIBC_2.0) 2498 [2] lgammaf(GLIBC_2.0) [2] rintf(GLIBC_2.0) [2] 2499 acoshf(GLIBC_2.0) [2] clog(GLIBC_2.1) [2] fabsl(GLIBC_2.0) [2] 2500 lgammaf_r(GLIBC_2.0) [1] rintl(GLIBC_2.0) [2] 2501 acoshl(GLIBC_2.0) [2] clog10(GLIBC_2.1) [1] fdim(GLIBC_2.1) 2502 [2] lgammal(GLIBC_2.0) [2] round(GLIBC_2.1) [2] 2503 acosl(GLIBC_2.0) [2] clog10f(GLIBC_2.1) [1] fdimf(GLIBC_2.1) 2504 [2] lgammal_r(GLIBC_2.0) [1] roundf(GLIBC_2.1) [2] 2505 asin(GLIBC_2.0) [2] clog10l(GLIBC_2.1) [1] fdiml(GLIBC_2.1) 2506 [2] llrint(GLIBC_2.1) [2] roundl(GLIBC_2.1) [2] 2507 asinf(GLIBC_2.0) [2] clogf(GLIBC_2.1) [2] 2508 feclearexcept(GLIBC_2.1) [2] llrintf(GLIBC_2.1) [2] 2509 scalb(GLIBC_2.0) [2] 2510 asinh(GLIBC_2.0) [2] clogl(GLIBC_2.1) [2] fegetenv(GLIBC_2.1) 2511 [2] llrintl(GLIBC_2.1) [2] scalbf(GLIBC_2.0) [1] 2512 asinhf(GLIBC_2.0) [2] conj(GLIBC_2.1) [2] 2513 fegetexceptflag(GLIBC_2.1) [2] llround(GLIBC_2.1) [2] 2514 scalbl(GLIBC_2.0) [1] 2515 asinhl(GLIBC_2.0) [2] conjf(GLIBC_2.1) [2] 2516 fegetround(GLIBC_2.1) [2] llroundf(GLIBC_2.1) [2] 2517 scalbln(GLIBC_2.1) [2] 2518 asinl(GLIBC_2.0) [2] conjl(GLIBC_2.1) [2] 2519 feholdexcept(GLIBC_2.1) [2] llroundl(GLIBC_2.1) [2] 2520 scalblnf(GLIBC_2.1) [2] 2521 atan(GLIBC_2.0) [2] copysign(GLIBC_2.0) [2] 2522 feraiseexcept(GLIBC_2.1) [2] log(GLIBC_2.0) [2] 2523 scalblnl(GLIBC_2.1) [2] 2524 atan2(GLIBC_2.0) [2] copysignf(GLIBC_2.0) [2] 2525 fesetenv(GLIBC_2.1) [2] log10(GLIBC_2.0) [2] scalbn(GLIBC_2.0) 2526 [2] 2527 atan2f(GLIBC_2.0) [2] copysignl(GLIBC_2.0) [2] 2528 fesetexceptflag(GLIBC_2.1) [2] log10f(GLIBC_2.0) [2] 2529 scalbnf(GLIBC_2.0) [2] 2530 atan2l(GLIBC_2.0) [2] cos(GLIBC_2.0) [2] fesetround(GLIBC_2.1) 2531 [2] log10l(GLIBC_2.0) [2] scalbnl(GLIBC_2.0) [2] 2532 atanf(GLIBC_2.0) [2] cosf(GLIBC_2.0) [2] 2533 fetestexcept(GLIBC_2.1) [2] log1p(GLIBC_2.0) [2] 2534 significand(GLIBC_2.0) [1] 2535 atanh(GLIBC_2.0) [2] cosh(GLIBC_2.0) [2] 2536 feupdateenv(GLIBC_2.1) [2] log1pf(GLIBC_2.0) [2] 2537 significandf(GLIBC_2.0) [1] 2538 atanhf(GLIBC_2.0) [2] coshf(GLIBC_2.0) [2] finite(GLIBC_2.0) 2539 [4] log1pl(GLIBC_2.0) [2] significandl(GLIBC_2.0) [1] 2540 atanhl(GLIBC_2.0) [2] coshl(GLIBC_2.0) [2] finitef(GLIBC_2.0) 2541 [1] log2(GLIBC_2.1) [2] sin(GLIBC_2.0) [2] 2542 atanl(GLIBC_2.0) [2] cosl(GLIBC_2.0) [2] finitel(GLIBC_2.0) 2543 [1] log2f(GLIBC_2.1) [2] sincos(GLIBC_2.1) [1] 2544 cabs(GLIBC_2.1) [2] cpow(GLIBC_2.1) [2] floor(GLIBC_2.0) [2] 2545 log2l(GLIBC_2.1) [2] sincosf(GLIBC_2.1) [1] 2546 cabsf(GLIBC_2.1) [2] cpowf(GLIBC_2.1) [2] floorf(GLIBC_2.0) 2547 [2] logb(GLIBC_2.0) [2] sincosl(GLIBC_2.1) [1] 2548 cabsl(GLIBC_2.1) [2] cpowl(GLIBC_2.1) [2] floorl(GLIBC_2.0) 2549 [2] logbf(GLIBC_2.0) [2] sinf(GLIBC_2.0) [2] 2550 cacos(GLIBC_2.1) [2] cproj(GLIBC_2.1) [2] fma(GLIBC_2.1) [2] 2551 logbl(GLIBC_2.0) [2] sinh(GLIBC_2.0) [2] 2552 cacosf(GLIBC_2.1) [2] cprojf(GLIBC_2.1) [2] fmaf(GLIBC_2.1) 2553 [2] logf(GLIBC_2.0) [2] sinhf(GLIBC_2.0) [2] 2554 cacosh(GLIBC_2.1) [2] cprojl(GLIBC_2.1) [2] fmal(GLIBC_2.1) 2555 [2] logl(GLIBC_2.0) [2] sinhl(GLIBC_2.0) [2] 2556 cacoshf(GLIBC_2.1) [2] creal(GLIBC_2.1) [2] fmax(GLIBC_2.1) 2557 [2] lrint(GLIBC_2.1) [2] sinl(GLIBC_2.0) [2] 2558 cacoshl(GLIBC_2.1) [2] crealf(GLIBC_2.1) [2] fmaxf(GLIBC_2.1) 2559 [2] lrintf(GLIBC_2.1) [2] sqrt(GLIBC_2.0) [2] 2560 cacosl(GLIBC_2.1) [2] creall(GLIBC_2.1) [2] fmaxl(GLIBC_2.1) 2561 [2] lrintl(GLIBC_2.1) [2] sqrtf(GLIBC_2.0) [2] 2562 carg(GLIBC_2.1) [2] csin(GLIBC_2.1) [2] fmin(GLIBC_2.1) [2] 2563 lround(GLIBC_2.1) [2] sqrtl(GLIBC_2.0) [2] 2564 cargf(GLIBC_2.1) [2] csinf(GLIBC_2.1) [2] fminf(GLIBC_2.1) [2] 2565 lroundf(GLIBC_2.1) [2] tan(GLIBC_2.0) [2] 2566 cargl(GLIBC_2.1) [2] csinh(GLIBC_2.1) [2] fminl(GLIBC_2.1) [2] 2567 lroundl(GLIBC_2.1) [2] tanf(GLIBC_2.0) [2] 2568 casin(GLIBC_2.1) [2] csinhf(GLIBC_2.1) [2] fmod(GLIBC_2.0) [2] 2569 matherr(GLIBC_2.0) [1] tanh(GLIBC_2.0) [2] 2570 casinf(GLIBC_2.1) [2] csinhl(GLIBC_2.1) [2] fmodf(GLIBC_2.0) 2571 [2] modf(GLIBC_2.0) [2] tanhf(GLIBC_2.0) [2] 2572 casinh(GLIBC_2.1) [2] csinl(GLIBC_2.1) [2] fmodl(GLIBC_2.0) 2573 [2] modff(GLIBC_2.0) [2] tanhl(GLIBC_2.0) [2] 2574 casinhf(GLIBC_2.1) [2] csqrt(GLIBC_2.1) [2] frexp(GLIBC_2.0) 2575 [2] modfl(GLIBC_2.0) [2] tanl(GLIBC_2.0) [2] 2576 casinhl(GLIBC_2.1) [2] csqrtf(GLIBC_2.1) [2] frexpf(GLIBC_2.0) 2577 [2] nan(GLIBC_2.1) [2] tgamma(GLIBC_2.1) [2] 2578 casinl(GLIBC_2.1) [2] csqrtl(GLIBC_2.1) [2] frexpl(GLIBC_2.0) 2579 [2] nanf(GLIBC_2.1) [2] tgammaf(GLIBC_2.1) [2] 2580 catan(GLIBC_2.1) [2] ctan(GLIBC_2.1) [2] gamma(GLIBC_2.0) [4] 2581 nanl(GLIBC_2.1) [2] tgammal(GLIBC_2.1) [2] 2582 catanf(GLIBC_2.1) [2] ctanf(GLIBC_2.1) [2] gammaf(GLIBC_2.0) 2583 [1] nearbyint(GLIBC_2.1) [2] trunc(GLIBC_2.1) [2] 2584 catanh(GLIBC_2.1) [2] ctanh(GLIBC_2.1) [2] gammal(GLIBC_2.0) 2585 [1] nearbyintf(GLIBC_2.1) [2] truncf(GLIBC_2.1) [2] 2586 catanhf(GLIBC_2.1) [2] ctanhf(GLIBC_2.1) [2] hypot(GLIBC_2.0) 2587 [2] nearbyintl(GLIBC_2.1) [2] truncl(GLIBC_2.1) [2] 2588 catanhl(GLIBC_2.1) [2] ctanhl(GLIBC_2.1) [2] hypotf(GLIBC_2.0) 2589 [2] nextafter(GLIBC_2.0) [2] y0(GLIBC_2.0) [2] 2590 catanl(GLIBC_2.1) [2] ctanl(GLIBC_2.1) [2] hypotl(GLIBC_2.0) 2591 [2] nextafterf(GLIBC_2.0) [2] y0f(GLIBC_2.0) [1] 2592 cbrt(GLIBC_2.0) [2] dremf(GLIBC_2.0) [1] ilogb(GLIBC_2.0) [2] 2593 nextafterl(GLIBC_2.0) [2] y0l(GLIBC_2.0) [1] 2594 cbrtf(GLIBC_2.0) [2] dreml(GLIBC_2.0) [1] ilogbf(GLIBC_2.0) 2595 [2] nexttoward(GLIBC_2.1) [2] y1(GLIBC_2.0) [2] 2596 cbrtl(GLIBC_2.0) [2] erf(GLIBC_2.0) [2] ilogbl(GLIBC_2.0) [2] 2597 nexttowardf(GLIBC_2.1) [2] y1f(GLIBC_2.0) [1] 2598 ccos(GLIBC_2.1) [2] erfc(GLIBC_2.0) [2] j0(GLIBC_2.0) [2] 2599 nexttowardl(GLIBC_2.1) [2] y1l(GLIBC_2.0) [1] 2600 ccosf(GLIBC_2.1) [2] erfcf(GLIBC_2.0) [2] j0f(GLIBC_2.0) [1] 2601 pow(GLIBC_2.0) [2] yn(GLIBC_2.0) [2] 2602 ccosh(GLIBC_2.1) [2] erfcl(GLIBC_2.0) [2] j0l(GLIBC_2.0) [1] 2603 pow10(GLIBC_2.1) [1] ynf(GLIBC_2.0) [1] 2604 ccoshf(GLIBC_2.1) [2] erff(GLIBC_2.0) [2] j1(GLIBC_2.0) [2] 2605 pow10f(GLIBC_2.1) [1] ynl(GLIBC_2.0) [1] 2606 ccoshl(GLIBC_2.1) [2] erfl(GLIBC_2.0) [2] j1f(GLIBC_2.0) [1] 2607 pow10l(GLIBC_2.1) [1] 2608 ccosl(GLIBC_2.1) [2] exp(GLIBC_2.0) [2] j1l(GLIBC_2.0) [1] 2609 powf(GLIBC_2.0) [2] 2610 ceil(GLIBC_2.0) [2] exp2(GLIBC_2.1) [2] jn(GLIBC_2.0) [2] 2611 powl(GLIBC_2.0) [2] 2612 2613 Referenced Specification(s) 2614 2615 [1]. ISO C (1999) 2616 2617 [2]. ISO POSIX (2003) 2618 2619 [3]. this specification 2620 2621 [4]. SUSv2 2622 2623 An LSB conforming implementation shall provide the 2624 architecture specific data interfaces for Math specified in 2625 Table 1-26, with the full mandatory functionality as described 2626 in the referenced underlying specification. 2627 2628 Table 1-26. libm - Math Data Interfaces 2629 signgam(GLIBC_2.0) [1] 2630 2631 Referenced Specification(s) 2632 2633 [1]. ISO POSIX (2003) 2634 _________________________________________________________ 2635 2636 1.5. Data Definitions for libm 2637 2638 This section defines global identifiers and their values that 2639 are associated with interfaces contained in libm. These 2640 definitions are organized into groups that correspond to 2641 system headers. This convention is used as a convenience for 2642 the reader, and does not imply the existence of these headers, 2643 or their content. 2644 2645 These definitions are intended to supplement those provided in 2646 the referenced underlying specifications. 2647 2648 This specification uses ISO/IEC 9899 C Language as the 2649 reference programming language, and data definitions are 2650 specified in ISO C format. The C language is used here as a 2651 convenient notation. Using a C language description of these 2652 data objects does not preclude their use by other programming 2653 languages. 2654 _________________________________________________________ 2655 2656 1.5.1. fenv.h 2657 2658 #define FE_INEXACT 0x08 2659 #define FE_UNDERFLOW 0x10 2660 #define FE_OVERFLOW 0x20 2661 #define FE_DIVBYZERO 0x40 2662 #define FE_INVALID 0x80 2663 2664 #define FE_ALL_EXCEPT (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_ 2665 OVERFLOW | FE_INVALID) 2666 2667 #define FE_TONEAREST 0 2668 #define FE_TOWARDZERO 0x1 2669 #define FE_UPWARD 0x2 2670 #define FE_DOWNWARD 0x3 2671 2672 typedef unsigned int fexcept_t; 2673 2674 typedef unsigned int fenv_t; 2675 #define FE_DFL_ENV ((__const fenv_t *) -1) 2676 _________________________________________________________ 2677 2678 1.5.2. math.h 2679 2680 #define fpclassify(x) (sizeof (x) == sizeof (float) ? __fpclassifyf ( 2681 x) : __fpclassify (x) ) 2682 #define signbit(x) (sizeof (x) == sizeof (float)? __signbitf (x): 2683 __signbit (x)) 2684 2685 #define FP_ILOGB0 -2147483647 2686 #define FP_ILOGBNAN 2147483647 2687 _________________________________________________________ 2688 2689 1.6. Interfaces for libpthread 2690 2691 Table 1-27 defines the library name and shared object name for 2692 the libpthread library 2693 2694 Table 1-27. libpthread Definition 2695 Library: libpthread 2696 SONAME: libpthread.so.0 2697 2698 The behavior of the interfaces in this library is specified by 2699 the following specifications: 2700 2701 Large File Support 2702 this specification 2703 ISO POSIX (2003) 2704 _________________________________________________________ 2705 2706 1.6.1. Realtime Threads 2707 _________________________________________________________ 2708 2709 1.6.1.1. Interfaces for Realtime Threads 2710 2711 An LSB conforming implementation shall provide the 2712 architecture specific functions for Realtime Threads specified 2713 in Table 1-28, with the full mandatory functionality as 2714 described in the referenced underlying specification. 2715 2716 Table 1-28. libpthread - Realtime Threads Function Interfaces 2717 pthread_attr_getinheritsched(GLIBC_2.0) [1] 2718 pthread_attr_getscope(GLIBC_2.0) [1] 2719 pthread_attr_setschedpolicy(GLIBC_2.0) [1] 2720 pthread_getschedparam(GLIBC_2.0) [1] 2721 pthread_attr_getschedpolicy(GLIBC_2.0) [1] 2722 pthread_attr_setinheritsched(GLIBC_2.0) [1] 2723 pthread_attr_setscope(GLIBC_2.0) [1] 2724 pthread_setschedparam(GLIBC_2.0) [1] 2725 2726 Referenced Specification(s) 2727 2728 [1]. ISO POSIX (2003) 2729 _________________________________________________________ 2730 2731 1.6.2. Advanced Realtime Threads 2732 _________________________________________________________ 2733 2734 1.6.2.1. Interfaces for Advanced Realtime Threads 2735 2736 No external functions are defined for libpthread - Advanced 2737 Realtime Threads 2738 _________________________________________________________ 2739 2740 1.6.3. Posix Threads 2741 _________________________________________________________ 2742 2743 1.6.3.1. Interfaces for Posix Threads 2744 2745 An LSB conforming implementation shall provide the 2746 architecture specific functions for Posix Threads specified in 2747 Table 1-29, with the full mandatory functionality as described 2748 in the referenced underlying specification. 2749 2750 Table 1-29. libpthread - Posix Threads Function Interfaces 2751 _pthread_cleanup_pop(GLIBC_2.0) [1] pthread_cancel(GLIBC_2.0) 2752 [2] pthread_join(GLIBC_2.0) [2] pthread_rwlock_init(GLIBC_2.1) 2753 [2] pthread_sigmask(GLIBC_2.0) [2] 2754 _pthread_cleanup_push(GLIBC_2.0) [1] 2755 pthread_cond_broadcast(GLIBC_2.3.2) [2] 2756 pthread_key_create(GLIBC_2.0) [2] 2757 pthread_rwlock_rdlock(GLIBC_2.1) [2] 2758 pthread_testcancel(GLIBC_2.0) [2] 2759 pread(GLIBC_2.2) [2] pthread_cond_destroy(GLIBC_2.3.2) [2] 2760 pthread_key_delete(GLIBC_2.0) [2] 2761 pthread_rwlock_timedrdlock(GLIBC_2.2) [2] pwrite(GLIBC_2.2) 2762 [2] 2763 pread64(GLIBC_2.2) [3] pthread_cond_init(GLIBC_2.3.2) [2] 2764 pthread_kill(GLIBC_2.0) [2] 2765 pthread_rwlock_timedwrlock(GLIBC_2.2) [2] pwrite64(GLIBC_2.2) 2766 [3] 2767 pthread_attr_destroy(GLIBC_2.0) [2] 2768 pthread_cond_signal(GLIBC_2.3.2) [2] 2769 pthread_mutex_destroy(GLIBC_2.0) [2] 2770 pthread_rwlock_tryrdlock(GLIBC_2.1) [2] sem_close(GLIBC_2.1.1) 2771 [2] 2772 pthread_attr_getdetachstate(GLIBC_2.0) [2] 2773 pthread_cond_timedwait(GLIBC_2.3.2) [2] 2774 pthread_mutex_init(GLIBC_2.0) [2] 2775 pthread_rwlock_trywrlock(GLIBC_2.1) [2] sem_destroy(GLIBC_2.1) 2776 [2] 2777 pthread_attr_getguardsize(GLIBC_2.1) [2] 2778 pthread_cond_wait(GLIBC_2.3.2) [2] 2779 pthread_mutex_lock(GLIBC_2.0) [2] 2780 pthread_rwlock_unlock(GLIBC_2.1) [2] sem_getvalue(GLIBC_2.1) 2781 [2] 2782 pthread_attr_getschedparam(GLIBC_2.0) [2] 2783 pthread_condattr_destroy(GLIBC_2.0) [2] 2784 pthread_mutex_trylock(GLIBC_2.0) [2] 2785 pthread_rwlock_wrlock(GLIBC_2.1) [2] sem_init(GLIBC_2.1) [2] 2786 pthread_attr_getstack(GLIBC_2.2) [2] 2787 pthread_condattr_getpshared(GLIBC_2.2) [2] 2788 pthread_mutex_unlock(GLIBC_2.0) [2] 2789 pthread_rwlockattr_destroy(GLIBC_2.1) [2] 2790 sem_open(GLIBC_2.1.1) [2] 2791 pthread_attr_getstackaddr(GLIBC_2.1) [2] 2792 pthread_condattr_init(GLIBC_2.0) [2] 2793 pthread_mutexattr_destroy(GLIBC_2.0) [2] 2794 pthread_rwlockattr_getpshared(GLIBC_2.1) [2] 2795 sem_post(GLIBC_2.1) [2] 2796 pthread_attr_getstacksize(GLIBC_2.1) [2] 2797 pthread_condattr_setpshared(GLIBC_2.2) [2] 2798 pthread_mutexattr_getpshared(GLIBC_2.2) [2] 2799 pthread_rwlockattr_init(GLIBC_2.1) [2] 2800 sem_timedwait(GLIBC_2.2) [2] 2801 pthread_attr_init(GLIBC_2.1) [2] pthread_create(GLIBC_2.1) [2] 2802 pthread_mutexattr_gettype(GLIBC_2.1) [2] 2803 pthread_rwlockattr_setpshared(GLIBC_2.1) [2] 2804 sem_trywait(GLIBC_2.1) [2] 2805 pthread_attr_setdetachstate(GLIBC_2.0) [2] 2806 pthread_detach(GLIBC_2.0) [2] 2807 pthread_mutexattr_init(GLIBC_2.0) [2] pthread_self(GLIBC_2.0) 2808 [2] sem_unlink(GLIBC_2.1.1) [2] 2809 pthread_attr_setguardsize(GLIBC_2.1) [2] 2810 pthread_equal(GLIBC_2.0) [2] 2811 pthread_mutexattr_setpshared(GLIBC_2.2) [2] 2812 pthread_setcancelstate(GLIBC_2.0) [2] sem_wait(GLIBC_2.1) [2] 2813 pthread_attr_setschedparam(GLIBC_2.0) [2] 2814 pthread_exit(GLIBC_2.0) [2] 2815 pthread_mutexattr_settype(GLIBC_2.1) [2] 2816 pthread_setcanceltype(GLIBC_2.0) [2] 2817 pthread_attr_setstackaddr(GLIBC_2.1) [2] 2818 pthread_getconcurrency(GLIBC_2.1) [2] pthread_once(GLIBC_2.0) 2819 [2] pthread_setconcurrency(GLIBC_2.1) [2] 2820 pthread_attr_setstacksize(GLIBC_2.1) [2] 2821 pthread_getspecific(GLIBC_2.0) [2] 2822 pthread_rwlock_destroy(GLIBC_2.1) [2] 2823 pthread_setspecific(GLIBC_2.0) [2] 2824 2825 Referenced Specification(s) 2826 2827 [1]. this specification 2828 2829 [2]. ISO POSIX (2003) 2830 2831 [3]. Large File Support 2832 _________________________________________________________ 2833 2834 1.7. Interfaces for libgcc_s 2835 2836 Table 1-30 defines the library name and shared object name for 2837 the libgcc_s library 2838 2839 Table 1-30. libgcc_s Definition 2840 Library: libgcc_s 2841 SONAME: libgcc_s.so.1 2842 2843 The behavior of the interfaces in this library is specified by 2844 the following specifications: 2845 2846 this specification 2847 _________________________________________________________ 2848 2849 1.7.1. Unwind Library 2850 _________________________________________________________ 2851 2852 1.7.1.1. Interfaces for Unwind Library 2853 2854 An LSB conforming implementation shall provide the 2855 architecture specific functions for Unwind Library specified 2856 in Table 1-31, with the full mandatory functionality as 2857 described in the referenced underlying specification. 2858 2859 Table 1-31. libgcc_s - Unwind Library Function Interfaces 2860 _Unwind_DeleteException(GCC_3.0) [1] 2861 _Unwind_GetDataRelBase(GCC_3.0) [1] 2862 _Unwind_GetLanguageSpecificData(GCC_3.0) [1] 2863 _Unwind_RaiseException(GCC_3.0) [1] _Unwind_SetIP(GCC_3.0) [1] 2864 _Unwind_Find_FDE(GCC_3.0) [1] _Unwind_GetGR(GCC_3.0) [1] 2865 _Unwind_GetRegionStart(GCC_3.0) [1] _Unwind_Resume(GCC_3.0) 2866 [1] 2867 _Unwind_ForcedUnwind(GCC_3.0) [1] _Unwind_GetIP(GCC_3.0) [1] 2868 _Unwind_GetTextRelBase(GCC_3.0) [1] _Unwind_SetGR(GCC_3.0) [1] 2869 2870 Referenced Specification(s) 2871 2872 [1]. this specification 2873 _________________________________________________________ 2874 2875 1.8. Interface Definitions for libgcc_s 2876 2877 Table of Contents 2878 _Unwind_DeleteException -- private C++ error handling method 2879 _Unwind_Find_FDE -- private C++ error handling method 2880 _Unwind_ForcedUnwind -- private C++ error handling method 2881 _Unwind_GetDataRelBase -- private IA64 C++ error handling 2882 method 2883 2884 _Unwind_GetGR -- private C++ error handling method 2885 _Unwind_GetIP -- private C++ error handling method 2886 _Unwind_GetLanguageSpecificData -- private C++ error handling 2887 method 2888 2889 _Unwind_GetRegionStart -- private C++ error handling method 2890 _Unwind_GetTextRelBase -- private IA64 C++ error handling 2891 method 2892 2893 _Unwind_RaiseException -- private C++ error handling method 2894 _Unwind_Resume -- private C++ error handling method 2895 _Unwind_SetGR -- private C++ error handling method 2896 _Unwind_SetIP -- private C++ error handling method 2897 2898 The following interfaces are included in libgcc_s and are 2899 defined by this specification. Unless otherwise noted, these 2900 interfaces shall be included in the source standard. 2901 2902 Other interfaces listed above for libgcc_s shall behave as 2903 described in the referenced base document. 2904 2905 _Unwind_DeleteException 2906 2907 Name 2908 2909 _Unwind_DeleteException -- private C++ error handling method 2910 2911 Synopsis 2912 2913 void _Unwind_DeleteException((struct _Unwind_Exception 2914 *object)); 2915 2916 Description 2917 2918 _Unwind_DeleteException() deletes the given exception object. 2919 If a given runtime resumes normal execution after catching a 2920 foreign exception, it will not know how to delete that 2921 exception. Such an exception shall be deleted by calling 2922 _Unwind_DeleteException(). This is a convenience function that 2923 calls the function pointed to by the exception_cleanup field 2924 of the exception header. 2925 2926 _Unwind_Find_FDE 2927 2928 Name 2929 2930 _Unwind_Find_FDE -- private C++ error handling method 2931 2932 Synopsis 2933 2934 fde * _Unwind_Find_FDE(void *pc, (struct dwarf_eh_bases 2935 *bases)); 2936 2937 Description 2938 2939 _Unwind_Find_FDE() looks for the object containing pc, then 2940 inserts into bases. 2941 2942 _Unwind_ForcedUnwind 2943 2944 Name 2945 2946 _Unwind_ForcedUnwind -- private C++ error handling method 2947 2948 Synopsis 2949 2950 _Unwind_Reason_Code _Unwind_ForcedUnwind((struct 2951 _Unwind_Exception *object), _Unwind_Stop_Fn stop, void 2952 *stop_parameter); 2953 2954 Description 2955 2956 _Unwind_ForcedUnwind() raises an exception for forced 2957 unwinding, passing along the given exception object, which 2958 should have its exception_class and exception_cleanup fields 2959 set. The exception object has been allocated by the 2960 language-specific runtime, and has a language-specific format, 2961 except that it shall contain an _Unwind_Exception struct. 2962 2963 Forced unwinding is a single-phase process. stop and 2964 stop_parameter control the termination of the unwind process 2965 instead of the usual personality routine query. stop is called 2966 for each unwind frame, with the parameteres described for the 2967 usual personality routine below, plus an additional 2968 stop_parameter. 2969 2970 Return Value 2971 2972 When stop identifies the destination frame, it transfers 2973 control to the user code as appropriate without returning, 2974 normally after calling _Unwind_DeleteException(). If not, then 2975 it should return an _Unwind_Reason_Code value. 2976 2977 If stop returns any reason code other than _URC_NO_REASON, 2978 then the stack state is indeterminate from the point of view 2979 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 2980 to return, therefore, the unwind library should use the 2981 exception_cleanup entry in the exception, and then call 2982 abort(). 2983 2984 _URC_NO_REASON 2985 This is not the destination from. The unwind runtime 2986 will call frame's personality routine with the 2987 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 2988 actions, and then unwind to the next frame and call the 2989 stop() function again. 2990 2991 _URC_END_OF_STACK 2992 In order to allow _Unwind_ForcedUnwind() to perform 2993 special processing when it reaches the end of the 2994 stack, the unwind runtime will call it after the last 2995 frame is rejected, with a NULL stack pointer in the 2996 context, and the stop() function shall catch this 2997 condition. It may return this code if it cannot handle 2998 end-of-stack. 2999 3000 _URC_FATAL_PHASE2_ERROR 3001 The stop() function may return this code for other 3002 fatal conditions like stack corruption. 3003 3004 _Unwind_GetDataRelBase 3005 3006 Name 3007 3008 _Unwind_GetDataRelBase -- private IA64 C++ error handling 3009 method 3010 3011 Synopsis 3012 3013 _Unwind_Ptr _Unwind_GetDataRelBase((struct _Unwind_Context 3014 *context)); 3015 3016 Description 3017 3018 _Unwind_GetDataRelBase() returns the global pointer in 3019 register one for context. 3020 3021 _Unwind_GetGR 3022 3023 Name 3024 3025 _Unwind_GetGR -- private C++ error handling method 3026 3027 Synopsis 3028 3029 _Unwind_Word _Unwind_GetGR((struct _Unwind_Context *context), 3030 int index); 3031 3032 Description 3033 3034 _Unwind_GetGR() returns data at index found in context. The 3035 register is identified by its index: 0 to 31 are for the fixed 3036 registers, and 32 to 127 are for the stacked registers. 3037 3038 During the two phases of unwinding, only GR1 has a guaranteed 3039 value, which is the global pointer of the frame referenced by 3040 the unwind context. If the register has its NAT bit set, the 3041 behavior is unspecified. 3042 3043 _Unwind_GetIP 3044 3045 Name 3046 3047 _Unwind_GetIP -- private C++ error handling method 3048 3049 Synopsis 3050 3051 _Unwind_Ptr _Unwind_GetIP((struct _Unwind_Context *context)); 3052 3053 Description 3054 3055 _Unwind_GetIP() returns the instruction pointer value for the 3056 routine identified by the unwind context. 3057 3058 _Unwind_GetLanguageSpecificData 3059 3060 Name 3061 3062 _Unwind_GetLanguageSpecificData -- private C++ error handling 3063 method 3064 3065 Synopsis 3066 3067 _Unwind_Ptr _Unwind_GetLanguageSpecificData((struct 3068 _Unwind_Context *context), uint value); 3069 3070 Description 3071 3072 _Unwind_GetLanguageSpecificData() returns the address of the 3073 language specific data area for the current stack frame. 3074 3075 _Unwind_GetRegionStart 3076 3077 Name 3078 3079 _Unwind_GetRegionStart -- private C++ error handling method 3080 3081 Synopsis 3082 3083 _Unwind_Ptr _Unwind_GetRegionStart((struct _Unwind_Context 3084 *context)); 3085 3086 Description 3087 3088 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 3089 of the beginning of the procedure or code fragment described 3090 by the current unwind descriptor block. 3091 3092 _Unwind_GetTextRelBase 3093 3094 Name 3095 3096 _Unwind_GetTextRelBase -- private IA64 C++ error handling 3097 method 3098 3099 Synopsis 3100 3101 _Unwind_Ptr _Unwind_GetTextRelBase((struct _Unwind_Context 3102 *context)); 3103 3104 Description 3105 3106 _Unwind_GetTextRelBase() calls the abort method, then returns. 3107 3108 _Unwind_RaiseException 3109 3110 Name 3111 3112 _Unwind_RaiseException -- private C++ error handling method 3113 3114 Synopsis 3115 3116 _Unwind_Reason_Code _Unwind_RaiseException((struct 3117 _Unwind_Exception *object)); 3118 3119 Description 3120 3121 _Unwind_RaiseException() raises an exception, passing along 3122 the given exception object, which should have its 3123 exception_class and exception_cleanup fields set. The 3124 exception object has been allocated by the language-specific 3125 runtime, and has a language-specific format, exception that it 3126 shall contain an _Unwind_Exception. 3127 3128 Return Value 3129 3130 _Unwind_RaiseException() does not return unless an error 3131 condition is found. If an error condition occurs, an 3132 _Unwind_Reason_Code is returnd: 3133 3134 _URC_END_OF_STACK 3135 The unwinder encountered the end of the stack during 3136 phase one without finding a handler. The unwind runtime 3137 will not have modified the stack. The C++ runtime will 3138 normally call uncaught_exception() in this case. 3139 3140 _URC_FATAL_PHASE1_ERROR 3141 The unwinder encountered an unexpected error during 3142 phase one, because of something like stack corruption. 3143 The unwind runtime will not have modified the stack. 3144 The C++ runtime will normally call terminate() in this 3145 case. 3146 3147 _URC_FATAL_PHASE2_ERROR 3148 The unwinder encountered an unexpected error during 3149 phase two. This is usually a throw, which will call 3150 terminate(). 3151 3152 _Unwind_Resume 3153 3154 Name 3155 3156 _Unwind_Resume -- private C++ error handling method 3157 3158 Synopsis 3159 3160 void _Unwind_Resume((struct _Unwind_Exception *object)); 3161 3162 Description 3163 3164 _Unwind_Resume() resumes propagation of an existing exception 3165 object. A call to this routine is inserted as the end of a 3166 landing pad that performs cleanup, but does not resume normal 3167 execution. It causes unwinding to proceed further. 3168 3169 _Unwind_SetGR 3170 3171 Name 3172 3173 _Unwind_SetGR -- private C++ error handling method 3174 3175 Synopsis 3176 3177 void _Unwind_SetGR((struct _Unwind_Context *context), int 3178 index, uint value); 3179 3180 Description 3181 3182 _Unwind_SetGR() sets the value of the register indexed for the 3183 routine ident