1 2 Linux Standard Base Core Specification for IA64 2.1 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 2.1 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 IEEE Std 754-1985 IEEE Standard 754 for Binary Floating-Point 220 Arithmetic http://www.ieee.org/ 221 Intel® Itanium (TM) Processor-specific Application Binary 222 Interface Intel® Itanium (TM) Processor-specific Application 223 Binary Interface 224 http://refspecs.freestandards.org/elf/IA64-SysV-psABI.pdf 225 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 226 ISO POSIX (2003) 227 228 ISO/IEC 9945-1:2003 Information technology -- Portable 229 Operating System Interface (POSIX) -- Part 1: Base Definitions 230 231 ISO/IEC 9945-2:2003 Information technology -- Portable 232 Operating System Interface (POSIX) -- Part 2: System 233 Interfaces 234 235 ISO/IEC 9945-3:2003 Information technology -- Portable 236 Operating System Interface (POSIX) -- Part 3: Shell and 237 Utilities 238 239 ISO/IEC 9945-4:2003 Information technology -- Portable 240 Operating System Interface (POSIX) -- Part 4: Rationale 241 http://www.unix.org/version3/ 242 Itanium (TM) Architecture Software Developer's Manual Volume 1 243 Itanium (TM) Architecture Software Developer's Manual Volume 244 1: Application Architecture 245 http://refspecs.freestandards.org/IA64-softdevman-vol1.pdf 246 Itanium (TM) Architecture Software Developer's Manual Volume 2 247 Itanium (TM) Architecture Software Developer's Manual Volume 248 2: System Architecture 249 http://refspecs.freestandards.org/IA64-softdevman-vol2.pdf 250 Itanium (TM) Architecture Software Developer's Manual Volume 3 251 Itanium (TM) Architecture Software Developer's Manual Volume 252 3: Instruction Set Reference 253 http://refspecs.freestandards.org/IA64-softdevman-vol3.pdf 254 Itanium (TM) Architecture Software Developer's Manual Volume 4 255 IA-64 Processor Reference: Intel® Itanium (TM) Processor 256 Reference Manual for Software Development 257 http://refspecs.freestandards.org/IA64-softdevman-vol4.pdf 258 Itanium (TM) Software Conventions and Runtime Guide Itanium 259 (TM) Software Conventions & Runtime Architecture Guide, 260 September 2000 261 http://refspecs.freestandards.org/IA64conventions.pdf 262 ITU-T V.42 International Telecommunication Union 263 Recommendation V.42 (2002): Error-correcting procedures for 264 DCEs using asynchronous-to-synchronous conversionITUV 265 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 266 parent=T-REC-V.42 267 Large File Support Large File Support 268 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 269 Li18nux Globalization Specification LI18NUX 2000 Globalization 270 Specification, Version 1.0 with Amendment 4 271 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 272 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 273 http://www.lanana.org/docs/device-list/devices.txt 274 PAM Open Software Foundation, Request For Comments: 86.0 , 275 October 1995, V. Samar & R.Schemers (SunSoft) 276 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 277 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 278 MD5 Message-Digest Algorithm 279 http://www.ietf.org/rfc/rfc1321.txt 280 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 281 1833: Binding Protocols for ONC RPC Version 2 282 http://www.ietf.org/rfc/rfc1833.txt 283 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 284 1950: ZLIB Compressed Data Format Specification 285 http://www.ietf.org/rfc/rfc1950.txt 286 RFC 1951: DEFLATE Compressed Data Format Specification IETF 287 RFC 1951: DEFLATE Compressed Data Format Specification version 288 1.3 http://www.ietf.org/rfc/rfc1951.txt 289 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 290 file format specification version 4.3 291 http://www.ietf.org/rfc/rfc1952.txt 292 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 293 Message Format http://www.ietf.org/rfc/rfc2440.txt 294 SUSv2 CAE Specification, January 1997, System Interfaces and 295 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 296 http://www.opengroup.org/publications/catalog/un.htm 297 SUSv2 Command and Utilities The Single UNIX® 298 Specification(SUS) Version 2, Commands and Utilities (XCU), 299 Issue 5 (ISBN: 1-85912-191-8, C604) 300 http://www.opengroup.org/publications/catalog/un.htm 301 SVID Issue 3 American Telephone and Telegraph Company, System 302 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 303 1989.(ISBN 0201566524) 304 SVID Issue 4 System V Interface Definition,Fourth Edition 305 System V ABI System V Application Binary Interface, Edition 306 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 307 System V ABI Update System V Application Binary Interface - 308 DRAFT - 17 December 2003 309 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 310 l 311 this specification Linux Standard Base 312 http://www.linuxbase.org/spec/ 313 X/Open Curses CAE Specification, May 1996, X/Open Curses, 314 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 315 Corrigendum U018 316 http://www.opengroup.org/publications/catalog/un.htm 317 _________________________________________________________ 318 319 Chapter 3. Requirements 320 321 3.1. Relevant Libraries 322 323 The libraries listed in Table 3-1 shall be available on IA64 324 Linux Standard Base systems, with the specified runtime names. 325 These names override or supplement the names specified in the 326 generic LSB specification. The specified program interpreter, 327 referred to as proginterp in this table, shall be used to load 328 the shared libraries specified by DT_NEEDED entries at run 329 time. 330 331 Table 3-1. Standard Library Names 332 Library Runtime Name 333 libm libm.so.6.1 334 libdl libdl.so.2 335 libcrypt libcrypt.so.1 336 libz libz.so.1 337 libncurses libncurses.so.5 338 libutil libutil.so.1 339 libc libc.so.6.1 340 libpthread libpthread.so.0 341 proginterp /lib/ld-lsb-ia64.so.2 342 libgcc_s libgcc_s.so.1 343 344 These libraries will be in an implementation-defined directory 345 which the dynamic linker shall search by default. 346 _________________________________________________________ 347 348 3.2. LSB Implementation Conformance 349 350 A conforming implementation shall satisfy the following 351 requirements: 352 353 * The implementation shall implement fully the architecture 354 described in the hardware manual for the target processor 355 architecture. 356 * The implementation shall be capable of executing compiled 357 applications having the format and using the system 358 interfaces described in this document. 359 * The implementation shall provide libraries containing the 360 interfaces specified by this document, and shall provide a 361 dynamic linking mechanism that allows these interfaces to 362 be attached to applications at runtime. All the interfaces 363 shall behave as specified in this document. 364 * The map of virtual memory provided by the implementation 365 shall conform to the requirements of this document. 366 * The implementation's low-level behavior with respect to 367 function call linkage, system traps, signals, and other 368 such activities shall conform to the formats described in 369 this document. 370 * The implementation shall provide all of the mandatory 371 interfaces in their entirety. 372 * The implementation may provide one or more of the optional 373 interfaces. Each optional interface that is provided shall 374 be provided in its entirety. The product documentation 375 shall state which optional interfaces are provided. 376 * The implementation shall provide all files and utilities 377 specified as part of this document in the format defined 378 here and in other referenced documents. All commands and 379 utilities shall behave as required by this document. The 380 implementation shall also provide all mandatory components 381 of an application's runtime environment that are included 382 or referenced in this document. 383 * The implementation, when provided with standard data 384 formats and values at a named interface, shall provide the 385 behavior defined for those values and data formats at that 386 interface. However, a conforming implementation may 387 consist of components which are separately packaged and/or 388 sold. For example, a vendor of a conforming implementation 389 might sell the hardware, operating system, and windowing 390 system as separately packaged items. 391 * The implementation may provide additional interfaces with 392 different names. It may also provide additional behavior 393 corresponding to data values outside the standard ranges, 394 for standard named interfaces. 395 _________________________________________________________ 396 397 3.3. LSB Application Conformance 398 399 A conforming application shall satisfy the following 400 requirements: 401 402 * Its executable files are either shell scripts or object 403 files in the format defined for the Object File Format 404 system interface. 405 * Its object files participate in dynamic linking as defined 406 in the Program Loading and Linking System interface. 407 * It employs only the instructions, traps, and other 408 low-level facilities defined in the Low-Level System 409 interface as being for use by applications. 410 * If it requires any optional interface defined in this 411 document in order to be installed or to execute 412 successfully, the requirement for that optional interface 413 is stated in the application's documentation. 414 * It does not use any interface or data format that is not 415 required to be provided by a conforming implementation, 416 unless: 417 + If such an interface or data format is supplied by 418 another application through direct invocation of that 419 application during execution, that application is in 420 turn an LSB conforming application. 421 + The use of that interface or data format, as well as 422 its source, is identified in the documentation of the 423 application. 424 * It shall not use any values for a named interface that are 425 reserved for vendor extensions. 426 427 A strictly conforming application does not require or use any 428 interface, facility, or implementation-defined extension that 429 is not defined in this document in order to be installed or to 430 execute successfully. 431 _________________________________________________________ 432 433 Chapter 4. Definitions 434 435 For the purposes of this document, the following definitions, 436 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 437 Edition, apply: 438 439 can 440 be able to; there is a possibility of; it is possible 441 to 442 443 cannot 444 be unable to; there is no possibilty of; it is not 445 possible to 446 447 may 448 is permitted; is allowed; is permissible 449 450 need not 451 it is not required that; no...is required 452 453 shall 454 is to; is required to; it is required that; has to; 455 only...is permitted; it is necessary 456 457 shall not 458 is not allowed [permitted] [acceptable] [permissible]; 459 is required to be not; is required that...be not; is 460 not to be 461 462 should 463 it is recommended that; ought to 464 465 should not 466 it is not recommended that; ought not to 467 _________________________________________________________ 468 469 Chapter 5. Terminology 470 471 For the purposes of this document, the following terms apply: 472 473 archLSB 474 The architectural part of the LSB Specification which 475 describes the specific parts of the interface that are 476 platform specific. The archLSB is complementary to the 477 gLSB. 478 479 Binary Standard 480 The total set of interfaces that are available to be 481 used in the compiled binary code of a conforming 482 application. 483 484 gLSB 485 The common part of the LSB Specification that describes 486 those parts of the interface that remain constant 487 across all hardware implementations of the LSB. 488 489 implementation-defined 490 Describes a value or behavior that is not defined by 491 this document but is selected by an implementor. The 492 value or behavior may vary among implementations that 493 conform to this document. An application should not 494 rely on the existence of the value or behavior. An 495 application that relies on such a value or behavior 496 cannot be assured to be portable across conforming 497 implementations. The implementor shall document such a 498 value or behavior so that it can be used correctly by 499 an application. 500 501 Shell Script 502 A file that is read by an interpreter (e.g., awk). The 503 first line of the shell script includes a reference to 504 its interpreter binary. 505 506 Source Standard 507 The set of interfaces that are available to be used in 508 the source code of a conforming application. 509 510 undefined 511 Describes the nature of a value or behavior not defined 512 by this document which results from use of an invalid 513 program construct or invalid data input. The value or 514 behavior may vary among implementations that conform to 515 this document. An application should not rely on the 516 existence or validity of the value or behavior. An 517 application that relies on any particular value or 518 behavior cannot be assured to be portable across 519 conforming implementations. 520 521 unspecified 522 Describes the nature of a value or behavior not 523 specified by this document which results from use of a 524 valid program construct or valid data input. The value 525 or behavior may vary among implementations that conform 526 to this document. An application should not rely on the 527 existence or validity of the value or behavior. An 528 application that relies on any particular value or 529 behavior cannot be assured to be portable across 530 conforming implementations. 531 532 Other terms and definitions used in this document shall have 533 the same meaning as defined in Chapter 3 of the Base 534 Definitions volume of ISO POSIX (2003). 535 _________________________________________________________ 536 537 Chapter 6. Documentation Conventions 538 539 Throughout this document, the following typographic 540 conventions are used: 541 542 function() 543 the name of a function 544 545 command 546 the name of a command or utility 547 548 CONSTANT 549 a constant value 550 551 parameter 552 a parameter 553 554 variable 555 a variable 556 557 Throughout this specification, several tables of interfaces 558 are presented. Each entry in these tables has the following 559 format: 560 561 name 562 the name of the interface 563 564 (symver) 565 An optional symbol version identifier, if required. 566 567 [refno] 568 A reference number indexing the table of referenced 569 specifications that follows this table. 570 571 For example, 572 573 forkpty(GLIBC_2.0) [1] 574 575 refers to the interface named forkpty() with symbol version 576 GLIBC_2.0 that is defined in the first of the listed 577 references below the table. 578 579 ELF Specification 580 _________________________________________________________ 581 582 Table of Contents 583 I. Low Level System Information 584 585 1. Machine Interface 586 587 1.1. Processor Architecture 588 1.2. Data Representation 589 590 2. Function Calling Sequence 591 592 2.1. CPU Registers 593 2.2. Floating Point Registers 594 2.3. Stack Frame 595 2.4. Arguments 596 2.5. Return Values 597 598 3. Operating System Interface 599 600 3.1. Processor Execution Mode 601 3.2. Exception Interface 602 3.3. Signal Delivery 603 604 4. Process Initialization 605 606 4.1. Special Registers 607 4.2. Process Stack (on entry) 608 4.3. Auxiliary Vector 609 4.4. Environment 610 611 5. Coding Examples 612 613 5.1. Code Model Overview/Architecture Constraints 614 5.2. Position-Independent Function Prologue 615 5.3. Data Objects 616 5.4. Function Calls 617 5.5. Branching 618 619 6. C Stack Frame 620 621 6.1. Variable Argument List 622 6.2. Dynamic Allocation of Stack Space 623 624 7. Debug Information 625 626 II. Object Format 627 628 8. ELF Header 629 630 8.1. Machine Information 631 632 9. Sections 633 634 9.1. Special Sections 635 9.2. Linux Special Sections 636 9.3. Section Types 637 9.4. Section Attribute Flags 638 9.5. Special Section Types 639 640 10. Symbol Table 641 11. Relocation 642 643 11.1. Relocation Types 644 645 III. Program Loading and Dynamic Linking 646 647 12. Program Header 648 649 12.1. Types 650 12.2. Flags 651 652 13. Program Loading 653 14. Dynamic Linking 654 655 14.1. Dynamic Entries 656 14.2. Global Offset Table 657 14.3. Shared Object Dependencies 658 14.4. Function Addresses 659 14.5. Procedure Linkage Table 660 14.6. Initialization and Termination Functions 661 662 List of Figures 663 1-1. Structure Smaller Than A Word 664 1-2. No Padding 665 1-3. Internal and Tail Padding 666 1-4. Bit-Field Ranges 667 668 List of Tables 669 1-1. Scalar Types 670 8-1. Additional Processor-Specific Flags 671 9-1. ELF Special Sections 672 9-2. Additional Special Sections 673 674 I. Low Level System Information 675 676 Table of Contents 677 1. Machine Interface 678 2. Function Calling Sequence 679 3. Operating System Interface 680 4. Process Initialization 681 5. Coding Examples 682 6. C Stack Frame 683 7. Debug Information 684 _________________________________________________________ 685 686 Chapter 1. Machine Interface 687 688 1.1. Processor Architecture 689 690 The Itanium(TM) Architecture is specified by the following 691 documents 692 693 * Itanium (TM) Architecture Software Developer's Manual 694 Volume 1 695 * Itanium (TM) Architecture Software Developer's Manual 696 Volume 2 697 * Itanium (TM) Architecture Software Developer's Manual 698 Volume 3 699 * Itanium (TM) Architecture Software Developer's Manual 700 Volume 4 701 * Itanium (TM) Software Conventions and Runtime Guide 702 * Intel® Itanium (TM) Processor-specific Application Binary 703 Interface 704 705 Only the features of the Itanium(TM) processor instruction set 706 may be assumed to be present. An application is responsible 707 for determining if any additional instruction set features are 708 available before using those additional features. If a feature 709 is not present, then the application may not use it. 710 711 Only instructions which do not require elevated privileges may 712 be used. 713 714 Applications may not make system calls directly. The 715 interfaces in the C library must be used instead. 716 717 There are some features of the Itanium(TM) processor 718 architecture that need not be supported by a conforming 719 implementation. These are described in this chapter. A 720 conforming application shall not rely on these features. 721 722 Applications conforming to this specification must provide 723 feedback to the user if a feature that is required for correct 724 execution of the application is not present. Applications 725 conforming to this specification should attempt to execute in 726 a diminished capacity if a required feature is not present. 727 728 This specfication does not provide any performance guarantees 729 of a conforming system. A system conforming to this 730 specification may be implemented in either hardware or 731 software. 732 733 This specification describes only LP64 (i.e. 32-bit integers, 734 64-bit longs and pointers) based implementations. 735 Implementations may also provide ILP32 (32-bit integers, 736 longs, and pointers), but conforming applications shall not 737 rely on support for ILP32. See section 1.2 of the Intel® 738 Itanium (TM) Processor-specific Application Binary Interface 739 for further information. 740 _________________________________________________________ 741 742 1.2. Data Representation 743 744 See Itanium (TM) Software Conventions and Runtime Guide 745 Chapter 4. 746 747 Within this specification, the term byte refers to an 8-bit 748 object, the term halfword refers to a 16-bit object, the term 749 word refers to a 32-bit object, the term doubleword refers to 750 a 64-bit object, and the term quadword refers to a 128-bit 751 object. Although the Itanium(TM) architecture also supports 752 120-bit addressable objects, this specification does not 753 require LSB-conforming implementations to provide support for 754 these objects. 755 _________________________________________________________ 756 757 1.2.1. Byte Ordering 758 759 LSB-conforming applications shall use little-endian byte 760 ordering. LSB-conforming implementations may support 761 big-endian applications. 762 _________________________________________________________ 763 764 1.2.2. Fundamental Types 765 766 Table 2-1 describes how fundemental C language data types 767 shall be represented: 768 769 Table 1-1. Scalar Types 770 Type C sizeof Alignment (bytes) Notes 771 Integral char 1 1 772 signed char 773 unsigned char 774 short 2 2 775 signed short 776 unsigned short 777 int 4 4 778 signed int 779 unsigned int 780 long 8 8 781 signed long 782 unsigned long 783 long long 8 8 See Note Below 784 signed long long 785 unsigned long long 786 Pointer any-type * 8 8 787 any-type (*)() 788 Floating-Point float 4 4 789 double 8 8 790 long double 16 16 791 792 Note: Support for the long long data type is dependent on 793 support for ISO9899:1999 C language. This standard is not 794 required for LSB-conformance, but this data type is 795 important when developing applications for the Itanium(TM) 796 architecture. The GNU Compiler Collection (gcc) includes 797 support for long long of ISO9899:1999. 798 799 A null pointer (for all types) shall have the value zero. 800 _________________________________________________________ 801 802 1.2.3. Aggregates and Unions 803 804 Aggregates (structures and arrays) and unions assume the 805 alignment of their most strictly aligned component. The size 806 of any object, including aggregates and unions, shall always 807 be a multiple of the object's alignment. An array uses the 808 same alignment as its elements. Structure and union objects 809 may require padding to meet size and element constraints. The 810 contents of such padding is undefined. 811 812 * An entire structure or union object shall be aligned on 813 the same boundary as its most strictly aligned member. 814 * Each member shall be assigned to the lowest available 815 offset with the appropriate alignment. This may require 816 internal padding, depending on the previous member. 817 * A structure's size shall be increased, if necessary, to 818 make it a multiple of the alignment. This may require tail 819 padding, depending on the last member. 820 821 A conforming application shall not read padding. 822 823 struct { 824 char c; 825 } 826 827 Byte aligned, sizeof is 1 828 Offset Byte 0 829 0 c^0 830 831 Figure 1-1. Structure Smaller Than A Word 832 833 struct { 834 char c; 835 char d; 836 short s; 837 int i; 838 long l; 839 } 840 841 Doubleword Aligned, sizeof is 16 842 Offset Byte 3 Byte 2 Byte 1 Byte 0 843 0 s^2 d^1 c^0 844 4 i^0 845 8 l^0 846 12 847 848 Figure 1-2. No Padding 849 850 struct { 851 char c; 852 long l; 853 int i; 854 short s; 855 } 856 857 Doubleword Aligned, sizeof is 24 858 Offset Byte 3 Byte 2 Byte 1 Byte 0 859 0 pad^1 c^0 860 4 pad^1 861 8 l^0 862 12 863 16 i^0 864 20 pad^2 s^0 865 866 Figure 1-3. Internal and Tail Padding 867 _________________________________________________________ 868 869 1.2.4. Bit Fields 870 871 C struct and union definitions may have bit-fields, which 872 define integral objects with a specified number of bits. 873 874 Bit fields that are declared with neither signed nor unsigned 875 specifier shall always be treated as unsigned. Bit fields obey 876 the same size and alignment rules as other structure and union 877 members, with the following additional properties: 878 879 * Bit-fields are allocated from right to left (least to most 880 significant). 881 * A bit-field must entirely reside in a storage unit for its 882 appropriate type. A bit field shall never cross its unit 883 boundary. 884 * Bit-fields may share a storage unit with other 885 struct/union members, including members that are not bit 886 fields. Such other struct/union members shall occupy 887 different parts of the storage unit. 888 * The type of unnamed bit-fields shall not affect the 889 alignment of a structure or union, although individual 890 bit-field member offsets shall obey the alignment 891 constraints. 892 893 Bit-field Type Width w Range 894 signed char 895 char 896 unsigned char 897 898 1 to 8 899 -2^w-1 to 2^w-1-1 900 0 to 2^w-1 901 0 to 2^w-1 902 903 signed short 904 short 905 unsigned short 906 907 1 to 16 908 -2^w-1 to 2^w-1-1 909 0 to 2^w-1 910 0 to 2^w-1 911 912 signed int 913 int 914 unsigned int 915 916 1 to 32 917 -2^w-1 to 2^w-1-1 918 0 to 2^w-1 919 0 to 2^w-1 920 921 signed long 922 long 923 unsigned long 924 925 1 to 64 926 -2^w-1 to 2^w-1-1 927 0 to 2^w-1 928 0 to 2^w-1 929 930 Figure 1-4. Bit-Field Ranges 931 _________________________________________________________ 932 933 Chapter 2. Function Calling Sequence 934 935 LSB-conforming applications shall use the procedure linkage 936 and function calling sequence as defined in Chapter 8.4 of the 937 Itanium (TM) Software Conventions and Runtime Guide. 938 _________________________________________________________ 939 940 2.1. CPU Registers 941 942 The CPU general and other registers are as defined in the 943 Itanium (TM) Architecture Software Developer's Manual Volume 1 944 Section 3.1. 945 _________________________________________________________ 946 947 2.2. Floating Point Registers 948 949 The floating point registers are as defined in the Itanium 950 (TM) Architecture Software Developer's Manual Volume 1 Section 951 3.1. 952 _________________________________________________________ 953 954 2.3. Stack Frame 955 956 The stackframe layout is as described in the Itanium (TM) 957 Software Conventions and Runtime Guide Chapter 8.4. 958 _________________________________________________________ 959 960 2.4. Arguments 961 962 The procedure argument passing mechanism is as described in 963 the Itanium (TM) Software Conventions and Runtime Guide 964 Chapter 8.5. 965 _________________________________________________________ 966 967 2.4.1. Integral/Pointer 968 969 See Itanium (TM) Software Conventions and Runtime Guide 970 Chapter 8.5. 971 _________________________________________________________ 972 973 2.4.2. Floating Point 974 975 See Itanium (TM) Software Conventions and Runtime Guide 976 Chapter 8.5. 977 _________________________________________________________ 978 979 2.4.3. Struct and Union Point 980 981 See Itanium (TM) Software Conventions and Runtime Guide 982 Chapter 8.5. 983 _________________________________________________________ 984 985 2.4.4. Variable Arguments 986 987 See Itanium (TM) Software Conventions and Runtime Guide 988 Chapter 8.5.4. 989 _________________________________________________________ 990 991 2.5. Return Values 992 993 See Itanium (TM) Software Conventions and Runtime Guide 994 Chapter 8.6. 995 _________________________________________________________ 996 997 2.5.1. Void 998 999 Functions that return no value (void functions) are not 1000 required to put any particular value in any general register. 1001 _________________________________________________________ 1002 1003 2.5.2. Integral/Pointer 1004 1005 See Itanium (TM) Software Conventions and Runtime Guide 1006 Chapter 8.6. 1007 _________________________________________________________ 1008 1009 2.5.3. Floating Point 1010 1011 See Itanium (TM) Software Conventions and Runtime Guide 1012 Chapter 8.6. 1013 _________________________________________________________ 1014 1015 2.5.4. Struct and Union 1016 1017 See Itanium (TM) Software Conventions and Runtime Guide 1018 Chapter 8.6 (aggregate return values). Depending on the size 1019 (including any padding), aggregate data types may be passed in 1020 one or more general registers, or in memory. 1021 _________________________________________________________ 1022 1023 Chapter 3. Operating System Interface 1024 1025 LSB-conforming applications shall use the Operating System 1026 Interfaces as defined in Chapter 3 of the Intel® Itanium (TM) 1027 Processor-specific Application Binary Interface. 1028 _________________________________________________________ 1029 1030 3.1. Processor Execution Mode 1031 1032 Applications must assume that they will execute in the least 1033 privileged user mode (i.e. level 3). Other privilege levels 1034 are reserved for the Operating System. 1035 _________________________________________________________ 1036 1037 3.2. Exception Interface 1038 1039 See Intel® Itanium (TM) Processor-specific Application Binary 1040 Interface, section 3.3.1. 1041 _________________________________________________________ 1042 1043 3.2.1. Hardware Exception Types 1044 1045 See Intel® Itanium (TM) Processor-specific Application Binary 1046 Interface, section 3.3.1. 1047 _________________________________________________________ 1048 1049 3.2.2. Software Trap Types 1050 1051 See Intel® Itanium (TM) Processor-specific Application Binary 1052 Interface, section 3.3.1. 1053 _________________________________________________________ 1054 1055 3.2.3. Debugging Support 1056 1057 See Intel® Itanium (TM) Processor-specific Application Binary 1058 Interface, section 3.3.4. 1059 _________________________________________________________ 1060 1061 3.2.4. Process Startup 1062 1063 See Intel® Itanium (TM) Processor-specific Application Binary 1064 Interface, section 3.3.5. 1065 _________________________________________________________ 1066 1067 3.3. Signal Delivery 1068 1069 See Intel® Itanium (TM) Processor-specific Application Binary 1070 Interface, section 3.3.2. 1071 _________________________________________________________ 1072 1073 3.3.1. Signal Handler Interface 1074 1075 See Intel® Itanium (TM) Processor-specific Application Binary 1076 Interface, section 3.3.3. 1077 _________________________________________________________ 1078 1079 Chapter 4. Process Initialization 1080 1081 LSB-conforming applications shall use the Process Startup as 1082 defined in Section 3.3.5 of the Intel® Itanium (TM) 1083 Processor-specific Application Binary Interface. 1084 _________________________________________________________ 1085 1086 4.1. Special Registers 1087 1088 Intel® Itanium (TM) Processor-specific Application Binary 1089 Interface, section 3.3.5, defines required register 1090 initializations for process startup. 1091 _________________________________________________________ 1092 1093 4.2. Process Stack (on entry) 1094 1095 As defined in Intel® Itanium (TM) Processor-specific 1096 Application Binary Interface, section 3.3.5, the return 1097 pointer register (rp) shall contain a valid return address, 1098 such that if the application program returns from the main 1099 entry routine, the implementation shall cause the application 1100 to exit normally, using the returned value as the exit status. 1101 Further, the unwind information for this "bottom of stack" 1102 routine in the implementation shall provide a mechanism for 1103 recognizing the bottom of the stack during a stack unwind. 1104 _________________________________________________________ 1105 1106 4.3. Auxiliary Vector 1107 1108 The auxiliary vector conveys information from the operating 1109 system to the application. Only the terminating null auxiliary 1110 vector entry is required, but if any other entries are 1111 present, they shall be interpreted as follows. This vector is 1112 an array of the following structures. 1113 typedef struct 1114 { 1115 long int a_type; /* Entry type */ 1116 union 1117 { 1118 long int a_val; /* Integer value */ 1119 void *a_ptr; /* Pointer value */ 1120 void (*a_fcn) (void); /* Function pointer value */ 1121 } a_un; 1122 } auxv_t; 1123 1124 The application shall interpret the a_un value according to 1125 the a_type. Other auxiliary vector types are reserved. 1126 1127 The a_type field shall contain one of the following values: 1128 1129 AT_NULL 1130 The last entry in the array has type AT_NULL. The value 1131 in a_un is undefined. 1132 1133 AT_IGNORE 1134 The value in a_un is undefined, and should be ignored. 1135 1136 AT_EXECFD 1137 File descriptor of program 1138 1139 AT_PHDR 1140 Program headers for program 1141 1142 AT_PHENT 1143 Size of program header entry 1144 1145 AT_PHNUM 1146 Number of program headers 1147 1148 AT_PAGESZ 1149 System page size 1150 1151 AT_BASE 1152 Base address of interpreter 1153 1154 AT_FLAGS 1155 Flags 1156 1157 AT_ENTRY 1158 Entry point of program 1159 1160 AT_NOTELF 1161 Program is not ELF 1162 1163 AT_UID 1164 Real uid 1165 1166 AT_EUID 1167 Effective uid 1168 1169 AT_GID 1170 Real gid 1171 1172 AT_EGID 1173 Effective gid 1174 1175 AT_CLKTCK 1176 Frequency of times() 1177 1178 AT_PLATFORM 1179 String identifying platform. 1180 1181 AT_HWCAP 1182 Machine dependent hints about processor capabilities. 1183 1184 AT_FPUCW 1185 Used FPU control word 1186 1187 AT_DCACHEBSIZE 1188 Data cache block size 1189 1190 AT_ICACHEBSIZE 1191 Instruction cache block size 1192 1193 AT_UCACHEBSIZE 1194 Unified cache block size 1195 1196 Note: The auxiliary vector is intended for passing 1197 information from the operating system to the program 1198 interpreter. 1199 _________________________________________________________ 1200 1201 4.4. Environment 1202 1203 Although a pointer to the environment vector should be 1204 available as a third argument to the main() entry point, 1205 conforming applications should use getenv() to access the 1206 environment. (See ISO POSIX (2003), Section exec()). 1207 _________________________________________________________ 1208 1209 Chapter 5. Coding Examples 1210 1211 LSB-conforming applications may implement fundamental 1212 operations using the Coding Examples as shown below. 1213 1214 Sample code sequences and coding conventions can be found in 1215 Itanium (TM) Software Conventions and Runtime Guide, Chapter 1216 9. 1217 _________________________________________________________ 1218 1219 5.1. Code Model Overview/Architecture Constraints 1220 1221 As defined in Intel® Itanium (TM) Processor-specific 1222 Application Binary Interface, relocatable files, executable 1223 files, and shared object files that are supplied as part of an 1224 application must use Position Independent Code, as described 1225 in Itanium (TM) Software Conventions and Runtime Guide, 1226 Chapter 12. 1227 _________________________________________________________ 1228 1229 5.2. Position-Independent Function Prologue 1230 1231 See Itanium (TM) Software Conventions and Runtime Guide, 1232 Chapter 8.4. 1233 _________________________________________________________ 1234 1235 5.3. Data Objects 1236 1237 See Intel® Itanium (TM) Processor-specific Application Binary 1238 Interface, Chapter 5.3.4, and Itanium (TM) Software 1239 Conventions and Runtime Guide, Chapter 12.3. 1240 _________________________________________________________ 1241 1242 5.3.1. Absolute Load & Store 1243 1244 Conforming applications shall not use absolute addressing. 1245 _________________________________________________________ 1246 1247 5.3.2. Position Relative Load & Store 1248 1249 See Intel® Itanium (TM) Processor-specific Application Binary 1250 Interface, Chapter 5.3.4. 1251 _________________________________________________________ 1252 1253 5.4. Function Calls 1254 1255 See Itanium (TM) Software Conventions and Runtime Guide, 1256 Chapter 8.4. 1257 1258 Four types of procedure call are defined in Itanium (TM) 1259 Software Conventions and Runtime Guide, Chapter 8.3. Although 1260 special calling conventions are permitted, provided that the 1261 compiler and runtime library agree on these conventions, none 1262 are defined for this standard. Consequently, no application 1263 shall depend on a type of procedure call other than Direct 1264 Calls, Direct Dynamically Linked Calls, or Indirect Calls, as 1265 defined in Itanium (TM) Software Conventions and Runtime 1266 Guide, Chapter 8.3. 1267 _________________________________________________________ 1268 1269 5.4.1. Absolute Direct Function Call 1270 1271 Conforming applications shall not use absolute addressing. 1272 _________________________________________________________ 1273 1274 5.4.2. Absolute Indirect Function Call 1275 1276 Conforming applications shall not use absolute addressing. 1277 _________________________________________________________ 1278 1279 5.4.3. Position-Independent Direct Function Call 1280 1281 See Itanium (TM) Software Conventions and Runtime Guide, 1282 Chapter 8.4.1. 1283 _________________________________________________________ 1284 1285 5.4.4. Position-Independent Indirect Function Call 1286 1287 See Itanium (TM) Software Conventions and Runtime Guide, 1288 Chapter 8.4.2. 1289 _________________________________________________________ 1290 1291 5.5. Branching 1292 1293 Branching is described in Itanium (TM) Architecture Software 1294 Developer's Manual Volume 4, Chapter 4.5. 1295 _________________________________________________________ 1296 1297 5.5.1. Branch Instruction 1298 1299 See Itanium (TM) Architecture Software Developer's Manual 1300 Volume 4, Chapter 4.5. 1301 _________________________________________________________ 1302 1303 5.5.2. Absolute switch() code 1304 1305 Conforming applications shall not use absolute addressing. 1306 _________________________________________________________ 1307 1308 5.5.3. Position-Independent switch() code 1309 1310 Where there are several possible targets for a branch, the 1311 compiler may use a number of different code generation 1312 strategies. See Itanium (TM) Software Conventions and Runtime 1313 Guide, Chapter 9.1.7. 1314 _________________________________________________________ 1315 1316 Chapter 6. C Stack Frame 1317 1318 6.1. Variable Argument List 1319 1320 See Itanium (TM) Software Conventions and Runtime Guide, 1321 Chapter 8.5.2, and 8.5.4. 1322 _________________________________________________________ 1323 1324 6.2. Dynamic Allocation of Stack Space 1325 1326 The C library alloca() function should be used to dynamically 1327 allocate stack space. 1328 _________________________________________________________ 1329 1330 Chapter 7. Debug Information 1331 1332 The LSB does not currently specify the format of Debug 1333 information. 1334 1335 II. Object Format 1336 1337 LSB-conforming implementations shall support an object file , 1338 called Executable and Linking Format (ELF) as defined by the 1339 System V ABI, Intel® Itanium (TM) Processor-specific 1340 Application Binary Interface and as supplemented by the Linux 1341 Standard Base Specification and this document. 1342 1343 Table of Contents 1344 8. ELF Header 1345 9. Sections 1346 10. Symbol Table 1347 11. Relocation 1348 _________________________________________________________ 1349 1350 Chapter 8. ELF Header 1351 1352 8.1. Machine Information 1353 1354 LSB-conforming applications shall use the Machine Information 1355 as defined in Intel® Itanium (TM) Processor-specific 1356 Application Binary Interface, Chapter 4. Implementations shall 1357 support the LP64 model. It is unspecified whether or not the 1358 ILP32 model shall also be supported. 1359 _________________________________________________________ 1360 1361 8.1.1. File Class 1362 1363 For LP64 relocatable objects, the file class value in 1364 e_ident[EI_CLASS] may be either ELFCLASS32 or ELFCLASS64, and 1365 a conforming linker must be able to process either or both 1366 classes. 1367 _________________________________________________________ 1368 1369 8.1.2. Data Encoding 1370 1371 Implementations shall support 2's complement, little endian 1372 data encoding. The data encoding value in e_ident[EI_DATA] 1373 shall contain the value ELFDATA2LSB. 1374 _________________________________________________________ 1375 1376 8.1.3. OS Identification 1377 1378 The OS Identification field e_ident[EI_OSABI] shall contain 1379 the value ELFOSABI_LINUX. 1380 _________________________________________________________ 1381 1382 8.1.4. Processor Identification 1383 1384 The processor identification value held in e_machine shall 1385 contain the value EM_IA_64. 1386 _________________________________________________________ 1387 1388 8.1.5. Processor Specific Flags 1389 1390 The flags field e_flags shall be as described in Intel® 1391 Itanium (TM) Processor-specific Application Binary Interface, 1392 Chapter 4.1.1.6. 1393 1394 The following additional processor-specific flags are defined: 1395 1396 Table 8-1. Additional Processor-Specific Flags 1397 Name Value 1398 EF_IA_64_LINUX_EXECUTABLE_STACK 0x00000001 1399 1400 EF_IA_64_LINUX_EXECUTABLE_STACK 1401 The stack and heap sections are executable. If this 1402 flag is not set, code can not be executed from the 1403 stack or heap. 1404 _________________________________________________________ 1405 1406 Chapter 9. Sections 1407 1408 The Itanium(TM) architecture defines two processor-specific 1409 section types, as described in Intel® Itanium (TM) 1410 Processor-specific Application Binary Interface, Chapter 4. 1411 _________________________________________________________ 1412 1413 9.1. Special Sections 1414 1415 The following sections are defined in the Intel® Itanium (TM) 1416 Processor-specific Application Binary Interface. 1417 1418 Table 9-1. ELF Special Sections 1419 Name Type Attributes 1420 .got SHT_PROGBITS SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT 1421 .IA_64.archext SHT_IA_64_EXT 0 1422 .IA_64.pltoff SHT_PROGBITS SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT 1423 .IA_64.unwind SHT_IA_64_UNWIND SHF_ALLOC+SHF_LINK_ORDER 1424 .IA_64.unwind_info SHT_PROGBITS SHF_ALLOC 1425 .plt SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 1426 .sbss SHT_NOBITS SHF_ALLOC+SHF_WRITE 1427 .sdata SHT_PROGBITS SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT 1428 .sdata1 SHT_PROGBITS SHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT 1429 1430 .got 1431 This section holds the Global Offset Table. See `Coding 1432 Examples' in Chapter 3, `Special Sections' in Chapter 1433 4, and `Global Offset Table' in Chapter 5 of the 1434 processor supplement for more information. 1435 1436 .IA_64.archext 1437 This section holds product-specific extension bits. The 1438 link editor will perform a logical "or" of the 1439 extension bits of each object when creating an 1440 executable so that it creates only a single 1441 .IA_64.archext section in the executable. 1442 1443 .IA_64.pltoff 1444 This section holds local function descriptor entries. 1445 1446 .IA_64.unwind 1447 This section holds the unwind function table. The 1448 contents are described in the Intel (r) Itanium (tm) 1449 Processor Specific ABI. 1450 1451 .IA_64.unwind_info 1452 This section holds stack unwind and and exception 1453 handling information. The exception handling 1454 information is programming language specific, and is 1455 unspecified. 1456 1457 .plt 1458 This section holds the Procedure Linkage Table. 1459 1460 .sbss 1461 This section holds uninitialized data that contribute 1462 to the program''s memory image. Data objects contained 1463 in this section are recommended to be eight bytes or 1464 less in size. The system initializes the data with 1465 zeroes when the program begins to run. The section 1466 occupies no file space, as indicated by the section 1467 type SHT_NOBITS. The .sbss section is placed so it may 1468 be accessed using short direct addressing (22 bit 1469 offset from gp). 1470 1471 .sdata 1472 This section and the .sdata1 section hold initialized 1473 data that contribute to the program''s memory image. 1474 Data objects contained in this section are recommended 1475 to be eight bytes or less in size. The .sdata and 1476 .sdata1 sections are placed so they may be accessed 1477 using short direct addressing (22 bit offset from gp). 1478 1479 .sdata1 1480 See .sdata. 1481 _________________________________________________________ 1482 1483 9.2. Linux Special Sections 1484 1485 The following Linux IA-64 specific sections are defined here. 1486 1487 Table 9-2. Additional Special Sections 1488 Name Type Attributes 1489 .opd SHT_PROGBITS SHF_ALLOC 1490 .rela.dyn SHT_RELA SHF_ALLOC 1491 .rela.IA_64.pltoff SHT_RELA SHF_ALLOC 1492 1493 .opd 1494 This section holds function descriptors 1495 1496 .rela.dyn 1497 This section holds relocation information, as described 1498 in `Relocation'. These relocations are applied to the 1499 .dyn section. 1500 1501 .rela.IA_64.pltoff 1502 This section holds relocation information, as described 1503 in `Relocation'. These relocations are applied to the 1504 .IA_64.pltoff section. 1505 _________________________________________________________ 1506 1507 9.3. Section Types 1508 1509 Section Types are described in the Intel® Itanium (TM) 1510 Processor-specific Application Binary Interface, Chapter 4.2. 1511 LSB conforming implementations are not required to use any 1512 sections in the range from SHT_IA_64_LOPSREG to 1513 SHT_IA_64_HIPSREG. Additionally, LSB conforming 1514 implementations are not required to support the 1515 SHT_IA_64_PRIORITY_INIT section, beyond the gABI requirements 1516 for the handling of unrecognized section types, linking them 1517 into a contiguous section in the object file created by the 1518 static linker. 1519 _________________________________________________________ 1520 1521 9.4. Section Attribute Flags 1522 1523 See Intel® Itanium (TM) Processor-specific Application Binary 1524 Interface, Chapter 4.2.2. 1525 _________________________________________________________ 1526 1527 9.5. Special Section Types 1528 1529 See Intel® Itanium (TM) Processor-specific Application Binary 1530 Interface, Chapter 4.2.3. 1531 _________________________________________________________ 1532 1533 Chapter 10. Symbol Table 1534 1535 If an executable file contains a reference to a function 1536 defined in one of its associated shared objects, the symbol 1537 table section for that file shall contain an entry for that 1538 symbol. The st_shndx member of that symbol table entry 1539 contains SHN_UNDEF. This signals to the dynamic linker that 1540 the symbol definition for that function is not contained in 1541 the executable file itself. If that symbol has been allocated 1542 a procedure linkage table entry in the executable file, and 1543 the st_value member for that symbol table entry is non-zero, 1544 the value shall contain the virtual address of the first 1545 instruction of that procedure linkage table entry. Otherwise, 1546 the st_value member contains zero. This procedure linkage 1547 table entry address is used by the dynamic linker in resolving 1548 references to the address of the function. 1549 1550 Note: Need to add something here about st_info and st_other 1551 ... 1552 _________________________________________________________ 1553 1554 Chapter 11. Relocation 1555 1556 LSB-conforming applications shall use Relocations as defined 1557 in Intel® Itanium (TM) Processor-specific Application Binary 1558 Interface, Chapter 4.3. 1559 _________________________________________________________ 1560 1561 11.1. Relocation Types 1562 1563 See Intel® Itanium (TM) Processor-specific Application Binary 1564 Interface, Chapter 4.3. 1565 1566 III. Program Loading and Dynamic Linking 1567 1568 LSB-conforming implementations shall support the object file 1569 information and system actions that create running programs as 1570 specified in the System V ABI, Intel® Itanium (TM) 1571 Processor-specific Application Binary Interface and as 1572 supplemented by the Linux Standard Base Specification and this 1573 document. 1574 1575 Table of Contents 1576 12. Program Header 1577 13. Program Loading 1578 14. Dynamic Linking 1579 _________________________________________________________ 1580 1581 Chapter 12. Program Header 1582 1583 The program header shall be as defined in the Intel® Itanium 1584 (TM) Processor-specific Application Binary Interface, Chapter 1585 5. 1586 _________________________________________________________ 1587 1588 12.1. Types 1589 1590 See Intel® Itanium (TM) Processor-specific Application Binary 1591 Interface, Chapter 5.1. 1592 _________________________________________________________ 1593 1594 12.2. Flags 1595 1596 See Intel® Itanium (TM) Processor-specific Application Binary 1597 Interface, Chapter 5.1. 1598 _________________________________________________________ 1599 1600 Chapter 13. Program Loading 1601 1602 See Intel® Itanium (TM) Processor-specific Application Binary 1603 Interface, Chapter 5.2. 1604 _________________________________________________________ 1605 1606 Chapter 14. Dynamic Linking 1607 1608 See Intel® Itanium (TM) Processor-specific Application Binary 1609 Interface, Chapter 5.3. 1610 _________________________________________________________ 1611 1612 14.1. Dynamic Entries 1613 1614 14.1.1. ELF Dynamic Entries 1615 1616 The following dynamic entries are defined in the Intel® 1617 Itanium (TM) Processor-specific Application Binary Interface, 1618 Chapter 5.3.2. 1619 1620 DT_PLTGOT 1621 This entry's d_ptr member gives the address of the 1622 first byte in the procedure linkage table 1623 _________________________________________________________ 1624 1625 14.1.2. Additional Dynamic Entries 1626 1627 The following dynamic entries are defined here. 1628 1629 DT_RELACOUNT 1630 The number of relative relocations in .rela.dyn 1631 _________________________________________________________ 1632 1633 14.2. Global Offset Table 1634 1635 See Intel® Itanium (TM) Processor-specific Application Binary 1636 Interface, Chapter 5.3.4. 1637 _________________________________________________________ 1638 1639 14.3. Shared Object Dependencies 1640 1641 See Intel® Itanium (TM) Processor-specific Application Binary 1642 Interface, Chapter 5.3.3. 1643 _________________________________________________________ 1644 1645 14.4. Function Addresses 1646 1647 See Intel® Itanium (TM) Processor-specific Application Binary 1648 Interface, Chapter 5.3.5. 1649 _________________________________________________________ 1650 1651 14.5. Procedure Linkage Table 1652 1653 See Intel® Itanium (TM) Processor-specific Application Binary 1654 Interface, Chapter 5.3.6. 1655 _________________________________________________________ 1656 1657 14.6. Initialization and Termination Functions 1658 1659 See Intel® Itanium (TM) Processor-specific Application Binary 1660 Interface, Chapter 5.3.7. 1661 1662 Linux Standard Base Specification 1663 _________________________________________________________ 1664 1665 Table of Contents 1666 I. Base Libraries 1667 1668 1. Libraries 1669 1670 1.1. Program Interpreter/Dynamic Linker 1671 1.2. Interfaces for libc 1672 1.3. Data Definitions for libc 1673 1.4. Interfaces for libm 1674 1.5. Data Definitions for libm 1675 1.6. Interfaces for libpthread 1676 1.7. Interfaces for libgcc_s 1677 1.8. Interface Definitions for libgcc_s 1678 1.9. Interfaces for libdl 1679 1.10. Interfaces for libcrypt 1680 1681 II. Utility Libraries 1682 1683 2. Libraries 1684 1685 2.1. Interfaces for libz 1686 2.2. Interfaces for libncurses 1687 2.3. Interfaces for libutil 1688 1689 A. Alphabetical Listing of Interfaces 1690 1691 A.1. libgcc_s 1692 A.2. libm 1693 1694 List of Tables 1695 1-1. libc Definition 1696 1-2. libc - RPC Function Interfaces 1697 1-3. libc - RPC Deprecated Function Interfaces 1698 1-4. libc - System Calls Function Interfaces 1699 1-5. libc - System Calls Deprecated Function Interfaces 1700 1-6. libc - Standard I/O Function Interfaces 1701 1-7. libc - Standard I/O Data Interfaces 1702 1-8. libc - Signal Handling Function Interfaces 1703 1-9. libc - Signal Handling Deprecated Function Interfaces 1704 1-10. libc - Signal Handling Data Interfaces 1705 1-11. libc - Localization Functions Function Interfaces 1706 1-12. libc - Localization Functions Data Interfaces 1707 1-13. libc - Socket Interface Function Interfaces 1708 1-14. libc - Socket Interface Deprecated Function Interfaces 1709 1-15. libc - Wide Characters Function Interfaces 1710 1-16. libc - String Functions Function Interfaces 1711 1-17. libc - String Functions Deprecated Function Interfaces 1712 1-18. libc - IPC Functions Function Interfaces 1713 1-19. libc - Regular Expressions Function Interfaces 1714 1-20. libc - Regular Expressions Deprecated Function 1715 Interfaces 1716 1717 1-21. libc - Regular Expressions Deprecated Data Interfaces 1718 1-22. libc - Character Type Functions Function Interfaces 1719 1-23. libc - Time Manipulation Function Interfaces 1720 1-24. libc - Time Manipulation Deprecated Function Interfaces 1721 1-25. libc - Time Manipulation Data Interfaces 1722 1-26. libc - Terminal Interface Functions Function Interfaces 1723 1-27. libc - System Database Interface Function Interfaces 1724 1-28. libc - System Database Interface Deprecated Function 1725 Interfaces 1726 1727 1-29. libc - Language Support Function Interfaces 1728 1-30. libc - Large File Support Function Interfaces 1729 1-31. libc - Standard Library Function Interfaces 1730 1-32. libc - Standard Library Deprecated Function Interfaces 1731 1-33. libc - Standard Library Data Interfaces 1732 1-34. libm Definition 1733 1-35. libm - Math Function Interfaces 1734 1-36. libm - Math Data Interfaces 1735 1-37. libpthread Definition 1736 1-38. libpthread - Posix Threads Function Interfaces 1737 1-39. libgcc_s Definition 1738 1-40. libgcc_s - Unwind Library Function Interfaces 1739 1-41. libdl Definition 1740 1-42. libdl - Dynamic Loader Function Interfaces 1741 1-43. libcrypt Definition 1742 1-44. libcrypt - Encryption Function Interfaces 1743 2-1. libz Definition 1744 2-2. libncurses Definition 1745 2-3. libutil Definition 1746 2-4. libutil - Utility Functions Function Interfaces 1747 A-1. libgcc_s Function Interfaces 1748 A-2. libm Function Interfaces 1749 1750 I. Base Libraries 1751 1752 Table of Contents 1753 1. Libraries 1754 _________________________________________________________ 1755 1756 Chapter 1. Libraries 1757 1758 An LSB-conforming implementation shall support base libraries 1759 which provide interfaces for accessing the operating system, 1760 processor and other hardware in the system. 1761 1762 Only those interfaces that are unique to the Itanium(TM) 1763 platform are defined here. This section should be used in 1764 conjunction with the corresponding section in the Linux 1765 Standard Base Specification. 1766 _________________________________________________________ 1767 1768 1.1. Program Interpreter/Dynamic Linker 1769 1770 The LSB specifies the Program Interpreter to be 1771 /lib/ld-lsb-ia64.so.2. 1772 _________________________________________________________ 1773 1774 1.2. Interfaces for libc 1775 1776 Table 1-1 defines the library name and shared object name for 1777 the libc library 1778 1779 Table 1-1. libc Definition 1780 Library: libc 1781 SONAME: libc.so.6.1 1782 1783 The behavior of the interfaces in this library is specified by 1784 the following specifications: 1785 1786 Large File Support 1787 this specification 1788 SUSv2 1789 ISO POSIX (2003) 1790 SVID Issue 3 1791 SVID Issue 4 1792 _________________________________________________________ 1793 1794 1.2.1. RPC 1795 _________________________________________________________ 1796 1797 1.2.1.1. Interfaces for RPC 1798 1799 An LSB conforming implementation shall provide the 1800 architecture specific functions for RPC specified in Table 1801 1-2, with the full functionality as described in the 1802 referenced underlying specification. 1803 1804 Table 1-2. libc - RPC Function Interfaces 1805 authnone_create(GLIBC_2.2) [1] svc_getreqset(GLIBC_2.2) [2] 1806 svcudp_create(GLIBC_2.2) [3] xdr_int(GLIBC_2.2) [2] 1807 xdr_u_long(GLIBC_2.2) [2] 1808 clnt_create(GLIBC_2.2) [1] svc_register(GLIBC_2.2) [3] 1809 xdr_accepted_reply(GLIBC_2.2) [2] xdr_long(GLIBC_2.2) [2] 1810 xdr_u_short(GLIBC_2.2) [2] 1811 clnt_pcreateerror(GLIBC_2.2) [1] svc_run(GLIBC_2.2) [3] 1812 xdr_array(GLIBC_2.2) [2] xdr_opaque(GLIBC_2.2) [2] 1813 xdr_union(GLIBC_2.2) [2] 1814 clnt_perrno(GLIBC_2.2) [1] svc_sendreply(GLIBC_2.2) [3] 1815 xdr_bool(GLIBC_2.2) [2] xdr_opaque_auth(GLIBC_2.2) [2] 1816 xdr_vector(GLIBC_2.2) [2] 1817 clnt_perror(GLIBC_2.2) [1] svcerr_auth(GLIBC_2.2) [2] 1818 xdr_bytes(GLIBC_2.2) [2] xdr_pointer(GLIBC_2.2) [2] 1819 xdr_void(GLIBC_2.2) [2] 1820 clnt_spcreateerror(GLIBC_2.2) [1] svcerr_decode(GLIBC_2.2) [2] 1821 xdr_callhdr(GLIBC_2.2) [2] xdr_reference(GLIBC_2.2) [2] 1822 xdr_wrapstring(GLIBC_2.2) [2] 1823 clnt_sperrno(GLIBC_2.2) [1] svcerr_noproc(GLIBC_2.2) [2] 1824 xdr_callmsg(GLIBC_2.2) [2] xdr_rejected_reply(GLIBC_2.2) [2] 1825 xdrmem_create(GLIBC_2.2) [2] 1826 clnt_sperror(GLIBC_2.2) [1] svcerr_noprog(GLIBC_2.2) [2] 1827 xdr_char(GLIBC_2.2) [2] xdr_replymsg(GLIBC_2.2) [2] 1828 xdrrec_create(GLIBC_2.2) [2] 1829 key_decryptsession(GLIBC_2.2) [2] svcerr_progvers(GLIBC_2.2) 1830 [2] xdr_double(GLIBC_2.2) [2] xdr_short(GLIBC_2.2) [2] 1831 xdrrec_eof(GLIBC_2.2) [2] 1832 pmap_getport(GLIBC_2.2) [3] svcerr_systemerr(GLIBC_2.2) [2] 1833 xdr_enum(GLIBC_2.2) [2] xdr_string(GLIBC_2.2) [2] 1834 pmap_set(GLIBC_2.2) [3] svcerr_weakauth(GLIBC_2.2) [2] 1835 xdr_float(GLIBC_2.2) [2] xdr_u_char(GLIBC_2.2) [2] 1836 pmap_unset(GLIBC_2.2) [3] svctcp_create(GLIBC_2.2) [3] 1837 xdr_free(GLIBC_2.2) [2] xdr_u_int(GLIBC_2.2) [3] 1838 1839 Referenced Specification(s) 1840 1841 [1]. SVID Issue 4 1842 1843 [2]. SVID Issue 3 1844 1845 [3]. this specification 1846 1847 An LSB conforming implementation shall provide the 1848 architecture specific deprecated functions for RPC specified 1849 in Table 1-3, with the full functionality as described in the 1850 referenced underlying specification. 1851 1852 Note: These interfaces are deprecated, and applications 1853 should avoid using them. These interfaces may be withdrawn 1854 in future releases of this specification. 1855 1856 Table 1-3. libc - RPC Deprecated Function Interfaces 1857 getdomainname(GLIBC_2.2) [1] setdomainname(GLIBC_2.2) [1] 1858 1859 Referenced Specification(s) 1860 1861 [1]. this specification 1862 _________________________________________________________ 1863 1864 1.2.2. System Calls 1865 _________________________________________________________ 1866 1867 1.2.2.1. Interfaces for System Calls 1868 1869 An LSB conforming implementation shall provide the 1870 architecture specific functions for System Calls specified in 1871 Table 1-4, with the full functionality as described in the 1872 referenced underlying specification. 1873 1874 Table 1-4. libc - System Calls Function Interfaces 1875 __fxstat(GLIBC_2.2) [1] fchmod(GLIBC_2.2) [2] getwd(GLIBC_2.2) 1876 [2] read(GLIBC_2.2) [2] setrlimit(GLIBC_2.2) [2] 1877 __getpgid(GLIBC_2.2) [1] fchown(GLIBC_2.2) [2] 1878 initgroups(GLIBC_2.2) [1] readdir(GLIBC_2.2) [2] 1879 setrlimit64(GLIBC_2.2) [3] 1880 __lxstat(GLIBC_2.2) [1] fcntl(GLIBC_2.2) [1] ioctl(GLIBC_2.2) 1881 [1] readdir_r(GLIBC_2.2) [2] setsid(GLIBC_2.2) [2] 1882 __xmknod(GLIBC_2.2) [1] fdatasync(GLIBC_2.2) [2] 1883 kill(GLIBC_2.2) [1] readlink(GLIBC_2.2) [2] setuid(GLIBC_2.2) 1884 [2] 1885 __xstat(GLIBC_2.2) [1] flock(GLIBC_2.2) [1] killpg(GLIBC_2.2) 1886 [2] readv(GLIBC_2.2) [2] sleep(GLIBC_2.2) [2] 1887 access(GLIBC_2.2) [2] fork(GLIBC_2.2) [2] lchown(GLIBC_2.2) 1888 [2] rename(GLIBC_2.2) [2] statvfs(GLIBC_2.2) [2] 1889 acct(GLIBC_2.2) [1] fstatvfs(GLIBC_2.2) [2] link(GLIBC_2.2) 1890 [2] rmdir(GLIBC_2.2) [2] stime(GLIBC_2.2) [1] 1891 alarm(GLIBC_2.2) [2] fsync(GLIBC_2.2) [2] lockf(GLIBC_2.2) [2] 1892 sbrk(GLIBC_2.2) [4] symlink(GLIBC_2.2) [2] 1893 brk(GLIBC_2.2) [4] ftime(GLIBC_2.2) [2] lseek(GLIBC_2.2) [2] 1894 sched_get_priority_max(GLIBC_2.2) [2] sync(GLIBC_2.2) [2] 1895 chdir(GLIBC_2.2) [2] ftruncate(GLIBC_2.2) [2] mkdir(GLIBC_2.2) 1896 [2] sched_get_priority_min(GLIBC_2.2) [2] sysconf(GLIBC_2.2) 1897 [2] 1898 chmod(GLIBC_2.2) [2] getcontext(GLIBC_2.2) [2] 1899 mkfifo(GLIBC_2.2) [2] sched_getparam(GLIBC_2.2) [2] 1900 time(GLIBC_2.2) [2] 1901 chown(GLIBC_2.2) [2] getegid(GLIBC_2.2) [2] mlock(GLIBC_2.2) 1902 [2] sched_getscheduler(GLIBC_2.2) [2] times(GLIBC_2.2) [2] 1903 chroot(GLIBC_2.2) [4] geteuid(GLIBC_2.2) [2] 1904 mlockall(GLIBC_2.2) [2] sched_rr_get_interval(GLIBC_2.2) [2] 1905 truncate(GLIBC_2.2) [2] 1906 clock(GLIBC_2.2) [2] getgid(GLIBC_2.2) [2] mmap(GLIBC_2.2) [2] 1907 sched_setparam(GLIBC_2.2) [2] ulimit(GLIBC_2.2) [2] 1908 close(GLIBC_2.2) [2] getgroups(GLIBC_2.2) [2] 1909 mprotect(GLIBC_2.2) [2] sched_setscheduler(GLIBC_2.2) [2] 1910 umask(GLIBC_2.2) [2] 1911 closedir(GLIBC_2.2) [2] getitimer(GLIBC_2.2) [2] 1912 msync(GLIBC_2.2) [2] sched_yield(GLIBC_2.2) [2] 1913 uname(GLIBC_2.2) [2] 1914 creat(GLIBC_2.2) [1] getloadavg(GLIBC_2.2) [1] 1915 munlock(GLIBC_2.2) [2] select(GLIBC_2.2) [2] unlink(GLIBC_2.2) 1916 [1] 1917 dup(GLIBC_2.2) [2] getpagesize(GLIBC_2.2) [4] 1918 munlockall(GLIBC_2.2) [2] setcontext(GLIBC_2.2) [2] 1919 utime(GLIBC_2.2) [2] 1920 dup2(GLIBC_2.2) [2] getpgid(GLIBC_2.2) [2] munmap(GLIBC_2.2) 1921 [2] setegid(GLIBC_2.2) [2] utimes(GLIBC_2.2) [2] 1922 execl(GLIBC_2.2) [2] getpgrp(GLIBC_2.2) [2] 1923 nanosleep(GLIBC_2.2) [2] seteuid(GLIBC_2.2) [2] 1924 vfork(GLIBC_2.2) [2] 1925 execle(GLIBC_2.2) [2] getpid(GLIBC_2.2) [2] nice(GLIBC_2.2) 1926 [2] setgid(GLIBC_2.2) [2] wait(GLIBC_2.2) [2] 1927 execlp(GLIBC_2.2) [2] getppid(GLIBC_2.2) [2] open(GLIBC_2.2) 1928 [1] setitimer(GLIBC_2.2) [2] wait4(GLIBC_2.2) [1] 1929 execv(GLIBC_2.2) [2] getpriority(GLIBC_2.2) [2] 1930 opendir(GLIBC_2.2) [2] setpgid(GLIBC_2.2) [2] 1931 waitpid(GLIBC_2.2) [1] 1932 execve(GLIBC_2.2) [2] getrlimit(GLIBC_2.2) [2] 1933 pathconf(GLIBC_2.2) [2] setpgrp(GLIBC_2.2) [2] 1934 write(GLIBC_2.2) [2] 1935 execvp(GLIBC_2.2) [2] getrusage(GLIBC_2.2) [2] 1936 pause(GLIBC_2.2) [2] setpriority(GLIBC_2.2) [2] 1937 writev(GLIBC_2.2) [2] 1938 exit(GLIBC_2.2) [2] getsid(GLIBC_2.2) [2] pipe(GLIBC_2.2) [2] 1939 setregid(GLIBC_2.2) [2] 1940 fchdir(GLIBC_2.2) [2] getuid(GLIBC_2.2) [2] poll(GLIBC_2.2) 1941 [2] setreuid(GLIBC_2.2) [2] 1942 1943 Referenced Specification(s) 1944 1945 [1]. this specification 1946 1947 [2]. ISO POSIX (2003) 1948 1949 [3]. Large File Support 1950 1951 [4]. SUSv2 1952 1953 An LSB conforming implementation shall provide the 1954 architecture specific deprecated functions for System Calls 1955 specified in Table 1-5, with the full functionality as 1956 described in the referenced underlying specification. 1957 1958 Note: These interfaces are deprecated, and applications 1959 should avoid using them. These interfaces may be withdrawn 1960 in future releases of this specification. 1961 1962 Table 1-5. libc - System Calls Deprecated Function Interfaces 1963 wait3(GLIBC_2.2) [1] 1964 1965 Referenced Specification(s) 1966 1967 [1]. this specification 1968 _________________________________________________________ 1969 1970 1.2.3. Standard I/O 1971 _________________________________________________________ 1972 1973 1.2.3.1. Interfaces for Standard I/O 1974 1975 An LSB conforming implementation shall provide the 1976 architecture specific functions for Standard I/O specified in 1977 Table 1-6, with the full functionality as described in the 1978 referenced underlying specification. 1979 1980 Table 1-6. libc - Standard I/O Function Interfaces 1981 _IO_feof(GLIBC_2.2) [1] fgetpos(GLIBC_2.2) [2] 1982 fsetpos(GLIBC_2.2) [2] putchar(GLIBC_2.2) [2] 1983 sscanf(GLIBC_2.2) [2] 1984 _IO_getc(GLIBC_2.2) [1] fgets(GLIBC_2.2) [2] ftell(GLIBC_2.2) 1985 [2] putchar_unlocked(GLIBC_2.2) [2] telldir(GLIBC_2.2) [2] 1986 _IO_putc(GLIBC_2.2) [1] fgetwc_unlocked(GLIBC_2.2) [1] 1987 ftello(GLIBC_2.2) [2] puts(GLIBC_2.2) [2] tempnam(GLIBC_2.2) 1988 [2] 1989 _IO_puts(GLIBC_2.2) [1] fileno(GLIBC_2.2) [2] 1990 fwrite(GLIBC_2.2) [2] putw(GLIBC_2.2) [3] ungetc(GLIBC_2.2) 1991 [2] 1992 asprintf(GLIBC_2.2) [1] flockfile(GLIBC_2.2) [2] 1993 getc(GLIBC_2.2) [2] remove(GLIBC_2.2) [2] vasprintf(GLIBC_2.2) 1994 [1] 1995 clearerr(GLIBC_2.2) [2] fopen(GLIBC_2.2) [1] 1996 getc_unlocked(GLIBC_2.2) [2] rewind(GLIBC_2.2) [2] 1997 vdprintf(GLIBC_2.2) [1] 1998 ctermid(GLIBC_2.2) [2] fprintf(GLIBC_2.2) [2] 1999 getchar(GLIBC_2.2) [2] rewinddir(GLIBC_2.2) [2] 2000 vfprintf(GLIBC_2.2) [2] 2001 fclose(GLIBC_2.2) [2] fputc(GLIBC_2.2) [2] 2002 getchar_unlocked(GLIBC_2.2) [2] scanf(GLIBC_2.2) [2] 2003 vprintf(GLIBC_2.2) [2] 2004 fdopen(GLIBC_2.2) [2] fputs(GLIBC_2.2) [2] getw(GLIBC_2.2) [3] 2005 seekdir(GLIBC_2.2) [2] vsnprintf(GLIBC_2.2) [2] 2006 feof(GLIBC_2.2) [2] fread(GLIBC_2.2) [2] pclose(GLIBC_2.2) [2] 2007 setbuf(GLIBC_2.2) [2] vsprintf(GLIBC_2.2) [2] 2008 ferror(GLIBC_2.2) [2] freopen(GLIBC_2.2) [1] popen(GLIBC_2.2) 2009 [2] setbuffer(GLIBC_2.2) [1] 2010 fflush(GLIBC_2.2) [2] fscanf(GLIBC_2.2) [2] printf(GLIBC_2.2) 2011 [2] setvbuf(GLIBC_2.2) [2] 2012 fflush_unlocked(GLIBC_2.2) [1] fseek(GLIBC_2.2) [2] 2013 putc(GLIBC_2.2) [2] snprintf(GLIBC_2.2) [2] 2014 fgetc(GLIBC_2.2) [2] fseeko(GLIBC_2.2) [2] 2015 putc_unlocked(GLIBC_2.2) [2] sprintf(GLIBC_2.2) [2] 2016 2017 Referenced Specification(s) 2018 2019 [1]. this specification 2020 2021 [2]. ISO POSIX (2003) 2022 2023 [3]. SUSv2 2024 2025 An LSB conforming implementation shall provide the 2026 architecture specific data interfaces for Standard I/O 2027 specified in Table 1-7, with the full functionality as 2028 described in the referenced underlying specification. 2029 2030 Table 1-7. libc - Standard I/O Data Interfaces 2031 stderr(GLIBC_2.2) [1] stdin(GLIBC_2.2) [1] stdout(GLIBC_2.2) 2032 [1] 2033 2034 Referenced Specification(s) 2035 2036 [1]. ISO POSIX (2003) 2037 _________________________________________________________ 2038 2039 1.2.4. Signal Handling 2040 _________________________________________________________ 2041 2042 1.2.4.1. Interfaces for Signal Handling 2043 2044 An LSB conforming implementation shall provide the 2045 architecture specific functions for Signal Handling specified 2046 in Table 1-8, with the full functionality as described in the 2047 referenced underlying specification. 2048 2049 Table 1-8. libc - Signal Handling Function Interfaces 2050 __libc_current_sigrtmax(GLIBC_2.2) [1] sigaction(GLIBC_2.2) 2051 [2] sighold(GLIBC_2.2) [2] sigorset(GLIBC_2.2) [1] 2052 sigset(GLIBC_2.2) [2] 2053 __libc_current_sigrtmin(GLIBC_2.2) [1] sigaddset(GLIBC_2.2) 2054 [2] sigignore(GLIBC_2.2) [2] sigpause(GLIBC_2.2) [2] 2055 sigsuspend(GLIBC_2.2) [2] 2056 __sigsetjmp(GLIBC_2.2) [1] sigaltstack(GLIBC_2.2) [2] 2057 siginterrupt(GLIBC_2.2) [2] sigpending(GLIBC_2.2) [2] 2058 sigtimedwait(GLIBC_2.2) [2] 2059 __sysv_signal(GLIBC_2.2) [1] sigandset(GLIBC_2.2) [1] 2060 sigisemptyset(GLIBC_2.2) [1] sigprocmask(GLIBC_2.2) [2] 2061 sigwait(GLIBC_2.2) [2] 2062 bsd_signal(GLIBC_2.2) [2] sigdelset(GLIBC_2.2) [2] 2063 sigismember(GLIBC_2.2) [2] sigqueue(GLIBC_2.2) [2] 2064 sigwaitinfo(GLIBC_2.2) [2] 2065 psignal(GLIBC_2.2) [1] sigemptyset(GLIBC_2.2) [2] 2066 siglongjmp(GLIBC_2.2) [2] sigrelse(GLIBC_2.2) [2] 2067 raise(GLIBC_2.2) [2] sigfillset(GLIBC_2.2) [2] 2068 signal(GLIBC_2.2) [2] sigreturn(GLIBC_2.2) [1] 2069 2070 Referenced Specification(s) 2071 2072 [1]. this specification 2073 2074 [2]. ISO POSIX (2003) 2075 2076 An LSB conforming implementation shall provide the 2077 architecture specific deprecated functions for Signal Handling 2078 specified in Table 1-9, with the full functionality as 2079 described in the referenced underlying specification. 2080 2081 Note: These interfaces are deprecated, and applications 2082 should avoid using them. These interfaces may be withdrawn 2083 in future releases of this specification. 2084 2085 Table 1-9. libc - Signal Handling Deprecated Function 2086 Interfaces 2087 sigblock(GLIBC_2.2) [1] siggetmask(GLIBC_2.2) [1] 2088 sigstack(GLIBC_2.2) [2] 2089 2090 Referenced Specification(s) 2091 2092 [1]. this specification 2093 2094 [2]. SUSv2 2095 2096 An LSB conforming implementation shall provide the 2097 architecture specific data interfaces for Signal Handling 2098 specified in Table 1-10, with the full functionality as 2099 described in the referenced underlying specification. 2100 2101 Table 1-10. libc - Signal Handling Data Interfaces 2102 _sys_siglist(GLIBC_2.3.3) [1] 2103 2104 Referenced Specification(s) 2105 2106 [1]. this specification 2107 _________________________________________________________ 2108 2109 1.2.5. Localization Functions 2110 _________________________________________________________ 2111 2112 1.2.5.1. Interfaces for Localization Functions 2113 2114 An LSB conforming implementation shall provide the 2115 architecture specific functions for Localization Functions 2116 specified in Table 1-11, with the full functionality as 2117 described in the referenced underlying specification. 2118 2119 Table 1-11. libc - Localization Functions Function Interfaces 2120 bind_textdomain_codeset(GLIBC_2.2) [1] catopen(GLIBC_2.2) [2] 2121 dngettext(GLIBC_2.2) [1] iconv_open(GLIBC_2.2) [2] 2122 setlocale(GLIBC_2.2) [2] 2123 bindtextdomain(GLIBC_2.2) [1] dcgettext(GLIBC_2.2) [1] 2124 gettext(GLIBC_2.2) [1] localeconv(GLIBC_2.2) [2] 2125 textdomain(GLIBC_2.2) [1] 2126 catclose(GLIBC_2.2) [2] dcngettext(GLIBC_2.2) [1] 2127 iconv(GLIBC_2.2) [2] ngettext(GLIBC_2.2) [1] 2128 catgets(GLIBC_2.2) [2] dgettext(GLIBC_2.2) [1] 2129 iconv_close(GLIBC_2.2) [2] nl_langinfo(GLIBC_2.2) [2] 2130 2131 Referenced Specification(s) 2132 2133 [1]. this specification 2134 2135 [2]. ISO POSIX (2003) 2136 2137 An LSB conforming implementation shall provide the 2138 architecture specific data interfaces for Localization 2139 Functions specified in Table 1-12, with the full functionality 2140 as described in the referenced underlying specification. 2141 2142 Table 1-12. libc - Localization Functions Data Interfaces 2143 _nl_msg_cat_cntr(GLIBC_2.2) [1] 2144 2145 Referenced Specification(s) 2146 2147 [1]. this specification 2148 _________________________________________________________ 2149 2150 1.2.6. Socket Interface 2151 _________________________________________________________ 2152 2153 1.2.6.1. Interfaces for Socket Interface 2154 2155 An LSB conforming implementation shall provide the 2156 architecture specific functions for Socket Interface specified 2157 in Table 1-13, with the full functionality as described in the 2158 referenced underlying specification. 2159 2160 Table 1-13. libc - Socket Interface Function Interfaces 2161 __h_errno_location(GLIBC_2.2) [1] gethostname(GLIBC_2.2) [2] 2162 if_nameindex(GLIBC_2.2) [2] send(GLIBC_2.2) [2] 2163 socket(GLIBC_2.2) [2] 2164 accept(GLIBC_2.2) [2] getpeername(GLIBC_2.2) [2] 2165 if_nametoindex(GLIBC_2.2) [2] sendmsg(GLIBC_2.2) [2] 2166 socketpair(GLIBC_2.2) [2] 2167 bind(GLIBC_2.2) [2] getsockname(GLIBC_2.2) [2] 2168 listen(GLIBC_2.2) [2] sendto(GLIBC_2.2) [2] 2169 bindresvport(GLIBC_2.2) [1] getsockopt(GLIBC_2.2) [2] 2170 recv(GLIBC_2.2) [2] setsockopt(GLIBC_2.2) [1] 2171 connect(GLIBC_2.2) [2] if_freenameindex(GLIBC_2.2) [2] 2172 recvfrom(GLIBC_2.2) [2] shutdown(GLIBC_2.2) [2] 2173 gethostid(GLIBC_2.2) [2] if_indextoname(GLIBC_2.2) [2] 2174 recvmsg(GLIBC_2.2) [2] sockatmark(GLIBC_2.2.4) [2] 2175 2176 Referenced Specification(s) 2177 2178 [1]. this specification 2179 2180 [2]. ISO POSIX (2003) 2181 2182 An LSB conforming implementation shall provide the 2183 architecture specific deprecated functions for Socket 2184 Interface specified in Table 1-14, with the full functionality 2185 as described in the referenced underlying specification. 2186 2187 Note: These interfaces are deprecated, and applications 2188 should avoid using them. These interfaces may be withdrawn 2189 in future releases of this specification. 2190 2191 Table 1-14. libc - Socket Interface Deprecated Function 2192 Interfaces 2193 gethostbyname_r(GLIBC_2.2) [1] 2194 2195 Referenced Specification(s) 2196 2197 [1]. this specification 2198 _________________________________________________________ 2199 2200 1.2.7. Wide Characters 2201 _________________________________________________________ 2202 2203 1.2.7.1. Interfaces for Wide Characters 2204 2205 An LSB conforming implementation shall provide the 2206 architecture specific functions for Wide Characters specified 2207 in Table 1-15, with the full functionality as described in the 2208 referenced underlying specification. 2209 2210 Table 1-15. libc - Wide Characters Function Interfaces 2211 __wcstod_internal(GLIBC_2.2) [1] mbsinit(GLIBC_2.2) [2] 2212 vwscanf(GLIBC_2.2) [2] wcsnlen(GLIBC_2.2) [1] 2213 wcstoumax(GLIBC_2.2) [2] 2214 __wcstof_internal(GLIBC_2.2) [1] mbsnrtowcs(GLIBC_2.2) [1] 2215 wcpcpy(GLIBC_2.2) [1] wcsnrtombs(GLIBC_2.2) [1] 2216 wcstouq(GLIBC_2.2) [1] 2217 __wcstol_internal(GLIBC_2.2) [1] mbsrtowcs(GLIBC_2.2) [2] 2218 wcpncpy(GLIBC_2.2) [1] wcspbrk(GLIBC_2.2) [2] 2219 wcswcs(GLIBC_2.2) [2] 2220 __wcstold_internal(GLIBC_2.2) [1] mbstowcs(GLIBC_2.2) [2] 2221 wcrtomb(GLIBC_2.2) [2] wcsrchr(GLIBC_2.2) [2] 2222 wcswidth(GLIBC_2.2) [2] 2223 __wcstoul_internal(GLIBC_2.2) [1] mbtowc(GLIBC_2.2) [2] 2224 wcscasecmp(GLIBC_2.2) [1] wcsrtombs(GLIBC_2.2) [2] 2225 wcsxfrm(GLIBC_2.2) [2] 2226 btowc(GLIBC_2.2) [2] putwc(GLIBC_2.2) [2] wcscat(GLIBC_2.2) 2227 [2] wcsspn(GLIBC_2.2) [2] wctob(GLIBC_2.2) [2] 2228 fgetwc(GLIBC_2.2) [2] putwchar(GLIBC_2.2) [2] 2229 wcschr(GLIBC_2.2) [2] wcsstr(GLIBC_2.2) [2] wctomb(GLIBC_2.2) 2230 [2] 2231 fgetws(GLIBC_2.2) [2] swprintf(GLIBC_2.2) [2] 2232 wcscmp(GLIBC_2.2) [2] wcstod(GLIBC_2.2) [2] wctrans(GLIBC_2.2) 2233 [2] 2234 fputwc(GLIBC_2.2) [2] swscanf(GLIBC_2.2) [2] 2235 wcscoll(GLIBC_2.2) [2] wcstof(GLIBC_2.2) [2] wctype(GLIBC_2.2) 2236 [2] 2237 fputws(GLIBC_2.2) [2] towctrans(GLIBC_2.2) [2] 2238 wcscpy(GLIBC_2.2) [2] wcstoimax(GLIBC_2.2) [2] 2239 wcwidth(GLIBC_2.2) [2] 2240 fwide(GLIBC_2.2) [2] towlower(GLIBC_2.2) [2] 2241 wcscspn(GLIBC_2.2) [2] wcstok(GLIBC_2.2) [2] 2242 wmemchr(GLIBC_2.2) [2] 2243 fwprintf(GLIBC_2.2) [2] towupper(GLIBC_2.2) [2] 2244 wcsdup(GLIBC_2.2) [1] wcstol(GLIBC_2.2) [2] wmemcmp(GLIBC_2.2) 2245 [2] 2246 fwscanf(GLIBC_2.2) [2] ungetwc(GLIBC_2.2) [2] 2247 wcsftime(GLIBC_2.2) [2] wcstold(GLIBC_2.2) [2] 2248 wmemcpy(GLIBC_2.2) [2] 2249 getwc(GLIBC_2.2) [2] vfwprintf(GLIBC_2.2) [2] 2250 wcslen(GLIBC_2.2) [2] wcstoll(GLIBC_2.2) [2] 2251 wmemmove(GLIBC_2.2) [2] 2252 getwchar(GLIBC_2.2) [2] vfwscanf(GLIBC_2.2) [2] 2253 wcsncasecmp(GLIBC_2.2) [1] wcstombs(GLIBC_2.2) [2] 2254 wmemset(GLIBC_2.2) [2] 2255 mblen(GLIBC_2.2) [2] vswprintf(GLIBC_2.2) [2] 2256 wcsncat(GLIBC_2.2) [2] wcstoq(GLIBC_2.2) [1] 2257 wprintf(GLIBC_2.2) [2] 2258 mbrlen(GLIBC_2.2) [2] vswscanf(GLIBC_2.2) [2] 2259 wcsncmp(GLIBC_2.2) [2] wcstoul(GLIBC_2.2) [2] 2260 wscanf(GLIBC_2.2) [2] 2261 mbrtowc(GLIBC_2.2) [2] vwprintf(GLIBC_2.2) [2] 2262 wcsncpy(GLIBC_2.2) [2] wcstoull(GLIBC_2.2) [2] 2263 2264 Referenced Specification(s) 2265 2266 [1]. this specification 2267 2268 [2]. ISO POSIX (2003) 2269 _________________________________________________________ 2270 2271 1.2.8. String Functions 2272 _________________________________________________________ 2273 2274 1.2.8.1. Interfaces for String Functions 2275 2276 An LSB conforming implementation shall provide the 2277 architecture specific functions for String Functions specified 2278 in Table 1-16, with the full functionality as described in the 2279 referenced underlying specification. 2280 2281 Table 1-16. libc - String Functions Function Interfaces 2282 __mempcpy(GLIBC_2.2) [1] bzero(GLIBC_2.2) [2] 2283 strcasestr(GLIBC_2.2) [1] strncat(GLIBC_2.2) [2] 2284 strtok(GLIBC_2.2) [2] 2285 __rawmemchr(GLIBC_2.2) [1] ffs(GLIBC_2.2) [2] 2286 strcat(GLIBC_2.2) [2] strncmp(GLIBC_2.2) [2] 2287 strtok_r(GLIBC_2.2) [2] 2288 __stpcpy(GLIBC_2.2) [1] index(GLIBC_2.2) [2] strchr(GLIBC_2.2) 2289 [2] strncpy(GLIBC_2.2) [2] strtold(GLIBC_2.2) [2] 2290 __strdup(GLIBC_2.2) [1] memccpy(GLIBC_2.2) [2] 2291 strcmp(GLIBC_2.2) [2] strndup(GLIBC_2.2) [1] 2292 strtoll(GLIBC_2.2) [2] 2293 __strtod_internal(GLIBC_2.2) [1] memchr(GLIBC_2.2) [2] 2294 strcoll(GLIBC_2.2) [2] strnlen(GLIBC_2.2) [1] 2295 strtoq(GLIBC_2.2) [1] 2296 __strtof_internal(GLIBC_2.2) [1] memcmp(GLIBC_2.2) [2] 2297 strcpy(GLIBC_2.2) [2] strpbrk(GLIBC_2.2) [2] 2298 strtoull(GLIBC_2.2) [2] 2299 __strtok_r(GLIBC_2.2) [1] memcpy(GLIBC_2.2) [2] 2300 strcspn(GLIBC_2.2) [2] strptime(GLIBC_2.2) [1] 2301 strtoumax(GLIBC_2.2) [2] 2302 __strtol_internal(GLIBC_2.2) [1] memmove(GLIBC_2.2) [2] 2303 strdup(GLIBC_2.2) [2] strrchr(GLIBC_2.2) [2] 2304 strtouq(GLIBC_2.2) [1] 2305 __strtold_internal(GLIBC_2.2) [1] memrchr(GLIBC_2.2) [1] 2306 strerror(GLIBC_2.2) [2] strsep(GLIBC_2.2) [1] 2307 strxfrm(GLIBC_2.2) [2] 2308 __strtoll_internal(GLIBC_2.2) [1] memset(GLIBC_2.2) [2] 2309 strerror_r(GLIBC_2.2) [1] strsignal(GLIBC_2.2) [1] 2310 swab(GLIBC_2.2) [2] 2311 __strtoul_internal(GLIBC_2.2) [1] rindex(GLIBC_2.2) [2] 2312 strfmon(GLIBC_2.2) [2] strspn(GLIBC_2.2) [2] 2313 __strtoull_internal(GLIBC_2.2) [1] stpcpy(GLIBC_2.2) [1] 2314 strftime(GLIBC_2.2) [2] strstr(GLIBC_2.2) [2] 2315 bcmp(GLIBC_2.2) [2] stpncpy(GLIBC_2.2) [1] strlen(GLIBC_2.2) 2316 [2] strtof(GLIBC_2.2) [2] 2317 bcopy(GLIBC_2.2) [2] strcasecmp(GLIBC_2.2) [2] 2318 strncasecmp(GLIBC_2.2) [2] strtoimax(GLIBC_2.2) [2] 2319 2320 Referenced Specification(s) 2321 2322 [1]. this specification 2323 2324 [2]. ISO POSIX (2003) 2325 2326 An LSB conforming implementation shall provide the 2327 architecture specific deprecated functions for String 2328 Functions specified in Table 1-17, with the full functionality 2329 as described in the referenced underlying specification. 2330 2331 Note: These interfaces are deprecated, and applications 2332 should avoid using them. These interfaces may be withdrawn 2333 in future releases of this specification. 2334 2335 Table 1-17. libc - String Functions Deprecated Function 2336 Interfaces 2337 strfry(GLIBC_2.2) [1] strverscmp(GLIBC_2.2) [1] 2338 2339 Referenced Specification(s) 2340 2341 [1]. this specification 2342 _________________________________________________________ 2343 2344 1.2.9. IPC Functions 2345 _________________________________________________________ 2346 2347 1.2.9.1. Interfaces for IPC Functions 2348 2349 An LSB conforming implementation shall provide the 2350 architecture specific functions for IPC Functions specified in 2351 Table 1-18, with the full functionality as described in the 2352 referenced underlying specification. 2353 2354 Table 1-18. libc - IPC Functions Function Interfaces 2355 ftok(GLIBC_2.2) [1] msgrcv(GLIBC_2.2) [1] semget(GLIBC_2.2) 2356 [1] shmctl(GLIBC_2.2) [1] 2357 msgctl(GLIBC_2.2) [1] msgsnd(GLIBC_2.2) [1] semop(GLIBC_2.2) 2358 [1] shmdt(GLIBC_2.2) [1] 2359 msgget(GLIBC_2.2) [1] semctl(GLIBC_2.2) [1] shmat(GLIBC_2.2) 2360 [1] shmget(GLIBC_2.2) [1] 2361 2362 Referenced Specification(s) 2363 2364 [1]. ISO POSIX (2003) 2365 _________________________________________________________ 2366 2367 1.2.10. Regular Expressions 2368 _________________________________________________________ 2369 2370 1.2.10.1. Interfaces for Regular Expressions 2371 2372 An LSB conforming implementation shall provide the 2373 architecture specific functions for Regular Expressions 2374 specified in Table 1-19, with the full functionality as 2375 described in the referenced underlying specification. 2376 2377 Table 1-19. libc - Regular Expressions Function Interfaces 2378 regcomp(GLIBC_2.2) [1] regerror(GLIBC_2.2) [1] 2379 regexec(GLIBC_2.2) [1] regfree(GLIBC_2.2) [1] 2380 2381 Referenced Specification(s) 2382 2383 [1]. ISO POSIX (2003) 2384 2385 An LSB conforming implementation shall provide the 2386 architecture specific deprecated functions for Regular 2387 Expressions specified in Table 1-20, with the full 2388 functionality as described in the referenced underlying 2389 specification. 2390 2391 Note: These interfaces are deprecated, and applications 2392 should avoid using them. These interfaces may be withdrawn 2393 in future releases of this specification. 2394 2395 Table 1-20. libc - Regular Expressions Deprecated Function 2396 Interfaces 2397 advance(GLIBC_2.2) [1] re_comp(GLIBC_2.2) [1] 2398 re_exec(GLIBC_2.2) [1] step(GLIBC_2.2) [1] 2399 2400 Referenced Specification(s) 2401 2402 [1]. SUSv2 2403 2404 An LSB conforming implementation shall provide the 2405 architecture specific deprecated data interfaces for Regular 2406 Expressions specified in Table 1-21, with the full 2407 functionality as described in the referenced underlying 2408 specification. 2409 2410 Note: These interfaces are deprecated, and applications 2411 should avoid using them. These interfaces may be withdrawn 2412 in future releases of this specification. 2413 2414 Table 1-21. libc - Regular Expressions Deprecated Data 2415 Interfaces 2416 loc1(GLIBC_2.2) [1] loc2(GLIBC_2.2) [1] locs(GLIBC_2.2) [1] 2417 2418 Referenced Specification(s) 2419 2420 [1]. SUSv2 2421 _________________________________________________________ 2422 2423 1.2.11. Character Type Functions 2424 _________________________________________________________ 2425 2426 1.2.11.1. Interfaces for Character Type Functions 2427 2428 An LSB conforming implementation shall provide the 2429 architecture specific functions for Character Type Functions 2430 specified in Table 1-22, with the full functionality as 2431 described in the referenced underlying specification. 2432 2433 Table 1-22. libc - Character Type Functions Function 2434 Interfaces 2435 __ctype_get_mb_cur_max(GLIBC_2.2) [1] isdigit(GLIBC_2.2) [2] 2436 iswalnum(GLIBC_2.2) [2] iswlower(GLIBC_2.2) [2] 2437 toascii(GLIBC_2.2) [2] 2438 _tolower(GLIBC_2.2) [2] isgraph(GLIBC_2.2) [2] 2439 iswalpha(GLIBC_2.2) [2] iswprint(GLIBC_2.2) [2] 2440 tolower(GLIBC_2.2) [2] 2441 _toupper(GLIBC_2.2) [2] islower(GLIBC_2.2) [2] 2442 iswblank(GLIBC_2.2) [2] iswpunct(GLIBC_2.2) [2] 2443 toupper(GLIBC_2.2) [2] 2444 isalnum(GLIBC_2.2) [2] isprint(GLIBC_2.2) [2] 2445 iswcntrl(GLIBC_2.2) [2] iswspace(GLIBC_2.2) [2] 2446 isalpha(GLIBC_2.2) [2] ispunct(GLIBC_2.2) [2] 2447 iswctype(GLIBC_2.2) [2] iswupper(GLIBC_2.2) [2] 2448 isascii(GLIBC_2.2) [2] isspace(GLIBC_2.2) [2] 2449 iswdigit(GLIBC_2.2) [2] iswxdigit(GLIBC_2.2) [2] 2450 iscntrl(GLIBC_2.2) [2] isupper(GLIBC_2.2) [2] 2451 iswgraph(GLIBC_2.2) [2] isxdigit(GLIBC_2.2) [2] 2452 2453 Referenced Specification(s) 2454 2455 [1]. this specification 2456 2457 [2]. ISO POSIX (2003) 2458 _________________________________________________________ 2459 2460 1.2.12. Time Manipulation 2461 _________________________________________________________ 2462 2463 1.2.12.1. Interfaces for Time Manipulation 2464 2465 An LSB conforming implementation shall provide the 2466 architecture specific functions for Time Manipulation 2467 specified in Table 1-23, with the full functionality as 2468 described in the referenced underlying specification. 2469 2470 Table 1-23. libc - Time Manipulation Function Interfaces 2471 adjtime(GLIBC_2.2) [1] ctime(GLIBC_2.2) [2] gmtime(GLIBC_2.2) 2472 [2] localtime_r(GLIBC_2.2) [2] ualarm(GLIBC_2.2) [2] 2473 asctime(GLIBC_2.2) [2] ctime_r(GLIBC_2.2) [2] 2474 gmtime_r(GLIBC_2.2) [2] mktime(GLIBC_2.2) [2] 2475 asctime_r(GLIBC_2.2) [2] difftime(GLIBC_2.2) [2] 2476 localtime(GLIBC_2.2) [2] tzset(GLIBC_2.2) [2] 2477 2478 Referenced Specification(s) 2479 2480 [1]. this specification 2481 2482 [2]. ISO POSIX (2003) 2483 2484 An LSB conforming implementation shall provide the 2485 architecture specific deprecated functions for Time 2486 Manipulation specified in Table 1-24, with the full 2487 functionality as described in the referenced underlying 2488 specification. 2489 2490 Note: These interfaces are deprecated, and applications 2491 should avoid using them. These interfaces may be withdrawn 2492 in future releases of this specification. 2493 2494 Table 1-24. libc - Time Manipulation Deprecated Function 2495 Interfaces 2496 adjtimex(GLIBC_2.2) [1] 2497 2498 Referenced Specification(s) 2499 2500 [1]. this specification 2501 2502 An LSB conforming implementation shall provide the 2503 architecture specific data interfaces for Time Manipulation 2504 specified in Table 1-25, with the full functionality as 2505 described in the referenced underlying specification. 2506 2507 Table 1-25. libc - Time Manipulation Data Interfaces 2508 __daylight(GLIBC_2.2) [1] __tzname(GLIBC_2.2) [1] 2509 timezone(GLIBC_2.2) [2] 2510 __timezone(GLIBC_2.2) [1] daylight(GLIBC_2.2) [2] 2511 tzname(GLIBC_2.2) [2] 2512 2513 Referenced Specification(s) 2514 2515 [1]. this specification 2516 2517 [2]. ISO POSIX (2003) 2518 _________________________________________________________ 2519 2520 1.2.13. Terminal Interface Functions 2521 _________________________________________________________ 2522 2523 1.2.13.1. Interfaces for Terminal Interface Functions 2524 2525 An LSB conforming implementation shall provide the 2526 architecture specific functions for Terminal Interface 2527 Functions specified in Table 1-26, with the full functionality 2528 as described in the referenced underlying specification. 2529 2530 Table 1-26. libc - Terminal Interface Functions Function 2531 Interfaces 2532 cfgetispeed(GLIBC_2.2) [1] cfsetispeed(GLIBC_2.2) [1] 2533 tcdrain(GLIBC_2.2) [1] tcgetattr(GLIBC_2.2) [1] 2534 tcsendbreak(GLIBC_2.2) [1] 2535 cfgetospeed(GLIBC_2.2) [1] cfsetospeed(GLIBC_2.2) [1] 2536 tcflow(GLIBC_2.2) [1] tcgetpgrp(GLIBC_2.2) [1] 2537 tcsetattr(GLIBC_2.2) [1] 2538 cfmakeraw(GLIBC_2.2) [2] cfsetspeed(GLIBC_2.2) [2] 2539 tcflush(GLIBC_2.2) [1] tcgetsid(GLIBC_2.2) [1] 2540 tcsetpgrp(GLIBC_2.2) [1] 2541 2542 Referenced Specification(s) 2543 2544 [1]. ISO POSIX (2003) 2545 2546 [2]. this specification 2547 _________________________________________________________ 2548 2549 1.2.14. System Database Interface 2550 _________________________________________________________ 2551 2552 1.2.14.1. Interfaces for System Database Interface 2553 2554 An LSB conforming implementation shall provide the 2555 architecture specific functions for System Database Interface 2556 specified in Table 1-27, with the full functionality as 2557 described in the referenced underlying specification. 2558 2559 Table 1-27. libc - System Database Interface Function 2560 Interfaces 2561 endgrent(GLIBC_2.2) [1] getgrgid_r(GLIBC_2.2) [1] 2562 getpwent(GLIBC_2.2) [1] getutent(GLIBC_2.2) [2] 2563 setprotoent(GLIBC_2.2) [1] 2564 endprotoent(GLIBC_2.2) [1] getgrnam(GLIBC_2.2) [1] 2565 getpwnam(GLIBC_2.2) [1] getutent_r(GLIBC_2.2) [2] 2566 setpwent(GLIBC_2.2) [1] 2567 endpwent(GLIBC_2.2) [1] getgrnam_r(GLIBC_2.2) [1] 2568 getpwnam_r(GLIBC_2.2) [1] getutxent(GLIBC_2.2) [1] 2569 setservent(GLIBC_2.2) [1] 2570 endservent(GLIBC_2.2) [1] gethostbyaddr(GLIBC_2.2) [1] 2571 getpwuid(GLIBC_2.2) [1] getutxid(GLIBC_2.2) [1] 2572 setutent(GLIBC_2.2) [2] 2573 endutent(GLIBC_2.2) [3] gethostbyname(GLIBC_2.2) [1] 2574 getpwuid_r(GLIBC_2.2) [1] getutxline(GLIBC_2.2) [1] 2575 setutxent(GLIBC_2.2) [1] 2576 endutxent(GLIBC_2.2) [1] getprotobyname(GLIBC_2.2) [1] 2577 getservbyname(GLIBC_2.2) [1] pututxline(GLIBC_2.2) [1] 2578 utmpname(GLIBC_2.2) [2] 2579 getgrent(GLIBC_2.2) [1] getprotobynumber(GLIBC_2.2) [1] 2580 getservbyport(GLIBC_2.2) [1] setgrent(GLIBC_2.2) [1] 2581 getgrgid(GLIBC_2.2) [1] getprotoent(GLIBC_2.2) [1] 2582 getservent(GLIBC_2.2) [1] setgroups(GLIBC_2.2) [2] 2583 2584 Referenced Specification(s) 2585 2586 [1]. ISO POSIX (2003) 2587 2588 [2]. this specification 2589 2590 [3]. SUSv2 2591 2592 An LSB conforming implementation shall provide the 2593 architecture specific deprecated functions for System Database 2594 Interface specified in Table 1-28, with the full functionality 2595 as described in the referenced underlying specification. 2596 2597 Note: These interfaces are deprecated, and applications 2598 should avoid using them. These interfaces may be withdrawn 2599 in future releases of this specification. 2600 2601 Table 1-28. libc - System Database Interface Deprecated 2602 Function Interfaces 2603 endnetent(GLIBC_2.2) [1] getnetbyaddr(GLIBC_2.2) [1] 2604 setnetent(GLIBC_2.2) [1] 2605 2606 Referenced Specification(s) 2607 2608 [1]. ISO POSIX (2003) 2609 _________________________________________________________ 2610 2611 1.2.15. Language Support 2612 _________________________________________________________ 2613 2614 1.2.15.1. Interfaces for Language Support 2615 2616 An LSB conforming implementation shall provide the 2617 architecture specific functions for Language Support specified 2618 in Table 1-29, with the full functionality as described in the 2619 referenced underlying specification. 2620 2621 Table 1-29. libc - Language Support Function Interfaces 2622 __libc_start_main(GLIBC_2.2) [1] 2623 2624 Referenced Specification(s) 2625 2626 [1]. this specification 2627 _________________________________________________________ 2628 2629 1.2.16. Large File Support 2630 _________________________________________________________ 2631 2632 1.2.16.1. Interfaces for Large File Support 2633 2634 An LSB conforming implementation shall provide the 2635 architecture specific functions for Large File Support 2636 specified in Table 1-30, with the full functionality as 2637 described in the referenced underlying specification. 2638 2639 Table 1-30. libc - Large File Support Function Interfaces 2640 __fxstat64(GLIBC_2.2) [1] fopen64(GLIBC_2.2) [2] 2641 ftello64(GLIBC_2.2) [2] lseek64(GLIBC_2.2) [2] 2642 readdir64(GLIBC_2.2) [2] 2643 __lxstat64(GLIBC_2.2) [1] freopen64(GLIBC_2.2) [2] 2644 ftruncate64(GLIBC_2.2) [2] mkstemp64(GLIBC_2.2) [2] 2645 statvfs64(GLIBC_2.2) [2] 2646 __xstat64(GLIBC_2.2) [1] fseeko64(GLIBC_2.2) [2] 2647 ftw64(GLIBC_2.2) [2] mmap64(GLIBC_2.2) [2] 2648 tmpfile64(GLIBC_2.2) [2] 2649 creat64(GLIBC_2.2) [2] fsetpos64(GLIBC_2.2) [2] 2650 getrlimit64(GLIBC_2.2) [2] nftw64(GLIBC_2.2) [2] 2651 truncate64(GLIBC_2.2) [2] 2652 fgetpos64(GLIBC_2.2) [2] fstatvfs64(GLIBC_2.2) [2] 2653 lockf64(GLIBC_2.2) [2] open64(GLIBC_2.2) [2] 2654 2655 Referenced Specification(s) 2656 2657 [1]. this specification 2658 2659 [2]. Large File Support 2660 _________________________________________________________ 2661 2662 1.2.17. Standard Library 2663 _________________________________________________________ 2664 2665 1.2.17.1. Interfaces for Standard Library 2666 2667 An LSB conforming implementation shall provide the 2668 architecture specific functions for Standard Library specified 2669 in Table 1-31, with the full functionality as described in the 2670 referenced underlying specification. 2671 2672 Table 1-31. libc - Standard Library Function Interfaces 2673 _Exit(GLIBC_2.2) [1] dirname(GLIBC_2.2) [1] glob(GLIBC_2.2) 2674 [1] lsearch(GLIBC_2.2) [1] srandom(GLIBC_2.2) [1] 2675 __assert_fail(GLIBC_2.2) [2] div(GLIBC_2.2) [1] 2676 glob64(GLIBC_2.2) [2] makecontext(GLIBC_2.2) [1] 2677 strtod(GLIBC_2.2) [1] 2678 __cxa_atexit(GLIBC_2.2) [2] drand48(GLIBC_2.2) [1] 2679 globfree(GLIBC_2.2) [1] malloc(GLIBC_2.2) [1] 2680 strtol(GLIBC_2.2) [1] 2681 __errno_location(GLIBC_2.2) [2] ecvt(GLIBC_2.2) [1] 2682 globfree64(GLIBC_2.2) [2] memmem(GLIBC_2.2) [2] 2683 strtoul(GLIBC_2.2) [1] 2684 __fpending(GLIBC_2.2) [2] erand48(GLIBC_2.2) [1] 2685 grantpt(GLIBC_2.2) [1] mkstemp(GLIBC_2.2) [1] 2686 swapcontext(GLIBC_2.2) [1] 2687 __getpagesize(GLIBC_2.2) [2] err(GLIBC_2.2) [2] 2688 hcreate(GLIBC_2.2) [1] mktemp(GLIBC_2.2) [1] syslog(GLIBC_2.2) 2689 [1] 2690 __isinf(GLIBC_2.2) [2] error(GLIBC_2.2) [2] 2691 hdestroy(GLIBC_2.2) [1] mrand48(GLIBC_2.2) [1] 2692 system(GLIBC_2.2) [2] 2693 __isinff(GLIBC_2.2) [2] errx(GLIBC_2.2) [2] hsearch(GLIBC_2.2) 2694 [1] nftw(GLIBC_2.2) [1] tdelete(GLIBC_2.2) [1] 2695 __isinfl(GLIBC_2.2) [2] fcvt(GLIBC_2.2) [1] htonl(GLIBC_2.2) 2696 [1] nrand48(GLIBC_2.2) [1] tfind(GLIBC_2.2) [1] 2697 __isnan(GLIBC_2.2) [2] fmtmsg(GLIBC_2.2) [1] htons(GLIBC_2.2) 2698 [1] ntohl(GLIBC_2.2) [1] tmpfile(GLIBC_2.2) [1] 2699 __isnanf(GLIBC_2.2) [2] fnmatch(GLIBC_2.2.3) [1] 2700 imaxabs(GLIBC_2.2) [1] ntohs(GLIBC_2.2) [1] tmpnam(GLIBC_2.2) 2701 [1] 2702 __isnanl(GLIBC_2.2) [2] fpathconf(GLIBC_2.2) [1] 2703 imaxdiv(GLIBC_2.2) [1] openlog(GLIBC_2.2) [1] 2704 tsearch(GLIBC_2.2) [1] 2705 __sysconf(GLIBC_2.2) [2] free(GLIBC_2.2) [1] 2706 inet_addr(GLIBC_2.2) [1] perror(GLIBC_2.2) [1] 2707 ttyname(GLIBC_2.2) [1] 2708 _exit(GLIBC_2.2) [1] freeaddrinfo(GLIBC_2.2) [1] 2709 inet_ntoa(GLIBC_2.2) [1] posix_memalign(GLIBC_2.2) [1] 2710 ttyname_r(GLIBC_2.2) [1] 2711 _longjmp(GLIBC_2.2) [1] ftrylockfile(GLIBC_2.2) [1] 2712 inet_ntop(GLIBC_2.2) [1] ptsname(GLIBC_2.2) [1] 2713 twalk(GLIBC_2.2) [1] 2714 _setjmp(GLIBC_2.2) [1] ftw(GLIBC_2.2) [1] inet_pton(GLIBC_2.2) 2715 [1] putenv(GLIBC_2.2) [1] unlockpt(GLIBC_2.2) [1] 2716 a64l(GLIBC_2.2) [1] funlockfile(GLIBC_2.2) [1] 2717 initstate(GLIBC_2.2) [1] qsort(GLIBC_2.2) [1] 2718 unsetenv(GLIBC_2.2) [1] 2719 abort(GLIBC_2.2) [1] gai_strerror(GLIBC_2.2) [1] 2720 insque(GLIBC_2.2) [1] rand(GLIBC_2.2) [1] usleep(GLIBC_2.2) 2721 [1] 2722 abs(GLIBC_2.2) [1] gcvt(GLIBC_2.2) [1] isatty(GLIBC_2.2) [1] 2723 rand_r(GLIBC_2.2) [1] verrx(GLIBC_2.2) [2] 2724 atof(GLIBC_2.2) [1] getaddrinfo(GLIBC_2.2) [1] 2725 isblank(GLIBC_2.2) [1] random(GLIBC_2.2) [1] 2726 vfscanf(GLIBC_2.2) [1] 2727 atoi(GLIBC_2.2) [1] getcwd(GLIBC_2.2) [1] jrand48(GLIBC_2.2) 2728 [1] realloc(GLIBC_2.2) [1] vscanf(GLIBC_2.2) [1] 2729 atol(GLIBC_2.2) [1] getdate(GLIBC_2.2) [1] l64a(GLIBC_2.2) [1] 2730 realpath(GLIBC_2.3) [1] vsscanf(GLIBC_2.2) [1] 2731 atoll(GLIBC_2.2) [1] getenv(GLIBC_2.2) [1] labs(GLIBC_2.2) [1] 2732 remque(GLIBC_2.2) [1] vsyslog(GLIBC_2.2) [2] 2733 basename(GLIBC_2.2) [1] getlogin(GLIBC_2.2) [1] 2734 lcong48(GLIBC_2.2) [1] seed48(GLIBC_2.2) [1] warn(GLIBC_2.2) 2735 [2] 2736 bsearch(GLIBC_2.2) [1] getnameinfo(GLIBC_2.2) [1] 2737 ldiv(GLIBC_2.2) [1] setenv(GLIBC_2.2) [1] warnx(GLIBC_2.2) [2] 2738 calloc(GLIBC_2.2) [1] getopt(GLIBC_2.2) [2] lfind(GLIBC_2.2) 2739 [1] sethostname(GLIBC_2.2) [2] wordexp(GLIBC_2.2.2) [1] 2740 closelog(GLIBC_2.2) [1] getopt_long(GLIBC_2.2) [2] 2741 llabs(GLIBC_2.2) [1] setlogmask(GLIBC_2.2) [1] 2742 wordfree(GLIBC_2.2) [1] 2743 confstr(GLIBC_2.2) [1] getopt_long_only(GLIBC_2.2) [2] 2744 lldiv(GLIBC_2.2) [1] setstate(GLIBC_2.2) [1] 2745 cuserid(GLIBC_2.2) [3] getsubopt(GLIBC_2.2) [1] 2746 longjmp(GLIBC_2.2) [1] srand(GLIBC_2.2) [1] 2747 daemon(GLIBC_2.2) [2] gettimeofday(GLIBC_2.2) [1] 2748 lrand48(GLIBC_2.2) [1] srand48(GLIBC_2.2) [1] 2749 2750 Referenced Specification(s) 2751 2752 [1]. ISO POSIX (2003) 2753 2754 [2]. this specification 2755 2756 [3]. SUSv2 2757 2758 An LSB conforming implementation shall provide the 2759 architecture specific deprecated functions for Standard 2760 Library specified in Table 1-32, with the full functionality 2761 as described in the referenced underlying specification. 2762 2763 Note: These interfaces are deprecated, and applications 2764 should avoid using them. These interfaces may be withdrawn 2765 in future releases of this specification. 2766 2767 Table 1-32. libc - Standard Library Deprecated Function 2768 Interfaces 2769 random_r(GLIBC_2.2) [1] sethostid(GLIBC_2.2) [1] 2770 2771 Referenced Specification(s) 2772 2773 [1]. this specification 2774 2775 An LSB conforming implementation shall provide the 2776 architecture specific data interfaces for Standard Library 2777 specified in Table 1-33, with the full functionality as 2778 described in the referenced underlying specification. 2779 2780 Table 1-33. libc - Standard Library Data Interfaces 2781 __environ(GLIBC_2.2) [1] _sys_errlist(GLIBC_2.3) [1] 2782 getdate_err(GLIBC_2.2) [2] opterr(GLIBC_2.2) [1] 2783 optopt(GLIBC_2.2) [1] 2784 _environ(GLIBC_2.2) [1] environ(GLIBC_2.2) [2] 2785 optarg(GLIBC_2.2) [2] optind(GLIBC_2.2) [1] 2786 2787 Referenced Specification(s) 2788 2789 [1]. this specification 2790 2791 [2]. ISO POSIX (2003) 2792 _________________________________________________________ 2793 2794 1.3. Data Definitions for libc 2795 2796 This section defines global identifiers and their values that 2797 are associated with interfaces contained in libc. These 2798 definitions are organized into groups that correspond to 2799 system headers. This convention is used as a convenience for 2800 the reader, and does not imply the existence of these headers, 2801 or their content. 2802 2803 These definitions are intended to supplement those provided in 2804 the referenced underlying specifications. 2805 2806 This specification uses ISO/IEC 9899 C Language as the 2807 reference programming language, and data definitions are 2808 specified in ISO C format. The C language is used here as a 2809 convenient notation. Using a C language description of these 2810 data objects does not preclude their use by other programming 2811 languages. 2812 _________________________________________________________ 2813 2814 1.3.1. errno.h 2815 2816 #define EDEADLOCK EDEADLK 2817 _________________________________________________________ 2818 2819 1.3.2. fcntl.h 2820 2821 #define F_GETLK64 5 2822 #define F_SETLK64 6 2823 #define F_SETLKW64 7 2824 _________________________________________________________ 2825 2826 1.3.3. inttypes.h 2827 2828 typedef long intmax_t; 2829 typedef unsigned long uintmax_t; 2830 typedef unsigned long uintptr_t; 2831 typedef unsigned long uint64_t; 2832 _________________________________________________________ 2833 2834 1.3.4. limits.h 2835 2836 #define LONG_MAX 0x7FFFFFFFFFFFFFFFL 2837 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 2838 2839 #define CHAR_MAX SCHAR_MAX 2840 #define CHAR_MIN SCHAR_MIN 2841 _________________________________________________________ 2842 2843 1.3.5. setjmp.h 2844 2845 typedef long __jmp_buf[70] __attribute__ ((aligned (16))); 2846 _________________________________________________________ 2847 2848 1.3.6. signal.h 2849 2850 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-4) 2851 2852 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-4) 2853 2854 struct sigaction 2855 { 2856 union 2857 { 2858 sighandler_t _sa_handler; 2859 void (*_sa_sigaction) (int, siginfo_t *, void *); 2860 } 2861 __sigaction_handler; 2862 unsigned long sa_flags; 2863 sigset_t sa_mask; 2864 } 2865 ; 2866 #define MINSIGSTKSZ 131027 2867 #define SIGSTKSZ 262144 2868 2869 struct ia64_fpreg 2870 { 2871 union 2872 { 2873 unsigned long bits[2]; 2874 long double __dummy; 2875 } 2876 u; 2877 } 2878 ; 2879 2880 struct sigcontext 2881 { 2882 unsigned long sc_flags; 2883 unsigned long sc_nat; 2884 stack_t sc_stack; 2885 unsigned long sc_ip; 2886 unsigned long sc_cfm; 2887 unsigned long sc_um; 2888 unsigned long sc_ar_rsc; 2889 unsigned long sc_ar_bsp; 2890 unsigned long sc_ar_rnat; 2891 unsigned long sc_ar_ccv; 2892 unsigned long sc_ar_unat; 2893 unsigned long sc_ar_fpsr; 2894 unsigned long sc_ar_pfs; 2895 unsigned long sc_ar_lc; 2896 unsigned long sc_pr; 2897 unsigned long sc_br[8]; 2898 unsigned long sc_gr[32]; 2899 struct ia64_fpreg sc_fr[128]; 2900 unsigned long sc_rbs_base; 2901 unsigned long sc_loadrs; 2902 unsigned long sc_ar25; 2903 unsigned long sc_ar26; 2904 unsigned long sc_rsvd[12]; 2905 unsigned long sc_mask; 2906 } 2907 ; 2908 _________________________________________________________ 2909 2910 1.3.7. stddef.h 2911 2912 typedef long ptrdiff_t; 2913 typedef unsigned long size_t; 2914 _________________________________________________________ 2915 2916 1.3.8. stdio.h 2917 2918 #define __IO_FILE_SIZE 216 2919 _________________________________________________________ 2920 2921 1.3.9. sys/ioctl.h 2922 2923 #define FIONREAD 0x541B 2924 #define TIOCNOTTY 0x5422 2925 _________________________________________________________ 2926 2927 1.3.10. sys/ipc.h 2928 2929 struct ipc_perm 2930 { 2931 key_t __key; 2932 uid_t uid; 2933 gid_t gid; 2934 uid_t cuid; 2935 uid_t cgid; 2936 mode_t mode; 2937 unsigned short __seq; 2938 unsigned short __pad1; 2939 unsigned long __unused1; 2940 unsigned long __unused2; 2941 } 2942 ; 2943 _________________________________________________________ 2944 2945 1.3.11. sys/mman.h 2946 2947 #define MCL_CURRENT 1 2948 #define MCL_FUTURE 2 2949 _________________________________________________________ 2950 2951 1.3.12. sys/msg.h 2952 2953 struct msqid_ds 2954 { 2955 struct ipc_perm msg_perm; 2956 time_t msg_stime; 2957 time_t msg_rtime; 2958 time_t msg_ctime; 2959 unsigned long __msg_cbytes; 2960 unsigned long msg_qnum; 2961 unsigned long msg_qbytes; 2962 pid_t msg_lspid; 2963 pid_t msg_lrpid; 2964 unsigned long __unused1; 2965 unsigned long __unused2; 2966 } 2967 ; 2968 _________________________________________________________ 2969 2970 1.3.13. sys/sem.h 2971 2972 struct semid_ds 2973 { 2974 struct ipc_perm sem_perm; 2975 time_t sem_otime; 2976 time_t sem_ctime; 2977 unsigned long sem_nsems; 2978 unsigned long __unused1; 2979 unsigned long __unused2; 2980 } 2981 ; 2982 _________________________________________________________ 2983 2984 1.3.14. sys/shm.h 2985 2986 #define SHMLBA (1024*1024) 2987 2988 struct shmid_ds 2989 { 2990 struct ipc_perm shm_perm; 2991 size_t shm_segsz; 2992 time_t shm_atime; 2993 time_t shm_dtime; 2994 time_t shm_ctime; 2995 pid_t shm_cpid; 2996 pid_t shm_lpid; 2997 unsigned long shm_nattch; 2998 unsigned long __unused1; 2999 unsigned long __unused2; 3000 } 3001 ; 3002 _________________________________________________________ 3003 3004 1.3.15. sys/socket.h 3005 3006 typedef uint64_t __ss_aligntype; 3007 3008 #define SO_RCVLOWAT 18 3009 #define SO_SNDLOWAT 19 3010 #define SO_RCVTIMEO 20 3011 #define SO_SNDTIMEO 21 3012 _________________________________________________________ 3013 3014 1.3.16. sys/stat.h 3015 3016 #define _STAT_VER 1 3017 3018 struct stat 3019 { 3020 dev_t st_dev; 3021 ino_t st_ino; 3022 nlink_t st_nlink; 3023 mode_t st_mode; 3024 uid_t st_uid; 3025 gid_t st_gid; 3026 unsigned int pad0; 3027 dev_t st_rdev; 3028 off_t st_size; 3029 struct timespec st_atim; 3030 struct timespec st_mtim; 3031 struct timespec st_ctim; 3032 blksize_t st_blksize; 3033 blkcnt_t st_blocks; 3034 unsigned long __unused[3]; 3035 } 3036 ; 3037 struct stat64 3038 { 3039 dev_t st_dev; 3040 ino64_t st_ino; 3041 nlink_t st_nlink; 3042 mode_t st_mode; 3043 uid_t st_uid; 3044 gid_t st_gid; 3045 unsigned int pad0; 3046 dev_t st_rdev; 3047 off_t st_size; 3048 struct timespec st_atim; 3049 struct timespec st_mtim; 3050 struct timespec st_ctim; 3051 blksize_t st_blksize; 3052 blkcnt64_t st_blocks; 3053 unsigned long __unused[3]; 3054 } 3055 ; 3056 _________________________________________________________ 3057 3058 1.3.17. sys/statvfs.h 3059 3060 struct statvfs 3061 { 3062 unsigned long f_bsize; 3063 unsigned long f_frsize; 3064 fsblkcnt64_t f_blocks; 3065 fsblkcnt64_t f_bfree; 3066 fsblkcnt64_t f_bavail; 3067 fsfilcnt64_t f_files; 3068 fsfilcnt64_t f_ffree; 3069 fsfilcnt64_t f_favail; 3070 unsigned long f_fsid; 3071 unsigned long f_flag; 3072 unsigned long f_namemax; 3073 unsigned int __f_spare[6]; 3074 } 3075 ; 3076 struct statvfs64 3077 { 3078 unsigned long f_bsize; 3079 unsigned long f_frsize; 3080 fsblkcnt64_t f_blocks; 3081 fsblkcnt64_t f_bfree; 3082 fsblkcnt64_t f_bavail; 3083 fsfilcnt64_t f_files; 3084 fsfilcnt64_t f_ffree; 3085 fsfilcnt64_t f_favail; 3086 unsigned long f_fsid; 3087 unsigned long f_flag; 3088 unsigned long f_namemax; 3089 unsigned int __f_spare[6]; 3090 } 3091 ; 3092 _________________________________________________________ 3093 3094 1.3.18. sys/types.h 3095 3096 typedef long int64_t; 3097 3098 typedef int64_t ssize_t; 3099 3100 #define __FDSET_LONGS 16 3101 _________________________________________________________ 3102 3103 1.3.19. termios.h 3104 3105 #define OLCUC 0000002 3106 #define ONLCR 0000004 3107 #define XCASE 0000004 3108 #define NLDLY 0000400 3109 #define CR1 0001000 3110 #define IUCLC 0001000 3111 #define CR2 0002000 3112 #define CR3 0003000 3113 #define CRDLY 0003000 3114 #define TAB1 0004000 3115 #define TAB2 0010000 3116 #define TAB3 0014000 3117 #define TABDLY 0014000 3118 #define BS1 0020000 3119 #define BSDLY 0020000 3120 #define VT1 0040000 3121 #define VTDLY 0040000 3122 #define FF1 0100000 3123 #define FFDLY 0100000 3124 3125 #define VSUSP 10 3126 #define VEOL 11 3127 #define VREPRINT 12 3128 #define VDISCARD 13 3129 #define VWERASE 14 3130 #define VEOL2 16 3131 #define VMIN 6 3132 #define VSWTC 7 3133 #define VSTART 8 3134 #define VSTOP 9 3135 3136 #define IXON 0002000 3137 #define IXOFF 0010000 3138 3139 #define CS6 0000020 3140 #define CS7 0000040 3141 #define CS8 0000060 3142 #define CSIZE 0000060 3143 #define CSTOPB 0000100 3144 #define CREAD 0000200 3145 #define PARENB 0000400 3146 #define PARODD 0001000 3147 #define HUPCL 0002000 3148 #define CLOCAL 0004000 3149 #define VTIME 5 3150 3151 #define ISIG 0000001 3152 #define ICANON 0000002 3153 #define ECHOE 0000020 3154 #define ECHOK 0000040 3155 #define ECHONL 0000100 3156 #define NOFLSH 0000200 3157 #define TOSTOP 0000400 3158 #define ECHOCTL 0001000 3159 #define ECHOPRT 0002000 3160 #define ECHOKE 0004000 3161 #define FLUSHO 0010000 3162 #define PENDIN 0040000 3163 #define IEXTEN 0100000 3164 _________________________________________________________ 3165 3166 1.3.20. ucontext.h 3167 3168 #define _SC_GR0_OFFSET (((char *) & ((struct sigcontext *) 0)->sc_gr[0 3169 ]) - (char *) 0) 3170 3171 typedef struct sigcontext mcontext_t; 3172 3173 typedef struct ucontext 3174 { 3175 union 3176 { 3177 mcontext_t _mc; 3178 struct 3179 { 3180 unsigned long _pad[_SC_GR0_OFFSET / 8]; 3181 struct ucontext *_link; 3182 } 3183 _uc; 3184 } 3185 _u; 3186 } 3187 ucontext_t; 3188 _________________________________________________________ 3189 3190 1.3.21. unistd.h 3191 3192 typedef long intptr_t; 3193 _________________________________________________________ 3194 3195 1.3.22. utmp.h 3196 3197 struct lastlog 3198 { 3199 time_t ll_time; 3200 char ll_line[UT_LINESIZE]; 3201 char ll_host[UT_HOSTSIZE]; 3202 } 3203 ; 3204 3205 struct utmp 3206 { 3207 short ut_type; 3208 pid_t ut_pid; 3209 char ut_line[UT_LINESIZE]; 3210 char ut_id[4]; 3211 char ut_user[UT_NAMESIZE]; 3212 char ut_host[UT_HOSTSIZE]; 3213 struct exit_status ut_exit; 3214 long ut_session; 3215 struct timeval ut_tv; 3216 int32_t ut_addr_v6[4]; 3217 char __unused[20]; 3218 } 3219 ; 3220 _________________________________________________________ 3221 3222 1.3.23. utmpx.h 3223 3224 struct utmpx 3225 { 3226 short ut_type; 3227 pid_t ut_pid; 3228 char ut_line[UT_LINESIZE]; 3229 char ut_id[4]; 3230 char ut_user[UT_NAMESIZE]; 3231 char ut_host[UT_HOSTSIZE]; 3232 struct exit_status ut_exit; 3233 long ut_session; 3234 struct timeval ut_tv; 3235 int32_t ut_addr_v6[4]; 3236 char __unused[20]; 3237 } 3238 ; 3239 _________________________________________________________ 3240 3241 1.4. Interfaces for libm 3242 3243 Table 1-34 defines the library name and shared object name for 3244 the libm library 3245 3246 Table 1-34. libm Definition 3247 Library: libm 3248 SONAME: libm.so.6.1 3249 3250 The behavior of the interfaces in this library is specified by 3251 the following specifications: 3252 3253 ISO C (1999) 3254 this specification 3255 SUSv2 3256 ISO POSIX (2003) 3257 _________________________________________________________ 3258 3259 1.4.1. Math 3260 _________________________________________________________ 3261 3262 1.4.1.1. Interfaces for Math 3263 3264 An LSB conforming implementation shall provide the 3265 architecture specific functions for Math specified in Table 3266 1-35, with the full functionality as described in the 3267 referenced underlying specification. 3268 3269 Table 1-35. libm - Math Function Interfaces 3270 __finite(GLIBC_2.2) [1] ccoshl(GLIBC_2.2) [2] exp(GLIBC_2.2) 3271 [2] j1l(GLIBC_2.2) [1] powl(GLIBC_2.2) [2] 3272 __finitef(GLIBC_2.2) [1] ccosl(GLIBC_2.2) [2] exp2(GLIBC_2.2) 3273 [2] jn(GLIBC_2.2) [2] remainder(GLIBC_2.2) [2] 3274 __finitel(GLIBC_2.2) [1] ceil(GLIBC_2.2) [2] exp2f(GLIBC_2.2) 3275 [2] jnf(GLIBC_2.2) [1] remainderf(GLIBC_2.2) [2] 3276 __fpclassify(GLIBC_2.2) [3] ceilf(GLIBC_2.2) [2] 3277 exp2l(GLIBC_2.2) [2] jnl(GLIBC_2.2) [1] remainderl(GLIBC_2.2) 3278 [2] 3279 __fpclassifyf(GLIBC_2.2) [3] ceill(GLIBC_2.2) [2] 3280 expf(GLIBC_2.2) [2] ldexp(GLIBC_2.2) [2] remquo(GLIBC_2.2) [2] 3281 __fpclassifyl(GLIBC_2.2) [1] cexp(GLIBC_2.2) [2] 3282 expl(GLIBC_2.2) [2] ldexpf(GLIBC_2.2) [2] remquof(GLIBC_2.2) 3283 [2] 3284 __signbit(GLIBC_2.2) [1] cexpf(GLIBC_2.2) [2] expm1(GLIBC_2.2) 3285 [2] ldexpl(GLIBC_2.2) [2] remquol(GLIBC_2.2) [2] 3286 __signbitf(GLIBC_2.2) [1] cexpl(GLIBC_2.2) [2] 3287 expm1f(GLIBC_2.2) [2] lgamma(GLIBC_2.2) [2] rint(GLIBC_2.2) 3288 [2] 3289 __signbitl(GLIBC_2.2) [1] cimag(GLIBC_2.2) [2] 3290 expm1l(GLIBC_2.2) [2] lgamma_r(GLIBC_2.2) [1] rintf(GLIBC_2.2) 3291 [2] 3292 acos(GLIBC_2.2) [2] cimagf(GLIBC_2.2) [2] fabs(GLIBC_2.2) [2] 3293 lgammaf(GLIBC_2.2) [2] rintl(GLIBC_2.2) [2] 3294 acosf(GLIBC_2.2) [2] cimagl(GLIBC_2.2) [2] fabsf(GLIBC_2.2) 3295 [2] lgammaf_r(GLIBC_2.2) [1] round(GLIBC_2.2) [2] 3296 acosh(GLIBC_2.2) [2] clog(GLIBC_2.2) [2] fabsl(GLIBC_2.2) [2] 3297 lgammal(GLIBC_2.2) [2] roundf(GLIBC_2.2) [2] 3298 acoshf(GLIBC_2.2) [2] clog10(GLIBC_2.2) [1] fdim(GLIBC_2.2) 3299 [2] lgammal_r(GLIBC_2.2) [1] roundl(GLIBC_2.2) [2] 3300 acoshl(GLIBC_2.2) [2] clog10f(GLIBC_2.2) [1] fdimf(GLIBC_2.2) 3301 [2] llrint(GLIBC_2.2) [2] scalb(GLIBC_2.2) [2] 3302 acosl(GLIBC_2.2) [2] clog10l(GLIBC_2.2) [1] fdiml(GLIBC_2.2) 3303 [2] llrintf(GLIBC_2.2) [2] scalbf(GLIBC_2.2) [1] 3304 asin(GLIBC_2.2) [2] clogf(GLIBC_2.2) [2] 3305 feclearexcept(GLIBC_2.2) [2] llrintl(GLIBC_2.2) [2] 3306 scalbl(GLIBC_2.2) [1] 3307 asinf(GLIBC_2.2) [2] clogl(GLIBC_2.2) [2] fegetenv(GLIBC_2.2) 3308 [2] llround(GLIBC_2.2) [2] scalbln(GLIBC_2.2) [2] 3309 asinh(GLIBC_2.2) [2] conj(GLIBC_2.2) [2] 3310 fegetexceptflag(GLIBC_2.2) [2] llroundf(GLIBC_2.2) [2] 3311 scalblnf(GLIBC_2.2) [2] 3312 asinhf(GLIBC_2.2) [2] conjf(GLIBC_2.2) [2] 3313 fegetround(GLIBC_2.2) [2] llroundl(GLIBC_2.2) [2] 3314 scalblnl(GLIBC_2.2) [2] 3315 asinhl(GLIBC_2.2) [2] conjl(GLIBC_2.2) [2] 3316 feholdexcept(GLIBC_2.2) [2] log(GLIBC_2.2) [2] 3317 scalbn(GLIBC_2.2) [2] 3318 asinl(GLIBC_2.2) [2] copysign(GLIBC_2.2) [2] 3319 feraiseexcept(GLIBC_2.2) [2] log10(GLIBC_2.2) [2] 3320 scalbnf(GLIBC_2.2) [2] 3321 atan(GLIBC_2.2) [2] copysignf(GLIBC_2.2) [2] 3322 fesetenv(GLIBC_2.2) [2] log10f(GLIBC_2.2) [2] 3323 scalbnl(GLIBC_2.2) [2] 3324 atan2(GLIBC_2.2) [2] copysignl(GLIBC_2.2) [2] 3325 fesetexceptflag(GLIBC_2.2) [2] log10l(GLIBC_2.2) [2] 3326 significand(GLIBC_2.2) [1] 3327 atan2f(GLIBC_2.2) [2] cos(GLIBC_2.2) [2] fesetround(GLIBC_2.2) 3328 [2] log1p(GLIBC_2.2) [2] significandf(GLIBC_2.2) [1] 3329 atan2l(GLIBC_2.2) [2] cosf(GLIBC_2.2) [2] 3330 fetestexcept(GLIBC_2.2) [2] log1pf(GLIBC_2.2) [2] 3331 significandl(GLIBC_2.2) [1] 3332 atanf(GLIBC_2.2) [2] cosh(GLIBC_2.2) [2] 3333 feupdateenv(GLIBC_2.2) [2] log1pl(GLIBC_2.2) [2] 3334 sin(GLIBC_2.2) [2] 3335 atanh(GLIBC_2.2) [2] coshf(GLIBC_2.2) [2] finite(GLIBC_2.2) 3336 [4] log2(GLIBC_2.2) [2] sincos(GLIBC_2.2) [1] 3337 atanhf(GLIBC_2.2) [2] coshl(GLIBC_2.2) [2] finitef(GLIBC_2.2) 3338 [1] log2f(GLIBC_2.2) [2] sincosf(GLIBC_2.2) [1] 3339 atanhl(GLIBC_2.2) [2] cosl(GLIBC_2.2) [2] finitel(GLIBC_2.2) 3340 [1] log2l(GLIBC_2.2) [2] sincosl(GLIBC_2.2) [1] 3341 atanl(GLIBC_2.2) [2] cpow(GLIBC_2.2) [2] floor(GLIBC_2.2) [2] 3342 logb(GLIBC_2.2) [2] sinf(GLIBC_2.2) [2] 3343 cabs(GLIBC_2.2) [2] cpowf(GLIBC_2.2) [2] floorf(GLIBC_2.2) [2] 3344 logbf(GLIBC_2.2) [2] sinh(GLIBC_2.2) [2] 3345 cabsf(GLIBC_2.2) [2] cpowl(GLIBC_2.2) [2] floorl(GLIBC_2.2) 3346 [2] logbl(GLIBC_2.2) [2] sinhf(GLIBC_2.2) [2] 3347 cabsl(GLIBC_2.2) [2] cproj(GLIBC_2.2) [2] fma(GLIBC_2.2) [2] 3348 logf(GLIBC_2.2) [2] sinhl(GLIBC_2.2) [2] 3349 cacos(GLIBC_2.2) [2] cprojf(GLIBC_2.2) [2] fmaf(GLIBC_2.2) [2] 3350 logl(GLIBC_2.2) [2] sinl(GLIBC_2.2) [2] 3351 cacosf(GLIBC_2.2) [2] cprojl(GLIBC_2.2) [2] fmal(GLIBC_2.2) 3352 [2] lrint(GLIBC_2.2) [2] sqrt(GLIBC_2.2) [2] 3353 cacosh(GLIBC_2.2) [2] creal(GLIBC_2.2) [2] fmax(GLIBC_2.2) [2] 3354 lrintf(GLIBC_2.2) [2] sqrtf(GLIBC_2.2) [2] 3355 cacoshf(GLIBC_2.2) [2] crealf(GLIBC_2.2) [2] fmaxf(GLIBC_2.2) 3356 [2] lrintl(GLIBC_2.2) [2] sqrtl(GLIBC_2.2) [2] 3357 cacoshl(GLIBC_2.2) [2] creall(GLIBC_2.2) [2] fmaxl(GLIBC_2.2) 3358 [2] lround(GLIBC_2.2) [2] tan(GLIBC_2.2) [2] 3359 cacosl(GLIBC_2.2) [2] csin(GLIBC_2.2) [2] fmin(GLIBC_2.2) [2] 3360 lroundf(GLIBC_2.2) [2] tanf(GLIBC_2.2) [2] 3361 carg(GLIBC_2.2) [2] csinf(GLIBC_2.2) [2] fminf(GLIBC_2.2) [2] 3362 lroundl(GLIBC_2.2) [2] tanh(GLIBC_2.2) [2] 3363 cargf(GLIBC_2.2) [2] csinh(GLIBC_2.2) [2] fminl(GLIBC_2.2) [2] 3364 matherr(GLIBC_2.2) [1] tanhf(GLIBC_2.2) [2] 3365 cargl(GLIBC_2.2) [2] csinhf(GLIBC_2.2) [2] fmod(GLIBC_2.2) [2] 3366 modf(GLIBC_2.2) [2] tanhl(GLIBC_2.2) [2] 3367 casin(GLIBC_2.2) [2] csinhl(GLIBC_2.2) [2] fmodf(GLIBC_2.2) 3368 [2] modff(GLIBC_2.2) [2] tanl(GLIBC_2.2) [2] 3369 casinf(GLIBC_2.2) [2] csinl(GLIBC_2.2) [2] fmodl(GLIBC_2.2) 3370 [2] modfl(GLIBC_2.2) [2] tgamma(GLIBC_2.2) [2] 3371 casinh(GLIBC_2.2) [2] csqrt(GLIBC_2.2) [2] frexp(GLIBC_2.2) 3372 [2] nan(GLIBC_2.2) [2] tgammaf(GLIBC_2.2) [2] 3373 casinhf(GLIBC_2.2) [2] csqrtf(GLIBC_2.2) [2] frexpf(GLIBC_2.2) 3374 [2] nanf(GLIBC_2.2) [2] tgammal(GLIBC_2.2) [2] 3375 casinhl(GLIBC_2.2) [2] csqrtl(GLIBC_2.2) [2] frexpl(GLIBC_2.2) 3376 [2] nanl(GLIBC_2.2) [2] trunc(GLIBC_2.2) [2] 3377 casinl(GLIBC_2.2) [2] ctan(GLIBC_2.2) [2] gamma(GLIBC_2.2) [4] 3378 nearbyint(GLIBC_2.2) [2] truncf(GLIBC_2.2) [2] 3379 catan(GLIBC_2.2) [2] ctanf(GLIBC_2.2) [2] gammaf(GLIBC_2.2) 3380 [1] nearbyintf(GLIBC_2.2) [2] truncl(GLIBC_2.2) [2] 3381 catanf(GLIBC_2.2) [2] ctanh(GLIBC_2.2) [2] gammal(GLIBC_2.2) 3382 [1] nearbyintl(GLIBC_2.2) [2] y0(GLIBC_2.2) [2] 3383 catanh(GLIBC_2.2) [2] ctanhf(GLIBC_2.2) [2] hypot(GLIBC_2.2) 3384 [2] nextafter(GLIBC_2.2) [2] y0f(GLIBC_2.2) [1] 3385 catanhf(GLIBC_2.2) [2] ctanhl(GLIBC_2.2) [2] hypotf(GLIBC_2.2) 3386 [2] nextafterf(GLIBC_2.2) [2] y0l(GLIBC_2.2) [1] 3387 catanhl(GLIBC_2.2) [2] ctanl(GLIBC_2.2) [2] hypotl(GLIBC_2.2) 3388 [2] nextafterl(GLIBC_2.2) [2] y1(GLIBC_2.2) [2] 3389 catanl(GLIBC_2.2) [2] dremf(GLIBC_2.2) [1] ilogb(GLIBC_2.2) 3390 [2] nexttoward(GLIBC_2.2) [2] y1f(GLIBC_2.2) [1] 3391 cbrt(GLIBC_2.2) [2] dreml(GLIBC_2.2) [1] ilogbf(GLIBC_2.2) [2] 3392 nexttowardf(GLIBC_2.2) [2] y1l(GLIBC_2.2) [1] 3393 cbrtf(GLIBC_2.2) [2] erf(GLIBC_2.2) [2] ilogbl(GLIBC_2.2) [2] 3394 nexttowardl(GLIBC_2.2) [2] yn(GLIBC_2.2) [2] 3395 cbrtl(GLIBC_2.2) [2] erfc(GLIBC_2.2) [2] j0(GLIBC_2.2) [2] 3396 pow(GLIBC_2.2) [2] ynf(GLIBC_2.2) [1] 3397 ccos(GLIBC_2.2) [2] erfcf(GLIBC_2.2) [2] j0f(GLIBC_2.2) [1] 3398 pow10(GLIBC_2.2) [1] ynl(GLIBC_2.2) [1] 3399 ccosf(GLIBC_2.2) [2] erfcl(GLIBC_2.2) [2] j0l(GLIBC_2.2) [1] 3400 pow10f(GLIBC_2.2) [1] 3401 ccosh(GLIBC_2.2) [2] erff(GLIBC_2.2) [2] j1(GLIBC_2.2) [2] 3402 pow10l(GLIBC_2.2) [1] 3403 ccoshf(GLIBC_2.2) [2] erfl(GLIBC_2.2) [2] j1f(GLIBC_2.2) [1] 3404 powf(GLIBC_2.2) [2] 3405 3406 Referenced Specification(s) 3407 3408 [1]. ISO C (1999) 3409 3410 [2]. ISO POSIX (2003) 3411 3412 [3]. this specification 3413 3414 [4]. SUSv2 3415 3416 An LSB conforming implementation shall provide the 3417 architecture specific data interfaces for Math specified in 3418 Table 1-36, with the full functionality as described in the 3419 referenced underlying specification. 3420 3421 Table 1-36. libm - Math Data Interfaces 3422 signgam(GLIBC_2.2) [1] 3423 3424 Referenced Specification(s) 3425 3426 [1]. ISO POSIX (2003) 3427 _________________________________________________________ 3428 3429 1.5. Data Definitions for libm 3430 3431 This section defines global identifiers and their values that 3432 are associated with interfaces contained in libm. These 3433 definitions are organized into groups that correspond to 3434 system headers. This convention is used as a convenience for 3435 the reader, and does not imply the existence of these headers, 3436 or their content. 3437 3438 These definitions are intended to supplement those provided in 3439 the referenced underlying specifications. 3440 3441 This specification uses ISO/IEC 9899 C Language as the 3442 reference programming language, and data definitions are 3443 specified in ISO C format. The C language is used here as a 3444 convenient notation. Using a C language description of these 3445 data objects does not preclude their use by other programming 3446 languages. 3447 _________________________________________________________ 3448 3449 1.5.1. math.h 3450 3451 #define fpclassify(x) (sizeof (x) == sizeof (float) ? __fpclassifyf ( 3452 x) :sizeof (x) == sizeof (double) ? __fpclassify (x) : __fpclassifyl (x 3453 )) 3454 #define signbit(x) (sizeof (x) == sizeof (float)? __signbitf (x): 3455 sizeof (x) == sizeof (double)? __signbit (x) : __signbitl (x)) 3456 3457 #define FP_ILOGB0 -2147483648 3458 #define FP_ILOGBNAN 2147483647 3459 _________________________________________________________ 3460 3461 1.6. Interfaces for libpthread 3462 3463 Table 1-37 defines the library name and shared object name for 3464 the libpthread library 3465 3466 Table 1-37. libpthread Definition 3467 Library: libpthread 3468 SONAME: libpthread.so.0 3469 3470 The behavior of the interfaces in this library is specified by 3471 the following specifications: 3472 3473 Large File Support 3474 this specification 3475 ISO POSIX (2003) 3476 _________________________________________________________ 3477 3478 1.6.1. Realtime Threads 3479 _________________________________________________________ 3480 3481 1.6.1.1. Interfaces for Realtime Threads 3482 3483 No external functions are defined for libpthread - Realtime 3484 Threads 3485 _________________________________________________________ 3486 3487 1.6.2. Advanced Realtime Threads 3488 _________________________________________________________ 3489 3490 1.6.2.1. Interfaces for Advanced Realtime Threads 3491 3492 No external functions are defined for libpthread - Advanced 3493 Realtime Threads 3494 _________________________________________________________ 3495 3496 1.6.3. Posix Threads 3497 _________________________________________________________ 3498 3499 1.6.3.1. Interfaces for Posix Threads 3500 3501 An LSB conforming implementation shall provide the 3502 architecture specific functions for Posix Threads specified in 3503 Table 1-38, with the full functionality as described in the 3504 referenced underlying specification. 3505 3506 Table 1-38. libpthread - Posix Threads Function Interfaces 3507 _pthread_cleanup_pop(GLIBC_2.2) [1] pthread_cancel(GLIBC_2.2) 3508 [2] pthread_join(GLIBC_2.2) [2] pthread_rwlock_init(GLIBC_2.2) 3509 [2] pthread_sigmask(GLIBC_2.2) [2] 3510 _pthread_cleanup_push(GLIBC_2.2) [1] 3511 pthread_cond_broadcast(GLIBC_2.3.2) [2] 3512 pthread_key_create(GLIBC_2.2) [2] 3513 pthread_rwlock_rdlock(GLIBC_2.2) [2] 3514 pthread_testcancel(GLIBC_2.2) [2] 3515 pread(GLIBC_2.2) [2] pthread_cond_destroy(GLIBC_2.3.2) [2] 3516 pthread_key_delete(GLIBC_2.2) [2] 3517 pthread_rwlock_timedrdlock(GLIBC_2.2) [2] pwrite(GLIBC_2.2) 3518 [2] 3519 pread64(GLIBC_2.2) [3] pthread_cond_init(GLIBC_2.3.2) [2] 3520 pthread_kill(GLIBC_2.2) [2] 3521 pthread_rwlock_timedwrlock(GLIBC_2.2) [2] pwrite64(GLIBC_2.2) 3522 [3] 3523 pthread_attr_destroy(GLIBC_2.2) [2] 3524 pthread_cond_signal(GLIBC_2.3.2) [2] 3525 pthread_mutex_destroy(GLIBC_2.2) [2] 3526 pthread_rwlock_tryrdlock(GLIBC_2.2) [2] sem_close(GLIBC_2.2) 3527 [2] 3528 pthread_attr_getdetachstate(GLIBC_2.2) [2] 3529 pthread_cond_timedwait(GLIBC_2.3.2) [2] 3530 pthread_mutex_init(GLIBC_2.2) [2] 3531 pthread_rwlock_trywrlock(GLIBC_2.2) [2] sem_destroy(GLIBC_2.2) 3532 [2] 3533 pthread_attr_getguardsize(GLIBC_2.2) [2] 3534 pthread_cond_wait(GLIBC_2.3.2) [2] 3535 pthread_mutex_lock(GLIBC_2.2) [2] 3536 pthread_rwlock_unlock(GLIBC_2.2) [2] sem_getvalue(GLIBC_2.2) 3537 [2] 3538 pthread_attr_getschedparam(GLIBC_2.2) [2] 3539 pthread_condattr_destroy(GLIBC_2.2) [2] 3540 pthread_mutex_trylock(GLIBC_2.2) [2] 3541 pthread_rwlock_wrlock(GLIBC_2.2) [2] sem_init(GLIBC_2.2) [2] 3542 pthread_attr_getstack(GLIBC_2.2) [2] 3543 pthread_condattr_getpshared(GLIBC_2.2) [2] 3544 pthread_mutex_unlock(GLIBC_2.2) [2] 3545 pthread_rwlockattr_destroy(GLIBC_2.2) [2] sem_open(GLIBC_2.2) 3546 [2] 3547 pthread_attr_getstackaddr(GLIBC_2.2) [2] 3548 pthread_condattr_init(GLIBC_2.2) [2] 3549 pthread_mutexattr_destroy(GLIBC_2.2) [2] 3550 pthread_rwlockattr_getpshared(GLIBC_2.2) [2] 3551 sem_post(GLIBC_2.2) [2] 3552 pthread_attr_getstacksize(GLIBC_2.2) [2] 3553 pthread_condattr_setpshared(GLIBC_2.2) [2] 3554 pthread_mutexattr_getpshared(GLIBC_2.2) [2] 3555 pthread_rwlockattr_init(GLIBC_2.2) [2] 3556 sem_timedwait(GLIBC_2.2) [2] 3557 pthread_attr_init(GLIBC_2.2) [2] pthread_create(GLIBC_2.2) [2] 3558 pthread_mutexattr_gettype(GLIBC_2.2) [2] 3559 pthread_rwlockattr_setpshared(GLIBC_2.2) [2] 3560 sem_trywait(GLIBC_2.2) [2] 3561 pthread_attr_setdetachstate(GLIBC_2.2) [2] 3562 pthread_detach(GLIBC_2.2) [2] 3563 pthread_mutexattr_init(GLIBC_2.2) [2] pthread_self(GLIBC_2.2) 3564 [2] sem_unlink(GLIBC_2.2) [2] 3565 pthread_attr_setguardsize(GLIBC_2.2) [2] 3566 pthread_equal(GLIBC_2.2) [2] 3567 pthread_mutexattr_setpshared(GLIBC_2.2) [2] 3568 pthread_setcancelstate(GLIBC_2.2) [2] sem_wait(GLIBC_2.2) [2] 3569 pthread_attr_setschedparam(GLIBC_2.2) [2] 3570 pthread_exit(GLIBC_2.2) [2] 3571 pthread_mutexattr_settype(GLIBC_2.2) [2] 3572 pthread_setcanceltype(GLIBC_2.2) [2] 3573 pthread_attr_setstackaddr(GLIBC_2.2) [2] 3574 pthread_getconcurrency(GLIBC_2.2) [2] pthread_once(GLIBC_2.2) 3575 [2] pthread_setconcurrency(GLIBC_2.2) [2] 3576 pthread_attr_setstacksize(GLIBC_2.3.3) [2] 3577 pthread_getspecific(GLIBC_2.2) [2] 3578 pthread_rwlock_destroy(GLIBC_2.2) [2] 3579 pthread_setspecific(GLIBC_2.2) [2] 3580 3581 Referenced Specification(s) 3582 3583 [1]. this specification 3584 3585 [2]. ISO POSIX (2003) 3586 3587 [3]. Large File Support 3588 _________________________________________________________ 3589 3590 1.7. Interfaces for libgcc_s 3591 3592 Table 1-39 defines the library name and shared object name for 3593 the libgcc_s library 3594 3595 Table 1-39. libgcc_s Definition 3596 Library: libgcc_s 3597 SONAME: libgcc_s.so.1 3598 3599 The behavior of the interfaces in this library is specified by 3600 the following specifications: 3601 3602 this specification 3603 _________________________________________________________ 3604 3605 1.7.1. Unwind Library 3606 _________________________________________________________ 3607 3608 1.7.1.1. Interfaces for Unwind Library 3609 3610 An LSB conforming implementation shall provide the 3611 architecture specific functions for Unwind Library specified 3612 in Table 1-40, with the full functionality as described in the 3613 referenced underlying specification. 3614 3615 Table 1-40. libgcc_s - Unwind Library Function Interfaces 3616 _Unwind_DeleteException(GCC_3.0) [1] _Unwind_GetGR(GCC_3.0) 3617 [1] _Unwind_GetLanguageSpecificData(GCC_3.0) [1] 3618 _Unwind_RaiseException(GCC_3.0) [1] _Unwind_SetGR(GCC_3.0) [1] 3619 _Unwind_ForcedUnwind(GCC_3.0) [1] _Unwind_GetIP(GCC_3.0) [1] 3620 _Unwind_GetRegionStart(GCC_3.0) [1] _Unwind_Resume(GCC_3.0) 3621 [1] _Unwind_SetIP(GCC_3.0) [1] 3622 3623 Referenced Specification(s) 3624 3625 [1]. this specification 3626 _________________________________________________________ 3627 3628 1.8. Interface Definitions for libgcc_s 3629 3630 Table of Contents 3631 _Unwind_DeleteException -- private C++ error handling method 3632 _Unwind_ForcedUnwind -- private C++ error handling method 3633 _Unwind_GetGR -- private C++ error handling method 3634 _Unwind_GetIP -- private C++ error handling method 3635 _Unwind_GetLanguageSpecificData -- private C++ error handling 3636 method 3637 3638 _Unwind_GetRegionStart -- private C++ error handling method 3639 _Unwind_RaiseException -- private C++ error handling method 3640 _Unwind_Resume -- private C++ error handling method 3641 _Unwind_SetGR -- private C++ error handling method 3642 _Unwind_SetIP -- private C++ error handling method 3643 3644 The following interfaces are included in libgcc_s and are 3645 defined by this specification. Unless otherwise noted, these 3646 interfaces shall be included in the source standard. 3647 3648 Other interfaces listed above for libgcc_s shall behave as 3649 described in the referenced base document. 3650 3651 _Unwind_DeleteException 3652 3653 Name 3654 3655 _Unwind_DeleteException -- private C++ error handling method 3656 3657 Synopsis 3658 3659 void _Unwind_DeleteException((struct _Unwind_Exception 3660 *object)); 3661 3662 Description 3663 3664 _Unwind_DeleteException() deletes the given exception object. 3665 If a given runtime resumes normal execution after catching a 3666 foreign exception, it will not know how to delete that 3667 exception. Such an exception shall be deleted by calling 3668 _Unwind_DeleteException(). This is a convenience function that 3669 calls the function pointed to by the exception_cleanup field 3670 of the exception header. 3671 3672 _Unwind_ForcedUnwind 3673 3674 Name 3675 3676 _Unwind_ForcedUnwind -- private C++ error handling method 3677 3678 Synopsis 3679 3680 _Unwind_Reason_Code _Unwind_ForcedUnwind((struct 3681 _Unwind_Exception *object), _Unwind_Stop_Fn stop, void 3682 *stop_parameter); 3683 3684 Description 3685 3686 _Unwind_ForcedUnwind() raises an exception for forced 3687 unwinding, passing along the given exception object, which 3688 should have its exception_class and exception_cleanup fields 3689 set. The exception object has been allocated by the 3690 language-specific runtime, and has a language-specific format, 3691 except that it shall contain an _Unwind_Exception struct. 3692 3693 Forced unwinding is a single-phase process. stop and 3694 stop_parameter control the termination of the unwind process 3695 instead of the usual personality routine query. stop is called 3696 for each unwind frame, with the parameteres described for the 3697 usual personality routine below, plus an additional 3698 stop_parameter. 3699 3700 Return Value 3701 3702 When stop identifies the destination frame, it transfers 3703 control to the user code as appropriate without returning, 3704 normally after calling _Unwind_DeleteException(). If not, then 3705 it should return an _Unwind_Reason_Code value. 3706 3707 If stop returns any reason code other than _URC_NO_REASON, 3708 then the stack state is indeterminate from the point of view 3709 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 3710 to return, therefore, the unwind library should use the 3711 exception_cleanup entry in the exception, and then call 3712 abort(). 3713 3714 _URC_NO_REASON 3715 This is not the destination from. The unwind runtime 3716 will call frame's personality routine with the 3717 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 3718 actions, and then unwind to the next frame and call the 3719 stop() function again. 3720 3721 _URC_END_OF_STACK 3722 In order to allow _Unwind_ForcedUnwind() to perform 3723 special processing when it reaches the end of the 3724 stack, the unwind runtime will call it after the last 3725 frame is rejected, with a NULL stack pointer in the 3726 context, and the stop() function shall catch this 3727 condition. It may return this code if it cannot handle 3728 end-of-stack. 3729 3730 _URC_FATAL_PHASE2_ERROR 3731 The stop() function may return this code for other 3732 fatal conditions like stack corruption. 3733 3734 _Unwind_GetGR 3735 3736 Name 3737 3738 _Unwind_GetGR -- private C++ error handling method 3739 3740 Synopsis 3741 3742 _Unwind_Word _Unwind_GetGR((struct _Unwind_Context *context), 3743 int index); 3744 3745 Description 3746 3747 _Unwind_GetGR() returns data at index found in context. The 3748 register is identified by its index: 0 to 31 are for the fixed 3749 registers, and 32 to 127 are for the stacked registers. 3750 3751 During the two phases of unwinding, only GR1 has a guaranteed 3752 value, which is the global pointer of the frame referenced by 3753 the unwind context. If the register has its NAT bit set, the 3754 behavior is unspecified. 3755 3756 _Unwind_GetIP 3757 3758 Name 3759 3760 _Unwind_GetIP -- private C++ error handling method 3761 3762 Synopsis 3763 3764 _Unwind_Ptr _Unwind_GetIP((struct _Unwind_Context *context)); 3765 3766 Description 3767 3768 _Unwind_GetIP() returns the instruction pointer value for the 3769 routine identified by the unwind context. 3770 3771 _Unwind_GetLanguageSpecificData 3772 3773 Name 3774 3775 _Unwind_GetLanguageSpecificData -- private C++ error handling 3776 method 3777 3778 Synopsis 3779 3780 _Unwind_Ptr _Unwind_GetLanguageSpecificData((struct 3781 _Unwind_Context *context), uint value); 3782 3783 Description 3784 3785 _Unwind_GetLanguageSpecificData() returns the address of the 3786 language specific data area for the current stack frame. 3787 3788 _Unwind_GetRegionStart 3789 3790 Name 3791 3792 _Unwind_GetRegionStart -- private C++ error handling method 3793 3794 Synopsis 3795 3796 _Unwind_Ptr _Unwind_GetRegionStart((struct _Unwind_Context 3797 *context)); 3798 3799 Description 3800 3801 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 3802 of the beginning of the procedure or code fragment described 3803 by the current unwind descriptor block. 3804 3805 _Unwind_RaiseException 3806 3807 Name 3808 3809 _Unwind_RaiseException -- private C++ error handling method 3810 3811 Synopsis 3812 3813 _Unwind_Reason_Code _Unwind_RaiseException((struct 3814 _Unwind_Exception *object)); 3815 3816 Description 3817 3818 _Unwind_RaiseException() raises an exception, passing along 3819 the given exception object, which should have its 3820 exception_class and exception_cleanup fields set. The 3821 exception object has been allocated by the language-specific 3822 runtime, and has a language-specific format, exception that it 3823 shall contain an _Unwind_Exception. 3824 3825 Return Value 3826 3827 _Unwind_RaiseException() does not return unless an error 3828 condition is found. If an error condition occurs, an 3829 _Unwind_Reason_Code is returnd: 3830 3831 _URC_END_OF_STACK 3832 The unwinder encountered the end of the stack during 3833 phase one without finding a handler. The unwind runtime 3834 will not have modified the stack. The C++ runtime will 3835 normally call uncaught_exception() in this case. 3836 3837 _URC_FATAL_PHASE1_ERROR 3838 The unwinder encountered an unexpected error during 3839 phase one, because of something like stack corruption. 3840 The unwind runtime will not have modified the stack. 3841 The C++ runtime will normally call terminate() in this 3842 case. 3843 3844 _URC_FATAL_PHASE2_ERROR 3845 The unwinder encountered an unexpected error during 3846 phase two. This is usually a throw, which will call 3847 terminate(). 3848 3849 _Unwind_Resume 3850 3851 Name 3852 3853 _Unwind_Resume -- private C++ error handling method 3854 3855 Synopsis 3856 3857 void _Unwind_Resume((struct _Unwind_Exception *object)); 3858 3859 Description 3860 3861 _Unwind_Resume() resumes propagation of an existing exception 3862 object. A call to this routine is inserted as the end of a 3863 landing pad that performs cleanup, but does not resume normal 3864 execution. It causes unwinding to proceed further. 3865 3866 _Unwind_SetGR 3867 3868 Name 3869 3870 _Unwind_SetGR -- private C++ error handling method 3871 3872 Synopsis 3873 3874 void _Unwind_SetGR((struct _Unwind_Context *context), int 3875 index, uint value); 3876 3877 Description 3878 3879 _Unwind_SetGR() sets the value of the register indexed for the 3880 routine identified by the unwind context. 3881 3882 _Unwind_SetIP 3883 3884 Name 3885 3886 _Unwind_SetIP -- private C++ error handling method 3887 3888 Synopsis 3889 3890 void _Unwind_SetIP((struct _Unwind_Context *context), uint 3891 value); 3892 3893 Description 3894 3895 _Unwind_SetIP() sets the value of the instruction pointer for 3896 the routine identified by the unwind context 3897 _________________________________________________________ 3898 3899 1.9. Interfaces for libdl 3900 3901 Table 1-41 defines the library name and shared object name for 3902 the libdl library 3903 3904 Table 1-41. libdl Definition 3905 Library: libdl 3906 SONAME: libdl.so.2 3907 3908 The behavior of the interfaces in this library is specified by 3909 the following specifications: 3910 3911 this specification 3912 ISO POSIX (2003) 3913 _________________________________________________________ 3914 3915 1.9.1. Dynamic Loader 3916 _________________________________________________________ 3917 3918 1.9.1.1. Interfaces for Dynamic Loader 3919 3920 An LSB conforming implementation shall provide the 3921 architecture specific functions for Dynamic Loader specified 3922 in Table 1-42, with the full functionality as described in the 3923 referenced underlying specification. 3924 3925 Table 1-42. libdl - Dynamic Loader Function Interfaces 3926 dladdr(GLIBC_2.0) [1] dlclose(GLIBC_2.0) [2] 3927 dlerror(GLIBC_2.0) [2] dlopen(GLIBC_2.1) [1] dlsym(GLIBC_2.0) 3928 [1] 3929 3930 Referenced Specification(s) 3931 3932 [1]. this specification 3933 3934 [2]. ISO POSIX (2003) 3935 _________________________________________________________ 3936 3937 1.10. Interfaces for libcrypt 3938 3939 Table 1-43 defines the library name and shared object name for 3940 the libcrypt library 3941 3942 Table 1-43. libcrypt Definition 3943 Library: libcrypt 3944 SONAME: libcrypt.so.1 3945 3946 The behavior of the interfaces in this library is specified by 3947 the following specifications: 3948 3949 ISO POSIX (2003) 3950 _________________________________________________________ 3951 3952 1.10.1. Encryption 3953 _________________________________________________________ 3954 3955 1.10.1.1. Interfaces for Encryption 3956 3957 An LSB conforming implementation shall provide the 3958 architecture specific functions for Encryption specified in 3959 Table 1-44, with the full functionality as described in the 3960 referenced underlying specification. 3961 3962 Table 1-44. libcrypt - Encryption Function Interfaces 3963 crypt(GLIBC_2.0) [1] encrypt(GLIBC_2.0) [1] setkey(GLIBC_2.0) 3964 [1] 3965 3966 Referenced Specification(s) 3967 3968 [1]. ISO POSIX (2003) 3969 3970 II. Utility Libraries 3971 3972 Table of Contents 3973 2. Libraries 3974 _________________________________________________________ 3975 3976 Chapter 2. Libraries 3977 3978 An LSB-conforming implementation shall also support some 3979 utility libraries which are built on top of the interfaces 3980 provided by the base libraries. These libraries implement 3981 common functionality, and hide additional system dependent 3982 information such as file formats and device names. 3983 _________________________________________________________ 3984 3985 2.1. Interfaces for libz 3986 3987 Table 2-1 defines the library name and shared object name for 3988 the libz library 3989 3990 Table 2-1. libz Definition 3991 Library: libz 3992 SONAME: libz.so.1 3993 _________________________________________________________ 3994 3995 2.1.1. Compression Library 3996 _________________________________________________________ 3997 3998 2.1.1.1. Interfaces for Compression Library 3999 4000 No external functions are defined for libz - Compression 4001 Library 4002 _________________________________________________________ 4003 4004 2.2. Interfaces for libncurses 4005 4006 Table 2-2 defines the library name and shared object name for 4007 the libncurses library 4008 4009 Table 2-2. libncurses Definition 4010 Library: libncurses 4011 SONAME: libncurses.so.5 4012 _________________________________________________________ 4013 4014 2.2.1. Curses 4015 _________________________________________________________ 4016 4017 2.2.1.1. Interfaces for Curses 4018 4019 No external functions are defined for libncurses - Curses 4020 _________________________________________________________ 4021 4022 2.3. Interfaces for libutil 4023 4024 Table 2-3 defines the library name and shared object name for 4025 the libutil library 4026 4027 Table 2-3. libutil Definition 4028 Library: libutil 4029 SONAME: libutil.so.1 4030 4031 The behavior of the interfaces in this library is specified by 4032 the following specifications: 4033 4034 this specification 4035 _________________________________________________________ 4036 4037 2.3.1. Utility Functions 4038 _________________________________________________________ 4039 4040 2.3.1.1. Interfaces for Utility Functions 4041 4042 An LSB conforming implementation shall provide the 4043 architecture specific functions for Utility Functions 4044 specified in Table 2-4, with the full functionality as 4045 described in the referenced underlying specification. 4046 4047 Table 2-4. libutil - Utility Functions Function Interfaces 4048 forkpty(GLIBC_2.0) [1] login_tty(GLIBC_2.0) [1] 4049 logwtmp(GLIBC_2.0) [1] 4050 login(GLIBC_2.0) [1] logout(GLIBC_2.0) [1] openpty(GLIBC_2.0) 4051 [1] 4052 4053 Referenced Specification(s) 4054 4055 [1]. this specification 4056 _________________________________________________________ 4057 4058 Appendix A. Alphabetical Listing of Interfaces 4059 _________________________________________________________ 4060 4061 A.1. libgcc_s 4062 4063 The behaviour of the interfaces in this library is specified 4064 by the following Standards. 4065 4066 this specification 4067 4068 Table A-1. libgcc_s Function Interfaces 4069 _Unwind_DeleteException[1] _Unwind_GetLanguageSpecificData[1] 4070 _Unwind_SetGR[1] 4071 _Unwind_ForcedUnwind[1] _Unwind_GetRegionStart[1] 4072 _Unwind_SetIP[1] 4073 _Unwind_GetGR[1] _Unwind_RaiseException[1] 4074 _Unwind_GetIP[1] _Unwind_Resume[1] 4075 _________________________________________________________ 4076 4077 A.2. libm 4078 4079 The behaviour of the interfaces in this library is specified 4080 by the following Standards. 4081 4082 ISO C (1999) 4083 ISO POSIX (2003) 4084 4085 Table A-2. libm Function Interfaces 4086 __fpclassifyl[1] __signbitl[1] exp2l[1] 4087 4088 Linux Packaging Specification 4089 _________________________________________________________ 4090 4091 Table of Contents 4092 I. Package Format and Installation 4093 4094 1. Software Installation 4095 4096 1.1. Package Dependencies 4097 1.2. Package Architecture Considerations 4098 4099 I. Package Format and Installation 4100 4101 Table of Contents 4102 1. Software Installation 4103 _________________________________________________________ 4104 4105 Chapter 1. Software Installation 4106 _________________________________________________________ 4107 4108 1.1. Package Dependencies 4109 4110 The LSB runtime environment shall provde the following 4111 dependencies. 4112 4113 lsb-core-ia64 4114 This dependency is used to indicate that the 4115 application is dependent on features contained in the 4116 LSB-Core specification. 4117 4118 Other LSB modules may add additional dependencies; such 4119 dependencies shall have the format lsb-module-ia64. 4120 _________________________________________________________ 4121 4122 1.2. Package Architecture Considerations 4123 4124 All packages must specify an architecture of IA64. A LSB 4125 runtime environment must accept an architecture of IA64 even 4126 if the native architecture is different. 4127 4128 The archnum value in the Lead Section shall be 0x0009. 4129 4130 Free Documentation License 4131 _________________________________________________________ 4132 4133 Table of Contents 4134 A. GNU Free Documentation License 4135 4136 A.1. PREAMBLE 4137 A.2. APPLICABILITY AND DEFINITIONS 4138 A.3. VERBATIM COPYING 4139 A.4. COPYING IN QUANTITY 4140 A.5. MODIFICATIONS 4141 A.6. COMBINING DOCUMENTS 4142 A.7. COLLECTIONS OF DOCUMENTS 4143 A.8. AGGREGATION WITH INDEPENDENT WORKS 4144 A.9. TRANSLATION 4145 A.10. TERMINATION 4146 A.11. FUTURE REVISIONS OF THIS LICENSE 4147 A.12. How to use this License for your documents 4148 _________________________________________________________ 4149 4150 Appendix A. GNU Free Documentation License 4151 4152 Version 1.1, March 2000 4153 4154 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 4155 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 4156 permitted to copy and distribute verbatim copies of this 4157 license document, but changing it is not allowed. 4158 _________________________________________________________ 4159 4160 A.1. PREAMBLE 4161 4162 The purpose of this License is to make a manual, textbook, or 4163 other written document "free" in the sense of freedom: to 4164 assure everyone the effective freedom to copy and redistribute 4165 it, with or without modifying it, either commercially or 4166 noncommercially. Secondarily, this License preserves for the 4167 author and publisher a way to get credit for their work, while 4168 not being considered responsible for modifications made by 4169 others. 4170 4171 This License is a kind of "copyleft", which means that 4172 derivative works of the document must themselves be free in 4173 the same sense. It complements the GNU General Public License, 4174 which is a copyleft license designed for free software. 4175 4176 We have designed this License in order to use it for manuals 4177 for free software, because free software needs free 4178 documentation: a free program should come with manuals 4179 providing the same freedoms that the software does. But this 4180 License is not limited to software manuals; it can be used for 4181 any textual work, regardless of subject matter or whether it 4182 is published as a printed book. We recommend this License 4183 principally for works whose purpose is instruction or 4184 reference. 4185 _________________________________________________________ 4186 4187 A.2. APPLICABILITY AND DEFINITIONS 4188 4189 This License applies to any manual or other work that contains 4190 a notice placed by the copyright holder saying it can be 4191 distributed under the terms of this License. The "Document", 4192 below, refers to any such manual or work. Any member of the 4193 public is a licensee, and is addressed as "you". 4194 4195 A "Modified Version" of the Document means any work containing 4196 the Document or a portion of it, either copied verbatim, or 4197 with modifications and/or translated into another language. 4198 4199 A "Secondary Section" is a named appendix or a front-matter 4200 section of the Document that deals exclusively with the 4201 relationship of the publishers or authors of the Document to 4202 the Document's overall subject (or to related matters) and 4203 contains nothing that could fall directly within that overall 4204 subject. (For example, if the Document is in part a textbook 4205 of mathematics, a Secondary Section may not explain any 4206 mathematics.) The relationship could be a matter of historical 4207 connection with the subject or with related matters, or of 4208 legal, commercial, philosophical, ethical or political 4209 position regarding them. 4210 4211 The "Invariant Sections" are certain Secondary Sections whose 4212 titles are designated, as being those of Invariant Sections, 4213 in the notice that says that the Document is released under 4214 this License. 4215 4216 The "Cover Texts" are certain short passages of text that are 4217 listed, as Front-Cover Texts or Back-Cover Texts, in the 4218 notice that says that the Document is released under this 4219 License. 4220 4221 A "Transparent" copy of the Document means a machine-readable 4222 copy, represented in a format whose specification is available 4223 to the general public, whose contents can be viewed and edited 4224 directly and straightforwardly with generic text editors or 4225 (for images composed of pixels) generic paint programs or (for 4226 drawings) some widely available drawing editor, and that is 4227 suitable for input to text formatters or for automatic 4228 translation to a variety of formats suitable for input to text 4229 formatters. A copy made in an otherwise Transparent file 4230 format whose markup has been designed to thwart or discourage 4231 subsequent modification by readers is not Transparent. A copy 4232 that is not "Transparent" is called "Opaque". 4233 4234 Examples of suitable formats for Transparent copies include 4235 plain ASCII without markup, Texinfo input format, LaTeX input 4236 format, SGML or XML using a publicly available DTD, and 4237 standard-conforming simple HTML designed for human 4238 modification. Opaque formats include PostScript, PDF, 4239 proprietary formats that can be read and edited only by 4240 proprietary word processors, SGML or XML for which the DTD 4241 and/or processing tools are not generally available, and the 4242 machine-generated HTML produced by some word processors for 4243 output purposes only. 4244 4245 The "Title Page" means, for a printed book, the title page 4246 itself, plus such following pages as are needed to hold, 4247 legibly, the material this License requires to appear in the 4248 title page. For works in formats which do not have any title 4249 page as such, "Title Page" means the text near the most 4250 prominent appearance of the work's title, preceding the 4251 beginning of the body of the text. 4252 _________________________________________________________ 4253 4254 A.3. VERBATIM COPYING 4255 4256 You may copy and distribute the Document in any medium, either 4257 commercially or noncommercially, provided that this License, 4258 the copyright notices, and the license notice saying this 4259 License applies to the Document are reproduced in all copies, 4260 and that you add no other conditions whatsoever to those of 4261 this License. You may not use technical measures to obstruct 4262 or control the reading or further copying of the copies you 4263 make or distribute. However, you may accept compensation in 4264 exchange for copies. If you distribute a large enough number 4265 of copies you must also follow the conditions in section 3. 4266 4267 You may also lend copies, under the same conditions stated 4268 above, and you may publicly display copies. 4269 _________________________________________________________ 4270 4271 A.4. COPYING IN QUANTITY 4272 4273 If you publish printed copies of the Document numbering more 4274 than 100, and the Document's license notice requires Cover 4275 Texts, you must enclose the copies in covers that carry, 4276 clearly and legibly, all these Cover Texts: Front-Cover Texts 4277 on the front cover, and Back-Cover Texts on the back cover. 4278 Both covers must also clearly and legibly identify you as the 4279 publisher of these copies. The front cover must present the 4280 full title with all words of the title equally prominent and 4281 visible. You may add other material on the covers in addition. 4282 Copying with changes limited to the covers, as long as they 4283 preserve the title of the Document and satisfy these 4284 conditions, can be treated as verbatim copying in other 4285 respects. 4286 4287 If the required texts for either cover are too voluminous to 4288 fit legibly, you should put the first ones listed (as many as 4289 fit reasonably) on the actual cover, and continue the rest 4290 onto adjacent pages. 4291 4292 If you publish or distribute Opaque copies of the Document 4293 numbering more than 100, you must either include a 4294 machine-readable Transparent copy along with each Opaque copy, 4295 or state in or with each Opaque copy a publicly-accessible 4296 computer-network location containing a complete Transparent 4297 copy of the Document, free of added material, which the 4298 general network-using public has access to download 4299 anonymously at no charge using public-standard network 4300 protocols. If you use the latter option, you must take 4301 reasonably prudent steps, when you begin distribution of 4302 Opaque copies in quantity, to ensure that this Transparent 4303 copy will remain thus accessible at the stated location until 4304 at least one year after the last time you distribute an Opaque 4305 copy (directly or through your agents or retailers) of that 4306 edition to the public. 4307 4308 It is requested, but not required, that you contact the 4309 authors of the Document well before redistributing any large 4310 number of copies, to give them a chance to provide you with an 4311 updated version of the Document. 4312 _________________________________________________________ 4313 4314 A.5. MODIFICATIONS 4315 4316 You may copy and distribute a Modified Version of the Document 4317 under the conditions of sections 2 and 3 above, provided that 4318 you release the Modified Version under precisely this License, 4319 with the Modified Version filling the role of the Document, 4320 thus licensing distribution and modification of the Modified 4321 Version to whoever possesses a copy of it. In addition, you 4322 must do these things in the Modified Version: 4323 4324 A. Use in the Title Page (and on the covers, if any) a title 4325 distinct from that of the Document, and from those of 4326 previous versions (which should, if there were any, be 4327 listed in the History section of the Document). You may 4328 use the same title as a previous version if the original 4329 publisher of that version gives permission. 4330 B. List on the Title Page, as authors, one or more persons or 4331 entities responsible for authorship of the modifications 4332 in the Modified Version, together with at least five of 4333 the principal authors of the Document (all of its 4334 principal authors, if it has less than five). 4335 C. State on the Title page the name of the publisher of the 4336 Modified Version, as the publisher. 4337 D. Preserve all the copyright notices of the Document. 4338 E. Add an appropriate copyright notice for your modifications 4339 adjacent to the other copyright notices. 4340 F. Include, immediately after the copyright notices, a 4341 license notice giving the public permission to use the 4342 Modified Version under the terms of this License, in the 4343 form shown in the Addendum below. 4344 G. Preserve in that license notice the full lists of 4345 Invariant Sections and required Cover Texts given in the 4346 Document's license notice. 4347 H. Include an unaltered copy of this License. 4348 I. Preserve the section entitled "History", and its title, 4349 and add to it an item stating at least the title, year, 4350 new authors, and publisher of the Modified Version as 4351 given on the Title Page. If there is no section entitled 4352 "History" in the Document, create one stating the title, 4353 year, authors, and publisher of the Document as given on 4354 its Title Page, then add an item describing the Modified 4355 Version as stated in the previous sentence. 4356 J. Preserve the network location, if any, given in the 4357 Document for public access to a Transparent copy of the 4358 Document, and likewise the network locations given in the 4359 Document for previous versions it was based on. These may 4360 be placed in the "History" section. You may omit a network 4361 location for a work that was published at least four years 4362 before the Document itself, or if the original publisher 4363 of the version it refers to gives permission. 4364 K. In any section entitled "Acknowledgements" or 4365 "Dedications", preserve the section's title, and preserve 4366 in the section all the substance and tone of each of the 4367 contributor acknowledgements and/or dedications given 4368 therein. 4369 L. Preserve all the Invariant Sections of the Document, 4370 unaltered in their text and in their titles. Section 4371 numbers or the equivalent are not considered part of the 4372 section titles. 4373 M. Delete any section entitled "Endorsements". Such a section 4374 may not be included in the Modified Version. 4375 N. Do not retitle any existing section as "Endorsements" or 4376 to conflict in title with any Invariant Section. 4377 4378 If the Modified Version includes new front-matter sections or 4379 appendices that qualify as Secondary Sections and contain no 4380 material copied from the Document, you may at your option 4381 designate some or all of these sections as invariant. To do 4382 this, add their titles to the list of Invariant Sections in 4383 the Modified Version's license notice. These titles must be 4384 distinct from any other section titles. 4385 4386 You may add a section entitled "Endorsements", provided it 4387 contains nothing but endorsements of your Modified Version by 4388 various parties--for example, statements of peer review or 4389 that the text has been approved by an organization as the 4390 authoritative definition of a standard. 4391 4392 You may add a passage of up to five words as a Front-Cover 4393 Text, and a passage of up to 25 words as a Back-Cover Text, to 4394 the end of the list of Cover Texts in the Modified Version. 4395 Only one passage of Front-Cover Text and one of Back-Cover 4396 Text may be added by (or through arrangements made by) any one 4397 entity. If the Document already includes a cover text for the 4398 same cover, previously added by you or by arrangement made by 4399 the same entity you are acting on behalf of, you may not add 4400 another; but you may replace the old one, on explicit 4401 permission from the previous publisher that added the old one. 4402 4403 The author(s) and publisher(s) of the Document do not by this 4404 License give permission to use their names for publicity for 4405 or to assert or imply endorsement of any Modified Version. 4406 _________________________________________________________ 4407 4408 A.6. COMBINING DOCUMENTS 4409 4410 You may combine the Document with other documents released 4411 under this License, under the terms defined in section 4 above 4412 for modified versions, provided that you include in the 4413 combination all of the Invariant Sections of all of the 4414 original documents, unmodified, and list them all as Invariant 4415 Sections of your combined work in its license notice. 4416 4417 The combined work need only contain one copy of this License, 4418 and multiple identical Invariant Sections may be replaced with 4419 a single copy. If there are multiple Invariant Sections with 4420 the same name but different contents, make the title of each 4421 such section unique by adding at the end of it, in 4422 parentheses, the name of the original author or publisher of 4423 that section if known, or else a unique number. Make the same 4424 adjustment to the section titles in the list of Invariant 4425 Sections in the license notice of the combined work. 4426 4427 In the combination, you must combine any sections entitled 4428 "History" in the various original documents, forming one 4429 section entitled "History"; likewise combine any sections 4430 entitled "Acknowledgements", and any sections entitled 4431 "Dedications". You must delete all sections entitled 4432 "Endorsements." 4433 _________________________________________________________ 4434 4435 A.7. COLLECTIONS OF DOCUMENTS 4436 4437 You may make a collection consisting of the Document and other 4438 documents released under this License, and replace the 4439 individual copies of this License in the various documents 4440 with a single copy that is included in the collection, 4441 provided that you follow the rules of this License for 4442 verbatim copying of each of the documents in all other 4443 respects. 4444 4445 You may extract a single document from such a collection, and 4446 distribute it individually under this License, provided you 4447 insert a copy of this License into the extracted document, and 4448 follow this License in all other respects regarding verbatim 4449 copying of that document. 4450 _________________________________________________________ 4451 4452 A.8. AGGREGATION WITH INDEPENDENT WORKS 4453 4454 A compilation of the Document or its derivatives with other 4455 separate and independent documents or works, in or on a volume 4456 of a storage or distribution medium, does not as a whole count 4457 as a Modified Version of the Document, provided no compilation 4458 copyright is claimed for the compilation. Such a compilation 4459 is called an "aggregate", and this License does not apply to 4460 the other self-contained works thus compiled with the 4461 Document, on account of their being thus compiled, if they are 4462 not themselves derivative works of the Document. 4463 4464 If the Cover Text requirement of section 3 is applicable to 4465 these copies of the Document, then if the Document is less 4466 than one quarter of the entire aggregate, the Document's Cover 4467 Texts may be placed on covers that surround only the Document 4468 within the aggregate. Otherwise they must appear on covers 4469 around the whole aggregate. 4470 _________________________________________________________ 4471 4472 A.9. TRANSLATION 4473 4474 Translation is considered a kind of modification, so you may 4475 distribute translations of the Document under the terms of 4476 section 4. Replacing Invariant Sections with translations 4477 requires special permission from their copyright holders, but 4478 you may include translations of some or all Invariant Sections 4479 in addition to the original versions of these Invariant 4480 Sections. You may include a translation of this License 4481 provided that you also include the original English version of 4482 this License. In case of a disagreement between the 4483 translation and the original English version of this License, 4484 the original English version will prevail. 4485 _________________________________________________________ 4486 4487 A.10. TERMINATION 4488 4489 You may not copy, modify, sublicense, or distribute the 4490 Document except as expressly provided for under this License. 4491 Any other attempt to copy, modify, sublicense or distribute 4492 the Document is void, and will automatically terminate your 4493 rights under this License. However, parties who have received 4494 copies, or rights, from you under this License will not have 4495 their licenses terminated so long as such parties remain in 4496 full compliance. 4497 _________________________________________________________ 4498 4499 A.11. FUTURE REVISIONS OF THIS LICENSE 4500 4501 The Free Software Foundation may publish new, revised versions 4502 of the GNU Free Documentation License from time to time. Such 4503 new versions will be similar in spirit to the present version, 4504 but may differ in detail to address new problems or concerns. 4505 See http://www.gnu.org/copyleft/. 4506 4507 Each version of the License is given a distinguishing version 4508 number. If the Document specifies that a particular numbered 4509 version of this License "or any later version" applies to it, 4510 you have the option of following the terms and conditions 4511 either of that specified version or of any later version that 4512 has been published (not as a draft) by the Free Software 4513 Foundation. If the Document does not specify a version number 4514 of this License, you may choose any version ever published 4515 (not as a draft) by the Free Software Foundation. 4516 _________________________________________________________ 4517 4518 A.12. How to use this License for your documents 4519 4520 To use this License in a document you have written, include a 4521 copy of the License in the document and put the following 4522 copyright and license notices just after the title page: 4523 4524 Copyright (c) YEAR YOUR NAME. Permission is granted to 4525 copy, distribute and/or modify this document under the 4526 terms of the GNU Free Documentation License, Version 1.1 or 4527 any later version published by the Free Software 4528 Foundation; with the Invariant Sections being LIST THEIR 4529 TITLES, with the Front-Cover Texts being LIST, and with the 4530 Back-Cover Texts being LIST. A copy of the license is 4531 included in the section entitled "GNU Free Documentation 4532 License". 4533 4534 If you have no Invariant Sections, write "with no Invariant 4535 Sections" instead of saying which ones are invariant. If you 4536 have no Front-Cover Texts, write "no Front-Cover Texts" 4537 instead of "Front-Cover Texts being LIST"; likewise for 4538 Back-Cover Texts. 4539 4540 If your document contains nontrivial examples of program code, 4541 we recommend releasing these examples in parallel under your 4542 choice of free software license, such as the GNU General 4543 Public License, to permit their use in free software.