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