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