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