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