1 2 Linux Standard Base Core Specification for AMD64 3.1 3 4 Copyright © 2004, 2005 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 PowerPC and PowerPC Architecture are trademarks of the IBM 41 Corporation. 42 43 OpenGL is a registered trademark of Silicon Graphics, Inc. 44 _________________________________________________________ 45 46 Table of Contents 47 Foreword 48 Introduction 49 I. Introductory Elements 50 51 1. Scope 52 53 1.1. General 54 1.2. Module Specific Scope 55 56 2. References 57 58 2.1. Normative References 59 2.2. Informative References/Bibliography 60 61 3. Requirements 62 63 3.1. Relevant Libraries 64 3.2. LSB Implementation Conformance 65 3.3. LSB Application Conformance 66 67 4. Definitions 68 5. Terminology 69 6. Documentation Conventions 70 71 II. Executable and Linking Format (ELF) 72 73 7. Introduction 74 8. Low Level System Information 75 76 8.1. Machine Interface 77 8.2. Function Calling Sequence 78 8.3. Operating System Interface 79 8.4. Process Initialization 80 8.5. Coding Examples 81 8.6. C Stack Frame 82 8.7. Debug Information 83 84 9. Object Format 85 86 9.1. Introduction 87 9.2. ELF Header 88 9.3. Sections 89 9.4. Symbol Table 90 9.5. Relocation 91 92 10. Program Loading and Dynamic Linking 93 94 10.1. Introduction 95 10.2. Program Header 96 10.3. Program Loading 97 10.4. Dynamic Linking 98 99 III. Base Libraries 100 101 11. Libraries 102 103 11.1. Program Interpreter/Dynamic Linker 104 11.2. Interfaces for libc 105 11.3. Data Definitions for libc 106 11.4. Interfaces for libm 107 11.5. Data Definitions for libm 108 11.6. Interfaces for libpthread 109 11.7. Data Definitions for libpthread 110 11.8. Interfaces for libgcc_s 111 11.9. Data Definitions for libgcc_s 112 11.10. Interface Definitions for libgcc_s 113 11.11. Interfaces for libdl 114 11.12. Data Definitions for libdl 115 11.13. Interfaces for libcrypt 116 117 IV. Utility Libraries 118 119 12. Libraries 120 121 12.1. Interfaces for libz 122 12.2. Data Definitions for libz 123 12.3. Interfaces for libncurses 124 12.4. Data Definitions for libncurses 125 12.5. Interfaces for libutil 126 127 V. Package Format and Installation 128 129 13. Software Installation 130 131 13.1. Package Dependencies 132 13.2. Package Architecture Considerations 133 134 A. Alphabetical Listing of Interfaces 135 136 A.1. libgcc_s 137 A.2. libm 138 139 B. GNU Free Documentation License (Informative) 140 141 B.1. PREAMBLE 142 B.2. APPLICABILITY AND DEFINITIONS 143 B.3. VERBATIM COPYING 144 B.4. COPYING IN QUANTITY 145 B.5. MODIFICATIONS 146 B.6. COMBINING DOCUMENTS 147 B.7. COLLECTIONS OF DOCUMENTS 148 B.8. AGGREGATION WITH INDEPENDENT WORKS 149 B.9. TRANSLATION 150 B.10. TERMINATION 151 B.11. FUTURE REVISIONS OF THIS LICENSE 152 B.12. How to use this License for your documents 153 154 List of Tables 155 2-1. Normative References 156 2-2. Other References 157 3-1. Standard Library Names 158 8-1. Non Conforming Instructions 159 9-1. ELF Special Sections 160 9-2. Additional Special Sections 161 11-1. libc Definition 162 11-2. libc - RPC Function Interfaces 163 11-3. libc - System Calls Function Interfaces 164 11-4. libc - Standard I/O Function Interfaces 165 11-5. libc - Standard I/O Data Interfaces 166 11-6. libc - Signal Handling Function Interfaces 167 11-7. libc - Signal Handling Data Interfaces 168 11-8. libc - Localization Functions Function Interfaces 169 11-9. libc - Localization Functions Data Interfaces 170 11-10. libc - Socket Interface Function Interfaces 171 11-11. libc - Wide Characters Function Interfaces 172 11-12. libc - String Functions Function Interfaces 173 11-13. libc - IPC Functions Function Interfaces 174 11-14. libc - Regular Expressions Function Interfaces 175 11-15. libc - Character Type Functions Function Interfaces 176 11-16. libc - Time Manipulation Function Interfaces 177 11-17. libc - Time Manipulation Data Interfaces 178 11-18. libc - Terminal Interface Functions Function Interfaces 179 11-19. libc - System Database Interface Function Interfaces 180 11-20. libc - Language Support Function Interfaces 181 11-21. libc - Large File Support Function Interfaces 182 11-22. libc - Standard Library Function Interfaces 183 11-23. libc - Standard Library Data Interfaces 184 11-24. libm Definition 185 11-25. libm - Math Function Interfaces 186 11-26. libm - Math Data Interfaces 187 11-27. libpthread Definition 188 11-28. libpthread - Realtime Threads Function Interfaces 189 11-29. libpthread - Posix Threads Function Interfaces 190 11-30. libpthread - Thread aware versions of libc interfaces 191 Function Interfaces 192 193 11-31. libgcc_s Definition 194 11-32. libgcc_s - Unwind Library Function Interfaces 195 11-33. libdl Definition 196 11-34. libdl - Dynamic Loader Function Interfaces 197 11-35. libcrypt Definition 198 11-36. libcrypt - Encryption Function Interfaces 199 12-1. libz Definition 200 12-2. libncurses Definition 201 12-3. libutil Definition 202 12-4. libutil - Utility Functions Function Interfaces 203 A-1. libgcc_s Function Interfaces 204 A-2. libm Function Interfaces 205 _________________________________________________________ 206 207 Foreword 208 209 This is version 3.1 of the Linux Standard Base Core 210 Specification for AMD64. This specification is part of a 211 family of specifications under the general title "Linux 212 Standard Base". Developers of applications or implementations 213 interested in using the LSB trademark should see the Free 214 Standards Group Certification Policy for details. 215 _________________________________________________________ 216 217 Introduction 218 219 The LSB defines a binary interface for application programs 220 that are compiled and packaged for LSB-conforming 221 implementations on many different hardware architectures. 222 Since a binary specification shall include information 223 specific to the computer processor architecture for which it 224 is intended, it is not possible for a single document to 225 specify the interface for all possible LSB-conforming 226 implementations. Therefore, the LSB is a family of 227 specifications, rather than a single one. 228 229 This document should be used in conjunction with the documents 230 it references. This document enumerates the system components 231 it includes, but descriptions of those components may be 232 included entirely or partly in this document, partly in other 233 documents, or entirely in other reference documents. For 234 example, the section that describes system service routines 235 includes a list of the system routines supported in this 236 interface, formal declarations of the data structures they use 237 that are visible to applications, and a pointer to the 238 underlying referenced specification for information about the 239 syntax and semantics of each call. Only those routines not 240 described in standards referenced by this document, or 241 extensions to those standards, are described in the detail. 242 Information referenced in this way is as much a part of this 243 document as is the information explicitly included here. 244 245 The specification carries a version number of either the form 246 x.y or x.y.z. This version number carries the following 247 meaning: 248 249 * The first number (x) is the major version number. All 250 versions with the same major version number should share 251 binary compatibility. Any addition or deletion of a new 252 library results in a new version number. Interfaces marked 253 as deprecated may be removed from the specification at a 254 major version change. 255 * The second number (y) is the minor version number. 256 Individual interfaces may be added if all certified 257 implementations already had that (previously undocumented) 258 interface. Interfaces may be marked as deprecated at a 259 minor version change. Other minor changes may be permitted 260 at the discretion of the LSB workgroup. 261 * The third number (z), if present, is the editorial level. 262 Only editorial changes should be included in such 263 versions. 264 265 Since this specification is a descriptive Application Binary 266 Interface, and not a source level API specification, it is not 267 possible to make a guarantee of 100% backward compatibility 268 between major releases. However, it is the intent that those 269 parts of the binary interface that are visible in the source 270 level API will remain backward compatible from version to 271 version, except where a feature marked as "Deprecated" in one 272 release may be removed from a future release. 273 274 Implementors are strongly encouraged to make use of symbol 275 versioning to permit simultaneous support of applications 276 conforming to different releases of this specification. 277 278 I. Introductory Elements 279 280 Table of Contents 281 1. Scope 282 283 1.1. General 284 1.2. Module Specific Scope 285 286 2. References 287 288 2.1. Normative References 289 2.2. Informative References/Bibliography 290 291 3. Requirements 292 293 3.1. Relevant Libraries 294 3.2. LSB Implementation Conformance 295 3.3. LSB Application Conformance 296 297 4. Definitions 298 5. Terminology 299 6. Documentation Conventions 300 _________________________________________________________ 301 302 Chapter 1. Scope 303 304 1.1. General 305 306 The Linux Standard Base (LSB) defines a system interface for 307 compiled applications and a minimal environment for support of 308 installation scripts. Its purpose is to enable a uniform 309 industry standard environment for high-volume applications 310 conforming to the LSB. 311 312 These specifications are composed of two basic parts: A common 313 specification ("LSB-generic" or "generic LSB") describing 314 those parts of the interface that remain constant across all 315 implementations of the LSB, and an architecture-specific 316 supplement ("LSB-arch" or "archLSB") describing the parts of 317 the interface that vary by processor architecture. Together, 318 the LSB-generic and the architecture-specific supplement for a 319 single hardware architecture provide a complete interface 320 specification for compiled application programs on systems 321 that share a common hardware architecture. 322 323 The LSB-generic document shall be used in conjunction with an 324 architecture-specific supplement. Whenever a section of the 325 LSB-generic specification shall be supplemented by 326 architecture-specific information, the LSB-generic document 327 includes a reference to the architecture supplement. 328 Architecture supplements may also contain additional 329 information that is not referenced in the LSB-generic 330 document. 331 332 The LSB contains both a set of Application Program Interfaces 333 (APIs) and Application Binary Interfaces (ABIs). APIs may 334 appear in the source code of portable applications, while the 335 compiled binary of that application may use the larger set of 336 ABIs. A conforming implementation shall provide all of the 337 ABIs listed here. The compilation system may replace (e.g. by 338 macro definition) certain APIs with calls to one or more of 339 the underlying binary interfaces, and may insert calls to 340 binary interfaces as needed. 341 342 The LSB is primarily a binary interface definition. Not all of 343 the source level APIs available to applications may be 344 contained in this specification. 345 _________________________________________________________ 346 347 1.2. Module Specific Scope 348 349 This is the AMD64 architecture specific Core module of the 350 Linux Standards Base (LSB). This module supplements the 351 generic LSB Core module with those interfaces that differ 352 between architectures. 353 354 Interfaces described in this module are mandatory except where 355 explicitly listed otherwise. Core interfaces may be 356 supplemented by other modules; all modules are built upon the 357 core. 358 _________________________________________________________ 359 360 Chapter 2. References 361 362 2.1. Normative References 363 364 The following referenced documents are indispensable for the 365 application of this document. For dated references, only the 366 edition cited applies. For undated references, the latest 367 edition of the referenced document (including any amendments) 368 applies. 369 370 Note: Where copies of a document are available on the World 371 Wide Web, a Uniform Resource Locator (URL) is given for 372 informative purposes only. This may point to a more recent 373 copy of the referenced specification, or may be out of 374 date. Reference copies of specifications at the revision 375 level indicated may be found at the Free Standards Group's 376 Reference Specifications site. 377 378 Table 2-1. Normative References 379 Name Title URL 380 AMD64 Architecture Programmer's Manual, Volume 1 AMD64 381 Architecture Programmer's Manual, Volume 1: Application 382 Programming 24592 3.08 383 http://www.amd.com/us-en/Processors/DevelopWithAMD/ 384 AMD64 Architecture Programmer's Manual, Volume 2 AMD64 385 Architecture Programmer's Manual, Volume 2: System Programming 386 24593 3.08 http://www.amd.com/us-en/Processors/DevelopWithAMD/ 387 AMD64 Architecture Programmer's Manual, Volume 3 AMD64 388 Architecture Programmer's Manual, Volume 3: General Purpose 389 and System Instructions 24594 3.03 390 http://www.amd.com/us-en/Processors/DevelopWithAMD/ 391 AMD64 Architecture Programmer's Manual, Volume 4 AMD64 392 Architecture Programmer's Manual, Volume 4: 128-bit Media 393 Instructions 26568 3.04 394 http://www.amd.com/us-en/Processors/DevelopWithAMD/ 395 AMD64 Architecture Programmer's Manual, Volume 5 AMD64 396 Architecture Programmer's Manual, Volume 5: 64-bit Media and 397 x87 Floating-Point Instructions 26569 3.03 398 http://www.amd.com/us-en/Processors/DevelopWithAMD/ 399 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 400 (FHS) 2.3 http://www.pathname.com/fhs/ 401 IEC 60559/IEEE 754 Floating Point IEC 60559:1989 Binary 402 floating-point arithmetic for microprocessor systems 403 http://www.ieee.org/ 404 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 405 ISO POSIX (2003) 406 407 ISO/IEC 9945-1:2003 Information technology -- Portable 408 Operating System Interface (POSIX) -- Part 1: Base Definitions 409 410 ISO/IEC 9945-2:2003 Information technology -- Portable 411 Operating System Interface (POSIX) -- Part 2: System 412 Interfaces 413 414 ISO/IEC 9945-3:2003 Information technology -- Portable 415 Operating System Interface (POSIX) -- Part 3: Shell and 416 Utilities 417 418 ISO/IEC 9945-4:2003 Information technology -- Portable 419 Operating System Interface (POSIX) -- Part 4: Rationale 420 421 Including Technical Cor. 1: 2004 422 http://www.unix.org/version3/ 423 Large File Support Large File Support 424 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 425 SUSv2 CAE Specification, January 1997, System Interfaces and 426 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 427 http://www.opengroup.org/publications/catalog/un.htm 428 SUSv2 Commands and Utilities The Single UNIX® 429 Specification(SUS) Version 2, Commands and Utilities (XCU), 430 Issue 5 (ISBN: 1-85912-191-8, C604) 431 http://www.opengroup.org/publications/catalog/un.htm 432 SVID Issue 3 American Telephone and Telegraph Company, System 433 V Interface Definition, Issue 3 ; Morristown, NJ, UNIX Press, 434 1989.(ISBN 0201566524) 435 SVID Issue 4 System V Interface Definition,Fourth Edition 436 System V ABI System V Application Binary Interface, Edition 437 4.1 http://www.caldera.com/developers/devspecs/gabi41.pdf 438 System V ABI Update System V Application Binary Interface - 439 DRAFT - 17 December 2003 440 http://www.caldera.com/developers/gabi/2003-12-17/contents.htm 441 l 442 System V Application Binary Interface AMD64 Architecture 443 Processor Supplement System V Application Binary Interface 444 AMD64 Architecture Processor Supplement, Draft Version 0.95 445 http://www.x86-64.org/documentation/abi-0.95.pdf 446 X/Open Curses CAE Specification, May 1996, X/Open Curses, 447 Issue 4, Version 2 (ISBN: 1-85912-171-3, C610), plus 448 Corrigendum U018 449 http://www.opengroup.org/publications/catalog/un.htm 450 _________________________________________________________ 451 452 2.2. Informative References/Bibliography 453 454 In addition, the specifications listed below provide essential 455 background information to implementors of this specification. 456 These references are included for information only. 457 458 Table 2-2. Other References 459 Name Title URL 460 DWARF Debugging Information Format, Revision 2.0.0 DWARF 461 Debugging Information Format, Revision 2.0.0 (July 27, 1993) 462 http://refspecs.freestandards.org/dwarf/dwarf-2.0.0.pdf 463 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 464 DWARF Debugging Information Format, Revision 3.0.0 (Draft) 465 http://refspecs.freestandards.org/dwarf/ 466 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 467 Specification method for cultural conventions 468 ITU-T V.42 International Telecommunication Union 469 Recommendation V.42 (2002): Error-correcting procedures for 470 DCEs using asynchronous-to-synchronous conversionITUV 471 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e& 472 parent=T-REC-V.42 473 Li18nux Globalization Specification LI18NUX 2000 Globalization 474 Specification, Version 1.0 with Amendment 4 475 http://www.li18nux.org/docs/html/LI18NUX-2000-amd4.htm 476 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 477 http://www.lanana.org/docs/device-list/devices.txt 478 PAM Open Software Foundation, Request For Comments: 86.0 , 479 October 1995, V. Samar & R.Schemers (SunSoft) 480 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 481 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 482 MD5 Message-Digest Algorithm 483 http://www.ietf.org/rfc/rfc1321.txt 484 RFC 1831/1832 RPC & XDR IETF RFC 1831 & 1832 485 http://www.ietf.org/ 486 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 487 1833: Binding Protocols for ONC RPC Version 2 488 http://www.ietf.org/rfc/rfc1833.txt 489 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 490 1950: ZLIB Compressed Data Format Specification 491 http://www.ietf.org/rfc/rfc1950.txt 492 RFC 1951: DEFLATE Compressed Data Format Specification IETF 493 RFC 1951: DEFLATE Compressed Data Format Specification version 494 1.3 http://www.ietf.org/rfc/rfc1951.txt 495 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 496 file format specification version 4.3 497 http://www.ietf.org/rfc/rfc1952.txt 498 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP 499 Message Format http://www.ietf.org/rfc/rfc2440.txt 500 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 501 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 502 RFC 2822:Internet Message Format IETF RFC 2822: Internet 503 Message Format http://www.ietf.org/rfc/rfc2822.txt 504 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 505 Specification http://www.ietf.org/rfc/rfc791.txt 506 RPM Package Format RPM Package Format V3.0 507 http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format. 508 html 509 zlib Manual zlib 1.2 Manual http://www.gzip.org/zlib/ 510 _________________________________________________________ 511 512 Chapter 3. Requirements 513 514 3.1. Relevant Libraries 515 516 The libraries listed in Table 3-1 shall be available on x86-64 517 Linux Standard Base systems, with the specified runtime names. 518 These names override or supplement the names specified in the 519 generic LSB specification. The specified program interpreter, 520 referred to as proginterp in this table, shall be used to load 521 the shared libraries specified by DT_NEEDED entries at run 522 time. 523 524 Table 3-1. Standard Library Names 525 Library Runtime Name 526 libm libm.so.6 527 libdl libdl.so.2 528 libcrypt libcrypt.so.1 529 libz libz.so.1 530 libncurses libncurses.so.5 531 libutil libutil.so.1 532 libc libc.so.6 533 libpthread libpthread.so.0 534 proginterp /lib64/ld-lsb-x86-64.so.3 535 libgcc_s libgcc_s.so.1 536 537 These libraries will be in an implementation-defined directory 538 which the dynamic linker shall search by default. 539 _________________________________________________________ 540 541 3.2. LSB Implementation Conformance 542 543 A conforming implementation is necessarily architecture 544 specific, and must provide the interfaces specified by both 545 the generic LSB Core specification and its relevant 546 architecture specific supplement. 547 548 Rationale: An implementation must provide at least the 549 interfaces specified in these specifications. It may also 550 provide additional interfaces. 551 552 A conforming implementation shall satisfy the following 553 requirements: 554 555 * A processor architecture represents a family of related 556 processors which may not have identical feature sets. The 557 architecture specific supplement to this specification for 558 a given target processor architecture describes a minimum 559 acceptable processor. The implementation shall provide all 560 features of this processor, whether in hardware or through 561 emulation transparent to the application. 562 * The implementation shall be capable of executing compiled 563 applications having the format and using the system 564 interfaces described in this document. 565 * The implementation shall provide libraries containing the 566 interfaces specified by this document, and shall provide a 567 dynamic linking mechanism that allows these interfaces to 568 be attached to applications at runtime. All the interfaces 569 shall behave as specified in this document. 570 * The map of virtual memory provided by the implementation 571 shall conform to the requirements of this document. 572 * The implementation's low-level behavior with respect to 573 function call linkage, system traps, signals, and other 574 such activities shall conform to the formats described in 575 this document. 576 * The implementation shall provide all of the mandatory 577 interfaces in their entirety. 578 * The implementation may provide one or more of the optional 579 interfaces. Each optional interface that is provided shall 580 be provided in its entirety. The product documentation 581 shall state which optional interfaces are provided. 582 * The implementation shall provide all files and utilities 583 specified as part of this document in the format defined 584 here and in other referenced documents. All commands and 585 utilities shall behave as required by this document. The 586 implementation shall also provide all mandatory components 587 of an application's runtime environment that are included 588 or referenced in this document. 589 * The implementation, when provided with standard data 590 formats and values at a named interface, shall provide the 591 behavior defined for those values and data formats at that 592 interface. However, a conforming implementation may 593 consist of components which are separately packaged and/or 594 sold. For example, a vendor of a conforming implementation 595 might sell the hardware, operating system, and windowing 596 system as separately packaged items. 597 * The implementation may provide additional interfaces with 598 different names. It may also provide additional behavior 599 corresponding to data values outside the standard ranges, 600 for standard named interfaces. 601 _________________________________________________________ 602 603 3.3. LSB Application Conformance 604 605 A conforming application is necessarily architecture specific, 606 and must conform to both the generic LSB Core specification 607 and its relevant architecture specific supplement. 608 609 A conforming application shall satisfy the following 610 requirements: 611 612 * Its executable files shall be either shell scripts or 613 object files in the format defined for the Object File 614 Format system interface. 615 * Its object files shall participate in dynamic linking as 616 defined in the Program Loading and Linking System 617 interface. 618 * It shall employ only the instructions, traps, and other 619 low-level facilities defined in the Low-Level System 620 interface as being for use by applications. 621 * If it requires any optional interface defined in this 622 document in order to be installed or to execute 623 successfully, the requirement for that optional interface 624 shall be stated in the application's documentation. 625 * It shall not use any interface or data format that is not 626 required to be provided by a conforming implementation, 627 unless: 628 + If such an interface or data format is supplied by 629 another application through direct invocation of that 630 application during execution, that application shall 631 be in turn an LSB conforming application. 632 + The use of that interface or data format, as well as 633 its source, shall be identified in the documentation 634 of the application. 635 * It shall not use any values for a named interface that are 636 reserved for vendor extensions. 637 638 A strictly conforming application shall not require or use any 639 interface, facility, or implementation-defined extension that 640 is not defined in this document in order to be installed or to 641 execute successfully. 642 _________________________________________________________ 643 644 Chapter 4. Definitions 645 646 For the purposes of this document, the following definitions, 647 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 648 Edition, apply: 649 650 can 651 652 be able to; there is a possibility of; it is possible to 653 cannot 654 655 be unable to; there is no possibilty of; it is not possible to 656 may 657 658 is permitted; is allowed; is permissible 659 need not 660 661 it is not required that; no...is required 662 shall 663 664 is to; is required to; it is required that; has to; only...is 665 permitted; it is necessary 666 shall not 667 668 is not allowed [permitted] [acceptable] [permissible]; is 669 required to be not; is required that...be not; is not to be 670 should 671 672 it is recommended that; ought to 673 should not 674 675 it is not recommended that; ought not to 676 _________________________________________________________ 677 678 Chapter 5. Terminology 679 680 For the purposes of this document, the following terms apply: 681 682 archLSB 683 The architectural part of the LSB Specification which 684 describes the specific parts of the interface that are 685 platform specific. The archLSB is complementary to the 686 gLSB. 687 688 Binary Standard 689 The total set of interfaces that are available to be 690 used in the compiled binary code of a conforming 691 application. 692 693 gLSB 694 The common part of the LSB Specification that describes 695 those parts of the interface that remain constant 696 across all hardware implementations of the LSB. 697 698 implementation-defined 699 Describes a value or behavior that is not defined by 700 this document but is selected by an implementor. The 701 value or behavior may vary among implementations that 702 conform to this document. An application should not 703 rely on the existence of the value or behavior. An 704 application that relies on such a value or behavior 705 cannot be assured to be portable across conforming 706 implementations. The implementor shall document such a 707 value or behavior so that it can be used correctly by 708 an application. 709 710 Shell Script 711 A file that is read by an interpreter (e.g., awk). The 712 first line of the shell script includes a reference to 713 its interpreter binary. 714 715 Source Standard 716 The set of interfaces that are available to be used in 717 the source code of a conforming application. 718 719 undefined 720 Describes the nature of a value or behavior not defined 721 by this document which results from use of an invalid 722 program construct or invalid data input. The value or 723 behavior may vary among implementations that conform to 724 this document. An application should not rely on the 725 existence or validity of the value or behavior. An 726 application that relies on any particular value or 727 behavior cannot be assured to be portable across 728 conforming implementations. 729 730 unspecified 731 Describes the nature of a value or behavior not 732 specified by this document which results from use of a 733 valid program construct or valid data input. The value 734 or behavior may vary among implementations that conform 735 to this document. An application should not rely on the 736 existence or validity of the value or behavior. An 737 application that relies on any particular value or 738 behavior cannot be assured to be portable across 739 conforming implementations. 740 741 Other terms and definitions used in this document shall have 742 the same meaning as defined in Chapter 3 of the Base 743 Definitions volume of ISO POSIX (2003). 744 _________________________________________________________ 745 746 Chapter 6. Documentation Conventions 747 748 Throughout this document, the following typographic 749 conventions are used: 750 751 function() 752 753 the name of a function 754 command 755 756 the name of a command or utility 757 CONSTANT 758 759 a constant value 760 parameter 761 762 a parameter 763 variable 764 765 a variable 766 767 Throughout this specification, several tables of interfaces 768 are presented. Each entry in these tables has the following 769 format: 770 771 name 772 773 the name of the interface 774 (symver) 775 776 An optional symbol version identifier, if required. 777 [refno] 778 779 A reference number indexing the table of referenced 780 specifications that follows this table. 781 782 For example, 783 784 forkpty(GLIBC_2.0) [SUSv3] 785 786 refers to the interface named forkpty() with symbol version 787 GLIBC_2.0 that is defined in the SUSv3 reference. 788 789 Note: Symbol versions are defined in the architecture 790 specific supplements only. 791 792 II. Executable and Linking Format (ELF) 793 794 Table of Contents 795 7. Introduction 796 8. Low Level System Information 797 798 8.1. Machine Interface 799 800 8.1.1. Processor Architecture 801 8.1.2. Data Representation 802 803 8.2. Function Calling Sequence 804 805 8.2.1. Introduction 806 8.2.2. Registers 807 8.2.3. Floating Point Registers 808 8.2.4. Stack Frame 809 8.2.5. Arguments 810 8.2.6. Return Values 811 812 8.3. Operating System Interface 813 814 8.3.1. Exception Interface 815 8.3.2. Virtual Address Space 816 817 8.4. Process Initialization 818 819 8.4.1. Special Registers 820 8.4.2. Process Stack (on entry) 821 8.4.3. Auxiliary Vector 822 823 8.5. Coding Examples 824 825 8.5.1. Code Model Overview/Architecture Constraints 826 8.5.2. Position-Independent Function Prologue 827 8.5.3. Data Objects 828 8.5.4. Function Calls 829 8.5.5. Branching 830 831 8.6. C Stack Frame 832 833 8.6.1. Variable Argument List 834 835 8.7. Debug Information 836 837 9. Object Format 838 839 9.1. Introduction 840 9.2. ELF Header 841 842 9.2.1. Machine Information 843 844 9.3. Sections 845 846 9.3.1. Introduction 847 9.3.2. Special Sections 848 9.3.3. Additional Special Sections 849 850 9.4. Symbol Table 851 9.5. Relocation 852 853 10. Program Loading and Dynamic Linking 854 855 10.1. Introduction 856 10.2. Program Header 857 10.3. Program Loading 858 10.4. Dynamic Linking 859 860 10.4.1. Introduction 861 10.4.2. Dynamic Section 862 10.4.3. Global Offset Table 863 10.4.4. Function Addresses 864 10.4.5. Procedure Linkage Table 865 10.4.6. Initialization and Termination Functions 866 _________________________________________________________ 867 868 Chapter 7. Introduction 869 870 Executable and Linking Format (ELF) defines the object format 871 for compiled applications. This specification supplements the 872 information found in System V ABI Update and System V 873 Application Binary Interface AMD64 Architecture Processor 874 Supplement, and is intended to document additions made since 875 the publication of that document. 876 _________________________________________________________ 877 878 Chapter 8. Low Level System Information 879 880 8.1. Machine Interface 881 882 8.1.1. Processor Architecture 883 884 The AMD64 Architecture is specified by the following documents 885 886 * AMD64 Architecture Programmer's Manual, Volume 1 887 * AMD64 Architecture Programmer's Manual, Volume 2 888 * AMD64 Architecture Programmer's Manual, Volume 3 889 * AMD64 Architecture Programmer's Manual, Volume 4 890 * AMD64 Architecture Programmer's Manual, Volume 5 891 * System V Application Binary Interface AMD64 Architecture 892 Processor Supplement 893 894 Applications conforming to this specification must provide 895 feedback to the user if a feature that is required for correct 896 execution of the application is not present. Applications 897 conforming to this specification should attempt to execute in 898 a diminished capacity if a required instruction set feature is 899 not present. In particular, applications should not rely on 900 the availability of the 3DNow!(TM) technology. In addition, a 901 conforming application shall not use any instruction from 902 Table 8-1. 903 904 Note: Although this specification carries the attribution 905 "AMD64", it is intended to apply to the entire x86_64 set 906 of processors, including those based on Intel ® Extended 907 Memory 64 Technology (EM64T). However, this specification 908 defers to the AMD architecture specified above. 909 910 Table 8-1. Non Conforming Instructions 911 LAHF SAHF 912 SYSCALL SYSRET 913 SYSENTER SYSEXIT 914 CMPXCHG16B FFXSR 915 916 Conforming applications may use only instructions which do not 917 require elevated privileges. 918 919 Conforming applications shall not invoke the implementations 920 underlying system call interface directly. The interfaces in 921 the implementation base libraries shall be used instead. 922 923 Rationale: Implementation-supplied base libraries may use 924 the system call interface but applications must not assume 925 any particular operating system or kernel version is 926 present. 927 928 This specfication does not provide any performance guarantees 929 of a conforming system. A system conforming to this 930 specification may be implemented in either hardware or 931 software. 932 _________________________________________________________ 933 934 8.1.2. Data Representation 935 936 8.1.2.1. Introduction 937 938 LSB-conforming applications shall use the data representation 939 as defined in Section 3.1.2 of System V Application Binary 940 Interface AMD64 Architecture Processor Supplement. 941 942 Note: The System V Application Binary Interface AMD64 943 Architecture Processor Supplement specification is itself 944 layered on top of the System V Application Binary Interface 945 - Intel386(TM) Architecture Processor Supplement. 946 _________________________________________________________ 947 948 8.1.2.2. Byte Ordering 949 950 LSB-conforming applications shall use the byte ordering 951 defined in Section 3.1.2 of System V Application Binary 952 Interface AMD64 Architecture Processor Supplement. 953 _________________________________________________________ 954 955 8.1.2.3. Fundamental Types 956 957 LSB-conforming applications shall use only the fundamental 958 types described in Section 3.1.2 of System V Application 959 Binary Interface AMD64 Architecture Processor Supplement. 960 _________________________________________________________ 961 962 8.1.2.4. Aggregates and Unions 963 964 LSB-conforming applications shall use alignment for aggregates 965 and unions as described in Section 3.1.2 of System V 966 Application Binary Interface AMD64 Architecture Processor 967 Supplement. 968 _________________________________________________________ 969 970 8.1.2.5. Bit Fields 971 972 LSB-conforming applications utilizing bit-fields shall follow 973 the requirements of Section 3.1.2 of the System V Application 974 Binary Interface AMD64 Architecture Processor Supplement. 975 _________________________________________________________ 976 977 8.2. Function Calling Sequence 978 979 8.2.1. Introduction 980 981 LSB-conforming applications shall use only the following 982 features of the function calling sequence as defined in 983 Section 3.2 of the System V Application Binary Interface AMD64 984 Architecture Processor Supplement. 985 _________________________________________________________ 986 987 8.2.2. Registers 988 989 LSB-conforming applications shall use only the registers 990 described in Section 3.2.1 (Registers and the Stack Frame) of 991 the System V Application Binary Interface AMD64 Architecture 992 Processor Supplement. 993 _________________________________________________________ 994 995 8.2.3. Floating Point Registers 996 997 LSB-conforming applications shall use only the floating point 998 registers described in Section 3.2.1 (Registers and the Stack 999 Frame) of the System V Application Binary Interface AMD64 1000 Architecture Processor Supplement. 1001 _________________________________________________________ 1002 1003 8.2.4. Stack Frame 1004 1005 LSB-conforming applications shall use stack frames as 1006 described in Section 3.2.2 of the System V Application Binary 1007 Interface AMD64 Architecture Processor Supplement. 1008 _________________________________________________________ 1009 1010 8.2.5. Arguments 1011 1012 LSB-conforming applications shall pass parameters to functions 1013 as described in Section 3.2.3 of the System V Application 1014 Binary Interface AMD64 Architecture Processor Supplement. 1015 _________________________________________________________ 1016 1017 8.2.6. Return Values 1018 1019 Values are returned from functions as described in Section 1020 3.3.2 of the System V Application Binary Interface AMD64 1021 Architecture Processor Supplement. 1022 _________________________________________________________ 1023 1024 8.3. Operating System Interface 1025 1026 LSB-conforming applications shall use only the following 1027 features of the Operating System Interfaces as defined in 1028 Section 3.3 of the System V Application Binary Interface AMD64 1029 Architecture Processor Supplement. 1030 _________________________________________________________ 1031 1032 8.3.1. Exception Interface 1033 1034 Synchronous and floating point or coprocessor exceptions shall 1035 behave as described in Section 3.3.1 of the System V 1036 Application Binary Interface AMD64 Architecture Processor 1037 Supplement. 1038 _________________________________________________________ 1039 1040 8.3.2. Virtual Address Space 1041 1042 LSB-Conforming applications shall use only the virtual address 1043 space described in Section 3.3.2 and 3.3.4 of the System V 1044 Application Binary Interface AMD64 Architecture Processor 1045 Supplement. Virtual memory page sizes shall be subject to the 1046 limitations described in Section 3.3.3 of the System V 1047 Application Binary Interface AMD64 Architecture Processor 1048 Supplement. 1049 _________________________________________________________ 1050 1051 8.4. Process Initialization 1052 1053 LSB-conforming applications shall use only the following 1054 features of the Process Initialization as defined in Section 1055 3.4 of the System V Application Binary Interface AMD64 1056 Architecture Processor Supplement. 1057 _________________________________________________________ 1058 1059 8.4.1. Special Registers 1060 1061 During process initialization, the special registers shall be 1062 initalized as described in Section 3.4.1 of the System V 1063 Application Binary Interface AMD64 Architecture Processor 1064 Supplement. 1065 _________________________________________________________ 1066 1067 8.4.2. Process Stack (on entry) 1068 1069 The process stack shall be initialized as described in Section 1070 3.4.1 of the System V Application Binary Interface AMD64 1071 Architecture Processor Supplement. 1072 _________________________________________________________ 1073 1074 8.4.3. Auxiliary Vector 1075 1076 The auxiliary vector shall be initialized as described in 1077 Section 3.4.2 of the System V Application Binary Interface 1078 AMD64 Architecture Processor Supplement. 1079 _________________________________________________________ 1080 1081 8.5. Coding Examples 1082 1083 LSB-conforming applications may use the coding examples given 1084 in Section 3.5 of the System V Application Binary Interface 1085 AMD64 Architecture Processor Supplement to guide implemention 1086 of fundamental operations in the following areas. 1087 _________________________________________________________ 1088 1089 8.5.1. Code Model Overview/Architecture Constraints 1090 1091 Section 3.5.1 of the System V Application Binary Interface 1092 AMD64 Architecture Processor Supplement describes a number of 1093 code models. LSB-Conforming applications may use any of these 1094 models except the Kernel and Large code models. 1095 _________________________________________________________ 1096 1097 8.5.2. Position-Independent Function Prologue 1098 1099 LSB-conforming applications may follow the 1100 position-independent function prologue example in Section 1101 3.5.3 of the System V Application Binary Interface AMD64 1102 Architecture Processor Supplement. 1103 _________________________________________________________ 1104 1105 8.5.3. Data Objects 1106 1107 LSB-conforming applications may follow the data objects 1108 examples in Section 3.5.4 of the System V Application Binary 1109 Interface AMD64 Architecture Processor Supplement. 1110 _________________________________________________________ 1111 1112 8.5.4. Function Calls 1113 1114 LSB-conforming applications may follow the function call 1115 examples in Section 3.5.5 of the System V Application Binary 1116 Interface AMD64 Architecture Processor Supplement. See Chapter 1117 3 of System V Application Binary Interface AMD64 Architecture 1118 Processor Supplement. 1119 _________________________________________________________ 1120 1121 8.5.5. Branching 1122 1123 LSB-conforming applications may follow the branching examples 1124 in Section 3.5.6 of the System V Application Binary Interface 1125 AMD64 Architecture Processor Supplement. 1126 _________________________________________________________ 1127 1128 8.6. C Stack Frame 1129 1130 8.6.1. Variable Argument List 1131 1132 LSB-Conforming applications shall only use variable arguments 1133 to functions in the manner described in Section 3.5.7 of the 1134 System V Application Binary Interface AMD64 Architecture 1135 Processor Supplement. 1136 _________________________________________________________ 1137 1138 8.7. Debug Information 1139 1140 LSB-Conforming applications may include DWARF debugging 1141 information. The DWARF Release Number and Register Number 1142 Mapping shall be as described in Section 3.6 of the System V 1143 Application Binary Interface AMD64 Architecture Processor 1144 Supplement. 1145 _________________________________________________________ 1146 1147 Chapter 9. Object Format 1148 1149 9.1. Introduction 1150 1151 LSB-conforming implementations shall support the Executable 1152 and Linking Format (ELF) object file , as defined by the 1153 System V ABI , System V ABI Update , System V Application 1154 Binary Interface AMD64 Architecture Processor Supplement and 1155 as supplemented by the generic LSB specification and This 1156 Specification. 1157 _________________________________________________________ 1158 1159 9.2. ELF Header 1160 1161 9.2.1. Machine Information 1162 1163 LSB-conforming applications shall identify the Machine 1164 Information as defined in Section 4.1.1 of the System V 1165 Application Binary Interface AMD64 Architecture Processor 1166 Supplement. 1167 _________________________________________________________ 1168 1169 9.3. Sections 1170 1171 9.3.1. Introduction 1172 1173 In addition to the requirements for ELF sections described in 1174 the generic LSB Core specification, conforming implementations 1175 shall support architecture specific sections as described 1176 below. 1177 1178 Note: The System V Application Binary Interface AMD64 1179 Architecture Processor Supplement specifies some 1180 architecture specific section flags and section types that 1181 are not required by LSB-conforming systems. 1182 _________________________________________________________ 1183 1184 9.3.2. Special Sections 1185 1186 The following architecture-specific sections are defined in 1187 the System V Application Binary Interface AMD64 Architecture 1188 Processor Supplement. 1189 1190 Table 9-1. ELF Special Sections 1191 Name Type Attributes 1192 .got SHT_PROGBITS SHF_ALLOC+SHF_WRITE 1193 .plt SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 1194 1195 .got 1196 1197 This section holds the global offset table 1198 .plt 1199 1200 This section holds the procedure linkage table. 1201 1202 Note: Since LSB-conforming implementations are not required 1203 to support the large code model, it is not necessary for 1204 them to provide support for the additional special sections 1205 for the large code model described in the System V 1206 Application Binary Interface AMD64 Architecture Processor 1207 Supplement. 1208 1209 Also, the System V Application Binary Interface AMD64 1210 Architecture Processor Supplement specifies a section 1211 .eh_frame, with a type of SHT_AMD64_UNWIND. This section is 1212 described in the generic LSB-Core specification, but with 1213 type SHT_PROGBITS. This specification does not require 1214 support for the SHT_AMD64_UNWIND section type. 1215 _________________________________________________________ 1216 1217 9.3.3. Additional Special Sections 1218 1219 The following additional sections are defined here. 1220 1221 Table 9-2. Additional Special Sections 1222 Name Type Attributes 1223 .rela.dyn SHT_RELA SHF_ALLOC 1224 .rela.plt SHT_RELA SHF_ALLOC 1225 1226 .rela.dyn 1227 1228 This section holds RELA type relocation information for all 1229 sections of a shared library except the PLT 1230 .rela.plt 1231 1232 This section holds RELA type relocation information for the 1233 PLT section of a shared library or dynamically linked 1234 application 1235 _________________________________________________________ 1236 1237 9.4. Symbol Table 1238 1239 LSB-conforming applications shall use Symbol Tables as defined 1240 in Section 4.3 of the System V Application Binary Interface 1241 AMD64 Architecture Processor Supplement. 1242 _________________________________________________________ 1243 1244 9.5. Relocation 1245 1246 LSB-conforming implementation shall support the required 1247 relocation types defined in Section 4.4.1 of the System V 1248 Application Binary Interface AMD64 Architecture Processor 1249 Supplement. 1250 1251 Note: Since LSB-conforming implementations are not required 1252 to support the large code model, it is not necessary for 1253 them to provide support for the additional relocation types 1254 for the large code model described in the System V 1255 Application Binary Interface AMD64 Architecture Processor 1256 Supplement. 1257 _________________________________________________________ 1258 1259 Chapter 10. Program Loading and Dynamic Linking 1260 1261 10.1. Introduction 1262 1263 LSB-conforming implementations shall support the object file 1264 information and system actions that create running programs as 1265 specified in the System V ABI , System V ABI Update , System V 1266 Application Binary Interface AMD64 Architecture Processor 1267 Supplement and as supplemented by the generic LSB 1268 specification and This Specification. 1269 _________________________________________________________ 1270 1271 10.2. Program Header 1272 1273 LSB-conforming implementations are not required to support the 1274 additional types and flags for this architecture as defined in 1275 Section 5.1 of the System V Application Binary Interface AMD64 1276 Architecture Processor Supplement. 1277 1278 Note: The System V Application Binary Interface AMD64 1279 Architecture Processor Supplement specification is itself 1280 layered on top of the System V Application Binary Interface 1281 - Intel386(TM) Architecture Processor Supplement. As such, 1282 the requirements of that specification are still 1283 requirements of this specification. 1284 _________________________________________________________ 1285 1286 10.3. Program Loading 1287 1288 LSB-conforming implementations shall map file pages to virtual 1289 memory pages as described in Section 5.1 of the System V 1290 Application Binary Interface AMD64 Architecture Processor 1291 Supplement. 1292 _________________________________________________________ 1293 1294 10.4. Dynamic Linking 1295 1296 10.4.1. Introduction 1297 1298 LSB-conforming implementations shall provide dynamic linking 1299 as specified in Section 5.2 of the System V Application Binary 1300 Interface AMD64 Architecture Processor Supplement, except as 1301 described in the following sections. 1302 1303 Note: Since LSB-conforming implementations are not required 1304 to support the large model, support for dynamic linking of 1305 large model code is not required. 1306 _________________________________________________________ 1307 1308 10.4.2. Dynamic Section 1309 1310 Dynamic section entries give information to the dynamic 1311 linker. The following dynamic entry types shall be supported: 1312 1313 DT_JMPREL 1314 1315 This entry is associated with a table of relocation entries 1316 for the procedure linkage table. This entry is mandatory both 1317 for executable and shared object files 1318 DT_PLTGOT 1319 1320 This entry's d_ptr member gives the address of the first byte 1321 in the procedure linkage table 1322 DT_RELACOUNT 1323 1324 The number of relative relocations in .rela.dyn 1325 _________________________________________________________ 1326 1327 10.4.3. Global Offset Table 1328 1329 LSB-conforming implementations shall support a Global Offset 1330 Table as described in Section 5.2 of the System V Application 1331 Binary Interface AMD64 Architecture Processor Supplement. 1332 _________________________________________________________ 1333 1334 10.4.4. Function Addresses 1335 1336 Function addresses shall behave as described in Section 5.2 of 1337 the System V Application Binary Interface AMD64 Architecture 1338 Processor Supplement. 1339 _________________________________________________________ 1340 1341 10.4.5. Procedure Linkage Table 1342 1343 LSB-conforming implementations shall support a Procedure 1344 Linkage Table as described in Section 5.2 of the System V 1345 Application Binary Interface AMD64 Architecture Processor 1346 Supplement. 1347 _________________________________________________________ 1348 1349 10.4.6. Initialization and Termination Functions 1350 1351 LSB-conforming implementations shall support initialization 1352 and termination functions as specified in Section 5.2.2 of the 1353 System V Application Binary Interface AMD64 Architecture 1354 Processor Supplement. 1355 1356 III. Base Libraries 1357 1358 Table of Contents 1359 11. Libraries 1360 1361 11.1. Program Interpreter/Dynamic Linker 1362 11.2. Interfaces for libc 1363 1364 11.2.1. RPC 1365 11.2.2. System Calls 1366 11.2.3. Standard I/O 1367 11.2.4. Signal Handling 1368 11.2.5. Localization Functions 1369 11.2.6. Socket Interface 1370 11.2.7. Wide Characters 1371 11.2.8. String Functions 1372 11.2.9. IPC Functions 1373 11.2.10. Regular Expressions 1374 11.2.11. Character Type Functions 1375 11.2.12. Time Manipulation 1376 11.2.13. Terminal Interface Functions 1377 11.2.14. System Database Interface 1378 11.2.15. Language Support 1379 11.2.16. Large File Support 1380 11.2.17. Standard Library 1381 1382 11.3. Data Definitions for libc 1383 1384 11.3.1. arpa/inet.h 1385 11.3.2. assert.h 1386 11.3.3. ctype.h 1387 11.3.4. dirent.h 1388 11.3.5. err.h 1389 11.3.6. errno.h 1390 11.3.7. fcntl.h 1391 11.3.8. fmtmsg.h 1392 11.3.9. fnmatch.h 1393 11.3.10. ftw.h 1394 11.3.11. getopt.h 1395 11.3.12. glob.h 1396 11.3.13. grp.h 1397 11.3.14. iconv.h 1398 11.3.15. inttypes.h 1399 11.3.16. langinfo.h 1400 11.3.17. libgen.h 1401 11.3.18. libintl.h 1402 11.3.19. limits.h 1403 11.3.20. locale.h 1404 11.3.21. monetary.h 1405 11.3.22. net/if.h 1406 11.3.23. netdb.h 1407 11.3.24. netinet/in.h 1408 11.3.25. netinet/ip.h 1409 11.3.26. netinet/tcp.h 1410 11.3.27. netinet/udp.h 1411 11.3.28. nl_types.h 1412 11.3.29. poll.h 1413 11.3.30. pty.h 1414 11.3.31. pwd.h 1415 11.3.32. regex.h 1416 11.3.33. rpc/auth.h 1417 11.3.34. rpc/clnt.h 1418 11.3.35. rpc/pmap_clnt.h 1419 11.3.36. rpc/rpc_msg.h 1420 11.3.37. rpc/svc.h 1421 11.3.38. rpc/types.h 1422 11.3.39. rpc/xdr.h 1423 11.3.40. sched.h 1424 11.3.41. search.h 1425 11.3.42. setjmp.h 1426 11.3.43. signal.h 1427 11.3.44. stddef.h 1428 11.3.45. stdio.h 1429 11.3.46. stdlib.h 1430 11.3.47. string.h 1431 11.3.48. sys/file.h 1432 11.3.49. sys/ioctl.h 1433 11.3.50. sys/ipc.h 1434 11.3.51. sys/mman.h 1435 11.3.52. sys/msg.h 1436 11.3.53. sys/param.h 1437 11.3.54. sys/poll.h 1438 11.3.55. sys/resource.h 1439 11.3.56. sys/sem.h 1440 11.3.57. sys/shm.h 1441 11.3.58. sys/socket.h 1442 11.3.59. sys/stat.h 1443 11.3.60. sys/statvfs.h 1444 11.3.61. sys/time.h 1445 11.3.62. sys/timeb.h 1446 11.3.63. sys/times.h 1447 11.3.64. sys/types.h 1448 11.3.65. sys/uio.h 1449 11.3.66. sys/un.h 1450 11.3.67. sys/utsname.h 1451 11.3.68. sys/wait.h 1452 11.3.69. syslog.h 1453 11.3.70. termios.h 1454 11.3.71. time.h 1455 11.3.72. ucontext.h 1456 11.3.73. ulimit.h 1457 11.3.74. unistd.h 1458 11.3.75. utime.h 1459 11.3.76. utmp.h 1460 11.3.77. utmpx.h 1461 11.3.78. wchar.h 1462 11.3.79. wctype.h 1463 11.3.80. wordexp.h 1464 1465 11.4. Interfaces for libm 1466 1467 11.4.1. Math 1468 1469 11.5. Data Definitions for libm 1470 1471 11.5.1. complex.h 1472 11.5.2. fenv.h 1473 11.5.3. math.h 1474 1475 11.6. Interfaces for libpthread 1476 1477 11.6.1. Realtime Threads 1478 11.6.2. Advanced Realtime Threads 1479 11.6.3. Posix Threads 1480 11.6.4. Thread aware versions of libc interfaces 1481 1482 11.7. Data Definitions for libpthread 1483 1484 11.7.1. pthread.h 1485 11.7.2. semaphore.h 1486 1487 11.8. Interfaces for libgcc_s 1488 1489 11.8.1. Unwind Library 1490 1491 11.9. Data Definitions for libgcc_s 1492 1493 11.9.1. unwind.h 1494 1495 11.10. Interface Definitions for libgcc_s 1496 1497 _Unwind_DeleteException -- private C++ error 1498 handling method 1499 1500 _Unwind_Find_FDE -- private C++ error handling 1501 method 1502 1503 _Unwind_ForcedUnwind -- private C++ error handling 1504 method 1505 1506 _Unwind_GetDataRelBase -- private IA64 C++ error 1507 handling method 1508 1509 _Unwind_GetGR -- private C++ error handling method 1510 _Unwind_GetIP -- private C++ error handling method 1511 _Unwind_GetLanguageSpecificData -- private C++ 1512 error handling method 1513 1514 _Unwind_GetRegionStart -- private C++ error 1515 handling method 1516 1517 _Unwind_GetTextRelBase -- private IA64 C++ error 1518 handling method 1519 1520 _Unwind_RaiseException -- private C++ error 1521 handling method 1522 1523 _Unwind_Resume -- private C++ error handling method 1524 _Unwind_SetGR -- private C++ error handling method 1525 _Unwind_SetIP -- private C++ error handling method 1526 1527 11.11. Interfaces for libdl 1528 1529 11.11.1. Dynamic Loader 1530 1531 11.12. Data Definitions for libdl 1532 1533 11.12.1. dlfcn.h 1534 1535 11.13. Interfaces for libcrypt 1536 1537 11.13.1. Encryption 1538 _________________________________________________________ 1539 1540 Chapter 11. Libraries 1541 1542 An LSB-conforming implementation shall support some base 1543 libraries which provide interfaces for accessing the operating 1544 system, processor and other hardware in the system. 1545 1546 Interfaces that are unique to the AMD64 platform are defined 1547 here. This section should be used in conjunction with the 1548 corresponding section in the Linux Standard Base 1549 Specification. 1550 _________________________________________________________ 1551 1552 11.1. Program Interpreter/Dynamic Linker 1553 1554 The Program Interpreter shall be /lib64/ld-lsb-x86-64.so.3. 1555 _________________________________________________________ 1556 1557 11.2. Interfaces for libc 1558 1559 Table 11-1 defines the library name and shared object name for 1560 the libc library 1561 1562 Table 11-1. libc Definition 1563 Library: libc 1564 SONAME: libc.so.6 1565 1566 The behavior of the interfaces in this library is specified by 1567 the following specifications: 1568 1569 [LFS] Large File Support 1570 [LSB] This Specification 1571 [SUSv2] SUSv2 1572 [SUSv3] ISO POSIX (2003) 1573 [SVID.3] SVID Issue 3 1574 [SVID.4] SVID Issue 4 1575 _________________________________________________________ 1576 1577 11.2.1. RPC 1578 _________________________________________________________ 1579 1580 11.2.1.1. Interfaces for RPC 1581 1582 An LSB conforming implementation shall provide the 1583 architecture specific functions for RPC specified in Table 1584 11-2, with the full mandatory functionality as described in 1585 the referenced underlying specification. 1586 1587 Table 11-2. libc - RPC Function Interfaces 1588 authnone_create(GLIBC_2.2.5) [SVID.4] clnt_create(GLIBC_2.2.5) 1589 [SVID.4] clnt_pcreateerror(GLIBC_2.2.5) [SVID.4] 1590 clnt_perrno(GLIBC_2.2.5) [SVID.4] 1591 clnt_perror(GLIBC_2.2.5) [SVID.4] 1592 clnt_spcreateerror(GLIBC_2.2.5) [SVID.4] 1593 clnt_sperrno(GLIBC_2.2.5) [SVID.4] clnt_sperror(GLIBC_2.2.5) 1594 [SVID.4] 1595 key_decryptsession(GLIBC_2.2.5) [SVID.3] 1596 pmap_getport(GLIBC_2.2.5) [LSB] pmap_set(GLIBC_2.2.5) [LSB] 1597 pmap_unset(GLIBC_2.2.5) [LSB] 1598 svc_getreqset(GLIBC_2.2.5) [SVID.3] svc_register(GLIBC_2.2.5) 1599 [LSB] svc_run(GLIBC_2.2.5) [LSB] svc_sendreply(GLIBC_2.2.5) 1600 [LSB] 1601 svcerr_auth(GLIBC_2.2.5) [SVID.3] svcerr_decode(GLIBC_2.2.5) 1602 [SVID.3] svcerr_noproc(GLIBC_2.2.5) [SVID.3] 1603 svcerr_noprog(GLIBC_2.2.5) [SVID.3] 1604 svcerr_progvers(GLIBC_2.2.5) [SVID.3] 1605 svcerr_systemerr(GLIBC_2.2.5) [SVID.3] 1606 svcerr_weakauth(GLIBC_2.2.5) [SVID.3] 1607 svctcp_create(GLIBC_2.2.5) [LSB] 1608 svcudp_create(GLIBC_2.2.5) [LSB] 1609 xdr_accepted_reply(GLIBC_2.2.5) [SVID.3] 1610 xdr_array(GLIBC_2.2.5) [SVID.3] xdr_bool(GLIBC_2.2.5) [SVID.3] 1611 xdr_bytes(GLIBC_2.2.5) [SVID.3] xdr_callhdr(GLIBC_2.2.5) 1612 [SVID.3] xdr_callmsg(GLIBC_2.2.5) [SVID.3] 1613 xdr_char(GLIBC_2.2.5) [SVID.3] 1614 xdr_double(GLIBC_2.2.5) [SVID.3] xdr_enum(GLIBC_2.2.5) 1615 [SVID.3] xdr_float(GLIBC_2.2.5) [SVID.3] xdr_free(GLIBC_2.2.5) 1616 [SVID.3] 1617 xdr_int(GLIBC_2.2.5) [SVID.3] xdr_long(GLIBC_2.2.5) [SVID.3] 1618 xdr_opaque(GLIBC_2.2.5) [SVID.3] xdr_opaque_auth(GLIBC_2.2.5) 1619 [SVID.3] 1620 xdr_pointer(GLIBC_2.2.5) [SVID.3] xdr_reference(GLIBC_2.2.5) 1621 [SVID.3] xdr_rejected_reply(GLIBC_2.2.5) [SVID.3] 1622 xdr_replymsg(GLIBC_2.2.5) [SVID.3] 1623 xdr_short(GLIBC_2.2.5) [SVID.3] xdr_string(GLIBC_2.2.5) 1624 [SVID.3] xdr_u_char(GLIBC_2.2.5) [SVID.3] 1625 xdr_u_int(GLIBC_2.2.5) [LSB] 1626 xdr_u_long(GLIBC_2.2.5) [SVID.3] xdr_u_short(GLIBC_2.2.5) 1627 [SVID.3] xdr_union(GLIBC_2.2.5) [SVID.3] 1628 xdr_vector(GLIBC_2.2.5) [SVID.3] 1629 xdr_void(GLIBC_2.2.5) [SVID.3] xdr_wrapstring(GLIBC_2.2.5) 1630 [SVID.3] xdrmem_create(GLIBC_2.2.5) [SVID.3] 1631 xdrrec_create(GLIBC_2.2.5) [SVID.3] 1632 xdrrec_eof(GLIBC_2.2.5) [SVID.3] 1633 _________________________________________________________ 1634 1635 11.2.2. System Calls 1636 _________________________________________________________ 1637 1638 11.2.2.1. Interfaces for System Calls 1639 1640 An LSB conforming implementation shall provide the 1641 architecture specific functions for System Calls specified in 1642 Table 11-3, with the full mandatory functionality as described 1643 in the referenced underlying specification. 1644 1645 Table 11-3. libc - System Calls Function Interfaces 1646 __fxstat(GLIBC_2.2.5) [LSB] __getpgid(GLIBC_2.2.5) [LSB] 1647 __lxstat(GLIBC_2.2.5) [LSB] __xmknod(GLIBC_2.2.5) [LSB] 1648 __xstat(GLIBC_2.2.5) [LSB] access(GLIBC_2.2.5) [SUSv3] 1649 acct(GLIBC_2.2.5) [LSB] alarm(GLIBC_2.2.5) [SUSv3] 1650 brk(GLIBC_2.2.5) [SUSv2] chdir(GLIBC_2.2.5) [SUSv3] 1651 chmod(GLIBC_2.2.5) [SUSv3] chown(GLIBC_2.2.5) [SUSv3] 1652 chroot(GLIBC_2.2.5) [SUSv2] clock(GLIBC_2.2.5) [SUSv3] 1653 close(GLIBC_2.2.5) [SUSv3] closedir(GLIBC_2.2.5) [SUSv3] 1654 creat(GLIBC_2.2.5) [SUSv3] dup(GLIBC_2.2.5) [SUSv3] 1655 dup2(GLIBC_2.2.5) [SUSv3] execl(GLIBC_2.2.5) [SUSv3] 1656 execle(GLIBC_2.2.5) [SUSv3] execlp(GLIBC_2.2.5) [SUSv3] 1657 execv(GLIBC_2.2.5) [SUSv3] execve(GLIBC_2.2.5) [SUSv3] 1658 execvp(GLIBC_2.2.5) [SUSv3] exit(GLIBC_2.2.5) [SUSv3] 1659 fchdir(GLIBC_2.2.5) [SUSv3] fchmod(GLIBC_2.2.5) [SUSv3] 1660 fchown(GLIBC_2.2.5) [SUSv3] fcntl(GLIBC_2.2.5) [LSB] 1661 fdatasync(GLIBC_2.2.5) [SUSv3] flock(GLIBC_2.2.5) [LSB] 1662 fork(GLIBC_2.2.5) [SUSv3] fstatvfs(GLIBC_2.2.5) [SUSv3] 1663 fsync(GLIBC_2.2.5) [SUSv3] ftime(GLIBC_2.2.5) [SUSv3] 1664 ftruncate(GLIBC_2.2.5) [SUSv3] getcontext(GLIBC_2.2.5) [SUSv3] 1665 getegid(GLIBC_2.2.5) [SUSv3] geteuid(GLIBC_2.2.5) [SUSv3] 1666 getgid(GLIBC_2.2.5) [SUSv3] getgroups(GLIBC_2.2.5) [SUSv3] 1667 getitimer(GLIBC_2.2.5) [SUSv3] getloadavg(GLIBC_2.2.5) [LSB] 1668 getpagesize(GLIBC_2.2.5) [SUSv2] getpgid(GLIBC_2.2.5) [SUSv3] 1669 getpgrp(GLIBC_2.2.5) [SUSv3] getpid(GLIBC_2.2.5) [SUSv3] 1670 getppid(GLIBC_2.2.5) [SUSv3] getpriority(GLIBC_2.2.5) [SUSv3] 1671 getrlimit(GLIBC_2.2.5) [SUSv3] getrusage(GLIBC_2.2.5) [SUSv3] 1672 getsid(GLIBC_2.2.5) [SUSv3] getuid(GLIBC_2.2.5) [SUSv3] 1673 getwd(GLIBC_2.2.5) [SUSv3] initgroups(GLIBC_2.2.5) [LSB] 1674 ioctl(GLIBC_2.2.5) [LSB] kill(GLIBC_2.2.5) [LSB] 1675 killpg(GLIBC_2.2.5) [SUSv3] lchown(GLIBC_2.2.5) [SUSv3] 1676 link(GLIBC_2.2.5) [LSB] lockf(GLIBC_2.2.5) [SUSv3] 1677 lseek(GLIBC_2.2.5) [SUSv3] mkdir(GLIBC_2.2.5) [SUSv3] 1678 mkfifo(GLIBC_2.2.5) [SUSv3] mlock(GLIBC_2.2.5) [SUSv3] 1679 mlockall(GLIBC_2.2.5) [SUSv3] mmap(GLIBC_2.2.5) [SUSv3] 1680 mprotect(GLIBC_2.2.5) [SUSv3] msync(GLIBC_2.2.5) [SUSv3] 1681 munlock(GLIBC_2.2.5) [SUSv3] munlockall(GLIBC_2.2.5) [SUSv3] 1682 munmap(GLIBC_2.2.5) [SUSv3] nanosleep(GLIBC_2.2.5) [SUSv3] 1683 nice(GLIBC_2.2.5) [SUSv3] open(GLIBC_2.2.5) [SUSv3] 1684 opendir(GLIBC_2.2.5) [SUSv3] pathconf(GLIBC_2.2.5) [SUSv3] 1685 pause(GLIBC_2.2.5) [SUSv3] pipe(GLIBC_2.2.5) [SUSv3] 1686 poll(GLIBC_2.2.5) [SUSv3] read(GLIBC_2.2.5) [SUSv3] 1687 readdir(GLIBC_2.2.5) [SUSv3] readdir_r(GLIBC_2.2.5) [SUSv3] 1688 readlink(GLIBC_2.2.5) [SUSv3] readv(GLIBC_2.2.5) [SUSv3] 1689 rename(GLIBC_2.2.5) [SUSv3] rmdir(GLIBC_2.2.5) [SUSv3] 1690 sbrk(GLIBC_2.2.5) [SUSv2] sched_get_priority_max(GLIBC_2.2.5) 1691 [SUSv3] sched_get_priority_min(GLIBC_2.2.5) [SUSv3] 1692 sched_getparam(GLIBC_2.2.5) [SUSv3] 1693 sched_getscheduler(GLIBC_2.2.5) [SUSv3] 1694 sched_rr_get_interval(GLIBC_2.2.5) [SUSv3] 1695 sched_setparam(GLIBC_2.2.5) [SUSv3] 1696 sched_setscheduler(GLIBC_2.2.5) [SUSv3] 1697 sched_yield(GLIBC_2.2.5) [SUSv3] select(GLIBC_2.2.5) [SUSv3] 1698 setcontext(GLIBC_2.2.5) [SUSv3] setegid(GLIBC_2.2.5) [SUSv3] 1699 seteuid(GLIBC_2.2.5) [SUSv3] setgid(GLIBC_2.2.5) [SUSv3] 1700 setitimer(GLIBC_2.2.5) [SUSv3] setpgid(GLIBC_2.2.5) [SUSv3] 1701 setpgrp(GLIBC_2.2.5) [SUSv3] setpriority(GLIBC_2.2.5) [SUSv3] 1702 setregid(GLIBC_2.2.5) [SUSv3] setreuid(GLIBC_2.2.5) [SUSv3] 1703 setrlimit(GLIBC_2.2.5) [SUSv3] setrlimit64(GLIBC_2.2.5) [LFS] 1704 setsid(GLIBC_2.2.5) [SUSv3] setuid(GLIBC_2.2.5) [SUSv3] 1705 sleep(GLIBC_2.2.5) [SUSv3] statvfs(GLIBC_2.2.5) [SUSv3] 1706 stime(GLIBC_2.2.5) [LSB] symlink(GLIBC_2.2.5) [SUSv3] 1707 sync(GLIBC_2.2.5) [SUSv3] sysconf(GLIBC_2.2.5) [SUSv3] 1708 time(GLIBC_2.2.5) [SUSv3] times(GLIBC_2.2.5) [SUSv3] 1709 truncate(GLIBC_2.2.5) [SUSv3] ulimit(GLIBC_2.2.5) [SUSv3] 1710 umask(GLIBC_2.2.5) [SUSv3] uname(GLIBC_2.2.5) [SUSv3] 1711 unlink(GLIBC_2.2.5) [LSB] utime(GLIBC_2.2.5) [SUSv3] 1712 utimes(GLIBC_2.2.5) [SUSv3] vfork(GLIBC_2.2.5) [SUSv3] 1713 wait(GLIBC_2.2.5) [SUSv3] wait4(GLIBC_2.2.5) [LSB] 1714 waitpid(GLIBC_2.2.5) [LSB] write(GLIBC_2.2.5) [SUSv3] 1715 writev(GLIBC_2.2.5) [SUSv3] 1716 _________________________________________________________ 1717 1718 11.2.3. Standard I/O 1719 _________________________________________________________ 1720 1721 11.2.3.1. Interfaces for Standard I/O 1722 1723 An LSB conforming implementation shall provide the 1724 architecture specific functions for Standard I/O specified in 1725 Table 11-4, with the full mandatory functionality as described 1726 in the referenced underlying specification. 1727 1728 Table 11-4. libc - Standard I/O Function Interfaces 1729 _IO_feof(GLIBC_2.2.5) [LSB] _IO_getc(GLIBC_2.2.5) [LSB] 1730 _IO_putc(GLIBC_2.2.5) [LSB] _IO_puts(GLIBC_2.2.5) [LSB] 1731 asprintf(GLIBC_2.2.5) [LSB] clearerr(GLIBC_2.2.5) [SUSv3] 1732 ctermid(GLIBC_2.2.5) [SUSv3] fclose(GLIBC_2.2.5) [SUSv3] 1733 fdopen(GLIBC_2.2.5) [SUSv3] feof(GLIBC_2.2.5) [SUSv3] 1734 ferror(GLIBC_2.2.5) [SUSv3] fflush(GLIBC_2.2.5) [SUSv3] 1735 fflush_unlocked(GLIBC_2.2.5) [LSB] fgetc(GLIBC_2.2.5) [SUSv3] 1736 fgetpos(GLIBC_2.2.5) [SUSv3] fgets(GLIBC_2.2.5) [SUSv3] 1737 fgetwc_unlocked(GLIBC_2.2.5) [LSB] fileno(GLIBC_2.2.5) [SUSv3] 1738 flockfile(GLIBC_2.2.5) [SUSv3] fopen(GLIBC_2.2.5) [SUSv3] 1739 fprintf(GLIBC_2.2.5) [SUSv3] fputc(GLIBC_2.2.5) [SUSv3] 1740 fputs(GLIBC_2.2.5) [SUSv3] fread(GLIBC_2.2.5) [SUSv3] 1741 freopen(GLIBC_2.2.5) [SUSv3] fscanf(GLIBC_2.2.5) [LSB] 1742 fseek(GLIBC_2.2.5) [SUSv3] fseeko(GLIBC_2.2.5) [SUSv3] 1743 fsetpos(GLIBC_2.2.5) [SUSv3] ftell(GLIBC_2.2.5) [SUSv3] 1744 ftello(GLIBC_2.2.5) [SUSv3] fwrite(GLIBC_2.2.5) [SUSv3] 1745 getc(GLIBC_2.2.5) [SUSv3] getc_unlocked(GLIBC_2.2.5) [SUSv3] 1746 getchar(GLIBC_2.2.5) [SUSv3] getchar_unlocked(GLIBC_2.2.5) 1747 [SUSv3] 1748 getw(GLIBC_2.2.5) [SUSv2] pclose(GLIBC_2.2.5) [SUSv3] 1749 popen(GLIBC_2.2.5) [SUSv3] printf(GLIBC_2.2.5) [SUSv3] 1750 putc(GLIBC_2.2.5) [SUSv3] putc_unlocked(GLIBC_2.2.5) [SUSv3] 1751 putchar(GLIBC_2.2.5) [SUSv3] putchar_unlocked(GLIBC_2.2.5) 1752 [SUSv3] 1753 puts(GLIBC_2.2.5) [SUSv3] putw(GLIBC_2.2.5) [SUSv2] 1754 remove(GLIBC_2.2.5) [SUSv3] rewind(GLIBC_2.2.5) [SUSv3] 1755 rewinddir(GLIBC_2.2.5) [SUSv3] scanf(GLIBC_2.2.5) [LSB] 1756 seekdir(GLIBC_2.2.5) [SUSv3] setbuf(GLIBC_2.2.5) [SUSv3] 1757 setbuffer(GLIBC_2.2.5) [LSB] setvbuf(GLIBC_2.2.5) [SUSv3] 1758 snprintf(GLIBC_2.2.5) [SUSv3] sprintf(GLIBC_2.2.5) [SUSv3] 1759 sscanf(GLIBC_2.2.5) [LSB] telldir(GLIBC_2.2.5) [SUSv3] 1760 tempnam(GLIBC_2.2.5) [SUSv3] ungetc(GLIBC_2.2.5) [SUSv3] 1761 vasprintf(GLIBC_2.2.5) [LSB] vdprintf(GLIBC_2.2.5) [LSB] 1762 vfprintf(GLIBC_2.2.5) [SUSv3] vprintf(GLIBC_2.2.5) [SUSv3] 1763 vsnprintf(GLIBC_2.2.5) [SUSv3] vsprintf(GLIBC_2.2.5) [SUSv3] 1764 1765 An LSB conforming implementation shall provide the 1766 architecture specific data interfaces for Standard I/O 1767 specified in Table 11-5, with the full mandatory functionality 1768 as described in the referenced underlying specification. 1769 1770 Table 11-5. libc - Standard I/O Data Interfaces 1771 stderr(GLIBC_2.2.5) [SUSv3] stdin(GLIBC_2.2.5) [SUSv3] 1772 stdout(GLIBC_2.2.5) [SUSv3] 1773 _________________________________________________________ 1774 1775 11.2.4. Signal Handling 1776 _________________________________________________________ 1777 1778 11.2.4.1. Interfaces for Signal Handling 1779 1780 An LSB conforming implementation shall provide the 1781 architecture specific functions for Signal Handling specified 1782 in Table 11-6, with the full mandatory functionality as 1783 described in the referenced underlying specification. 1784 1785 Table 11-6. libc - Signal Handling Function Interfaces 1786 __libc_current_sigrtmax(GLIBC_2.2.5) [LSB] 1787 __libc_current_sigrtmin(GLIBC_2.2.5) [LSB] 1788 __sigsetjmp(GLIBC_2.2.5) [LSB] __sysv_signal(GLIBC_2.2.5) 1789 [LSB] 1790 bsd_signal(GLIBC_2.2.5) [SUSv3] psignal(GLIBC_2.2.5) [LSB] 1791 raise(GLIBC_2.2.5) [SUSv3] sigaction(GLIBC_2.2.5) [SUSv3] 1792 sigaddset(GLIBC_2.2.5) [SUSv3] sigaltstack(GLIBC_2.2.5) 1793 [SUSv3] sigandset(GLIBC_2.2.5) [LSB] sigdelset(GLIBC_2.2.5) 1794 [SUSv3] 1795 sigemptyset(GLIBC_2.2.5) [SUSv3] sigfillset(GLIBC_2.2.5) 1796 [SUSv3] sighold(GLIBC_2.2.5) [SUSv3] sigignore(GLIBC_2.2.5) 1797 [SUSv3] 1798 siginterrupt(GLIBC_2.2.5) [SUSv3] sigisemptyset(GLIBC_2.2.5) 1799 [LSB] sigismember(GLIBC_2.2.5) [SUSv3] siglongjmp(GLIBC_2.2.5) 1800 [SUSv3] 1801 signal(GLIBC_2.2.5) [SUSv3] sigorset(GLIBC_2.2.5) [LSB] 1802 sigpause(GLIBC_2.2.5) [SUSv3] sigpending(GLIBC_2.2.5) [SUSv3] 1803 sigprocmask(GLIBC_2.2.5) [SUSv3] sigqueue(GLIBC_2.2.5) [SUSv3] 1804 sigrelse(GLIBC_2.2.5) [SUSv3] sigreturn(GLIBC_2.2.5) [LSB] 1805 sigset(GLIBC_2.2.5) [SUSv3] sigsuspend(GLIBC_2.2.5) [SUSv3] 1806 sigtimedwait(GLIBC_2.2.5) [SUSv3] sigwait(GLIBC_2.2.5) [SUSv3] 1807 sigwaitinfo(GLIBC_2.2.5) [SUSv3] 1808 1809 An LSB conforming implementation shall provide the 1810 architecture specific data interfaces for Signal Handling 1811 specified in Table 11-7, with the full mandatory functionality 1812 as described in the referenced underlying specification. 1813 1814 Table 11-7. libc - Signal Handling Data Interfaces 1815 _sys_siglist(GLIBC_2.3.3) [LSB] 1816 _________________________________________________________ 1817 1818 11.2.5. Localization Functions 1819 _________________________________________________________ 1820 1821 11.2.5.1. Interfaces for Localization Functions 1822 1823 An LSB conforming implementation shall provide the 1824 architecture specific functions for Localization Functions 1825 specified in Table 11-8, with the full mandatory functionality 1826 as described in the referenced underlying specification. 1827 1828 Table 11-8. libc - Localization Functions Function Interfaces 1829 bind_textdomain_codeset(GLIBC_2.2.5) [LSB] 1830 bindtextdomain(GLIBC_2.2.5) [LSB] catclose(GLIBC_2.2.5) 1831 [SUSv3] catgets(GLIBC_2.2.5) [SUSv3] 1832 catopen(GLIBC_2.2.5) [SUSv3] dcgettext(GLIBC_2.2.5) [LSB] 1833 dcngettext(GLIBC_2.2.5) [LSB] dgettext(GLIBC_2.2.5) [LSB] 1834 dngettext(GLIBC_2.2.5) [LSB] gettext(GLIBC_2.2.5) [LSB] 1835 iconv(GLIBC_2.2.5) [SUSv3] iconv_close(GLIBC_2.2.5) [SUSv3] 1836 iconv_open(GLIBC_2.2.5) [SUSv3] localeconv(GLIBC_2.2.5) 1837 [SUSv3] ngettext(GLIBC_2.2.5) [LSB] nl_langinfo(GLIBC_2.2.5) 1838 [SUSv3] 1839 setlocale(GLIBC_2.2.5) [SUSv3] textdomain(GLIBC_2.2.5) [LSB] 1840 1841 An LSB conforming implementation shall provide the 1842 architecture specific data interfaces for Localization 1843 Functions specified in Table 11-9, with the full mandatory 1844 functionality as described in the referenced underlying 1845 specification. 1846 1847 Table 11-9. libc - Localization Functions Data Interfaces 1848 _nl_msg_cat_cntr(GLIBC_2.2.5) [LSB] 1849 _________________________________________________________ 1850 1851 11.2.6. Socket Interface 1852 _________________________________________________________ 1853 1854 11.2.6.1. Interfaces for Socket Interface 1855 1856 An LSB conforming implementation shall provide the 1857 architecture specific functions for Socket Interface specified 1858 in Table 11-10, with the full mandatory functionality as 1859 described in the referenced underlying specification. 1860 1861 Table 11-10. libc - Socket Interface Function Interfaces 1862 __h_errno_location(GLIBC_2.2.5) [LSB] accept(GLIBC_2.2.5) 1863 [SUSv3] bind(GLIBC_2.2.5) [SUSv3] bindresvport(GLIBC_2.2.5) 1864 [LSB] 1865 connect(GLIBC_2.2.5) [SUSv3] gethostid(GLIBC_2.2.5) [SUSv3] 1866 gethostname(GLIBC_2.2.5) [SUSv3] getpeername(GLIBC_2.2.5) 1867 [SUSv3] 1868 getsockname(GLIBC_2.2.5) [SUSv3] getsockopt(GLIBC_2.2.5) [LSB] 1869 if_freenameindex(GLIBC_2.2.5) [SUSv3] 1870 if_indextoname(GLIBC_2.2.5) [SUSv3] 1871 if_nameindex(GLIBC_2.2.5) [SUSv3] if_nametoindex(GLIBC_2.2.5) 1872 [SUSv3] listen(GLIBC_2.2.5) [SUSv3] recv(GLIBC_2.2.5) [SUSv3] 1873 recvfrom(GLIBC_2.2.5) [SUSv3] recvmsg(GLIBC_2.2.5) [SUSv3] 1874 send(GLIBC_2.2.5) [SUSv3] sendmsg(GLIBC_2.2.5) [SUSv3] 1875 sendto(GLIBC_2.2.5) [SUSv3] setsockopt(GLIBC_2.2.5) [LSB] 1876 shutdown(GLIBC_2.2.5) [SUSv3] sockatmark(GLIBC_2.2.5) [SUSv3] 1877 socket(GLIBC_2.2.5) [SUSv3] socketpair(GLIBC_2.2.5) [SUSv3] 1878 _________________________________________________________ 1879 1880 11.2.7. Wide Characters 1881 _________________________________________________________ 1882 1883 11.2.7.1. Interfaces for Wide Characters 1884 1885 An LSB conforming implementation shall provide the 1886 architecture specific functions for Wide Characters specified 1887 in Table 11-11, with the full mandatory functionality as 1888 described in the referenced underlying specification. 1889 1890 Table 11-11. libc - Wide Characters Function Interfaces 1891 __wcstod_internal(GLIBC_2.2.5) [LSB] 1892 __wcstof_internal(GLIBC_2.2.5) [LSB] 1893 __wcstol_internal(GLIBC_2.2.5) [LSB] 1894 __wcstold_internal(GLIBC_2.2.5) [LSB] 1895 __wcstoul_internal(GLIBC_2.2.5) [LSB] btowc(GLIBC_2.2.5) 1896 [SUSv3] fgetwc(GLIBC_2.2.5) [SUSv3] fgetws(GLIBC_2.2.5) 1897 [SUSv3] 1898 fputwc(GLIBC_2.2.5) [SUSv3] fputws(GLIBC_2.2.5) [SUSv3] 1899 fwide(GLIBC_2.2.5) [SUSv3] fwprintf(GLIBC_2.2.5) [SUSv3] 1900 fwscanf(GLIBC_2.2.5) [LSB] getwc(GLIBC_2.2.5) [SUSv3] 1901 getwchar(GLIBC_2.2.5) [SUSv3] mblen(GLIBC_2.2.5) [SUSv3] 1902 mbrlen(GLIBC_2.2.5) [SUSv3] mbrtowc(GLIBC_2.2.5) [SUSv3] 1903 mbsinit(GLIBC_2.2.5) [SUSv3] mbsnrtowcs(GLIBC_2.2.5) [LSB] 1904 mbsrtowcs(GLIBC_2.2.5) [SUSv3] mbstowcs(GLIBC_2.2.5) [SUSv3] 1905 mbtowc(GLIBC_2.2.5) [SUSv3] putwc(GLIBC_2.2.5) [SUSv3] 1906 putwchar(GLIBC_2.2.5) [SUSv3] swprintf(GLIBC_2.2.5) [SUSv3] 1907 swscanf(GLIBC_2.2.5) [LSB] towctrans(GLIBC_2.2.5) [SUSv3] 1908 towlower(GLIBC_2.2.5) [SUSv3] towupper(GLIBC_2.2.5) [SUSv3] 1909 ungetwc(GLIBC_2.2.5) [SUSv3] vfwprintf(GLIBC_2.2.5) [SUSv3] 1910 vfwscanf(GLIBC_2.2.5) [LSB] vswprintf(GLIBC_2.2.5) [SUSv3] 1911 vswscanf(GLIBC_2.2.5) [LSB] vwprintf(GLIBC_2.2.5) [SUSv3] 1912 vwscanf(GLIBC_2.2.5) [LSB] wcpcpy(GLIBC_2.2.5) [LSB] 1913 wcpncpy(GLIBC_2.2.5) [LSB] wcrtomb(GLIBC_2.2.5) [SUSv3] 1914 wcscasecmp(GLIBC_2.2.5) [LSB] wcscat(GLIBC_2.2.5) [SUSv3] 1915 wcschr(GLIBC_2.2.5) [SUSv3] wcscmp(GLIBC_2.2.5) [SUSv3] 1916 wcscoll(GLIBC_2.2.5) [SUSv3] wcscpy(GLIBC_2.2.5) [SUSv3] 1917 wcscspn(GLIBC_2.2.5) [SUSv3] wcsdup(GLIBC_2.2.5) [LSB] 1918 wcsftime(GLIBC_2.2.5) [SUSv3] wcslen(GLIBC_2.2.5) [SUSv3] 1919 wcsncasecmp(GLIBC_2.2.5) [LSB] wcsncat(GLIBC_2.2.5) [SUSv3] 1920 wcsncmp(GLIBC_2.2.5) [SUSv3] wcsncpy(GLIBC_2.2.5) [SUSv3] 1921 wcsnlen(GLIBC_2.2.5) [LSB] wcsnrtombs(GLIBC_2.2.5) [LSB] 1922 wcspbrk(GLIBC_2.2.5) [SUSv3] wcsrchr(GLIBC_2.2.5) [SUSv3] 1923 wcsrtombs(GLIBC_2.2.5) [SUSv3] wcsspn(GLIBC_2.2.5) [SUSv3] 1924 wcsstr(GLIBC_2.2.5) [SUSv3] wcstod(GLIBC_2.2.5) [SUSv3] 1925 wcstof(GLIBC_2.2.5) [SUSv3] wcstoimax(GLIBC_2.2.5) [SUSv3] 1926 wcstok(GLIBC_2.2.5) [SUSv3] wcstol(GLIBC_2.2.5) [SUSv3] 1927 wcstold(GLIBC_2.2.5) [SUSv3] wcstoll(GLIBC_2.2.5) [SUSv3] 1928 wcstombs(GLIBC_2.2.5) [SUSv3] wcstoq(GLIBC_2.2.5) [LSB] 1929 wcstoul(GLIBC_2.2.5) [SUSv3] wcstoull(GLIBC_2.2.5) [SUSv3] 1930 wcstoumax(GLIBC_2.2.5) [SUSv3] wcstouq(GLIBC_2.2.5) [LSB] 1931 wcswcs(GLIBC_2.2.5) [SUSv3] wcswidth(GLIBC_2.2.5) [SUSv3] 1932 wcsxfrm(GLIBC_2.2.5) [SUSv3] wctob(GLIBC_2.2.5) [SUSv3] 1933 wctomb(GLIBC_2.2.5) [SUSv3] wctrans(GLIBC_2.2.5) [SUSv3] 1934 wctype(GLIBC_2.2.5) [SUSv3] wcwidth(GLIBC_2.2.5) [SUSv3] 1935 wmemchr(GLIBC_2.2.5) [SUSv3] wmemcmp(GLIBC_2.2.5) [SUSv3] 1936 wmemcpy(GLIBC_2.2.5) [SUSv3] wmemmove(GLIBC_2.2.5) [SUSv3] 1937 wmemset(GLIBC_2.2.5) [SUSv3] wprintf(GLIBC_2.2.5) [SUSv3] 1938 wscanf(GLIBC_2.2.5) [LSB] 1939 _________________________________________________________ 1940 1941 11.2.8. String Functions 1942 _________________________________________________________ 1943 1944 11.2.8.1. Interfaces for String Functions 1945 1946 An LSB conforming implementation shall provide the 1947 architecture specific functions for String Functions specified 1948 in Table 11-12, with the full mandatory functionality as 1949 described in the referenced underlying specification. 1950 1951 Table 11-12. libc - String Functions Function Interfaces 1952 __mempcpy(GLIBC_2.2.5) [LSB] __rawmemchr(GLIBC_2.2.5) [LSB] 1953 __stpcpy(GLIBC_2.2.5) [LSB] __strdup(GLIBC_2.2.5) [LSB] 1954 __strtod_internal(GLIBC_2.2.5) [LSB] 1955 __strtof_internal(GLIBC_2.2.5) [LSB] __strtok_r(GLIBC_2.2.5) 1956 [LSB] __strtol_internal(GLIBC_2.2.5) [LSB] 1957 __strtold_internal(GLIBC_2.2.5) [LSB] 1958 __strtoll_internal(GLIBC_2.2.5) [LSB] 1959 __strtoul_internal(GLIBC_2.2.5) [LSB] 1960 __strtoull_internal(GLIBC_2.2.5) [LSB] 1961 bcmp(GLIBC_2.2.5) [SUSv3] bcopy(GLIBC_2.2.5) [SUSv3] 1962 bzero(GLIBC_2.2.5) [SUSv3] ffs(GLIBC_2.2.5) [SUSv3] 1963 index(GLIBC_2.2.5) [SUSv3] memccpy(GLIBC_2.2.5) [SUSv3] 1964 memchr(GLIBC_2.2.5) [SUSv3] memcmp(GLIBC_2.2.5) [SUSv3] 1965 memcpy(GLIBC_2.2.5) [SUSv3] memmove(GLIBC_2.2.5) [SUSv3] 1966 memrchr(GLIBC_2.2.5) [LSB] memset(GLIBC_2.2.5) [SUSv3] 1967 rindex(GLIBC_2.2.5) [SUSv3] stpcpy(GLIBC_2.2.5) [LSB] 1968 stpncpy(GLIBC_2.2.5) [LSB] strcasecmp(GLIBC_2.2.5) [SUSv3] 1969 strcasestr(GLIBC_2.2.5) [LSB] strcat(GLIBC_2.2.5) [SUSv3] 1970 strchr(GLIBC_2.2.5) [SUSv3] strcmp(GLIBC_2.2.5) [SUSv3] 1971 strcoll(GLIBC_2.2.5) [SUSv3] strcpy(GLIBC_2.2.5) [SUSv3] 1972 strcspn(GLIBC_2.2.5) [SUSv3] strdup(GLIBC_2.2.5) [SUSv3] 1973 strerror(GLIBC_2.2.5) [SUSv3] strerror_r(GLIBC_2.2.5) [LSB] 1974 strfmon(GLIBC_2.2.5) [SUSv3] strftime(GLIBC_2.2.5) [SUSv3] 1975 strlen(GLIBC_2.2.5) [SUSv3] strncasecmp(GLIBC_2.2.5) [SUSv3] 1976 strncat(GLIBC_2.2.5) [SUSv3] strncmp(GLIBC_2.2.5) [SUSv3] 1977 strncpy(GLIBC_2.2.5) [SUSv3] strndup(GLIBC_2.2.5) [LSB] 1978 strnlen(GLIBC_2.2.5) [LSB] strpbrk(GLIBC_2.2.5) [SUSv3] 1979 strptime(GLIBC_2.2.5) [LSB] strrchr(GLIBC_2.2.5) [SUSv3] 1980 strsep(GLIBC_2.2.5) [LSB] strsignal(GLIBC_2.2.5) [LSB] 1981 strspn(GLIBC_2.2.5) [SUSv3] strstr(GLIBC_2.2.5) [SUSv3] 1982 strtof(GLIBC_2.2.5) [SUSv3] strtoimax(GLIBC_2.2.5) [SUSv3] 1983 strtok(GLIBC_2.2.5) [SUSv3] strtok_r(GLIBC_2.2.5) [SUSv3] 1984 strtold(GLIBC_2.2.5) [SUSv3] strtoll(GLIBC_2.2.5) [SUSv3] 1985 strtoq(GLIBC_2.2.5) [LSB] strtoull(GLIBC_2.2.5) [SUSv3] 1986 strtoumax(GLIBC_2.2.5) [SUSv3] strtouq(GLIBC_2.2.5) [LSB] 1987 strxfrm(GLIBC_2.2.5) [SUSv3] swab(GLIBC_2.2.5) [SUSv3] 1988 _________________________________________________________ 1989 1990 11.2.9. IPC Functions 1991 _________________________________________________________ 1992 1993 11.2.9.1. Interfaces for IPC Functions 1994 1995 An LSB conforming implementation shall provide the 1996 architecture specific functions for IPC Functions specified in 1997 Table 11-13, with the full mandatory functionality as 1998 described in the referenced underlying specification. 1999 2000 Table 11-13. libc - IPC Functions Function Interfaces 2001 ftok(GLIBC_2.2.5) [SUSv3] msgctl(GLIBC_2.2.5) [SUSv3] 2002 msgget(GLIBC_2.2.5) [SUSv3] msgrcv(GLIBC_2.2.5) [SUSv3] 2003 msgsnd(GLIBC_2.2.5) [SUSv3] semctl(GLIBC_2.2.5) [SUSv3] 2004 semget(GLIBC_2.2.5) [SUSv3] semop(GLIBC_2.2.5) [SUSv3] 2005 shmat(GLIBC_2.2.5) [SUSv3] shmctl(GLIBC_2.2.5) [SUSv3] 2006 shmdt(GLIBC_2.2.5) [SUSv3] shmget(GLIBC_2.2.5) [SUSv3] 2007 _________________________________________________________ 2008 2009 11.2.10. Regular Expressions 2010 _________________________________________________________ 2011 2012 11.2.10.1. Interfaces for Regular Expressions 2013 2014 An LSB conforming implementation shall provide the 2015 architecture specific functions for Regular Expressions 2016 specified in Table 11-14, with the full mandatory 2017 functionality as described in the referenced underlying 2018 specification. 2019 2020 Table 11-14. libc - Regular Expressions Function Interfaces 2021 regcomp(GLIBC_2.2.5) [SUSv3] regerror(GLIBC_2.2.5) [SUSv3] 2022 regexec(GLIBC_2.3.4) [LSB] regfree(GLIBC_2.2.5) [SUSv3] 2023 _________________________________________________________ 2024 2025 11.2.11. Character Type Functions 2026 _________________________________________________________ 2027 2028 11.2.11.1. Interfaces for Character Type Functions 2029 2030 An LSB conforming implementation shall provide the 2031 architecture specific functions for Character Type Functions 2032 specified in Table 11-15, with the full mandatory 2033 functionality as described in the referenced underlying 2034 specification. 2035 2036 Table 11-15. libc - Character Type Functions Function 2037 Interfaces 2038 __ctype_get_mb_cur_max(GLIBC_2.2.5) [LSB] 2039 _tolower(GLIBC_2.2.5) [SUSv3] _toupper(GLIBC_2.2.5) [SUSv3] 2040 isalnum(GLIBC_2.2.5) [SUSv3] 2041 isalpha(GLIBC_2.2.5) [SUSv3] isascii(GLIBC_2.2.5) [SUSv3] 2042 iscntrl(GLIBC_2.2.5) [SUSv3] isdigit(GLIBC_2.2.5) [SUSv3] 2043 isgraph(GLIBC_2.2.5) [SUSv3] islower(GLIBC_2.2.5) [SUSv3] 2044 isprint(GLIBC_2.2.5) [SUSv3] ispunct(GLIBC_2.2.5) [SUSv3] 2045 isspace(GLIBC_2.2.5) [SUSv3] isupper(GLIBC_2.2.5) [SUSv3] 2046 iswalnum(GLIBC_2.2.5) [SUSv3] iswalpha(GLIBC_2.2.5) [SUSv3] 2047 iswblank(GLIBC_2.2.5) [SUSv3] iswcntrl(GLIBC_2.2.5) [SUSv3] 2048 iswctype(GLIBC_2.2.5) [SUSv3] iswdigit(GLIBC_2.2.5) [SUSv3] 2049 iswgraph(GLIBC_2.2.5) [SUSv3] iswlower(GLIBC_2.2.5) [SUSv3] 2050 iswprint(GLIBC_2.2.5) [SUSv3] iswpunct(GLIBC_2.2.5) [SUSv3] 2051 iswspace(GLIBC_2.2.5) [SUSv3] iswupper(GLIBC_2.2.5) [SUSv3] 2052 iswxdigit(GLIBC_2.2.5) [SUSv3] isxdigit(GLIBC_2.2.5) [SUSv3] 2053 toascii(GLIBC_2.2.5) [SUSv3] tolower(GLIBC_2.2.5) [SUSv3] 2054 toupper(GLIBC_2.2.5) [SUSv3] 2055 _________________________________________________________ 2056 2057 11.2.12. Time Manipulation 2058 _________________________________________________________ 2059 2060 11.2.12.1. Interfaces for Time Manipulation 2061 2062 An LSB conforming implementation shall provide the 2063 architecture specific functions for Time Manipulation 2064 specified in Table 11-16, with the full mandatory 2065 functionality as described in the referenced underlying 2066 specification. 2067 2068 Table 11-16. libc - Time Manipulation Function Interfaces 2069 adjtime(GLIBC_2.2.5) [LSB] asctime(GLIBC_2.2.5) [SUSv3] 2070 asctime_r(GLIBC_2.2.5) [SUSv3] ctime(GLIBC_2.2.5) [SUSv3] 2071 ctime_r(GLIBC_2.2.5) [SUSv3] difftime(GLIBC_2.2.5) [SUSv3] 2072 gmtime(GLIBC_2.2.5) [SUSv3] gmtime_r(GLIBC_2.2.5) [SUSv3] 2073 localtime(GLIBC_2.2.5) [SUSv3] localtime_r(GLIBC_2.2.5) 2074 [SUSv3] mktime(GLIBC_2.2.5) [SUSv3] tzset(GLIBC_2.2.5) [SUSv3] 2075 ualarm(GLIBC_2.2.5) [SUSv3] 2076 2077 An LSB conforming implementation shall provide the 2078 architecture specific data interfaces for Time Manipulation 2079 specified in Table 11-17, with the full mandatory 2080 functionality as described in the referenced underlying 2081 specification. 2082 2083 Table 11-17. libc - Time Manipulation Data Interfaces 2084 __daylight(GLIBC_2.2.5) [LSB] __timezone(GLIBC_2.2.5) [LSB] 2085 __tzname(GLIBC_2.2.5) [LSB] daylight(GLIBC_2.2.5) [SUSv3] 2086 timezone(GLIBC_2.2.5) [SUSv3] tzname(GLIBC_2.2.5) [SUSv3] 2087 _________________________________________________________ 2088 2089 11.2.13. Terminal Interface Functions 2090 _________________________________________________________ 2091 2092 11.2.13.1. Interfaces for Terminal Interface Functions 2093 2094 An LSB conforming implementation shall provide the 2095 architecture specific functions for Terminal Interface 2096 Functions specified in Table 11-18, with the full mandatory 2097 functionality as described in the referenced underlying 2098 specification. 2099 2100 Table 11-18. libc - Terminal Interface Functions Function 2101 Interfaces 2102 cfgetispeed(GLIBC_2.2.5) [SUSv3] cfgetospeed(GLIBC_2.2.5) 2103 [SUSv3] cfmakeraw(GLIBC_2.2.5) [LSB] cfsetispeed(GLIBC_2.2.5) 2104 [SUSv3] 2105 cfsetospeed(GLIBC_2.2.5) [SUSv3] cfsetspeed(GLIBC_2.2.5) [LSB] 2106 tcdrain(GLIBC_2.2.5) [SUSv3] tcflow(GLIBC_2.2.5) [SUSv3] 2107 tcflush(GLIBC_2.2.5) [SUSv3] tcgetattr(GLIBC_2.2.5) [SUSv3] 2108 tcgetpgrp(GLIBC_2.2.5) [SUSv3] tcgetsid(GLIBC_2.2.5) [SUSv3] 2109 tcsendbreak(GLIBC_2.2.5) [SUSv3] tcsetattr(GLIBC_2.2.5) 2110 [SUSv3] tcsetpgrp(GLIBC_2.2.5) [SUSv3] 2111 _________________________________________________________ 2112 2113 11.2.14. System Database Interface 2114 _________________________________________________________ 2115 2116 11.2.14.1. Interfaces for System Database Interface 2117 2118 An LSB conforming implementation shall provide the 2119 architecture specific functions for System Database Interface 2120 specified in Table 11-19, with the full mandatory 2121 functionality as described in the referenced underlying 2122 specification. 2123 2124 Table 11-19. libc - System Database Interface Function 2125 Interfaces 2126 endgrent(GLIBC_2.2.5) [SUSv3] endprotoent(GLIBC_2.2.5) [SUSv3] 2127 endpwent(GLIBC_2.2.5) [SUSv3] endservent(GLIBC_2.2.5) [SUSv3] 2128 endutent(GLIBC_2.2.5) [SUSv2] endutxent(GLIBC_2.2.5) [SUSv3] 2129 getgrent(GLIBC_2.2.5) [SUSv3] getgrgid(GLIBC_2.2.5) [SUSv3] 2130 getgrgid_r(GLIBC_2.2.5) [SUSv3] getgrnam(GLIBC_2.2.5) [SUSv3] 2131 getgrnam_r(GLIBC_2.2.5) [SUSv3] getgrouplist(GLIBC_2.2.5) 2132 [LSB] 2133 gethostbyaddr(GLIBC_2.2.5) [SUSv3] gethostbyname(GLIBC_2.2.5) 2134 [SUSv3] getprotobyname(GLIBC_2.2.5) [SUSv3] 2135 getprotobynumber(GLIBC_2.2.5) [SUSv3] 2136 getprotoent(GLIBC_2.2.5) [SUSv3] getpwent(GLIBC_2.2.5) [SUSv3] 2137 getpwnam(GLIBC_2.2.5) [SUSv3] getpwnam_r(GLIBC_2.2.5) [SUSv3] 2138 getpwuid(GLIBC_2.2.5) [SUSv3] getpwuid_r(GLIBC_2.2.5) [SUSv3] 2139 getservbyname(GLIBC_2.2.5) [SUSv3] getservbyport(GLIBC_2.2.5) 2140 [SUSv3] 2141 getservent(GLIBC_2.2.5) [SUSv3] getutent(GLIBC_2.2.5) [LSB] 2142 getutent_r(GLIBC_2.2.5) [LSB] getutxent(GLIBC_2.2.5) [SUSv3] 2143 getutxid(GLIBC_2.2.5) [SUSv3] getutxline(GLIBC_2.2.5) [SUSv3] 2144 pututxline(GLIBC_2.2.5) [SUSv3] setgrent(GLIBC_2.2.5) [SUSv3] 2145 setgroups(GLIBC_2.2.5) [LSB] setprotoent(GLIBC_2.2.5) [SUSv3] 2146 setpwent(GLIBC_2.2.5) [SUSv3] setservent(GLIBC_2.2.5) [SUSv3] 2147 setutent(GLIBC_2.2.5) [LSB] setutxent(GLIBC_2.2.5) [SUSv3] 2148 utmpname(GLIBC_2.2.5) [LSB] 2149 _________________________________________________________ 2150 2151 11.2.15. Language Support 2152 _________________________________________________________ 2153 2154 11.2.15.1. Interfaces for Language Support 2155 2156 An LSB conforming implementation shall provide the 2157 architecture specific functions for Language Support specified 2158 in Table 11-20, with the full mandatory functionality as 2159 described in the referenced underlying specification. 2160 2161 Table 11-20. libc - Language Support Function Interfaces 2162 __libc_start_main(GLIBC_2.2.5) [LSB] 2163 _________________________________________________________ 2164 2165 11.2.16. Large File Support 2166 _________________________________________________________ 2167 2168 11.2.16.1. Interfaces for Large File Support 2169 2170 An LSB conforming implementation shall provide the 2171 architecture specific functions for Large File Support 2172 specified in Table 11-21, with the full mandatory 2173 functionality as described in the referenced underlying 2174 specification. 2175 2176 Table 11-21. libc - Large File Support Function Interfaces 2177 __fxstat64(GLIBC_2.2.5) [LSB] __lxstat64(GLIBC_2.2.5) [LSB] 2178 __xstat64(GLIBC_2.2.5) [LSB] creat64(GLIBC_2.2.5) [LFS] 2179 fgetpos64(GLIBC_2.2.5) [LFS] fopen64(GLIBC_2.2.5) [LFS] 2180 freopen64(GLIBC_2.2.5) [LFS] fseeko64(GLIBC_2.2.5) [LFS] 2181 fsetpos64(GLIBC_2.2.5) [LFS] fstatvfs64(GLIBC_2.2.5) [LFS] 2182 ftello64(GLIBC_2.2.5) [LFS] ftruncate64(GLIBC_2.2.5) [LFS] 2183 ftw64(GLIBC_2.2.5) [LFS] getrlimit64(GLIBC_2.2.5) [LFS] 2184 lockf64(GLIBC_2.2.5) [LFS] mkstemp64(GLIBC_2.2.5) [LFS] 2185 mmap64(GLIBC_2.2.5) [LFS] nftw64(GLIBC_2.3.3) [LFS] 2186 readdir64(GLIBC_2.2.5) [LFS] statvfs64(GLIBC_2.2.5) [LFS] 2187 tmpfile64(GLIBC_2.2.5) [LFS] truncate64(GLIBC_2.2.5) [LFS] 2188 _________________________________________________________ 2189 2190 11.2.17. Standard Library 2191 _________________________________________________________ 2192 2193 11.2.17.1. Interfaces for Standard Library 2194 2195 An LSB conforming implementation shall provide the 2196 architecture specific functions for Standard Library specified 2197 in Table 11-22, with the full mandatory functionality as 2198 described in the referenced underlying specification. 2199 2200 Table 11-22. libc - Standard Library Function Interfaces 2201 _Exit(GLIBC_2.2.5) [SUSv3] __assert_fail(GLIBC_2.2.5) [LSB] 2202 __cxa_atexit(GLIBC_2.2.5) [LSB] __errno_location(GLIBC_2.2.5) 2203 [LSB] 2204 __fpending(GLIBC_2.2.5) [LSB] __getpagesize(GLIBC_2.2.5) [LSB] 2205 __isinf(GLIBC_2.2.5) [LSB] __isinff(GLIBC_2.2.5) [LSB] 2206 __isinfl(GLIBC_2.2.5) [LSB] __isnan(GLIBC_2.2.5) [LSB] 2207 __isnanf(GLIBC_2.2.5) [LSB] __isnanl(GLIBC_2.2.5) [LSB] 2208 __sysconf(GLIBC_2.2.5) [LSB] _exit(GLIBC_2.2.5) [SUSv3] 2209 _longjmp(GLIBC_2.2.5) [SUSv3] _setjmp(GLIBC_2.2.5) [SUSv3] 2210 a64l(GLIBC_2.2.5) [SUSv3] abort(GLIBC_2.2.5) [SUSv3] 2211 abs(GLIBC_2.2.5) [SUSv3] atof(GLIBC_2.2.5) [SUSv3] 2212 atoi(GLIBC_2.2.5) [SUSv3] atol(GLIBC_2.2.5) [SUSv3] 2213 atoll(GLIBC_2.2.5) [SUSv3] basename(GLIBC_2.2.5) [SUSv3] 2214 bsearch(GLIBC_2.2.5) [SUSv3] calloc(GLIBC_2.2.5) [SUSv3] 2215 closelog(GLIBC_2.2.5) [SUSv3] confstr(GLIBC_2.2.5) [SUSv3] 2216 cuserid(GLIBC_2.2.5) [SUSv2] daemon(GLIBC_2.2.5) [LSB] 2217 dirname(GLIBC_2.2.5) [SUSv3] div(GLIBC_2.2.5) [SUSv3] 2218 drand48(GLIBC_2.2.5) [SUSv3] ecvt(GLIBC_2.2.5) [SUSv3] 2219 erand48(GLIBC_2.2.5) [SUSv3] err(GLIBC_2.2.5) [LSB] 2220 error(GLIBC_2.2.5) [LSB] errx(GLIBC_2.2.5) [LSB] 2221 fcvt(GLIBC_2.2.5) [SUSv3] fmtmsg(GLIBC_2.2.5) [SUSv3] 2222 fnmatch(GLIBC_2.2.5) [SUSv3] fpathconf(GLIBC_2.2.5) [SUSv3] 2223 free(GLIBC_2.2.5) [SUSv3] freeaddrinfo(GLIBC_2.2.5) [SUSv3] 2224 ftrylockfile(GLIBC_2.2.5) [SUSv3] ftw(GLIBC_2.2.5) [SUSv3] 2225 funlockfile(GLIBC_2.2.5) [SUSv3] gai_strerror(GLIBC_2.2.5) 2226 [SUSv3] 2227 gcvt(GLIBC_2.2.5) [SUSv3] getaddrinfo(GLIBC_2.2.5) [SUSv3] 2228 getcwd(GLIBC_2.2.5) [SUSv3] getdate(GLIBC_2.2.5) [SUSv3] 2229 getenv(GLIBC_2.2.5) [SUSv3] getlogin(GLIBC_2.2.5) [SUSv3] 2230 getlogin_r(GLIBC_2.2.5) [SUSv3] getnameinfo(GLIBC_2.2.5) 2231 [SUSv3] 2232 getopt(GLIBC_2.2.5) [LSB] getopt_long(GLIBC_2.2.5) [LSB] 2233 getopt_long_only(GLIBC_2.2.5) [LSB] getsubopt(GLIBC_2.2.5) 2234 [SUSv3] 2235 gettimeofday(GLIBC_2.2.5) [SUSv3] glob(GLIBC_2.2.5) [SUSv3] 2236 glob64(GLIBC_2.2.5) [LSB] globfree(GLIBC_2.2.5) [SUSv3] 2237 globfree64(GLIBC_2.2.5) [LSB] grantpt(GLIBC_2.2.5) [SUSv3] 2238 hcreate(GLIBC_2.2.5) [SUSv3] hdestroy(GLIBC_2.2.5) [SUSv3] 2239 hsearch(GLIBC_2.2.5) [SUSv3] htonl(GLIBC_2.2.5) [SUSv3] 2240 htons(GLIBC_2.2.5) [SUSv3] imaxabs(GLIBC_2.2.5) [SUSv3] 2241 imaxdiv(GLIBC_2.2.5) [SUSv3] inet_addr(GLIBC_2.2.5) [SUSv3] 2242 inet_ntoa(GLIBC_2.2.5) [SUSv3] inet_ntop(GLIBC_2.2.5) [SUSv3] 2243 inet_pton(GLIBC_2.2.5) [SUSv3] initstate(GLIBC_2.2.5) [SUSv3] 2244 insque(GLIBC_2.2.5) [SUSv3] isatty(GLIBC_2.2.5) [SUSv3] 2245 isblank(GLIBC_2.2.5) [SUSv3] jrand48(GLIBC_2.2.5) [SUSv3] 2246 l64a(GLIBC_2.2.5) [SUSv3] labs(GLIBC_2.2.5) [SUSv3] 2247 lcong48(GLIBC_2.2.5) [SUSv3] ldiv(GLIBC_2.2.5) [SUSv3] 2248 lfind(GLIBC_2.2.5) [SUSv3] llabs(GLIBC_2.2.5) [SUSv3] 2249 lldiv(GLIBC_2.2.5) [SUSv3] longjmp(GLIBC_2.2.5) [SUSv3] 2250 lrand48(GLIBC_2.2.5) [SUSv3] lsearch(GLIBC_2.2.5) [SUSv3] 2251 makecontext(GLIBC_2.2.5) [SUSv3] malloc(GLIBC_2.2.5) [SUSv3] 2252 memmem(GLIBC_2.2.5) [LSB] mkstemp(GLIBC_2.2.5) [SUSv3] 2253 mktemp(GLIBC_2.2.5) [SUSv3] mrand48(GLIBC_2.2.5) [SUSv3] 2254 nftw(GLIBC_2.3.3) [SUSv3] nrand48(GLIBC_2.2.5) [SUSv3] 2255 ntohl(GLIBC_2.2.5) [SUSv3] ntohs(GLIBC_2.2.5) [SUSv3] 2256 openlog(GLIBC_2.2.5) [SUSv3] perror(GLIBC_2.2.5) [SUSv3] 2257 posix_memalign(GLIBC_2.2.5) [SUSv3] posix_openpt(GLIBC_2.2.5) 2258 [SUSv3] ptsname(GLIBC_2.2.5) [SUSv3] putenv(GLIBC_2.2.5) 2259 [SUSv3] 2260 qsort(GLIBC_2.2.5) [SUSv3] rand(GLIBC_2.2.5) [SUSv3] 2261 rand_r(GLIBC_2.2.5) [SUSv3] random(GLIBC_2.2.5) [SUSv3] 2262 realloc(GLIBC_2.2.5) [SUSv3] realpath(GLIBC_2.3) [SUSv3] 2263 remque(GLIBC_2.2.5) [SUSv3] seed48(GLIBC_2.2.5) [SUSv3] 2264 setenv(GLIBC_2.2.5) [SUSv3] sethostname(GLIBC_2.2.5) [LSB] 2265 setlogmask(GLIBC_2.2.5) [SUSv3] setstate(GLIBC_2.2.5) [SUSv3] 2266 srand(GLIBC_2.2.5) [SUSv3] srand48(GLIBC_2.2.5) [SUSv3] 2267 srandom(GLIBC_2.2.5) [SUSv3] strtod(GLIBC_2.2.5) [SUSv3] 2268 strtol(GLIBC_2.2.5) [SUSv3] strtoul(GLIBC_2.2.5) [SUSv3] 2269 swapcontext(GLIBC_2.2.5) [SUSv3] syslog(GLIBC_2.2.5) [SUSv3] 2270 system(GLIBC_2.2.5) [LSB] tdelete(GLIBC_2.2.5) [SUSv3] 2271 tfind(GLIBC_2.2.5) [SUSv3] tmpfile(GLIBC_2.2.5) [SUSv3] 2272 tmpnam(GLIBC_2.2.5) [SUSv3] tsearch(GLIBC_2.2.5) [SUSv3] 2273 ttyname(GLIBC_2.2.5) [SUSv3] ttyname_r(GLIBC_2.2.5) [SUSv3] 2274 twalk(GLIBC_2.2.5) [SUSv3] unlockpt(GLIBC_2.2.5) [SUSv3] 2275 unsetenv(GLIBC_2.2.5) [SUSv3] usleep(GLIBC_2.2.5) [SUSv3] 2276 verrx(GLIBC_2.2.5) [LSB] vfscanf(GLIBC_2.2.5) [LSB] 2277 vscanf(GLIBC_2.2.5) [LSB] vsscanf(GLIBC_2.2.5) [LSB] 2278 vsyslog(GLIBC_2.2.5) [LSB] warn(GLIBC_2.2.5) [LSB] 2279 warnx(GLIBC_2.2.5) [LSB] wordexp(GLIBC_2.2.5) [SUSv3] 2280 wordfree(GLIBC_2.2.5) [SUSv3] 2281 2282 An LSB conforming implementation shall provide the 2283 architecture specific data interfaces for Standard Library 2284 specified in Table 11-23, with the full mandatory 2285 functionality as described in the referenced underlying 2286 specification. 2287 2288 Table 11-23. libc - Standard Library Data Interfaces 2289 __environ(GLIBC_2.2.5) [LSB] _environ(GLIBC_2.2.5) [LSB] 2290 _sys_errlist(GLIBC_2.3) [LSB] environ(GLIBC_2.2.5) [SUSv3] 2291 getdate_err(GLIBC_2.2.5) [SUSv3] optarg(GLIBC_2.2.5) [SUSv3] 2292 opterr(GLIBC_2.2.5) [SUSv3] optind(GLIBC_2.2.5) [SUSv3] 2293 optopt(GLIBC_2.2.5) [SUSv3] 2294 _________________________________________________________ 2295 2296 11.3. Data Definitions for libc 2297 2298 This section defines global identifiers and their values that 2299 are associated with interfaces contained in libc. These 2300 definitions are organized into groups that correspond to 2301 system headers. This convention is used as a convenience for 2302 the reader, and does not imply the existence of these headers, 2303 or their content. Where an interface is defined as requiring a 2304 particular system header file all of the data definitions for 2305 that system header file presented here shall be in effect. 2306 2307 This section gives data definitions to promote binary 2308 application portability, not to repeat source interface 2309 definitions available elsewhere. System providers and 2310 application developers should use this ABI to supplement - not 2311 to replace - source interface definition specifications. 2312 2313 This specification uses the ISO C (1999) C Language as the 2314 reference programming language, and data definitions are 2315 specified in ISO C format. The C language is used here as a 2316 convenient notation. Using a C language description of these 2317 data objects does not preclude their use by other programming 2318 languages. 2319 _________________________________________________________ 2320 2321 11.3.1. arpa/inet.h 2322 2323 extern uint32_t htonl(uint32_t); 2324 extern uint16_t htons(uint16_t); 2325 extern in_addr_t inet_addr(const char *); 2326 extern char *inet_ntoa(struct in_addr); 2327 extern const char *inet_ntop(int, const void *, char *, socklen_t); 2328 extern int inet_pton(int, const char *, void *); 2329 extern uint32_t ntohl(uint32_t); 2330 extern uint16_t ntohs(uint16_t); 2331 _________________________________________________________ 2332 2333 11.3.2. assert.h 2334 2335 extern void __assert_fail(const char *, const char *, unsigned int, 2336 const char *); 2337 _________________________________________________________ 2338 2339 11.3.3. ctype.h 2340 2341 extern int _tolower(int); 2342 extern int _toupper(int); 2343 extern int isalnum(int); 2344 extern int isalpha(int); 2345 extern int isascii(int); 2346 extern int iscntrl(int); 2347 extern int isdigit(int); 2348 extern int isgraph(int); 2349 extern int islower(int); 2350 extern int isprint(int); 2351 extern int ispunct(int); 2352 extern int isspace(int); 2353 extern int isupper(int); 2354 extern int isxdigit(int); 2355 extern int toascii(int); 2356 extern int tolower(int); 2357 extern int toupper(int); 2358 extern int isblank(int); 2359 extern const unsigned short **__ctype_b_loc(void); 2360 extern const int32_t **__ctype_toupper_loc(void); 2361 extern const int32_t **__ctype_tolower_loc(void); 2362 _________________________________________________________ 2363 2364 11.3.4. dirent.h 2365 2366 extern void rewinddir(DIR *); 2367 extern void seekdir(DIR *, long int); 2368 extern long int telldir(DIR *); 2369 extern int closedir(DIR *); 2370 extern DIR *opendir(const char *); 2371 extern struct dirent *readdir(DIR *); 2372 extern struct dirent64 *readdir64(DIR *); 2373 extern int readdir_r(DIR *, struct dirent *, struct dirent **); 2374 _________________________________________________________ 2375 2376 11.3.5. err.h 2377 2378 extern void err(int, const char *, ...); 2379 extern void errx(int, const char *, ...); 2380 extern void warn(const char *, ...); 2381 extern void warnx(const char *, ...); 2382 extern void error(int, int, const char *, ...); 2383 _________________________________________________________ 2384 2385 11.3.6. errno.h 2386 2387 #define EDEADLOCK EDEADLK 2388 2389 extern int *__errno_location(void); 2390 _________________________________________________________ 2391 2392 11.3.7. fcntl.h 2393 2394 #define F_GETLK64 5 2395 #define F_SETLK64 6 2396 #define F_SETLKW64 7 2397 2398 extern int lockf64(int, int, off64_t); 2399 extern int fcntl(int, int, ...); 2400 _________________________________________________________ 2401 2402 11.3.8. fmtmsg.h 2403 2404 extern int fmtmsg(long int, const char *, int, const char *, const char *, 2405 const char *); 2406 _________________________________________________________ 2407 2408 11.3.9. fnmatch.h 2409 2410 extern int fnmatch(const char *, const char *, int); 2411 _________________________________________________________ 2412 2413 11.3.10. ftw.h 2414 2415 extern int ftw(const char *, __ftw_func_t, int); 2416 extern int ftw64(const char *, __ftw64_func_t, int); 2417 extern int nftw(const char *, __nftw_func_t, int, int); 2418 extern int nftw64(const char *, __nftw64_func_t, int, int); 2419 _________________________________________________________ 2420 2421 11.3.11. getopt.h 2422 2423 extern int getopt_long(int, char *const, const char *, 2424 const struct option *, int *); 2425 extern int getopt_long_only(int, char *const, const char *, 2426 const struct option *, int *); 2427 _________________________________________________________ 2428 2429 11.3.12. glob.h 2430 2431 extern int glob(const char *, int, 2432 int (*__errfunc) (const char *p1, int p2) 2433 , glob_t *); 2434 extern int glob64(const char *, int, 2435 int (*__errfunc) (const char *p1, int p2) 2436 , glob64_t *); 2437 extern void globfree(glob_t *); 2438 extern void globfree64(glob64_t *); 2439 _________________________________________________________ 2440 2441 11.3.13. grp.h 2442 2443 extern void endgrent(void); 2444 extern struct group *getgrent(void); 2445 extern struct group *getgrgid(gid_t); 2446 extern struct group *getgrnam(char *); 2447 extern int initgroups(const char *, gid_t); 2448 extern void setgrent(void); 2449 extern int setgroups(size_t, const gid_t *); 2450 extern int getgrgid_r(gid_t, struct group *, char *, size_t, 2451 struct group **); 2452 extern int getgrnam_r(const char *, struct group *, char *, size_t, 2453 struct group **); 2454 extern int getgrouplist(const char *, gid_t, gid_t *, int *); 2455 _________________________________________________________ 2456 2457 11.3.14. iconv.h 2458 2459 extern size_t iconv(iconv_t, char **, size_t *, char **, size_t *); 2460 extern int iconv_close(iconv_t); 2461 extern iconv_t iconv_open(char *, char *); 2462 _________________________________________________________ 2463 2464 11.3.15. inttypes.h 2465 2466 typedef long int intmax_t; 2467 typedef unsigned long int uintptr_t; 2468 typedef unsigned long int uintmax_t; 2469 typedef unsigned long int uint64_t; 2470 2471 extern intmax_t strtoimax(const char *, char **, int); 2472 extern uintmax_t strtoumax(const char *, char **, int); 2473 extern intmax_t wcstoimax(const wchar_t *, wchar_t * *, int); 2474 extern uintmax_t wcstoumax(const wchar_t *, wchar_t * *, int); 2475 extern intmax_t imaxabs(intmax_t); 2476 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 2477 _________________________________________________________ 2478 2479 11.3.16. langinfo.h 2480 2481 extern char *nl_langinfo(nl_item); 2482 _________________________________________________________ 2483 2484 11.3.17. libgen.h 2485 2486 extern char *basename(const char *); 2487 extern char *dirname(char *); 2488 _________________________________________________________ 2489 2490 11.3.18. libintl.h 2491 2492 extern char *bindtextdomain(const char *, const char *); 2493 extern char *dcgettext(const char *, const char *, int); 2494 extern char *dgettext(const char *, const char *); 2495 extern char *gettext(const char *); 2496 extern char *textdomain(const char *); 2497 extern char *bind_textdomain_codeset(const char *, const char *); 2498 extern char *dcngettext(const char *, const char *, const char *, 2499 unsigned long int, int); 2500 extern char *dngettext(const char *, const char *, const char *, 2501 unsigned long int); 2502 extern char *ngettext(const char *, const char *, unsigned long int); 2503 _________________________________________________________ 2504 2505 11.3.19. limits.h 2506 2507 #define LONG_MAX 0x7FFFFFFFFFFFFFFFL 2508 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 2509 2510 #define CHAR_MAX 127 2511 #define CHAR_MIN SCHAR_MIN 2512 2513 #define PTHREAD_STACK_MIN 16384 2514 _________________________________________________________ 2515 2516 11.3.20. locale.h 2517 2518 extern struct lconv *localeconv(void); 2519 extern char *setlocale(int, const char *); 2520 extern locale_t uselocale(locale_t); 2521 extern void freelocale(locale_t); 2522 extern locale_t duplocale(locale_t); 2523 extern locale_t newlocale(int, const char *, locale_t); 2524 _________________________________________________________ 2525 2526 11.3.21. monetary.h 2527 2528 extern ssize_t strfmon(char *, size_t, const char *, ...); 2529 _________________________________________________________ 2530 2531 11.3.22. net/if.h 2532 2533 extern void if_freenameindex(struct if_nameindex *); 2534 extern char *if_indextoname(unsigned int, char *); 2535 extern struct if_nameindex *if_nameindex(void); 2536 extern unsigned int if_nametoindex(const char *); 2537 _________________________________________________________ 2538 2539 11.3.23. netdb.h 2540 2541 extern void endprotoent(void); 2542 extern void endservent(void); 2543 extern void freeaddrinfo(struct addrinfo *); 2544 extern const char *gai_strerror(int); 2545 extern int getaddrinfo(const char *, const char *, const struct addrinfo *, 2546 struct addrinfo **); 2547 extern struct hostent *gethostbyaddr(const void *, socklen_t, int); 2548 extern struct hostent *gethostbyname(const char *); 2549 extern struct protoent *getprotobyname(const char *); 2550 extern struct protoent *getprotobynumber(int); 2551 extern struct protoent *getprotoent(void); 2552 extern struct servent *getservbyname(const char *, const char *); 2553 extern struct servent *getservbyport(int, const char *); 2554 extern struct servent *getservent(void); 2555 extern void setprotoent(int); 2556 extern void setservent(int); 2557 extern int *__h_errno_location(void); 2558 _________________________________________________________ 2559 2560 11.3.24. netinet/in.h 2561 2562 extern int bindresvport(int, struct sockaddr_in *); 2563 _________________________________________________________ 2564 2565 11.3.25. netinet/ip.h 2566 2567 /* 2568 * This header is architecture neutral 2569 * Please refer to the generic specification for details 2570 */ 2571 _________________________________________________________ 2572 2573 11.3.26. netinet/tcp.h 2574 2575 /* 2576 * This header is architecture neutral 2577 * Please refer to the generic specification for details 2578 */ 2579 _________________________________________________________ 2580 2581 11.3.27. netinet/udp.h 2582 2583 /* 2584 * This header is architecture neutral 2585 * Please refer to the generic specification for details 2586 */ 2587 _________________________________________________________ 2588 2589 11.3.28. nl_types.h 2590 2591 extern int catclose(nl_catd); 2592 extern char *catgets(nl_catd, int, int, const char *); 2593 extern nl_catd catopen(const char *, int); 2594 _________________________________________________________ 2595 2596 11.3.29. poll.h 2597 2598 extern int poll(struct pollfd *, nfds_t, int); 2599 _________________________________________________________ 2600 2601 11.3.30. pty.h 2602 2603 extern int openpty(int *, int *, char *, struct termios *, 2604 struct winsize *); 2605 extern int forkpty(int *, char *, struct termios *, struct winsize *); 2606 _________________________________________________________ 2607 2608 11.3.31. pwd.h 2609 2610 extern void endpwent(void); 2611 extern struct passwd *getpwent(void); 2612 extern struct passwd *getpwnam(char *); 2613 extern struct passwd *getpwuid(uid_t); 2614 extern void setpwent(void); 2615 extern int getpwnam_r(char *, struct passwd *, char *, size_t, 2616 struct passwd **); 2617 extern int getpwuid_r(uid_t, struct passwd *, char *, size_t, 2618 struct passwd **); 2619 _________________________________________________________ 2620 2621 11.3.32. regex.h 2622 2623 extern int regcomp(regex_t *, const char *, int); 2624 extern size_t regerror(int, const regex_t *, char *, size_t); 2625 extern int regexec(const regex_t *, const char *, size_t, regmatch_t, int); 2626 extern void regfree(regex_t *); 2627 _________________________________________________________ 2628 2629 11.3.33. rpc/auth.h 2630 2631 extern struct AUTH *authnone_create(void); 2632 extern int key_decryptsession(char *, union des_block *); 2633 extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); 2634 _________________________________________________________ 2635 2636 11.3.34. rpc/clnt.h 2637 2638 extern struct CLIENT *clnt_create(const char *, const u_long, const u_long, 2639 const char *); 2640 extern void clnt_pcreateerror(const char *); 2641 extern void clnt_perrno(enum clnt_stat); 2642 extern void clnt_perror(struct CLIENT *, const char *); 2643 extern char *clnt_spcreateerror(const char *); 2644 extern char *clnt_sperrno(enum clnt_stat); 2645 extern char *clnt_sperror(struct CLIENT *, const char *); 2646 _________________________________________________________ 2647 2648 11.3.35. rpc/pmap_clnt.h 2649 2650 extern u_short pmap_getport(struct sockaddr_in *, const u_long, 2651 const u_long, u_int); 2652 extern bool_t pmap_set(const u_long, const u_long, int, u_short); 2653 extern bool_t pmap_unset(u_long, u_long); 2654 _________________________________________________________ 2655 2656 11.3.36. rpc/rpc_msg.h 2657 2658 extern bool_t xdr_callhdr(XDR *, struct rpc_msg *); 2659 _________________________________________________________ 2660 2661 11.3.37. rpc/svc.h 2662 2663 extern void svc_getreqset(fd_set *); 2664 extern bool_t svc_register(SVCXPRT *, rpcprog_t, rpcvers_t, 2665 __dispatch_fn_t, rpcprot_t); 2666 extern void svc_run(void); 2667 extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, caddr_t); 2668 extern void svcerr_auth(SVCXPRT *, enum auth_stat); 2669 extern void svcerr_decode(SVCXPRT *); 2670 extern void svcerr_noproc(SVCXPRT *); 2671 extern void svcerr_noprog(SVCXPRT *); 2672 extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); 2673 extern void svcerr_systemerr(SVCXPRT *); 2674 extern void svcerr_weakauth(SVCXPRT *); 2675 extern SVCXPRT *svctcp_create(int, u_int, u_int); 2676 extern SVCXPRT *svcudp_create(int); 2677 _________________________________________________________ 2678 2679 11.3.38. rpc/types.h 2680 2681 /* 2682 * This header is architecture neutral 2683 * Please refer to the generic specification for details 2684 */ 2685 _________________________________________________________ 2686 2687 11.3.39. rpc/xdr.h 2688 2689 extern bool_t xdr_array(XDR *, caddr_t *, u_int *, u_int, u_int, 2690 xdrproc_t); 2691 extern bool_t xdr_bool(XDR *, bool_t *); 2692 extern bool_t xdr_bytes(XDR *, char **, u_int *, u_int); 2693 extern bool_t xdr_char(XDR *, char *); 2694 extern bool_t xdr_double(XDR *, double *); 2695 extern bool_t xdr_enum(XDR *, enum_t *); 2696 extern bool_t xdr_float(XDR *, float *); 2697 extern void xdr_free(xdrproc_t, char *); 2698 extern bool_t xdr_int(XDR *, int *); 2699 extern bool_t xdr_long(XDR *, long int *); 2700 extern bool_t xdr_opaque(XDR *, caddr_t, u_int); 2701 extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); 2702 extern bool_t xdr_reference(XDR *, caddr_t *, u_int, xdrproc_t); 2703 extern bool_t xdr_short(XDR *, short *); 2704 extern bool_t xdr_string(XDR *, char **, u_int); 2705 extern bool_t xdr_u_char(XDR *, u_char *); 2706 extern bool_t xdr_u_int(XDR *, u_int *); 2707 extern bool_t xdr_u_long(XDR *, u_long *); 2708 extern bool_t xdr_u_short(XDR *, u_short *); 2709 extern bool_t xdr_union(XDR *, enum_t *, char *, 2710 const struct xdr_discrim *, xdrproc_t); 2711 extern bool_t xdr_vector(XDR *, char *, u_int, u_int, xdrproc_t); 2712 extern bool_t xdr_void(void); 2713 extern bool_t xdr_wrapstring(XDR *, char **); 2714 extern void xdrmem_create(XDR *, caddr_t, u_int, enum xdr_op); 2715 extern void xdrrec_create(XDR *, u_int, u_int, caddr_t, 2716 int (*__readit) (char *p1, char *p2, int p3) 2717 , int (*__writeit) (char *p1, char *p2, int p3) 2718 ); 2719 extern typedef int bool_t xdrrec_eof(XDR *); 2720 _________________________________________________________ 2721 2722 11.3.40. sched.h 2723 2724 extern int sched_get_priority_max(int); 2725 extern int sched_get_priority_min(int); 2726 extern int sched_getparam(pid_t, struct sched_param *); 2727 extern int sched_getscheduler(pid_t); 2728 extern int sched_rr_get_interval(pid_t, struct timespec *); 2729 extern int sched_setparam(pid_t, const struct sched_param *); 2730 extern int sched_setscheduler(pid_t, int, const struct sched_param *); 2731 extern int sched_yield(void); 2732 _________________________________________________________ 2733 2734 11.3.41. search.h 2735 2736 extern int hcreate(size_t); 2737 extern ENTRY *hsearch(ENTRY, ACTION); 2738 extern void insque(void *, void *); 2739 extern void *lfind(const void *, const void *, size_t *, size_t, 2740 __compar_fn_t); 2741 extern void *lsearch(const void *, void *, size_t *, size_t, 2742 __compar_fn_t); 2743 extern void remque(void *); 2744 extern void hdestroy(void); 2745 extern void *tdelete(const void *, void **, __compar_fn_t); 2746 extern void *tfind(const void *, void *const *, __compar_fn_t); 2747 extern void *tsearch(const void *, void **, __compar_fn_t); 2748 extern void twalk(const void *, __action_fn_t); 2749 _________________________________________________________ 2750 2751 11.3.42. setjmp.h 2752 2753 typedef long int __jmp_buf[8]; 2754 2755 extern int __sigsetjmp(jmp_buf, int); 2756 extern void longjmp(jmp_buf, int); 2757 extern void siglongjmp(sigjmp_buf, int); 2758 extern void _longjmp(jmp_buf, int); 2759 extern int _setjmp(jmp_buf); 2760 _________________________________________________________ 2761 2762 11.3.43. signal.h 2763 2764 #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int))-4) 2765 2766 #define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int))-4) 2767 2768 struct sigaction { 2769 union { 2770 sighandler_t _sa_handler; 2771 void (*_sa_sigaction) (int, siginfo_t *, void *); 2772 } __sigaction_handler; 2773 sigset_t sa_mask; 2774 int sa_flags; 2775 void (*sa_restorer) (void); 2776 }; 2777 2778 #define MINSIGSTKSZ 2048 2779 #define SIGSTKSZ 8192 2780 2781 struct _fpxreg { 2782 unsigned short significand[4]; 2783 unsigned short exponent; 2784 unsigned short padding[3]; 2785 }; 2786 struct _xmmreg { 2787 uint32_t element[4]; 2788 }; 2789 2790 struct _fpstate { 2791 uint16_t cwd; 2792 uint16_t swd; 2793 uint16_t ftw; 2794 uint16_t fop; 2795 uint64_t rip; 2796 uint64_t rdp; 2797 uint32_t mxcsr; 2798 uint32_t mxcr_mask; 2799 struct _fpxreg _st[8]; 2800 struct _xmmreg _xmm[16]; 2801 uint32_t padding[24]; 2802 }; 2803 2804 struct sigcontext { 2805 unsigned long int r8; 2806 unsigned long int r9; 2807 unsigned long int r10; 2808 unsigned long int r11; 2809 unsigned long int r12; 2810 unsigned long int r13; 2811 unsigned long int r14; 2812 unsigned long int r15; 2813 unsigned long int rdi; 2814 unsigned long int rsi; 2815 unsigned long int rbp; 2816 unsigned long int rbx; 2817 unsigned long int rdx; 2818 unsigned long int rax; 2819 unsigned long int rcx; 2820 unsigned long int rsp; 2821 unsigned long int rip; 2822 unsigned long int eflags; 2823 unsigned short cs; 2824 unsigned short gs; 2825 unsigned short fs; 2826 unsigned short __pad0; 2827 unsigned long int err; 2828 unsigned long int trapno; 2829 unsigned long int oldmask; 2830 unsigned long int cr2; 2831 struct _fpstate *fpstate; 2832 unsigned long int __reserved1[8]; 2833 }; 2834 extern int __libc_current_sigrtmax(void); 2835 extern int __libc_current_sigrtmin(void); 2836 extern sighandler_t __sysv_signal(int, sighandler_t); 2837 extern char *const _sys_siglist(void); 2838 extern int killpg(pid_t, int); 2839 extern void psignal(int, const char *); 2840 extern int raise(int); 2841 extern int sigaddset(sigset_t *, int); 2842 extern int sigandset(sigset_t *, const sigset_t *, const sigset_t *); 2843 extern int sigdelset(sigset_t *, int); 2844 extern int sigemptyset(sigset_t *); 2845 extern int sigfillset(sigset_t *); 2846 extern int sighold(int); 2847 extern int sigignore(int); 2848 extern int siginterrupt(int, int); 2849 extern int sigisemptyset(const sigset_t *); 2850 extern int sigismember(const sigset_t *, int); 2851 extern int sigorset(sigset_t *, const sigset_t *, const sigset_t *); 2852 extern int sigpending(sigset_t *); 2853 extern int sigrelse(int); 2854 extern sighandler_t sigset(int, sighandler_t); 2855 extern int pthread_kill(pthread_t, int); 2856 extern int pthread_sigmask(int, sigset_t *, sigset_t *); 2857 extern int sigaction(int, const struct sigaction *, struct sigaction *); 2858 extern int sigwait(sigset_t *, int *); 2859 extern int kill(pid_t, int); 2860 extern int sigaltstack(const struct sigaltstack *, struct sigaltstack *); 2861 extern sighandler_t signal(int, sighandler_t); 2862 extern int sigpause(int); 2863 extern int sigprocmask(int, const sigset_t *, sigset_t *); 2864 extern int sigreturn(struct sigcontext *); 2865 extern int sigsuspend(const sigset_t *); 2866 extern int sigqueue(pid_t, int, const union sigval); 2867 extern int sigwaitinfo(const sigset_t *, siginfo_t *); 2868 extern int sigtimedwait(const sigset_t *, siginfo_t *, 2869 const struct timespec *); 2870 extern sighandler_t bsd_signal(int, sighandler_t); 2871 _________________________________________________________ 2872 2873 11.3.44. stddef.h 2874 2875 typedef long int ptrdiff_t; 2876 typedef unsigned long int size_t; 2877 _________________________________________________________ 2878 2879 11.3.45. stdio.h 2880 2881 #define __IO_FILE_SIZE 216 2882 2883 extern char *const _sys_errlist(void); 2884 extern void clearerr(FILE *); 2885 extern int fclose(FILE *); 2886 extern FILE *fdopen(int, const char *); 2887 extern int fflush_unlocked(FILE *); 2888 extern int fileno(FILE *); 2889 extern FILE *fopen(const char *, const char *); 2890 extern int fprintf(FILE *, const char *, ...); 2891 extern int fputc(int, FILE *); 2892 extern FILE *freopen(const char *, const char *, FILE *); 2893 extern FILE *freopen64(const char *, const char *, FILE *); 2894 extern int fscanf(FILE *, const char *, ...); 2895 extern int fseek(FILE *, long int, int); 2896 extern int fseeko(FILE *, off_t, int); 2897 extern int fseeko64(FILE *, loff_t, int); 2898 extern off_t ftello(FILE *); 2899 extern loff_t ftello64(FILE *); 2900 extern int getchar(void); 2901 extern int getchar_unlocked(void); 2902 extern int getw(FILE *); 2903 extern int pclose(FILE *); 2904 extern void perror(const char *); 2905 extern FILE *popen(const char *, const char *); 2906 extern int printf(const char *, ...); 2907 extern int putc_unlocked(int, FILE *); 2908 extern int putchar(int); 2909 extern int putchar_unlocked(int); 2910 extern int putw(int, FILE *); 2911 extern int remove(const char *); 2912 extern void rewind(FILE *); 2913 extern int scanf(const char *, ...); 2914 extern void setbuf(FILE *, char *); 2915 extern int sprintf(char *, const char *, ...); 2916 extern int sscanf(const char *, const char *, ...); 2917 extern FILE *stderr(void); 2918 extern FILE *stdin(void); 2919 extern FILE *stdout(void); 2920 extern char *tempnam(const char *, const char *); 2921 extern FILE *tmpfile64(void); 2922 extern FILE *tmpfile(void); 2923 extern char *tmpnam(char *); 2924 extern int vfprintf(FILE *, const char *, va_list); 2925 extern int vprintf(const char *, va_list); 2926 extern int feof(FILE *); 2927 extern int ferror(FILE *); 2928 extern int fflush(FILE *); 2929 extern int fgetc(FILE *); 2930 extern int fgetpos(FILE *, fpos_t *); 2931 extern char *fgets(char *, int, FILE *); 2932 extern int fputs(const char *, FILE *); 2933 extern size_t fread(void *, size_t, size_t, FILE *); 2934 extern int fsetpos(FILE *, const fpos_t *); 2935 extern long int ftell(FILE *); 2936 extern size_t fwrite(const void *, size_t, size_t, FILE *); 2937 extern int getc(FILE *); 2938 extern int putc(int, FILE *); 2939 extern int puts(const char *); 2940 extern int setvbuf(FILE *, char *, int, size_t); 2941 extern int snprintf(char *, size_t, const char *, ...); 2942 extern int ungetc(int, FILE *); 2943 extern int vsnprintf(char *, size_t, const char *, va_list); 2944 extern int vsprintf(char *, const char *, va_list); 2945 extern void flockfile(FILE *); 2946 extern int asprintf(char **, const char *, ...); 2947 extern int fgetpos64(FILE *, fpos64_t *); 2948 extern FILE *fopen64(const char *, const char *); 2949 extern int fsetpos64(FILE *, const fpos64_t *); 2950 extern int ftrylockfile(FILE *); 2951 extern void funlockfile(FILE *); 2952 extern int getc_unlocked(FILE *); 2953 extern void setbuffer(FILE *, char *, size_t); 2954 extern int vasprintf(char **, const char *, va_list); 2955 extern int vdprintf(int, const char *, va_list); 2956 extern int vfscanf(FILE *, const char *, va_list); 2957 extern int vscanf(const char *, va_list); 2958 extern int vsscanf(const char *, const char *, va_list); 2959 extern size_t __fpending(FILE *); 2960 _________________________________________________________ 2961 2962 11.3.46. stdlib.h 2963 2964 extern double __strtod_internal(const char *, char **, int); 2965 extern float __strtof_internal(const char *, char **, int); 2966 extern long int __strtol_internal(const char *, char **, int, int); 2967 extern long double __strtold_internal(const char *, char **, int); 2968 extern long long int __strtoll_internal(const char *, char **, int, int); 2969 extern unsigned long int __strtoul_internal(const char *, char **, int, 2970 int); 2971 extern unsigned long long int __strtoull_internal(const char *, char **, 2972 int, int); 2973 extern long int a64l(const char *); 2974 extern void abort(void); 2975 extern int abs(int); 2976 extern double atof(const char *); 2977 extern int atoi(char *); 2978 extern long int atol(char *); 2979 extern long long int atoll(const char *); 2980 extern void *bsearch(const void *, const void *, size_t, size_t, 2981 __compar_fn_t); 2982 extern div_t div(int, int); 2983 extern double drand48(void); 2984 extern char *ecvt(double, int, int *, int *); 2985 extern double erand48(unsigned short); 2986 extern void exit(int); 2987 extern char *fcvt(double, int, int *, int *); 2988 extern char *gcvt(double, int, char *); 2989 extern char *getenv(const char *); 2990 extern int getsubopt(char **, char *const *, char **); 2991 extern int grantpt(int); 2992 extern long int jrand48(unsigned short); 2993 extern char *l64a(long int); 2994 extern long int labs(long int); 2995 extern void lcong48(unsigned short); 2996 extern ldiv_t ldiv(long int, long int); 2997 extern long long int llabs(long long int); 2998 extern lldiv_t lldiv(long long int, long long int); 2999 extern long int lrand48(void); 3000 extern int mblen(const char *, size_t); 3001 extern size_t mbstowcs(wchar_t *, const char *, size_t); 3002 extern int mbtowc(wchar_t *, const char *, size_t); 3003 extern char *mktemp(char *); 3004 extern long int mrand48(void); 3005 extern long int nrand48(unsigned short); 3006 extern char *ptsname(int); 3007 extern int putenv(char *); 3008 extern void qsort(void *, size_t, size_t, __compar_fn_t); 3009 extern int rand(void); 3010 extern int rand_r(unsigned int *); 3011 extern unsigned short *seed48(unsigned short); 3012 extern void srand48(long int); 3013 extern int unlockpt(int); 3014 extern size_t wcstombs(char *, const wchar_t *, size_t); 3015 extern int wctomb(char *, wchar_t); 3016 extern int system(const char *); 3017 extern void *calloc(size_t, size_t); 3018 extern void free(void *); 3019 extern char *initstate(unsigned int, char *, size_t); 3020 extern void *malloc(size_t); 3021 extern long int random(void); 3022 extern void *realloc(void *, size_t); 3023 extern char *setstate(char *); 3024 extern void srand(unsigned int); 3025 extern void srandom(unsigned int); 3026 extern double strtod(char *, char **); 3027 extern float strtof(const char *, char **); 3028 extern long int strtol(char *, char **, int); 3029 extern long double strtold(const char *, char **); 3030 extern long long int strtoll(const char *, char **, int); 3031 extern long long int strtoq(const char *, char **, int); 3032 extern unsigned long int strtoul(const char *, char **, int); 3033 extern unsigned long long int strtoull(const char *, char **, int); 3034 extern unsigned long long int strtouq(const char *, char **, int); 3035 extern void _Exit(int); 3036 extern size_t __ctype_get_mb_cur_max(void); 3037 extern char **environ(void); 3038 extern char *realpath(const char *, char *); 3039 extern int setenv(const char *, const char *, int); 3040 extern int unsetenv(const char *); 3041 extern int getloadavg(double, int); 3042 extern int mkstemp64(char *); 3043 extern int posix_memalign(void **, size_t, size_t); 3044 extern int posix_openpt(int); 3045 _________________________________________________________ 3046 3047 11.3.47. string.h 3048 3049 extern void *__mempcpy(void *, const void *, size_t); 3050 extern char *__stpcpy(char *, const char *); 3051 extern char *__strtok_r(char *, const char *, char **); 3052 extern void bcopy(void *, void *, size_t); 3053 extern void *memchr(void *, int, size_t); 3054 extern int memcmp(void *, void *, size_t); 3055 extern void *memcpy(void *, void *, size_t); 3056 extern void *memmem(const void *, size_t, const void *, size_t); 3057 extern void *memmove(void *, const void *, size_t); 3058 extern void *memset(void *, int, size_t); 3059 extern char *strcat(char *, const char *); 3060 extern char *strchr(char *, int); 3061 extern int strcmp(char *, char *); 3062 extern int strcoll(const char *, const char *); 3063 extern char *strcpy(char *, char *); 3064 extern size_t strcspn(const char *, const char *); 3065 extern char *strerror(int); 3066 extern size_t strlen(char *); 3067 extern char *strncat(char *, char *, size_t); 3068 extern int strncmp(char *, char *, size_t); 3069 extern char *strncpy(char *, char *, size_t); 3070 extern char *strpbrk(const char *, const char *); 3071 extern char *strrchr(char *, int); 3072 extern char *strsignal(int); 3073 extern size_t strspn(const char *, const char *); 3074 extern char *strstr(char *, char *); 3075 extern char *strtok(char *, const char *); 3076 extern size_t strxfrm(char *, const char *, size_t); 3077 extern int bcmp(void *, void *, size_t); 3078 extern void bzero(void *, size_t); 3079 extern int ffs(int); 3080 extern char *index(char *, int); 3081 extern void *memccpy(void *, const void *, int, size_t); 3082 extern char *rindex(char *, int); 3083 extern int strcasecmp(char *, char *); 3084 extern char *strdup(char *); 3085 extern int strncasecmp(char *, char *, size_t); 3086 extern char *strndup(const char *, size_t); 3087 extern size_t strnlen(const char *, size_t); 3088 extern char *strsep(char **, const char *); 3089 extern char *strerror_r(int, char *, size_t); 3090 extern char *strtok_r(char *, const char *, char **); 3091 extern char *strcasestr(const char *, const char *); 3092 extern char *stpcpy(char *, const char *); 3093 extern char *stpncpy(char *, const char *, size_t); 3094 extern void *memrchr(const void *, int, size_t); 3095 _________________________________________________________ 3096 3097 11.3.48. sys/file.h 3098 3099 extern int flock(int, int); 3100 _________________________________________________________ 3101 3102 11.3.49. sys/ioctl.h 3103 3104 #define TIOCGWINSZ 0x5413 3105 #define FIONREAD 0x541B 3106 #define TIOCNOTTY 21538 3107 3108 extern int ioctl(int, unsigned long int, ...); 3109 _________________________________________________________ 3110 3111 11.3.50. sys/ipc.h 3112 3113 struct ipc_perm { 3114 key_t __key; 3115 uid_t uid; 3116 gid_t gid; 3117 uid_t cuid; 3118 uid_t cgid; 3119 unsigned short mode; 3120 unsigned short __pad1; 3121 unsigned short __seq; 3122 unsigned short __pad2; 3123 unsigned long int __unused1; 3124 unsigned long int __unused2; 3125 }; 3126 3127 extern key_t ftok(char *, int); 3128 _________________________________________________________ 3129 3130 11.3.51. sys/mman.h 3131 3132 #define MCL_CURRENT 1 3133 #define MCL_FUTURE 2 3134 3135 extern int msync(void *, size_t, int); 3136 extern int mlock(const void *, size_t); 3137 extern int mlockall(int); 3138 extern void *mmap(void *, size_t, int, int, int, off_t); 3139 extern int mprotect(void *, size_t, int); 3140 extern int munlock(const void *, size_t); 3141 extern int munlockall(void); 3142 extern int munmap(void *, size_t); 3143 extern void *mmap64(void *, size_t, int, int, int, off64_t); 3144 extern int shm_open(const char *, int, mode_t); 3145 extern int shm_unlink(const char *); 3146 _________________________________________________________ 3147 3148 11.3.52. sys/msg.h 3149 3150 typedef unsigned long int msgqnum_t; 3151 typedef unsigned long int msglen_t; 3152 3153 struct msqid_ds { 3154 struct ipc_perm msg_perm; 3155 time_t msg_stime; 3156 time_t msg_rtime; 3157 time_t msg_ctime; 3158 unsigned long int __msg_cbytes; 3159 msgqnum_t msg_qnum; 3160 msglen_t msg_qbytes; 3161 pid_t msg_lspid; 3162 pid_t msg_lrpid; 3163 unsigned long int __unused4; 3164 unsigned long int __unused5; 3165 }; 3166 extern int msgctl(int, int, struct msqid_ds *); 3167 extern int msgget(key_t, int); 3168 extern int msgrcv(int, void *, size_t, long int, int); 3169 extern int msgsnd(int, const void *, size_t, int); 3170 _________________________________________________________ 3171 3172 11.3.53. sys/param.h 3173 3174 /* 3175 * This header is architecture neutral 3176 * Please refer to the generic specification for details 3177 */ 3178 _________________________________________________________ 3179 3180 11.3.54. sys/poll.h 3181 3182 /* 3183 * This header is architecture neutral 3184 * Please refer to the generic specification for details 3185 */ 3186 _________________________________________________________ 3187 3188 11.3.55. sys/resource.h 3189 3190 extern int getpriority(__priority_which_t, id_t); 3191 extern int getrlimit64(id_t, struct rlimit64 *); 3192 extern int setpriority(__priority_which_t, id_t, int); 3193 extern int setrlimit(__rlimit_resource_t, const struct rlimit *); 3194 extern int setrlimit64(__rlimit_resource_t, const struct rlimit64 *); 3195 extern int getrlimit(__rlimit_resource_t, struct rlimit *); 3196 extern int getrusage(int, struct rusage *); 3197 _________________________________________________________ 3198 3199 11.3.56. sys/sem.h 3200 3201 struct semid_ds { 3202 struct ipc_perm sem_perm; 3203 time_t sem_otime; 3204 unsigned long int __unused1; 3205 time_t sem_ctime; 3206 unsigned long int __unused2; 3207 unsigned long int sem_nsems; 3208 unsigned long int __unused3; 3209 unsigned long int __unused4; 3210 }; 3211 extern int semctl(int, int, int, ...); 3212 extern int semget(key_t, int, int); 3213 extern int semop(int, struct sembuf *, size_t); 3214 _________________________________________________________ 3215 3216 11.3.57. sys/shm.h 3217 3218 #define SHMLBA (__getpagesize()) 3219 3220 typedef unsigned long int shmatt_t; 3221 3222 struct shmid_ds { 3223 struct ipc_perm shm_perm; 3224 size_t shm_segsz; 3225 time_t shm_atime; 3226 time_t shm_dtime; 3227 time_t shm_ctime; 3228 pid_t shm_cpid; 3229 pid_t shm_lpid; 3230 shmatt_t shm_nattch; 3231 unsigned long int __unused4; 3232 unsigned long int __unused5; 3233 }; 3234 extern int __getpagesize(void); 3235 extern void *shmat(int, const void *, int); 3236 extern int shmctl(int, int, struct shmid_ds *); 3237 extern int shmdt(const void *); 3238 extern int shmget(key_t, size_t, int); 3239 _________________________________________________________ 3240 3241 11.3.58. sys/socket.h 3242 3243 typedef uint64_t __ss_aligntype; 3244 3245 #define SO_RCVLOWAT 18 3246 #define SO_SNDLOWAT 19 3247 #define SO_RCVTIMEO 20 3248 #define SO_SNDTIMEO 21 3249 3250 extern int bind(int, const struct sockaddr *, socklen_t); 3251 extern int getnameinfo(const struct sockaddr *, socklen_t, char *, 3252 socklen_t, char *, socklen_t, unsigned int); 3253 extern int getsockname(int, struct sockaddr *, socklen_t *); 3254 extern int listen(int, int); 3255 extern int setsockopt(int, int, int, const void *, socklen_t); 3256 extern int accept(int, struct sockaddr *, socklen_t *); 3257 extern int connect(int, const struct sockaddr *, socklen_t); 3258 extern ssize_t recv(int, void *, size_t, int); 3259 extern ssize_t recvfrom(int, void *, size_t, int, struct sockaddr *, 3260 socklen_t *); 3261 extern ssize_t recvmsg(int, struct msghdr *, int); 3262 extern ssize_t send(int, const void *, size_t, int); 3263 extern ssize_t sendmsg(int, const struct msghdr *, int); 3264 extern ssize_t sendto(int, const void *, size_t, int, 3265 const struct sockaddr *, socklen_t); 3266 extern int getpeername(int, struct sockaddr *, socklen_t *); 3267 extern int getsockopt(int, int, int, void *, socklen_t *); 3268 extern int shutdown(int, int); 3269 extern int socket(int, int, int); 3270 extern int socketpair(int, int, int, int); 3271 extern int sockatmark(int); 3272 _________________________________________________________ 3273 3274 11.3.59. sys/stat.h 3275 3276 #define _STAT_VER 1 3277 3278 struct stat { 3279 dev_t st_dev; 3280 ino_t st_ino; 3281 nlink_t st_nlink; 3282 mode_t st_mode; 3283 uid_t st_uid; 3284 gid_t st_gid; 3285 int pad0; 3286 dev_t st_rdev; 3287 off_t st_size; 3288 blksize_t st_blksize; 3289 blkcnt_t st_blocks; 3290 struct timespec st_atim; 3291 struct timespec st_mtim; 3292 struct timespec st_ctim; 3293 unsigned long int __unused[3]; 3294 }; 3295 struct stat64 { 3296 dev_t st_dev; 3297 ino64_t st_ino; 3298 nlink_t st_nlink; 3299 mode_t st_mode; 3300 uid_t st_uid; 3301 gid_t st_gid; 3302 int pad0; 3303 dev_t st_rdev; 3304 off_t st_size; 3305 blksize_t st_blksize; 3306 blkcnt64_t st_blocks; 3307 struct timespec st_atim; 3308 struct timespec st_mtim; 3309 struct timespec st_ctim; 3310 unsigned long int __unused[3]; 3311 }; 3312 3313 extern int __fxstat(int, int, struct stat *); 3314 extern int __fxstat64(int, int, struct stat64 *); 3315 extern int __lxstat(int, char *, struct stat *); 3316 extern int __lxstat64(int, const char *, struct stat64 *); 3317 extern int __xmknod(int, const char *, mode_t, dev_t *); 3318 extern int __xstat(int, const char *, struct stat *); 3319 extern int __xstat64(int, const char *, struct stat64 *); 3320 extern int mkfifo(const char *, mode_t); 3321 extern int chmod(const char *, mode_t); 3322 extern int fchmod(int, mode_t); 3323 extern mode_t umask(mode_t); 3324 _________________________________________________________ 3325 3326 11.3.60. sys/statvfs.h 3327 3328 struct statvfs64 { 3329 unsigned long int f_bsize; 3330 unsigned long int f_frsize; 3331 fsblkcnt64_t f_blocks; 3332 fsblkcnt64_t f_bfree; 3333 fsblkcnt64_t f_bavail; 3334 fsfilcnt64_t f_files; 3335 fsfilcnt64_t f_ffree; 3336 fsfilcnt64_t f_favail; 3337 unsigned long int f_fsid; 3338 unsigned long int f_flag; 3339 unsigned long int f_namemax; 3340 int __f_spare[6]; 3341 }; 3342 struct statvfs { 3343 unsigned long int f_bsize; 3344 unsigned long int f_frsize; 3345 fsblkcnt_t f_blocks; 3346 fsblkcnt_t f_bfree; 3347 fsblkcnt_t f_bavail; 3348 fsfilcnt_t f_files; 3349 fsfilcnt_t f_ffree; 3350 fsfilcnt_t f_favail; 3351 unsigned long int f_fsid; 3352 unsigned long int f_flag; 3353 unsigned long int f_namemax; 3354 int __f_spare[6]; 3355 }; 3356 extern int fstatvfs(int, struct statvfs *); 3357 extern int fstatvfs64(int, struct statvfs64 *); 3358 extern int statvfs(const char *, struct statvfs *); 3359 extern int statvfs64(const char *, struct statvfs64 *); 3360 _________________________________________________________ 3361 3362 11.3.61. sys/time.h 3363 3364 extern int getitimer(__itimer_which_t, struct itimerval *); 3365 extern int setitimer(__itimer_which_t, const struct itimerval *, 3366 struct itimerval *); 3367 extern int adjtime(const struct timeval *, struct timeval *); 3368 extern int gettimeofday(struct timeval *, struct timezone *); 3369 extern int utimes(const char *, const struct timeval *); 3370 _________________________________________________________ 3371 3372 11.3.62. sys/timeb.h 3373 3374 extern int ftime(struct timeb *); 3375 _________________________________________________________ 3376 3377 11.3.63. sys/times.h 3378 3379 extern clock_t times(struct tms *); 3380 _________________________________________________________ 3381 3382 11.3.64. sys/types.h 3383 3384 typedef long int int64_t; 3385 3386 typedef int64_t ssize_t; 3387 3388 #define __FDSET_LONGS 16 3389 _________________________________________________________ 3390 3391 11.3.65. sys/uio.h 3392 3393 extern ssize_t readv(int, const struct iovec *, int); 3394 extern ssize_t writev(int, const struct iovec *, int); 3395 _________________________________________________________ 3396 3397 11.3.66. sys/un.h 3398 3399 /* 3400 * This header is architecture neutral 3401 * Please refer to the generic specification for details 3402 */ 3403 _________________________________________________________ 3404 3405 11.3.67. sys/utsname.h 3406 3407 extern int uname(struct utsname *); 3408 _________________________________________________________ 3409 3410 11.3.68. sys/wait.h 3411 3412 extern pid_t wait(int *); 3413 extern pid_t waitpid(pid_t, int *, int); 3414 extern pid_t wait4(pid_t, int *, int, struct rusage *); 3415 _________________________________________________________ 3416 3417 11.3.69. syslog.h 3418 3419 extern void closelog(void); 3420 extern void openlog(const char *, int, int); 3421 extern int setlogmask(int); 3422 extern void syslog(int, const char *, ...); 3423 extern void vsyslog(int, const char *, va_list); 3424 _________________________________________________________ 3425 3426 11.3.70. termios.h 3427 3428 #define OLCUC 0000002 3429 #define ONLCR 0000004 3430 #define XCASE 0000004 3431 #define NLDLY 0000400 3432 #define CR1 0001000 3433 #define IUCLC 0001000 3434 #define CR2 0002000 3435 #define CR3 0003000 3436 #define CRDLY 0003000 3437 #define TAB1 0004000 3438 #define TAB2 0010000 3439 #define TAB3 0014000 3440 #define TABDLY 0014000 3441 #define BS1 0020000 3442 #define BSDLY 0020000 3443 #define VT1 0040000 3444 #define VTDLY 0040000 3445 #define FF1 0100000 3446 #define FFDLY 0100000 3447 3448 #define VSUSP 10 3449 #define VEOL 11 3450 #define VREPRINT 12 3451 #define VDISCARD 13 3452 #define VWERASE 14 3453 #define VEOL2 16 3454 #define VMIN 6 3455 #define VSWTC 7 3456 #define VSTART 8 3457 #define VSTOP 9 3458 3459 #define IXON 0002000 3460 #define IXOFF 0010000 3461 3462 #define CS6 0000020 3463 #define CS7 0000040 3464 #define CS8 0000060 3465 #define CSIZE 0000060 3466 #define CSTOPB 0000100 3467 #define CREAD 0000200 3468 #define PARENB 0000400 3469 #define PARODD 0001000 3470 #define HUPCL 0002000 3471 #define CLOCAL 0004000 3472 #define VTIME 5 3473 3474 #define ISIG 0000001 3475 #define ICANON 0000002 3476 #define ECHOE 0000020 3477 #define ECHOK 0000040 3478 #define ECHONL 0000100 3479 #define NOFLSH 0000200 3480 #define TOSTOP 0000400 3481 #define ECHOCTL 0001000 3482 #define ECHOPRT 0002000 3483 #define ECHOKE 0004000 3484 #define FLUSHO 0010000 3485 #define PENDIN 0040000 3486 #define IEXTEN 0100000 3487 3488 extern speed_t cfgetispeed(const struct termios *); 3489 extern speed_t cfgetospeed(const struct termios *); 3490 extern void cfmakeraw(struct termios *); 3491 extern int cfsetispeed(struct termios *, speed_t); 3492 extern int cfsetospeed(struct termios *, speed_t); 3493 extern int cfsetspeed(struct termios *, speed_t); 3494 extern int tcflow(int, int); 3495 extern int tcflush(int, int); 3496 extern pid_t tcgetsid(int); 3497 extern int tcsendbreak(int, int); 3498 extern int tcsetattr(int, int, const struct termios *); 3499 extern int tcdrain(int); 3500 extern int tcgetattr(int, struct termios *); 3501 _________________________________________________________ 3502 3503 11.3.71. time.h 3504 3505 extern int __daylight(void); 3506 extern long int __timezone(void); 3507 extern char *__tzname(void); 3508 extern char *asctime(const struct tm *); 3509 extern clock_t clock(void); 3510 extern char *ctime(const time_t *); 3511 extern char *ctime_r(const time_t *, char *); 3512 extern double difftime(time_t, time_t); 3513 extern struct tm *getdate(const char *); 3514 extern int getdate_err(void); 3515 extern struct tm *gmtime(const time_t *); 3516 extern struct tm *localtime(const time_t *); 3517 extern time_t mktime(struct tm *); 3518 extern int stime(const time_t *); 3519 extern size_t strftime(char *, size_t, const char *, const struct tm *); 3520 extern char *strptime(const char *, const char *, struct tm *); 3521 extern time_t time(time_t *); 3522 extern int nanosleep(const struct timespec *, struct timespec *); 3523 extern int daylight(void); 3524 extern long int timezone(void); 3525 extern char *tzname(void); 3526 extern void tzset(void); 3527 extern char *asctime_r(const struct tm *, char *); 3528 extern struct tm *gmtime_r(const time_t *, struct tm *); 3529 extern struct tm *localtime_r(const time_t *, struct tm *); 3530 extern int clock_getcpuclockid(pid_t, clockid_t *); 3531 extern int clock_getres(clockid_t, struct timespec *); 3532 extern int clock_gettime(clockid_t, struct timespec *); 3533 extern int clock_nanosleep(clockid_t, int, const struct timespec *, 3534 struct timespec *); 3535 extern int clock_settime(clockid_t, const struct timespec *); 3536 extern int timer_create(clockid_t, struct sigevent *, timer_t *); 3537 extern int timer_delete(timer_t); 3538 extern int timer_getoverrun(timer_t); 3539 extern int timer_gettime(timer_t, struct itimerspec *); 3540 extern int timer_settime(timer_t, int, const struct itimerspec *, 3541 struct itimerspec *); 3542 _________________________________________________________ 3543 3544 11.3.72. ucontext.h 3545 3546 struct _libc_fpxreg { 3547 unsigned short significand[4]; 3548 unsigned short exponent; 3549 unsigned short padding[3]; 3550 }; 3551 3552 typedef long int greg_t; 3553 3554 #define NGREG 23 3555 3556 typedef greg_t gregset_t[23]; 3557 3558 struct _libc_xmmreg { 3559 uint32_t element[4]; 3560 }; 3561 struct _libc_fpstate { 3562 uint16_t cwd; 3563 uint16_t swd; 3564 uint16_t ftw; 3565 uint16_t fop; 3566 uint64_t rip; 3567 uint64_t rdp; 3568 uint32_t mxcsr; 3569 uint32_t mxcr_mask; 3570 struct _libc_fpxreg _st[8]; 3571 struct _libc_xmmreg _xmm[16]; 3572 uint32_t padding[24]; 3573 }; 3574 typedef struct _libc_fpstate *fpregset_t; 3575 3576 typedef struct { 3577 gregset_t gregs; 3578 fpregset_t fpregs; 3579 unsigned long int __reserved1[8]; 3580 } mcontext_t; 3581 3582 typedef struct ucontext { 3583 unsigned long int uc_flags; 3584 struct ucontext *uc_link; 3585 stack_t uc_stack; 3586 mcontext_t uc_mcontext; 3587 sigset_t uc_sigmask; 3588 struct _libc_fpstate __fpregs_mem; 3589 } ucontext_t; 3590 extern int getcontext(ucontext_t *); 3591 extern int makecontext(ucontext_t *, void (*func) (void) 3592 , int, ...); 3593 extern int setcontext(const struct ucontext *); 3594 extern int swapcontext(ucontext_t *, const struct ucontext *); 3595 _________________________________________________________ 3596 3597 11.3.73. ulimit.h 3598 3599 extern long int ulimit(int, ...); 3600 _________________________________________________________ 3601 3602 11.3.74. unistd.h 3603 3604 typedef long int intptr_t; 3605 3606 extern char **__environ(void); 3607 extern pid_t __getpgid(pid_t); 3608 extern void _exit(int); 3609 extern int acct(const char *); 3610 extern unsigned int alarm(unsigned int); 3611 extern int chown(const char *, uid_t, gid_t); 3612 extern int chroot(const char *); 3613 extern size_t confstr(int, char *, size_t); 3614 extern int creat(const char *, mode_t); 3615 extern int creat64(const char *, mode_t); 3616 extern char *ctermid(char *); 3617 extern char *cuserid(char *); 3618 extern int daemon(int, int); 3619 extern int execl(const char *, const char *, ...); 3620 extern int execle(const char *, const char *, ...); 3621 extern int execlp(const char *, const char *, ...); 3622 extern int execv(const char *, char *const); 3623 extern int execvp(const char *, char *const); 3624 extern int fdatasync(int); 3625 extern int ftruncate64(int, off64_t); 3626 extern long int gethostid(void); 3627 extern char *getlogin(void); 3628 extern int getlogin_r(char *, size_t); 3629 extern int getopt(int, char *const, const char *); 3630 extern pid_t getpgrp(void); 3631 extern pid_t getsid(pid_t); 3632 extern char *getwd(char *); 3633 extern int lockf(int, int, off_t); 3634 extern int mkstemp(char *); 3635 extern int nice(int); 3636 extern char *optarg(void); 3637 extern int opterr(void); 3638 extern int optind(void); 3639 extern int optopt(void); 3640 extern int rename(const char *, const char *); 3641 extern int setegid(gid_t); 3642 extern int seteuid(uid_t); 3643 extern int sethostname(const char *, size_t); 3644 extern int setpgrp(void); 3645 extern void swab(const void *, void *, ssize_t); 3646 extern void sync(void); 3647 extern pid_t tcgetpgrp(int); 3648 extern int tcsetpgrp(int, pid_t); 3649 extern int truncate(const char *, off_t); 3650 extern int truncate64(const char *, off64_t); 3651 extern char *ttyname(int); 3652 extern unsigned int ualarm(useconds_t, useconds_t); 3653 extern int usleep(useconds_t); 3654 extern int close(int); 3655 extern int fsync(int); 3656 extern off_t lseek(int, off_t, int); 3657 extern int open(const char *, int, ...); 3658 extern int pause(void); 3659 extern ssize_t read(int, void *, size_t); 3660 extern ssize_t write(int, const void *, size_t); 3661 extern char *crypt(char *, char *); 3662 extern void encrypt(char *, int); 3663 extern void setkey(const char *); 3664 extern int access(const char *, int); 3665 extern int brk(void *); 3666 extern int chdir(const char *); 3667 extern int dup(int); 3668 extern int dup2(int, int); 3669 extern int execve(const char *, char *const, char *const); 3670 extern int fchdir(int); 3671 extern int fchown(int, uid_t, gid_t); 3672 extern pid_t fork(void); 3673 extern gid_t getegid(void); 3674 extern uid_t geteuid(void); 3675 extern gid_t getgid(void); 3676 extern int getgroups(int, gid_t); 3677 extern int gethostname(char *, size_t); 3678 extern pid_t getpgid(pid_t); 3679 extern pid_t getpid(void); 3680 extern uid_t getuid(void); 3681 extern int lchown(const char *, uid_t, gid_t); 3682 extern int link(const char *, const char *); 3683 extern int mkdir(const char *, mode_t); 3684 extern long int pathconf(const char *, int); 3685 extern int pipe(int); 3686 extern int readlink(const char *, char *, size_t); 3687 extern int rmdir(const char *); 3688 extern void *sbrk(ptrdiff_t); 3689 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 3690 extern int setgid(gid_t); 3691 extern int setpgid(pid_t, pid_t); 3692 extern int setregid(gid_t, gid_t); 3693 extern int setreuid(uid_t, uid_t); 3694 extern pid_t setsid(void); 3695 extern int setuid(uid_t); 3696 extern unsigned int sleep(unsigned int); 3697 extern int symlink(const char *, const char *); 3698 extern long int sysconf(int); 3699 extern int unlink(const char *); 3700 extern pid_t vfork(void); 3701 extern ssize_t pread(int, void *, size_t, off_t); 3702 extern ssize_t pwrite(int, const void *, size_t, off_t); 3703 extern char **_environ(void); 3704 extern long int fpathconf(int, int); 3705 extern int ftruncate(int, off_t); 3706 extern char *getcwd(char *, size_t); 3707 extern int getpagesize(void); 3708 extern pid_t getppid(void); 3709 extern int isatty(int); 3710 extern loff_t lseek64(int, loff_t, int); 3711 extern int open64(const char *, int, ...); 3712 extern ssize_t pread64(int, void *, size_t, off64_t); 3713 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 3714 extern int ttyname_r(int, char *, size_t); 3715 _________________________________________________________ 3716 3717 11.3.75. utime.h 3718 3719 extern int utime(const char *, const struct utimbuf *); 3720 _________________________________________________________ 3721 3722 11.3.76. utmp.h 3723 3724 struct lastlog { 3725 int32_t ll_time; 3726 char ll_line[UT_LINESIZE]; 3727 char ll_host[UT_HOSTSIZE]; 3728 }; 3729 3730 struct utmp { 3731 short ut_type; 3732 pid_t ut_pid; 3733 char ut_line[UT_LINESIZE]; 3734 char ut_id[4]; 3735 char ut_user[UT_NAMESIZE]; 3736 char ut_host[UT_HOSTSIZE]; 3737 struct exit_status ut_exit; 3738 int ut_session; 3739 struct { 3740 int32_t tv_sec; 3741 int32_t tv_usec; 3742 } ut_tv; 3743 int32_t ut_addr_v6[4]; 3744 char __unused[20]; 3745 }; 3746 3747 extern void endutent(void); 3748 extern struct utmp *getutent(void); 3749 extern void setutent(void); 3750 extern int getutent_r(struct utmp *, struct utmp **); 3751 extern int utmpname(const char *); 3752 extern int login_tty(int); 3753 extern void login(const struct utmp *); 3754 extern int logout(const char *); 3755 extern void logwtmp(const char *, const char *, const char *); 3756 _________________________________________________________ 3757 3758 11.3.77. utmpx.h 3759 3760 struct utmpx { 3761 short ut_type; 3762 pid_t ut_pid; 3763 char ut_line[UT_LINESIZE]; 3764 char ut_id[4]; 3765 char ut_user[UT_NAMESIZE]; 3766 char ut_host[UT_HOSTSIZE]; 3767 struct exit_status ut_exit; 3768 int32_t ut_session; 3769 struct { 3770 int32_t tv_sec; 3771 int32_t tv_usec; 3772 } ut_tv; 3773 int32_t ut_addr_v6[4]; 3774 char __unused[20]; 3775 }; 3776 3777 extern void endutxent(void); 3778 extern struct utmpx *getutxent(void); 3779 extern struct utmpx *getutxid(const struct utmpx *); 3780 extern struct utmpx *getutxline(const struct utmpx *); 3781 extern struct utmpx *pututxline(const struct utmpx *); 3782 extern void setutxent(void); 3783 _________________________________________________________ 3784 3785 11.3.78. wchar.h 3786 3787 extern double __wcstod_internal(const wchar_t *, wchar_t * *, int); 3788 extern float __wcstof_internal(const wchar_t *, wchar_t * *, int); 3789 extern long int __wcstol_internal(const wchar_t *, wchar_t * *, int, int); 3790 extern long double __wcstold_internal(const wchar_t *, wchar_t * *, int); 3791 extern unsigned long int __wcstoul_internal(const wchar_t *, wchar_t **, 3792 int, int); 3793 extern wchar_t *wcscat(wchar_t *, const wchar_t *); 3794 extern wchar_t *wcschr(const wchar_t *, wchar_t); 3795 extern int wcscmp(const wchar_t *, const wchar_t *); 3796 extern int wcscoll(const wchar_t *, const wchar_t *); 3797 extern wchar_t *wcscpy(wchar_t *, const wchar_t *); 3798 extern size_t wcscspn(const wchar_t *, const wchar_t *); 3799 extern wchar_t *wcsdup(const wchar_t *); 3800 extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); 3801 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); 3802 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); 3803 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); 3804 extern wchar_t *wcsrchr(const wchar_t *, wchar_t); 3805 extern size_t wcsspn(const wchar_t *, const wchar_t *); 3806 extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); 3807 extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t * *); 3808 extern int wcswidth(const wchar_t *, size_t); 3809 extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); 3810 extern int wctob(wint_t); 3811 extern int wcwidth(wchar_t); 3812 extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); 3813 extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); 3814 extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); 3815 extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); 3816 extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); 3817 extern size_t mbrlen(const char *, size_t, mbstate_t *); 3818 extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); 3819 extern int mbsinit(const mbstate_t *); 3820 extern size_t mbsnrtowcs(wchar_t *, const char **, size_t, size_t, 3821 mbstate_t *); 3822 extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); 3823 extern wchar_t *wcpcpy(wchar_t *, const wchar_t *); 3824 extern wchar_t *wcpncpy(wchar_t *, const wchar_t *, size_t); 3825 extern size_t wcrtomb(char *, wchar_t, mbstate_t *); 3826 extern size_t wcslen(const wchar_t *); 3827 extern size_t wcsnrtombs(char *, const wchar_t * *, size_t, size_t, 3828 mbstate_t *); 3829 extern size_t wcsrtombs(char *, const wchar_t * *, size_t, mbstate_t *); 3830 extern double wcstod(const wchar_t *, wchar_t * *); 3831 extern float wcstof(const wchar_t *, wchar_t * *); 3832 extern long int wcstol(const wchar_t *, wchar_t * *, int); 3833 extern long double wcstold(const wchar_t *, wchar_t * *); 3834 extern long long int wcstoq(const wchar_t *, wchar_t * *, int); 3835 extern unsigned long int wcstoul(const wchar_t *, wchar_t * *, int); 3836 extern unsigned long long int wcstouq(const wchar_t *, wchar_t * *, int); 3837 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); 3838 extern int wcscasecmp(const wchar_t *, const wchar_t *); 3839 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 3840 extern size_t wcsnlen(const wchar_t *, size_t); 3841 extern long long int wcstoll(const wchar_t *, wchar_t * *, int); 3842 extern unsigned long long int wcstoull(const wchar_t *, wchar_t * *, int); 3843 extern wint_t btowc(int); 3844 extern wint_t fgetwc(FILE *); 3845 extern wint_t fgetwc_unlocked(FILE *); 3846 extern wchar_t *fgetws(wchar_t *, int, FILE *); 3847 extern wint_t fputwc(wchar_t, FILE *); 3848 extern int fputws(const wchar_t *, FILE *); 3849 extern int fwide(FILE *, int); 3850 extern int fwprintf(FILE *, const wchar_t *, ...); 3851 extern int fwscanf(FILE *, const wchar_t *, ...); 3852 extern wint_t getwc(FILE *); 3853 extern wint_t getwchar(void); 3854 extern wint_t putwc(wchar_t, FILE *); 3855 extern wint_t putwchar(wchar_t); 3856 extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); 3857 extern int swscanf(const wchar_t *, const wchar_t *, ...); 3858 extern wint_t ungetwc(wint_t, FILE *); 3859 extern int vfwprintf(FILE *, const wchar_t *, va_list); 3860 extern int vfwscanf(FILE *, const wchar_t *, va_list); 3861 extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list); 3862 extern int vswscanf(const wchar_t *, const wchar_t *, va_list); 3863 extern int vwprintf(const wchar_t *, va_list); 3864 extern int vwscanf(const wchar_t *, va_list); 3865 extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, 3866 const struct tm *); 3867 extern int wprintf(const wchar_t *, ...); 3868 extern int wscanf(const wchar_t *, ...); 3869 _________________________________________________________ 3870 3871 11.3.79. wctype.h 3872 3873 extern int iswblank(wint_t); 3874 extern wint_t towlower(wint_t); 3875 extern wint_t towupper(wint_t); 3876 extern wctrans_t wctrans(const char *); 3877 extern int iswalnum(wint_t); 3878 extern int iswalpha(wint_t); 3879 extern int iswcntrl(wint_t); 3880 extern int iswctype(wint_t, wctype_t); 3881 extern int iswdigit(wint_t); 3882 extern int iswgraph(wint_t); 3883 extern int iswlower(wint_t); 3884 extern int iswprint(wint_t); 3885 extern int iswpunct(wint_t); 3886 extern int iswspace(wint_t); 3887 extern int iswupper(wint_t); 3888 extern int iswxdigit(wint_t); 3889 extern wctype_t wctype(const char *); 3890 extern wint_t towctrans(wint_t, wctrans_t); 3891 _________________________________________________________ 3892 3893 11.3.80. wordexp.h 3894 3895 extern int wordexp(const char *, wordexp_t *, int); 3896 extern void wordfree(wordexp_t *); 3897 _________________________________________________________ 3898 3899 11.4. Interfaces for libm 3900 3901 Table 11-24 defines the library name and shared object name 3902 for the libm library 3903 3904 Table 11-24. libm Definition 3905 Library: libm 3906 SONAME: libm.so.6 3907 3908 The behavior of the interfaces in this library is specified by 3909 the following specifications: 3910 3911 [ISOC99] ISO C (1999) 3912 [LSB] This Specification 3913 [SUSv2] SUSv2 3914 [SUSv3] ISO POSIX (2003) 3915 _________________________________________________________ 3916 3917 11.4.1. Math 3918 _________________________________________________________ 3919 3920 11.4.1.1. Interfaces for Math 3921 3922 An LSB conforming implementation shall provide the 3923 architecture specific functions for Math specified in Table 3924 11-25, with the full mandatory functionality as described in 3925 the referenced underlying specification. 3926 3927 Table 11-25. libm - Math Function Interfaces 3928 __finite(GLIBC_2.2.5) [ISOC99] __finitef(GLIBC_2.2.5) [ISOC99] 3929 __finitel(GLIBC_2.2.5) [ISOC99] __fpclassify(GLIBC_2.2.5) 3930 [LSB] 3931 __fpclassifyf(GLIBC_2.2.5) [LSB] __fpclassifyl(GLIBC_2.2.5) 3932 [ISOC99] __signbitl(GLIBC_2.2.5) [ISOC99] acos(GLIBC_2.2.5) 3933 [SUSv3] 3934 acosf(GLIBC_2.2.5) [SUSv3] acosh(GLIBC_2.2.5) [SUSv3] 3935 acoshf(GLIBC_2.2.5) [SUSv3] acoshl(GLIBC_2.2.5) [SUSv3] 3936 acosl(GLIBC_2.2.5) [SUSv3] asin(GLIBC_2.2.5) [SUSv3] 3937 asinf(GLIBC_2.2.5) [SUSv3] asinh(GLIBC_2.2.5) [SUSv3] 3938 asinhf(GLIBC_2.2.5) [SUSv3] asinhl(GLIBC_2.2.5) [SUSv3] 3939 asinl(GLIBC_2.2.5) [SUSv3] atan(GLIBC_2.2.5) [SUSv3] 3940 atan2(GLIBC_2.2.5) [SUSv3] atan2f(GLIBC_2.2.5) [SUSv3] 3941 atan2l(GLIBC_2.2.5) [SUSv3] atanf(GLIBC_2.2.5) [SUSv3] 3942 atanh(GLIBC_2.2.5) [SUSv3] atanhf(GLIBC_2.2.5) [SUSv3] 3943 atanhl(GLIBC_2.2.5) [SUSv3] atanl(GLIBC_2.2.5) [SUSv3] 3944 cabs(GLIBC_2.2.5) [SUSv3] cabsf(GLIBC_2.2.5) [SUSv3] 3945 cabsl(GLIBC_2.2.5) [SUSv3] cacos(GLIBC_2.2.5) [SUSv3] 3946 cacosf(GLIBC_2.2.5) [SUSv3] cacosh(GLIBC_2.2.5) [SUSv3] 3947 cacoshf(GLIBC_2.2.5) [SUSv3] cacoshl(GLIBC_2.2.5) [SUSv3] 3948 cacosl(GLIBC_2.2.5) [SUSv3] carg(GLIBC_2.2.5) [SUSv3] 3949 cargf(GLIBC_2.2.5) [SUSv3] cargl(GLIBC_2.2.5) [SUSv3] 3950 casin(GLIBC_2.2.5) [SUSv3] casinf(GLIBC_2.2.5) [SUSv3] 3951 casinh(GLIBC_2.2.5) [SUSv3] casinhf(GLIBC_2.2.5) [SUSv3] 3952 casinhl(GLIBC_2.2.5) [SUSv3] casinl(GLIBC_2.2.5) [SUSv3] 3953 catan(GLIBC_2.2.5) [SUSv3] catanf(GLIBC_2.2.5) [SUSv3] 3954 catanh(GLIBC_2.2.5) [SUSv3] catanhf(GLIBC_2.2.5) [SUSv3] 3955 catanhl(GLIBC_2.2.5) [SUSv3] catanl(GLIBC_2.2.5) [SUSv3] 3956 cbrt(GLIBC_2.2.5) [SUSv3] cbrtf(GLIBC_2.2.5) [SUSv3] 3957 cbrtl(GLIBC_2.2.5) [SUSv3] ccos(GLIBC_2.2.5) [SUSv3] 3958 ccosf(GLIBC_2.2.5) [SUSv3] ccosh(GLIBC_2.2.5) [SUSv3] 3959 ccoshf(GLIBC_2.2.5) [SUSv3] ccoshl(GLIBC_2.2.5) [SUSv3] 3960 ccosl(GLIBC_2.2.5) [SUSv3] ceil(GLIBC_2.2.5) [SUSv3] 3961 ceilf(GLIBC_2.2.5) [SUSv3] ceill(GLIBC_2.2.5) [SUSv3] 3962 cexp(GLIBC_2.2.5) [SUSv3] cexpf(GLIBC_2.2.5) [SUSv3] 3963 cexpl(GLIBC_2.2.5) [SUSv3] cimag(GLIBC_2.2.5) [SUSv3] 3964 cimagf(GLIBC_2.2.5) [SUSv3] cimagl(GLIBC_2.2.5) [SUSv3] 3965 clog(GLIBC_2.2.5) [SUSv3] clog10(GLIBC_2.2.5) [ISOC99] 3966 clog10f(GLIBC_2.2.5) [ISOC99] clog10l(GLIBC_2.2.5) [ISOC99] 3967 clogf(GLIBC_2.2.5) [SUSv3] clogl(GLIBC_2.2.5) [SUSv3] 3968 conj(GLIBC_2.2.5) [SUSv3] conjf(GLIBC_2.2.5) [SUSv3] 3969 conjl(GLIBC_2.2.5) [SUSv3] copysign(GLIBC_2.2.5) [SUSv3] 3970 copysignf(GLIBC_2.2.5) [SUSv3] copysignl(GLIBC_2.2.5) [SUSv3] 3971 cos(GLIBC_2.2.5) [SUSv3] cosf(GLIBC_2.2.5) [SUSv3] 3972 cosh(GLIBC_2.2.5) [SUSv3] coshf(GLIBC_2.2.5) [SUSv3] 3973 coshl(GLIBC_2.2.5) [SUSv3] cosl(GLIBC_2.2.5) [SUSv3] 3974 cpow(GLIBC_2.2.5) [SUSv3] cpowf(GLIBC_2.2.5) [SUSv3] 3975 cpowl(GLIBC_2.2.5) [SUSv3] cproj(GLIBC_2.2.5) [SUSv3] 3976 cprojf(GLIBC_2.2.5) [SUSv3] cprojl(GLIBC_2.2.5) [SUSv3] 3977 creal(GLIBC_2.2.5) [SUSv3] crealf(GLIBC_2.2.5) [SUSv3] 3978 creall(GLIBC_2.2.5) [SUSv3] csin(GLIBC_2.2.5) [SUSv3] 3979 csinf(GLIBC_2.2.5) [SUSv3] csinh(GLIBC_2.2.5) [SUSv3] 3980 csinhf(GLIBC_2.2.5) [SUSv3] csinhl(GLIBC_2.2.5) [SUSv3] 3981 csinl(GLIBC_2.2.5) [SUSv3] csqrt(GLIBC_2.2.5) [SUSv3] 3982 csqrtf(GLIBC_2.2.5) [SUSv3] csqrtl(GLIBC_2.2.5) [SUSv3] 3983 ctan(GLIBC_2.2.5) [SUSv3] ctanf(GLIBC_2.2.5) [SUSv3] 3984 ctanh(GLIBC_2.2.5) [SUSv3] ctanhf(GLIBC_2.2.5) [SUSv3] 3985 ctanhl(GLIBC_2.2.5) [SUSv3] ctanl(GLIBC_2.2.5) [SUSv3] 3986 dremf(GLIBC_2.2.5) [ISOC99] dreml(GLIBC_2.2.5) [ISOC99] 3987 erf(GLIBC_2.2.5) [SUSv3] erfc(GLIBC_2.2.5) [SUSv3] 3988 erfcf(GLIBC_2.2.5) [SUSv3] erfcl(GLIBC_2.2.5) [SUSv3] 3989 erff(GLIBC_2.2.5) [SUSv3] erfl(GLIBC_2.2.5) [SUSv3] 3990 exp(GLIBC_2.2.5) [SUSv3] exp2(GLIBC_2.2.5) [SUSv3] 3991 exp2f(GLIBC_2.2.5) [SUSv3] exp2l(GLIBC_2.2.5) [SUSv3] 3992 expf(GLIBC_2.2.5) [SUSv3] expl(GLIBC_2.2.5) [SUSv3] 3993 expm1(GLIBC_2.2.5) [SUSv3] expm1f(GLIBC_2.2.5) [SUSv3] 3994 expm1l(GLIBC_2.2.5) [SUSv3] fabs(GLIBC_2.2.5) [SUSv3] 3995 fabsf(GLIBC_2.2.5) [SUSv3] fabsl(GLIBC_2.2.5) [SUSv3] 3996 fdim(GLIBC_2.2.5) [SUSv3] fdimf(GLIBC_2.2.5) [SUSv3] 3997 fdiml(GLIBC_2.2.5) [SUSv3] feclearexcept(GLIBC_2.2.5) [SUSv3] 3998 fegetenv(GLIBC_2.2.5) [SUSv3] fegetexceptflag(GLIBC_2.2.5) 3999 [SUSv3] fegetround(GLIBC_2.2.5) [SUSv3] 4000 feholdexcept(GLIBC_2.2.5) [SUSv3] 4001 feraiseexcept(GLIBC_2.2.5) [SUSv3] fesetenv(GLIBC_2.2.5) 4002 [SUSv3] fesetexceptflag(GLIBC_2.2.5) [SUSv3] 4003 fesetround(GLIBC_2.2.5) [SUSv3] 4004 fetestexcept(GLIBC_2.2.5) [SUSv3] feupdateenv(GLIBC_2.2.5) 4005 [SUSv3] finite(GLIBC_2.2.5) [SUSv2] finitef(GLIBC_2.2.5) 4006 [ISOC99] 4007 finitel(GLIBC_2.2.5) [ISOC99] floor(GLIBC_2.2.5) [SUSv3] 4008 floorf(GLIBC_2.2.5) [SUSv3] floorl(GLIBC_2.2.5) [SUSv3] 4009 fma(GLIBC_2.2.5) [SUSv3] fmaf(GLIBC_2.2.5) [SUSv3] 4010 fmal(GLIBC_2.2.5) [SUSv3] fmax(GLIBC_2.2.5) [SUSv3] 4011 fmaxf(GLIBC_2.2.5) [SUSv3] fmaxl(GLIBC_2.2.5) [SUSv3] 4012 fmin(GLIBC_2.2.5) [SUSv3] fminf(GLIBC_2.2.5) [SUSv3] 4013 fminl(GLIBC_2.2.5) [SUSv3] fmod(GLIBC_2.2.5) [SUSv3] 4014 fmodf(GLIBC_2.2.5) [SUSv3] fmodl(GLIBC_2.2.5) [SUSv3] 4015 frexp(GLIBC_2.2.5) [SUSv3] frexpf(GLIBC_2.2.5) [SUSv3] 4016 frexpl(GLIBC_2.2.5) [SUSv3] gamma(GLIBC_2.2.5) [SUSv2] 4017 gammaf(GLIBC_2.2.5) [ISOC99] gammal(GLIBC_2.2.5) [ISOC99] 4018 hypot(GLIBC_2.2.5) [SUSv3] hypotf(GLIBC_2.2.5) [SUSv3] 4019 hypotl(GLIBC_2.2.5) [SUSv3] ilogb(GLIBC_2.2.5) [SUSv3] 4020 ilogbf(GLIBC_2.2.5) [SUSv3] ilogbl(GLIBC_2.2.5) [SUSv3] 4021 j0(GLIBC_2.2.5) [SUSv3] j0f(GLIBC_2.2.5) [ISOC99] 4022 j0l(GLIBC_2.2.5) [ISOC99] j1(GLIBC_2.2.5) [SUSv3] 4023 j1f(GLIBC_2.2.5) [ISOC99] j1l(GLIBC_2.2.5) [ISOC99] 4024 jn(GLIBC_2.2.5) [SUSv3] jnf(GLIBC_2.2.5) [ISOC99] 4025 jnl(GLIBC_2.2.5) [ISOC99] ldexp(GLIBC_2.2.5) [SUSv3] 4026 ldexpf(GLIBC_2.2.5) [SUSv3] ldexpl(GLIBC_2.2.5) [SUSv3] 4027 lgamma(GLIBC_2.2.5) [SUSv3] lgamma_r(GLIBC_2.2.5) [ISOC99] 4028 lgammaf(GLIBC_2.2.5) [SUSv3] lgammaf_r(GLIBC_2.2.5) [ISOC99] 4029 lgammal(GLIBC_2.2.5) [SUSv3] lgammal_r(GLIBC_2.2.5) [ISOC99] 4030 llrint(GLIBC_2.2.5) [SUSv3] llrintf(GLIBC_2.2.5) [SUSv3] 4031 llrintl(GLIBC_2.2.5) [SUSv3] llround(GLIBC_2.2.5) [SUSv3] 4032 llroundf(GLIBC_2.2.5) [SUSv3] llroundl(GLIBC_2.2.5) [SUSv3] 4033 log(GLIBC_2.2.5) [SUSv3] log10(GLIBC_2.2.5) [SUSv3] 4034 log10f(GLIBC_2.2.5) [SUSv3] log10l(GLIBC_2.2.5) [SUSv3] 4035 log1p(GLIBC_2.2.5) [SUSv3] log1pf(GLIBC_2.2.5) [SUSv3] 4036 log1pl(GLIBC_2.2.5) [SUSv3] log2(GLIBC_2.2.5) [SUSv3] 4037 log2f(GLIBC_2.2.5) [SUSv3] log2l(GLIBC_2.2.5) [SUSv3] 4038 logb(GLIBC_2.2.5) [SUSv3] logbf(GLIBC_2.2.5) [SUSv3] 4039 logbl(GLIBC_2.2.5) [SUSv3] logf(GLIBC_2.2.5) [SUSv3] 4040 logl(GLIBC_2.2.5) [SUSv3] lrint(GLIBC_2.2.5) [SUSv3] 4041 lrintf(GLIBC_2.2.5) [SUSv3] lrintl(GLIBC_2.2.5) [SUSv3] 4042 lround(GLIBC_2.2.5) [SUSv3] lroundf(GLIBC_2.2.5) [SUSv3] 4043 lroundl(GLIBC_2.2.5) [SUSv3] matherr(GLIBC_2.2.5) [ISOC99] 4044 modf(GLIBC_2.2.5) [SUSv3] modff(GLIBC_2.2.5) [SUSv3] 4045 modfl(GLIBC_2.2.5) [SUSv3] nan(GLIBC_2.2.5) [SUSv3] 4046 nanf(GLIBC_2.2.5) [SUSv3] nanl(GLIBC_2.2.5) [SUSv3] 4047 nearbyint(GLIBC_2.2.5) [SUSv3] nearbyintf(GLIBC_2.2.5) [SUSv3] 4048 nearbyintl(GLIBC_2.2.5) [SUSv3] nextafter(GLIBC_2.2.5) [SUSv3] 4049 nextafterf(GLIBC_2.2.5) [SUSv3] nextafterl(GLIBC_2.2.5) 4050 [SUSv3] nexttoward(GLIBC_2.2.5) [SUSv3] 4051 nexttowardf(GLIBC_2.2.5) [SUSv3] 4052 nexttowardl(GLIBC_2.2.5) [SUSv3] pow(GLIBC_2.2.5) [SUSv3] 4053 pow10(GLIBC_2.2.5) [ISOC99] pow10f(GLIBC_2.2.5) [ISOC99] 4054 pow10l(GLIBC_2.2.5) [ISOC99] powf(GLIBC_2.2.5) [SUSv3] 4055 powl(GLIBC_2.2.5) [SUSv3] remainder(GLIBC_2.2.5) [SUSv3] 4056 remainderf(GLIBC_2.2.5) [SUSv3] remainderl(GLIBC_2.2.5) 4057 [SUSv3] remquo(GLIBC_2.2.5) [SUSv3] remquof(GLIBC_2.2.5) 4058 [SUSv3] 4059 remquol(GLIBC_2.2.5) [SUSv3] rint(GLIBC_2.2.5) [SUSv3] 4060 rintf(GLIBC_2.2.5) [SUSv3] rintl(GLIBC_2.2.5) [SUSv3] 4061 round(GLIBC_2.2.5) [SUSv3] roundf(GLIBC_2.2.5) [SUSv3] 4062 roundl(GLIBC_2.2.5) [SUSv3] scalb(GLIBC_2.2.5) [SUSv3] 4063 scalbf(GLIBC_2.2.5) [ISOC99] scalbl(GLIBC_2.2.5) [ISOC99] 4064 scalbln(GLIBC_2.2.5) [SUSv3] scalblnf(GLIBC_2.2.5) [SUSv3] 4065 scalblnl(GLIBC_2.2.5) [SUSv3] scalbn(GLIBC_2.2.5) [SUSv3] 4066 scalbnf(GLIBC_2.2.5) [SUSv3] scalbnl(GLIBC_2.2.5) [SUSv3] 4067 significand(GLIBC_2.2.5) [ISOC99] significandf(GLIBC_2.2.5) 4068 [ISOC99] significandl(GLIBC_2.2.5) [ISOC99] sin(GLIBC_2.2.5) 4069 [SUSv3] 4070 sincos(GLIBC_2.2.5) [ISOC99] sincosf(GLIBC_2.2.5) [ISOC99] 4071 sincosl(GLIBC_2.2.5) [ISOC99] sinf(GLIBC_2.2.5) [SUSv3] 4072 sinh(GLIBC_2.2.5) [SUSv3] sinhf(GLIBC_2.2.5) [SUSv3] 4073 sinhl(GLIBC_2.2.5) [SUSv3] sinl(GLIBC_2.2.5) [SUSv3] 4074 sqrt(GLIBC_2.2.5) [SUSv3] sqrtf(GLIBC_2.2.5) [SUSv3] 4075 sqrtl(GLIBC_2.2.5) [SUSv3] tan(GLIBC_2.2.5) [SUSv3] 4076 tanf(GLIBC_2.2.5) [SUSv3] tanh(GLIBC_2.2.5) [SUSv3] 4077 tanhf(GLIBC_2.2.5) [SUSv3] tanhl(GLIBC_2.2.5) [SUSv3] 4078 tanl(GLIBC_2.2.5) [SUSv3] tgamma(GLIBC_2.2.5) [SUSv3] 4079 tgammaf(GLIBC_2.2.5) [SUSv3] tgammal(GLIBC_2.2.5) [SUSv3] 4080 trunc(GLIBC_2.2.5) [SUSv3] truncf(GLIBC_2.2.5) [SUSv3] 4081 truncl(GLIBC_2.2.5) [SUSv3] y0(GLIBC_2.2.5) [SUSv3] 4082 y0f(GLIBC_2.2.5) [ISOC99] y0l(GLIBC_2.2.5) [ISOC99] 4083 y1(GLIBC_2.2.5) [SUSv3] y1f(GLIBC_2.2.5) [ISOC99] 4084 y1l(GLIBC_2.2.5) [ISOC99] yn(GLIBC_2.2.5) [SUSv3] 4085 ynf(GLIBC_2.2.5) [ISOC99] ynl(GLIBC_2.2.5) [ISOC99] 4086 4087 An LSB conforming implementation shall provide the 4088 architecture specific data interfaces for Math specified in 4089 Table 11-26, with the full mandatory functionality as 4090 described in the referenced underlying specification. 4091 4092 Table 11-26. libm - Math Data Interfaces 4093 signgam(GLIBC_2.2.5) [SUSv3] 4094 _________________________________________________________ 4095 4096 11.5. Data Definitions for libm 4097 4098 This section defines global identifiers and their values that 4099 are associated with interfaces contained in libm. These 4100 definitions are organized into groups that correspond to 4101 system headers. This convention is used as a convenience for 4102 the reader, and does not imply the existence of these headers, 4103 or their content. Where an interface is defined as requiring a 4104 particular system header file all of the data definitions for 4105 that system header file presented here shall be in effect. 4106 4107 This section gives data definitions to promote binary 4108 application portability, not to repeat source interface 4109 definitions available elsewhere. System providers and 4110 application developers should use this ABI to supplement - not 4111 to replace - source interface definition specifications. 4112 4113 This specification uses the ISO C (1999) C Language as the 4114 reference programming language, and data definitions are 4115 specified in ISO C format. The C language is used here as a 4116 convenient notation. Using a C language description of these 4117 data objects does not preclude their use by other programming 4118 languages. 4119 _________________________________________________________ 4120 4121 11.5.1. complex.h 4122 4123 extern double cabs(double complex); 4124 extern float cabsf(float complex); 4125 extern long double cabsl(long double complex); 4126 extern double complex cacos(double complex); 4127 extern float complex cacosf(float complex); 4128 extern double complex cacosh(double complex); 4129 extern float complex cacoshf(float complex); 4130 extern long double complex cacoshl(long double complex); 4131 extern long double complex cacosl(long double complex); 4132 extern double carg(double complex); 4133 extern float cargf(float complex); 4134 extern long double cargl(long double complex); 4135 extern double complex casin(double complex); 4136 extern float complex casinf(float complex); 4137 extern double complex casinh(double complex); 4138 extern float complex casinhf(float complex); 4139 extern long double complex casinhl(long double complex); 4140 extern long double complex casinl(long double complex); 4141 extern double complex catan(double complex); 4142 extern float complex catanf(float complex); 4143 extern double complex catanh(double complex); 4144 extern float complex catanhf(float complex); 4145 extern long double complex catanhl(long double complex); 4146 extern long double complex catanl(long double complex); 4147 extern double complex ccos(double complex); 4148 extern float complex ccosf(float complex); 4149 extern double complex ccosh(double complex); 4150 extern float complex ccoshf(float complex); 4151 extern long double complex ccoshl(long double complex); 4152 extern long double complex ccosl(long double complex); 4153 extern double complex cexp(double complex); 4154 extern float complex cexpf(float complex); 4155 extern long double complex cexpl(long double complex); 4156 extern double cimag(double complex); 4157 extern float cimagf(float complex); 4158 extern long double cimagl(long double complex); 4159 extern double complex clog(double complex); 4160 extern float complex clog10f(float complex); 4161 extern long double complex clog10l(long double complex); 4162 extern float complex clogf(float complex); 4163 extern long double complex clogl(long double complex); 4164 extern double complex conj(double complex); 4165 extern float complex conjf(float complex); 4166 extern long double complex conjl(long double complex); 4167 extern double complex cpow(double complex, double complex); 4168 extern float complex cpowf(float complex, float complex); 4169 extern long double complex cpowl(long double complex, long double complex); 4170 extern double complex cproj(double complex); 4171 extern float complex cprojf(float complex); 4172 extern long double complex cprojl(long double complex); 4173 extern double creal(double complex); 4174 extern float crealf(float complex); 4175 extern long double creall(long double complex); 4176 extern double complex csin(double complex); 4177 extern float complex csinf(float complex); 4178 extern double complex csinh(double complex); 4179 extern float complex csinhf(float complex); 4180 extern long double complex csinhl(long double complex); 4181 extern long double complex csinl(long double complex); 4182 extern double complex csqrt(double complex); 4183 extern float complex csqrtf(float complex); 4184 extern long double complex csqrtl(long double complex); 4185 extern double complex ctan(double complex); 4186 extern float complex ctanf(float complex); 4187 extern double complex ctanh(double complex); 4188 extern float complex ctanhf(float complex); 4189 extern long double complex ctanhl(long double complex); 4190 extern long double complex ctanl(long double complex); 4191 _________________________________________________________ 4192 4193 11.5.2. fenv.h 4194 4195 #define FE_INVALID 0x01 4196 #define FE_DIVBYZERO 0x04 4197 #define FE_OVERFLOW 0x08 4198 #define FE_UNDERFLOW 0x10 4199 #define FE_INEXACT 0x20 4200 4201 #define FE_ALL_EXCEPT \ 4202 (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) 4203 4204 #define FE_TONEAREST 0 4205 #define FE_DOWNWARD 0x400 4206 #define FE_UPWARD 0x800 4207 #define FE_TOWARDZERO 0xc00 4208 4209 typedef unsigned short fexcept_t; 4210 4211 typedef struct { 4212 unsigned short __control_word; 4213 unsigned short __unused1; 4214 unsigned short __status_word; 4215 unsigned short __unused2; 4216 unsigned short __tags; 4217 unsigned short __unused3; 4218 unsigned int __eip; 4219 unsigned short __cs_selector; 4220 unsigned int __opcode:11; 4221 unsigned int __unused4:5; 4222 unsigned int __data_offset; 4223 unsigned short __data_selector; 4224 unsigned short __unused5; 4225 unsigned int __mxcsr; 4226 } fenv_t; 4227 4228 #define FE_DFL_ENV ((__const fenv_t *) -1) 4229 4230 extern int feclearexcept(int); 4231 extern int fegetenv(fenv_t *); 4232 extern int fegetexceptflag(fexcept_t *, int); 4233 extern int fegetround(void); 4234 extern int feholdexcept(fenv_t *); 4235 extern int feraiseexcept(int); 4236 extern int fesetenv(const fenv_t *); 4237 extern int fesetexceptflag(const fexcept_t *, int); 4238 extern int fesetround(int); 4239 extern int fetestexcept(int); 4240 extern int feupdateenv(const fenv_t *); 4241 _________________________________________________________ 4242 4243 11.5.3. math.h 4244 4245 #define fpclassify(x) \ 4246 (sizeof (x) == sizeof (float) ? __fpclassifyf (x) :sizeof (x) == sizeof (double) ? __fpclassify (x) : __fpclassifyl (x)) 4247 #define signbit(x) \ 4248 (sizeof (x) == sizeof (float)? __signbitf (x): sizeof (x) == sizeof (double)? __signbit (x) : __signbitl (x)) 4249 4250 #define FP_ILOGB0 -2147483648 4251 #define FP_ILOGBNAN -2147483648 4252 4253 extern int __finite(double); 4254 extern int __finitef(float); 4255 extern int __finitel(long double); 4256 extern int __isinf(double); 4257 extern int __isinff(float); 4258 extern int __isinfl(long double); 4259 extern int __isnan(double); 4260 extern int __isnanf(float); 4261 extern int __isnanl(long double); 4262 extern int __signbit(double); 4263 extern int __signbitf(float); 4264 extern int __fpclassify(double); 4265 extern int __fpclassifyf(float); 4266 extern int __fpclassifyl(long double); 4267 extern int signgam(void); 4268 extern double copysign(double, double); 4269 extern int finite(double); 4270 extern double frexp(double, int *); 4271 extern double ldexp(double, int); 4272 extern double modf(double, double *); 4273 extern double acos(double); 4274 extern double acosh(double); 4275 extern double asinh(double); 4276 extern double atanh(double); 4277 extern double asin(double); 4278 extern double atan(double); 4279 extern double atan2(double, double); 4280 extern double cbrt(double); 4281 extern double ceil(double); 4282 extern double cos(double); 4283 extern double cosh(double); 4284 extern double erf(double); 4285 extern double erfc(double); 4286 extern double exp(double); 4287 extern double expm1(double); 4288 extern double fabs(double); 4289 extern double floor(double); 4290 extern double fmod(double, double); 4291 extern double gamma(double); 4292 extern double hypot(double, double); 4293 extern int ilogb(double); 4294 extern double j0(double); 4295 extern double j1(double); 4296 extern double jn(int, double); 4297 extern double lgamma(double); 4298 extern double log(double); 4299 extern double log10(double); 4300 extern double log1p(double); 4301 extern double logb(double); 4302 extern double nextafter(double, double); 4303 extern double pow(double, double); 4304 extern double remainder(double, double); 4305 extern double rint(double); 4306 extern double scalb(double, double); 4307 extern double sin(double); 4308 extern double sinh(double); 4309 extern double sqrt(double); 4310 extern double tan(double); 4311 extern double tanh(double); 4312 extern double y0(double); 4313 extern double y1(double); 4314 extern double yn(int, double); 4315 extern float copysignf(float, float); 4316 extern long double copysignl(long double, long double); 4317 extern int finitef(float); 4318 extern int finitel(long double); 4319 extern float frexpf(float, int *); 4320 extern long double frexpl(long double, int *); 4321 extern float ldexpf(float, int); 4322 extern long double ldexpl(long double, int); 4323 extern float modff(float, float *); 4324 extern long double modfl(long double, long double *); 4325 extern double scalbln(double, long int); 4326 extern float scalblnf(float, long int); 4327 extern long double scalblnl(long double, long int); 4328 extern double scalbn(double, int); 4329 extern float scalbnf(float, int); 4330 extern long double scalbnl(long double, int); 4331 extern float acosf(float); 4332 extern float acoshf(float); 4333 extern long double acoshl(long double); 4334 extern long double acosl(long double); 4335 extern float asinf(float); 4336 extern float asinhf(float); 4337 extern long double asinhl(long double); 4338 extern long double asinl(long double); 4339 extern float atan2f(float, float); 4340 extern long double atan2l(long double, long double); 4341 extern float atanf(float); 4342 extern float atanhf(float); 4343 extern long double atanhl(long double); 4344 extern long double atanl(long double); 4345 extern float cbrtf(float); 4346 extern long double cbrtl(long double); 4347 extern float ceilf(float); 4348 extern long double ceill(long double); 4349 extern float cosf(float); 4350 extern float coshf(float); 4351 extern long double coshl(long double); 4352 extern long double cosl(long double); 4353 extern float dremf(float, float); 4354 extern long double dreml(long double, long double); 4355 extern float erfcf(float); 4356 extern long double erfcl(long double); 4357 extern float erff(float); 4358 extern long double erfl(long double); 4359 extern double exp2(double); 4360 extern float exp2f(float); 4361 extern long double exp2l(long double); 4362 extern float expf(float); 4363 extern long double expl(long double); 4364 extern float expm1f(float); 4365 extern long double expm1l(long double); 4366 extern float fabsf(float); 4367 extern long double fabsl(long double); 4368 extern double fdim(double, double); 4369 extern float fdimf(float, float); 4370 extern long double fdiml(long double, long double); 4371 extern float floorf(float); 4372 extern long double floorl(long double); 4373 extern double fma(double, double, double); 4374 extern float fmaf(float, float, float); 4375 extern long double fmal(long double, long double, long double); 4376 extern double fmax(double, double); 4377 extern float fmaxf(float, float); 4378 extern long double fmaxl(long double, long double); 4379 extern double fmin(double, double); 4380 extern float fminf(float, float); 4381 extern long double fminl(long double, long double); 4382 extern float fmodf(float, float); 4383 extern long double fmodl(long double, long double); 4384 extern float gammaf(float); 4385 extern long double gammal(long double); 4386 extern float hypotf(float, float); 4387 extern long double hypotl(long double, long double); 4388 extern int ilogbf(float); 4389 extern int ilogbl(long double); 4390 extern float j0f(float); 4391 extern long double j0l(long double); 4392 extern float j1f(float); 4393 extern long double j1l(long double); 4394 extern float jnf(int, float); 4395 extern long double jnl(int, long double); 4396 extern double lgamma_r(double, int *); 4397 extern float lgammaf(float); 4398 extern float lgammaf_r(float, int *); 4399 extern long double lgammal(long double); 4400 extern long double lgammal_r(long double, int *); 4401 extern long long int llrint(double); 4402 extern long long int llrintf(float); 4403 extern long long int llrintl(long double); 4404 extern long long int llround(double); 4405 extern long long int llroundf(float); 4406 extern long long int llroundl(long double); 4407 extern float log10f(float); 4408 extern long double log10l(long double); 4409 extern float log1pf(float); 4410 extern long double log1pl(long double); 4411 extern double log2(double); 4412 extern float log2f(float); 4413 extern long double log2l(long double); 4414 extern float logbf(float); 4415 extern long double logbl(long double); 4416 extern float logf(float); 4417 extern long double logl(long double); 4418 extern long int lrint(double); 4419 extern long int lrintf(float); 4420 extern long int lrintl(long double); 4421 extern long int lround(double); 4422 extern long int lroundf(float); 4423 extern long int lroundl(long double); 4424 extern int matherr(struct exception *); 4425 extern double nan(const char *); 4426 extern float nanf(const char *); 4427 extern long double nanl(const char *); 4428 extern double nearbyint(double); 4429 extern float nearbyintf(float); 4430 extern long double nearbyintl(long double); 4431 extern float nextafterf(float, float); 4432 extern long double nextafterl(long double, long double); 4433 extern double nexttoward(double, long double); 4434 extern float nexttowardf(float, long double); 4435 extern long double nexttowardl(long double, long double); 4436 extern double pow10(double); 4437 extern float pow10f(float); 4438 extern long double pow10l(long double); 4439 extern float powf(float, float); 4440 extern long double powl(long double, long double); 4441 extern float remainderf(float, float); 4442 extern long double remainderl(long double, long double); 4443 extern double remquo(double, double, int *); 4444 extern float remquof(float, float, int *); 4445 extern long double remquol(long double, long double, int *); 4446 extern float rintf(float); 4447 extern long double rintl(long double); 4448 extern double round(double); 4449 extern float roundf(float); 4450 extern long double roundl(long double); 4451 extern float scalbf(float, float); 4452 extern long double scalbl(long double, long double); 4453 extern double significand(double); 4454 extern float significandf(float); 4455 extern long double significandl(long double); 4456 extern void sincos(double, double *, double *); 4457 extern void sincosf(float, float *, float *); 4458 extern void sincosl(long double, long double *, long double *); 4459 extern float sinf(float); 4460 extern float sinhf(float); 4461 extern long double sinhl(long double); 4462 extern long double sinl(long double); 4463 extern float sqrtf(float); 4464 extern long double sqrtl(long double); 4465 extern float tanf(float); 4466 extern float tanhf(float); 4467 extern long double tanhl(long double); 4468 extern long double tanl(long double); 4469 extern double tgamma(double); 4470 extern float tgammaf(float); 4471 extern long double tgammal(long double); 4472 extern double trunc(double); 4473 extern float truncf(float); 4474 extern long double truncl(long double); 4475 extern float y0f(float); 4476 extern long double y0l(long double); 4477 extern float y1f(float); 4478 extern long double y1l(long double); 4479 extern float ynf(int, float); 4480 extern long double ynl(int, long double); 4481 extern int __fpclassifyl(long double); 4482 extern int __fpclassifyl(long double); 4483 extern int __signbitl(long double); 4484 extern int __signbitl(long double); 4485 extern int __signbitl(long double); 4486 extern long double exp2l(long double); 4487 extern long double exp2l(long double); 4488 _________________________________________________________ 4489 4490 11.6. Interfaces for libpthread 4491 4492 Table 11-27 defines the library name and shared object name 4493 for the libpthread library 4494 4495 Table 11-27. libpthread Definition 4496 Library: libpthread 4497 SONAME: libpthread.so.0 4498 4499 The behavior of the interfaces in this library is specified by 4500 the following specifications: 4501 4502 [LFS] Large File Support 4503 [LSB] This Specification 4504 [SUSv3] ISO POSIX (2003) 4505 _________________________________________________________ 4506 4507 11.6.1. Realtime Threads 4508 _________________________________________________________ 4509 4510 11.6.1.1. Interfaces for Realtime Threads 4511 4512 An LSB conforming implementation shall provide the 4513 architecture specific functions for Realtime Threads specified 4514 in Table 11-28, with the full mandatory functionality as 4515 described in the referenced underlying specification. 4516 4517 Table 11-28. libpthread - Realtime Threads Function Interfaces 4518 pthread_attr_getinheritsched(GLIBC_2.2.5) [SUSv3] 4519 pthread_attr_getschedpolicy(GLIBC_2.2.5) [SUSv3] 4520 pthread_attr_getscope(GLIBC_2.2.5) [SUSv3] 4521 pthread_attr_setinheritsched(GLIBC_2.2.5) [SUSv3] 4522 pthread_attr_setschedpolicy(GLIBC_2.2.5) [SUSv3] 4523 pthread_attr_setscope(GLIBC_2.2.5) [SUSv3] 4524 pthread_getschedparam(GLIBC_2.2.5) [SUSv3] 4525 pthread_setschedparam(GLIBC_2.2.5) [SUSv3] 4526 _________________________________________________________ 4527 4528 11.6.2. Advanced Realtime Threads 4529 _________________________________________________________ 4530 4531 11.6.2.1. Interfaces for Advanced Realtime Threads 4532 4533 No external functions are defined for libpthread - Advanced 4534 Realtime Threads in this part of the specification. See also 4535 the generic specification. 4536 _________________________________________________________ 4537 4538 11.6.3. Posix Threads 4539 _________________________________________________________ 4540 4541 11.6.3.1. Interfaces for Posix Threads 4542 4543 An LSB conforming implementation shall provide the 4544 architecture specific functions for Posix Threads specified in 4545 Table 11-29, with the full mandatory functionality as 4546 described in the referenced underlying specification. 4547 4548 Table 11-29. libpthread - Posix Threads Function Interfaces 4549 _pthread_cleanup_pop(GLIBC_2.2.5) [LSB] 4550 _pthread_cleanup_push(GLIBC_2.2.5) [LSB] 4551 pthread_attr_destroy(GLIBC_2.2.5) [SUSv3] 4552 pthread_attr_getdetachstate(GLIBC_2.2.5) [SUSv3] 4553 pthread_attr_getguardsize(GLIBC_2.2.5) [SUSv3] 4554 pthread_attr_getschedparam(GLIBC_2.2.5) [SUSv3] 4555 pthread_attr_getstack(GLIBC_2.2.5) [SUSv3] 4556 pthread_attr_getstackaddr(GLIBC_2.2.5) [SUSv3] 4557 pthread_attr_getstacksize(GLIBC_2.2.5) [SUSv3] 4558 pthread_attr_init(GLIBC_2.2.5) [SUSv3] 4559 pthread_attr_setdetachstate(GLIBC_2.2.5) [SUSv3] 4560 pthread_attr_setguardsize(GLIBC_2.2.5) [SUSv3] 4561 pthread_attr_setschedparam(GLIBC_2.2.5) [SUSv3] 4562 pthread_attr_setstackaddr(GLIBC_2.2.5) [SUSv3] 4563 pthread_attr_setstacksize(GLIBC_2.2.5) [SUSv3] 4564 pthread_cancel(GLIBC_2.2.5) [SUSv3] 4565 pthread_cond_broadcast(GLIBC_2.3.2) [SUSv3] 4566 pthread_cond_destroy(GLIBC_2.3.2) [SUSv3] 4567 pthread_cond_init(GLIBC_2.3.2) [SUSv3] 4568 pthread_cond_signal(GLIBC_2.3.2) [SUSv3] 4569 pthread_cond_timedwait(GLIBC_2.3.2) [SUSv3] 4570 pthread_cond_wait(GLIBC_2.3.2) [SUSv3] 4571 pthread_condattr_destroy(GLIBC_2.2.5) [SUSv3] 4572 pthread_condattr_getpshared(GLIBC_2.2.5) [SUSv3] 4573 pthread_condattr_init(GLIBC_2.2.5) [SUSv3] 4574 pthread_condattr_setpshared(GLIBC_2.2.5) [SUSv3] 4575 pthread_create(GLIBC_2.2.5) [SUSv3] 4576 pthread_detach(GLIBC_2.2.5) [SUSv3] 4577 pthread_equal(GLIBC_2.2.5) [SUSv3] pthread_exit(GLIBC_2.2.5) 4578 [SUSv3] pthread_getconcurrency(GLIBC_2.2.5) [SUSv3] 4579 pthread_getspecific(GLIBC_2.2.5) [SUSv3] 4580 pthread_join(GLIBC_2.2.5) [SUSv3] 4581 pthread_key_create(GLIBC_2.2.5) [SUSv3] 4582 pthread_key_delete(GLIBC_2.2.5) [SUSv3] 4583 pthread_kill(GLIBC_2.2.5) [SUSv3] 4584 pthread_mutex_destroy(GLIBC_2.2.5) [SUSv3] 4585 pthread_mutex_init(GLIBC_2.2.5) [SUSv3] 4586 pthread_mutex_lock(GLIBC_2.2.5) [SUSv3] 4587 pthread_mutex_trylock(GLIBC_2.2.5) [SUSv3] 4588 pthread_mutex_unlock(GLIBC_2.2.5) [SUSv3] 4589 pthread_mutexattr_destroy(GLIBC_2.2.5) [SUSv3] 4590 pthread_mutexattr_getpshared(GLIBC_2.2.5) [SUSv3] 4591 pthread_mutexattr_gettype(GLIBC_2.2.5) [SUSv3] 4592 pthread_mutexattr_init(GLIBC_2.2.5) [SUSv3] 4593 pthread_mutexattr_setpshared(GLIBC_2.2.5) [SUSv3] 4594 pthread_mutexattr_settype(GLIBC_2.2.5) [SUSv3] 4595 pthread_once(GLIBC_2.2.5) [SUSv3] 4596 pthread_rwlock_destroy(GLIBC_2.2.5) [SUSv3] 4597 pthread_rwlock_init(GLIBC_2.2.5) [SUSv3] 4598 pthread_rwlock_rdlock(GLIBC_2.2.5) [SUSv3] 4599 pthread_rwlock_timedrdlock(GLIBC_2.2.5) [SUSv3] 4600 pthread_rwlock_timedwrlock(GLIBC_2.2.5) [SUSv3] 4601 pthread_rwlock_tryrdlock(GLIBC_2.2.5) [SUSv3] 4602 pthread_rwlock_trywrlock(GLIBC_2.2.5) [SUSv3] 4603 pthread_rwlock_unlock(GLIBC_2.2.5) [SUSv3] 4604 pthread_rwlock_wrlock(GLIBC_2.2.5) [SUSv3] 4605 pthread_rwlockattr_destroy(GLIBC_2.2.5) [SUSv3] 4606 pthread_rwlockattr_getpshared(GLIBC_2.2.5) [SUSv3] 4607 pthread_rwlockattr_init(GLIBC_2.2.5) [SUSv3] 4608 pthread_rwlockattr_setpshared(GLIBC_2.2.5) [SUSv3] 4609 pthread_self(GLIBC_2.2.5) [SUSv3] 4610 pthread_setcancelstate(GLIBC_2.2.5) [SUSv3] 4611 pthread_setcanceltype(GLIBC_2.2.5) [SUSv3] 4612 pthread_setconcurrency(GLIBC_2.2.5) [SUSv3] 4613 pthread_setspecific(GLIBC_2.2.5) [SUSv3] 4614 pthread_sigmask(GLIBC_2.2.5) [SUSv3] 4615 pthread_testcancel(GLIBC_2.2.5) [SUSv3] 4616 sem_close(GLIBC_2.2.5) [SUSv3] sem_destroy(GLIBC_2.2.5) 4617 [SUSv3] sem_getvalue(GLIBC_2.2.5) [SUSv3] 4618 sem_init(GLIBC_2.2.5) [SUSv3] 4619 sem_open(GLIBC_2.2.5) [SUSv3] sem_post(GLIBC_2.2.5) [SUSv3] 4620 sem_timedwait(GLIBC_2.2.5) [SUSv3] sem_trywait(GLIBC_2.2.5) 4621 [SUSv3] 4622 sem_unlink(GLIBC_2.2.5) [SUSv3] sem_wait(GLIBC_2.2.5) [SUSv3] 4623 _________________________________________________________ 4624 4625 11.6.4. Thread aware versions of libc interfaces 4626 _________________________________________________________ 4627 4628 11.6.4.1. Interfaces for Thread aware versions of libc interfaces 4629 4630 An LSB conforming implementation shall provide the 4631 architecture specific functions for Thread aware versions of 4632 libc interfaces specified in Table 11-30, with the full 4633 mandatory functionality as described in the referenced 4634 underlying specification. 4635 4636 Table 11-30. libpthread - Thread aware versions of libc 4637 interfaces Function Interfaces 4638 lseek64(GLIBC_2.2.5) [LFS] open64(GLIBC_2.2.5) [LFS] 4639 pread(GLIBC_2.2.5) [SUSv3] pread64(GLIBC_2.2.5) [LFS] 4640 pwrite(GLIBC_2.2.5) [SUSv3] pwrite64(GLIBC_2.2.5) [LFS] 4641 _________________________________________________________ 4642 4643 11.7. Data Definitions for libpthread 4644 4645 This section defines global identifiers and their values that 4646 are associated with interfaces contained in libpthread. These 4647 definitions are organized into groups that correspond to 4648 system headers. This convention is used as a convenience for 4649 the reader, and does not imply the existence of these headers, 4650 or their content. Where an interface is defined as requiring a 4651 particular system header file all of the data definitions for 4652 that system header file presented here shall be in effect. 4653 4654 This section gives data definitions to promote binary 4655 application portability, not to repeat source interface 4656 definitions available elsewhere. System providers and 4657 application developers should use this ABI to supplement - not 4658 to replace - source interface definition specifications. 4659 4660 This specification uses the ISO C (1999) C Language as the 4661 reference programming language, and data definitions are 4662 specified in ISO C format. The C language is used here as a 4663 convenient notation. Using a C language description of these 4664 data objects does not preclude their use by other programming 4665 languages. 4666 _________________________________________________________ 4667 4668 11.7.1. pthread.h 4669 4670 extern void _pthread_cleanup_pop(struct _pthread_cleanup_buffer *, int); 4671 extern void _pthread_cleanup_push(struct _pthread_cleanup_buffer *, 4672 void (*__routine) (void *) 4673 , void *); 4674 extern int pthread_attr_destroy(pthread_attr_t *); 4675 extern int pthread_attr_getdetachstate(const typedef struct { 4676 int __detachstate; 4677 int __schedpolicy; 4678 struct sched_param __schedparam; 4679 int __inheritsched; 4680 int __scope; 4681 size_t __guardsize; 4682 int __stackaddr_set; 4683 void *__stackaddr; 4684 unsigned long int __stacksize;} 4685 pthread_attr_t *, int *); 4686 extern int pthread_attr_getinheritsched(const typedef struct { 4687 int __detachstate; 4688 int __schedpolicy; 4689 struct sched_param __schedparam; 4690 int __inheritsched; 4691 int __scope; 4692 size_t __guardsize; 4693 int __stackaddr_set; 4694 void *__stackaddr; 4695 unsigned long int __stacksize;} 4696 pthread_attr_t *, int *); 4697 extern int pthread_attr_getschedparam(const typedef struct { 4698 int __detachstate; 4699 int __schedpolicy; 4700 struct sched_param __schedparam; 4701 int __inheritsched; 4702 int __scope; 4703 size_t __guardsize; 4704 int __stackaddr_set; 4705 void *__stackaddr; 4706 unsigned long int __stacksize;} 4707 pthread_attr_t *, struct sched_param { 4708 int sched_priority;} 4709 4710 *); 4711 extern int pthread_attr_getschedpolicy(const typedef struct { 4712 int __detachstate; 4713 int __schedpolicy; 4714 struct sched_param __schedparam; 4715 int __inheritsched; 4716 int __scope; 4717 size_t __guardsize; 4718 int __stackaddr_set; 4719 void *__stackaddr; 4720 unsigned long int __stacksize;} 4721 pthread_attr_t *, int *); 4722 extern int pthread_attr_getscope(const typedef struct { 4723 int __detachstate; 4724 int __schedpolicy; 4725 struct sched_param __schedparam; 4726 int __inheritsched; 4727 int __scope; 4728 size_t __guardsize; 4729 int __stackaddr_set; 4730 void *__stackaddr; 4731 unsigned long int __stacksize;} 4732 pthread_attr_t *, int *); 4733 extern int pthread_attr_init(pthread_attr_t *); 4734 extern int pthread_attr_setdetachstate(pthread_attr_t *, int); 4735 extern int pthread_attr_setinheritsched(pthread_attr_t *, int); 4736 extern int pthread_attr_setschedparam(pthread_attr_t *, const struct sched_param { 4737 int sched_priority;} 4738 4739 *); 4740 extern int pthread_attr_setschedpolicy(pthread_attr_t *, int); 4741 extern int pthread_attr_setscope(pthread_attr_t *, int); 4742 extern int pthread_cancel(typedef unsigned long int pthread_t); 4743 extern int pthread_cond_broadcast(pthread_cond_t *); 4744 extern int pthread_cond_destroy(pthread_cond_t *); 4745 extern int pthread_cond_init(pthread_cond_t *, const typedef struct { 4746 int __dummy;} 4747 4748 pthread_condattr_t *); 4749 extern int pthread_cond_signal(pthread_cond_t *); 4750 extern int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *,const struct timespec { 4751 time_t tv_sec; long int tv_nsec;} 4752 4753 *); 4754 extern int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); 4755 extern int pthread_condattr_destroy(pthread_condattr_t *); 4756 extern int pthread_condattr_init(pthread_condattr_t *); 4757 extern int pthread_create(pthread_t *, const typedef struct { 4758 int __detachstate; 4759 int __schedpolicy; 4760 struct sched_param __schedparam; 4761 int __inheritsched; 4762 int __scope; 4763 size_t __guardsize; 4764 int __stackaddr_set; 4765 void *__stackaddr; 4766 unsigned long int __stacksize;} 4767 pthread_attr_t *, 4768 void *(*__start_routine) (void *p1) 4769 , void *); 4770 extern int pthread_detach(typedef unsigned long int pthread_t); 4771 extern int pthread_equal(typedef unsigned long int pthread_t, 4772 typedef unsigned long int pthread_t); 4773 extern void pthread_exit(void *); 4774 extern int pthread_getschedparam(typedef unsigned long int pthread_t, 4775 int *, struct sched_param { 4776 int sched_priority;} 4777 4778 *); 4779 extern void *pthread_getspecific(typedef unsigned int pthread_key_t); 4780 extern int pthread_join(typedef unsigned long int pthread_t, void **); 4781 extern int pthread_key_create(pthread_key_t *, void (*destr_func) (void *) 4782 ); 4783 extern int pthread_key_delete(typedef unsigned int pthread_key_t); 4784 extern int pthread_mutex_destroy(pthread_mutex_t *); 4785 extern int pthread_mutex_init(pthread_mutex_t *, const typedef struct { 4786 int __mutexkind;} 4787 4788 pthread_mutexattr_t *); 4789 extern int pthread_mutex_lock(pthread_mutex_t *); 4790 extern int pthread_mutex_trylock(pthread_mutex_t *); 4791 extern int pthread_mutex_unlock(pthread_mutex_t *); 4792 extern int pthread_mutexattr_destroy(pthread_mutexattr_t *); 4793 extern int pthread_mutexattr_init(pthread_mutexattr_t *); 4794 extern int pthread_once(pthread_once_t *, void (*init_routine) (void) 4795 ); 4796 extern int pthread_rwlock_destroy(pthread_rwlock_t *); 4797 extern int pthread_rwlock_init(pthread_rwlock_t *, pthread_rwlockattr_t *); 4798 extern int pthread_rwlock_rdlock(pthread_rwlock_t *); 4799 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *); 4800 extern int pthread_rwlock_trywrlock(pthread_rwlock_t *); 4801 extern int pthread_rwlock_unlock(pthread_rwlock_t *); 4802 extern int pthread_rwlock_wrlock(pthread_rwlock_t *); 4803 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); 4804 extern int pthread_rwlockattr_getpshared(const typedef struct { 4805 int __lockkind; int __pshared;} 4806 pthread_rwlockattr_t *, int *); 4807 extern int pthread_rwlockattr_init(pthread_rwlockattr_t *); 4808 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); 4809 extern typedef unsigned long int pthread_t pthread_self(void); 4810 extern int pthread_setcancelstate(int, int *); 4811 extern int pthread_setcanceltype(int, int *); 4812 extern int pthread_setschedparam(typedef unsigned long int pthread_t, int, const struct sched_param { 4813 int sched_priority;} 4814 4815 *); 4816 extern int pthread_setspecific(typedef unsigned int pthread_key_t, 4817 const void *); 4818 extern void pthread_testcancel(void); 4819 extern int pthread_attr_getguardsize(const typedef struct { 4820 int __detachstate; 4821 int __schedpolicy; 4822 struct sched_param __schedparam; 4823 int __inheritsched; 4824 int __scope; 4825 size_t __guardsize; 4826 int __stackaddr_set; 4827 void *__stackaddr; 4828 unsigned long int __stacksize;} 4829 pthread_attr_t *, size_t *); 4830 extern int pthread_attr_setguardsize(pthread_attr_t *, 4831 typedef unsigned long int size_t); 4832 extern int pthread_attr_setstackaddr(pthread_attr_t *, void *); 4833 extern int pthread_attr_getstackaddr(const typedef struct { 4834 int __detachstate; 4835 int __schedpolicy; 4836 struct sched_param __schedparam; 4837 int __inheritsched; 4838 int __scope; 4839 size_t __guardsize; 4840 int __stackaddr_set; 4841 void *__stackaddr; 4842 unsigned long int __stacksize;} 4843 pthread_attr_t *, void **); 4844 extern int pthread_attr_setstacksize(pthread_attr_t *, 4845 typedef unsigned long int size_t); 4846 extern int pthread_attr_getstacksize(const typedef struct { 4847 int __detachstate; 4848 int __schedpolicy; 4849 struct sched_param __schedparam; 4850 int __inheritsched; 4851 int __scope; 4852 size_t __guardsize; 4853 int __stackaddr_set; 4854 void *__stackaddr; 4855 unsigned long int __stacksize;} 4856 pthread_attr_t *, size_t *); 4857 extern int pthread_mutexattr_gettype(const typedef struct { 4858 int __mutexkind;} 4859 pthread_mutexattr_t *, int *); 4860 extern int pthread_mutexattr_settype(pthread_mutexattr_t *, int); 4861 extern int pthread_getconcurrency(void); 4862 extern int pthread_setconcurrency(int); 4863 extern int pthread_attr_getstack(const typedef struct { 4864 int __detachstate; 4865 int __schedpolicy; 4866 struct sched_param __schedparam; 4867 int __inheritsched; 4868 int __scope; 4869 size_t __guardsize; 4870 int __stackaddr_set; 4871 void *__stackaddr; 4872 unsigned long int __stacksize;} 4873 pthread_attr_t *, void **, size_t *); 4874 extern int pthread_attr_setstack(pthread_attr_t *, void *, 4875 typedef unsigned long int size_t); 4876 extern int pthread_condattr_getpshared(const typedef struct { 4877 int __dummy;} 4878 pthread_condattr_t *, int *); 4879 extern int pthread_condattr_setpshared(pthread_condattr_t *, int); 4880 extern int pthread_mutexattr_getpshared(const typedef struct { 4881 int __mutexkind;} 4882 pthread_mutexattr_t *, int *); 4883 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); 4884 extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *, const structtimespec { 4885 time_t tv_sec; long int tv_nsec;} 4886 4887 *); 4888 extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *, const structtimespec { 4889 time_t tv_sec; long int tv_nsec;} 4890 4891 *); 4892 extern int __register_atfork(void (*prepare) (void) 4893 , void (*parent) (void) 4894 , void (*child) (void) 4895 , void *); 4896 extern int pthread_setschedprio(typedef unsigned long int pthread_t, int); 4897 _________________________________________________________ 4898 4899 11.7.2. semaphore.h 4900 4901 extern int sem_close(sem_t *); 4902 extern int sem_destroy(sem_t *); 4903 extern int sem_getvalue(sem_t *, int *); 4904 extern int sem_init(sem_t *, int, unsigned int); 4905 extern sem_t *sem_open(const char *, int, ...); 4906 extern int sem_post(sem_t *); 4907 extern int sem_trywait(sem_t *); 4908 extern int sem_unlink(const char *); 4909 extern int sem_wait(sem_t *); 4910 extern int sem_timedwait(sem_t *, const struct timespec *); 4911 _________________________________________________________ 4912 4913 11.8. Interfaces for libgcc_s 4914 4915 Table 11-31 defines the library name and shared object name 4916 for the libgcc_s library 4917 4918 Table 11-31. libgcc_s Definition 4919 Library: libgcc_s 4920 SONAME: libgcc_s.so.1 4921 4922 The behavior of the interfaces in this library is specified by 4923 the following specifications: 4924 4925 [LSB] This Specification 4926 _________________________________________________________ 4927 4928 11.8.1. Unwind Library 4929 _________________________________________________________ 4930 4931 11.8.1.1. Interfaces for Unwind Library 4932 4933 An LSB conforming implementation shall provide the 4934 architecture specific functions for Unwind Library specified 4935 in Table 11-32, with the full mandatory functionality as 4936 described in the referenced underlying specification. 4937 4938 Table 11-32. libgcc_s - Unwind Library Function Interfaces 4939 _Unwind_Backtrace(GCC_3.3) [LSB] 4940 _Unwind_DeleteException(GCC_3.0) [LSB] 4941 _Unwind_FindEnclosingFunction(GCC_3.3) [LSB] 4942 _Unwind_Find_FDE(GCC_3.0) [LSB] 4943 _Unwind_ForcedUnwind(GCC_3.0) [LSB] _Unwind_GetCFA(GCC_3.3) 4944 [LSB] _Unwind_GetDataRelBase(GCC_3.0) [LSB] 4945 _Unwind_GetGR(GCC_3.0) [LSB] 4946 _Unwind_GetIP(GCC_3.0) [LSB] 4947 _Unwind_GetLanguageSpecificData(GCC_3.0) [LSB] 4948 _Unwind_GetRegionStart(GCC_3.0) [LSB] 4949 _Unwind_GetTextRelBase(GCC_3.0) [LSB] 4950 _Unwind_RaiseException(GCC_3.0) [LSB] _Unwind_Resume(GCC_3.0) 4951 [LSB] _Unwind_Resume_or_Rethrow(GCC_3.3) [LSB] 4952 _Unwind_SetGR(GCC_3.0) [LSB] 4953 _Unwind_SetIP(GCC_3.0) [LSB] 4954 _________________________________________________________ 4955 4956 11.9. Data Definitions for libgcc_s 4957 4958 This section defines global identifiers and their values that 4959 are associated with interfaces contained in libgcc_s. These 4960 definitions are organized into groups that correspond to 4961 system headers. This convention is used as a convenience for 4962 the reader, and does not imply the existence of these headers, 4963 or their content. Where an interface is defined as requiring a 4964 particular system header file all of the data definitions for 4965 that system header file presented here shall be in effect. 4966 4967 This section gives data definitions to promote binary 4968 application portability, not to repeat source interface 4969 definitions available elsewhere. System providers and 4970 application developers should use this ABI to supplement - not 4971 to replace - source interface definition specifications. 4972 4973 This specification uses the ISO C (1999) C Language as the 4974 reference programming language, and data definitions are 4975 specified in ISO C format. The C language is used here as a 4976 convenient notation. Using a C language description of these 4977 data objects does not preclude their use by other programming 4978 languages. 4979 _________________________________________________________ 4980 4981 11.9.1. unwind.h 4982 4983 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4984 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 4985 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4986 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 4987 _Unwind_Stop_Fn, void *); 4988 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 4989 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 4990 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 4991 *); 4992 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 4993 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 4994 *); 4995 extern void _Unwind_Resume(struct _Unwind_Exception *); 4996 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 4997 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 4998 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 4999 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 5000 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5001 _Unwind_Stop_Fn, void *); 5002 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5003 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5004 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5005 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 5006 *); 5007 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5008 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5009 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5010 *); 5011 extern void _Unwind_Resume(struct _Unwind_Exception *); 5012 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5013 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5014 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5015 _Unwind_Stop_Fn, void *); 5016 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5017 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5018 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5019 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 5020 *); 5021 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5022 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5023 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5024 *); 5025 extern void _Unwind_Resume(struct _Unwind_Exception *); 5026 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5027 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5028 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 5029 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 5030 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5031 _Unwind_Stop_Fn, void *); 5032 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5033 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5034 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5035 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 5036 *); 5037 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5038 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5039 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5040 *); 5041 extern void _Unwind_Resume(struct _Unwind_Exception *); 5042 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5043 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5044 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 5045 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 5046 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5047 _Unwind_Stop_Fn, void *); 5048 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5049 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5050 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5051 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct _Unwind_Context 5052 *); 5053 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5054 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5055 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5056 *); 5057 extern void _Unwind_Resume(struct _Unwind_Exception *); 5058 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5059 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5060 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 5061 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 5062 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5063 _Unwind_Stop_Fn, void *); 5064 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5065 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5066 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5067 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 5068 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5069 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5070 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5071 *); 5072 extern void _Unwind_Resume(struct _Unwind_Exception *); 5073 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5074 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5075 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 5076 extern fde *_Unwind_Find_FDE(void *, struct dwarf_eh_base *); 5077 extern _Unwind_Ptr _Unwind_ForcedUnwind(struct _Unwind_Exception *, 5078 _Unwind_Stop_Fn, void *); 5079 extern _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); 5080 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 5081 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 5082 extern _Unwind_Ptr _Unwind_GetLanguageSpecificData(void); 5083 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 5084 extern _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); 5085 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 5086 *); 5087 extern void _Unwind_Resume(struct _Unwind_Exception *); 5088 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 5089 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 5090 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5091 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5092 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5093 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5094 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5095 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5096 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 5097 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5098 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5099 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5100 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5101 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5102 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5103 extern _Unwind_Reason_Code _Unwind_GetCFA(struct _Unwind_Context *); 5104 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5105 _Unwind_Exception*); 5106 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5107 _Unwind_Exception*); 5108 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5109 _Unwind_Exception*); 5110 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5111 _Unwind_Exception*); 5112 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5113 _Unwind_Exception*); 5114 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5115 _Unwind_Exception*); 5116 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 5117 _Unwind_Exception*); 5118 extern void *_Unwind_FindEnclosingFunction(void *); 5119 extern void *_Unwind_FindEnclosingFunction(void *); 5120 extern void *_Unwind_FindEnclosingFunction(void *); 5121 extern void *_Unwind_FindEnclosingFunction(void *); 5122 extern void *_Unwind_FindEnclosingFunction(void *); 5123 extern void *_Unwind_FindEnclosingFunction(void *); 5124 extern void *_Unwind_FindEnclosingFunction(void *); 5125 extern _Unwind_Word _Unwind_GetBSP(struct _Unwind_Context *); 5126 _________________________________________________________ 5127 5128 11.10. Interface Definitions for libgcc_s 5129 5130 Table of Contents 5131 _Unwind_DeleteException -- private C++ error handling method 5132 _Unwind_Find_FDE -- private C++ error handling method 5133 _Unwind_ForcedUnwind -- private C++ error handling method 5134 _Unwind_GetDataRelBase -- private IA64 C++ error handling 5135 method 5136 5137 _Unwind_GetGR -- private C++ error handling method 5138 _Unwind_GetIP -- private C++ error handling method 5139 _Unwind_GetLanguageSpecificData -- private C++ error handling 5140 method 5141 5142 _Unwind_GetRegionStart -- private C++ error handling method 5143 _Unwind_GetTextRelBase -- private IA64 C++ error handling 5144 method 5145 5146 _Unwind_RaiseException -- private C++ error handling method 5147 _Unwind_Resume -- private C++ error handling method 5148 _Unwind_SetGR -- private C++ error handling method 5149 _Unwind_SetIP -- private C++ error handling method 5150 5151 The interfaces defined on the following pages are included in 5152 libgcc_s and are defined by this specification. Unless 5153 otherwise noted, these interfaces shall be included in the 5154 source standard. 5155 5156 Other interfaces listed in Section 11.8 shall behave as 5157 described in the referenced base document. 5158 5159 _Unwind_DeleteException 5160 5161 Name 5162 5163 _Unwind_DeleteException -- private C++ error handling method 5164 5165 Synopsis 5166 5167 void _Unwind_DeleteException(struct _Unwind_Exception * 5168 object); 5169 5170 Description 5171 5172 _Unwind_DeleteException() deletes the given exception object. 5173 If a given runtime resumes normal execution after catching a 5174 foreign exception, it will not know how to delete that 5175 exception. Such an exception shall be deleted by calling 5176 _Unwind_DeleteException(). This is a convenience function that 5177 calls the function pointed to by the exception_cleanup field 5178 of the exception header. 5179 5180 _Unwind_Find_FDE 5181 5182 Name 5183 5184 _Unwind_Find_FDE -- private C++ error handling method 5185 5186 Synopsis 5187 5188 fde * _Unwind_Find_FDE(void * pc, struct dwarf_eh_bases * 5189 bases); 5190 5191 Description 5192 5193 _Unwind_Find_FDE() looks for the object containing pc, then 5194 inserts into bases. 5195 5196 _Unwind_ForcedUnwind 5197 5198 Name 5199 5200 _Unwind_ForcedUnwind -- private C++ error handling method 5201 5202 Synopsis 5203 5204 _Unwind_Reason_Code _Unwind_ForcedUnwind(struct 5205 _Unwind_Exception * object, _Unwind_Stop_Fn stop, void * 5206 stop_parameter); 5207 5208 Description 5209 5210 _Unwind_ForcedUnwind() raises an exception for forced 5211 unwinding, passing along the given exception object, which 5212 should have its exception_class and exception_cleanup fields 5213 set. The exception object has been allocated by the 5214 language-specific runtime, and has a language-specific format, 5215 except that it shall contain an _Unwind_Exception struct. 5216 5217 Forced unwinding is a single-phase process. stop and 5218 stop_parameter control the termination of the unwind process 5219 instead of the usual personality routine query. stop is called 5220 for each unwind frame, with the parameteres described for the 5221 usual personality routine below, plus an additional 5222 stop_parameter. 5223 5224 Return Value 5225 5226 When stop identifies the destination frame, it transfers 5227 control to the user code as appropriate without returning, 5228 normally after calling _Unwind_DeleteException(). If not, then 5229 it should return an _Unwind_Reason_Code value. 5230 5231 If stop returns any reason code other than _URC_NO_REASON, 5232 then the stack state is indeterminate from the point of view 5233 of the caller of _Unwind_ForcedUnwind(). Rather than attempt 5234 to return, therefore, the unwind library should use the 5235 exception_cleanup entry in the exception, and then call 5236 abort(). 5237 5238 _URC_NO_REASON 5239 This is not the destination from. The unwind runtime 5240 will call frame's personality routine with the 5241 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 5242 actions, and then unwind to the next frame and call the 5243 stop() function again. 5244 5245 _URC_END_OF_STACK 5246 In order to allow _Unwind_ForcedUnwind() to perform 5247 special processing when it reaches the end of the 5248 stack, the unwind runtime will call it after the last 5249 frame is rejected, with a NULL stack pointer in the 5250 context, and the stop() function shall catch this 5251 condition. It may return this code if it cannot handle 5252 end-of-stack. 5253 5254 _URC_FATAL_PHASE2_ERROR 5255 The stop() function may return this code for other 5256 fatal conditions like stack corruption. 5257 5258 _Unwind_GetDataRelBase 5259 5260 Name 5261 5262 _Unwind_GetDataRelBase -- private IA64 C++ error handling 5263 method 5264 5265 Synopsis 5266 5267 _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context * 5268 context); 5269 5270 Description 5271 5272 _Unwind_GetDataRelBase() returns the global pointer in 5273 register one for context. 5274 5275 _Unwind_GetGR 5276 5277 Name 5278 5279 _Unwind_GetGR -- private C++ error handling method 5280 5281 Synopsis 5282 5283 _Unwind_Word _Unwind_GetGR(struct _Unwind_Context * context, 5284 int index); 5285 5286 Description 5287 5288 _Unwind_GetGR() returns data at index found in context. The 5289 register is identified by its index: 0 to 31 are for the fixed 5290 registers, and 32 to 127 are for the stacked registers. 5291 5292 During the two phases of unwinding, only GR1 has a guaranteed 5293 value, which is the global pointer of the frame referenced by 5294 the unwind context. If the register has its NAT bit set, the 5295 behavior is unspecified. 5296 5297 _Unwind_GetIP 5298 5299 Name 5300 5301 _Unwind_GetIP -- private C++ error handling method 5302 5303 Synopsis 5304 5305 _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context * context); 5306 5307 Description 5308 5309 _Unwind_GetIP() returns the instruction pointer value for the 5310 routine identified by the unwind context. 5311 5312 _Unwind_GetLanguageSpecificData 5313 5314 Name 5315 5316 _Unwind_GetLanguageSpecificData -- private C++ error handling 5317 method 5318 5319 Synopsis 5320 5321 _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct 5322 _Unwind_Context * context, uint value); 5323 5324 Description 5325 5326 _Unwind_GetLanguageSpecificData() returns the address of the 5327 language specific data area for the current stack frame. 5328 5329 _Unwind_GetRegionStart 5330 5331 Name 5332 5333 _Unwind_GetRegionStart -- private C++ error handling method 5334 5335 Synopsis 5336 5337 _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context * 5338 context); 5339 5340 Description 5341 5342 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 5343 of the beginning of the procedure or code fragment described 5344 by the current unwind descriptor block. 5345 5346 _Unwind_GetTextRelBase 5347 5348 Name 5349 5350 _Unwind_GetTextRelBase -- private IA64 C++ error handling 5351 method 5352 5353 Synopsis 5354 5355 _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context * 5356 context); 5357 5358 Description 5359 5360 _Unwind_GetTextRelBase() calls the abort method, then returns. 5361 5362 _Unwind_RaiseException 5363 5364 Name 5365 5366 _Unwind_RaiseException -- private C++ error handling method 5367 5368 Synopsis 5369 5370 _Unwind_Reason_Code _Unwind_RaiseException(struct 5371 _Unwind_Exception * object); 5372 5373 Description 5374 5375 _Unwind_RaiseException() raises an exception, passing along 5376 the given exception object, which should have its 5377 exception_class and exception_cleanup fields set. The 5378 exception object has been allocated by the language-specific 5379 runtime, and has a language-specific format, exception that it 5380 shall contain an _Unwind_Exception. 5381 5382 Return Value 5383 5384 _Unwind_RaiseException() does not return unless an error 5385 condition is found. If an error condition occurs, an 5386 _Unwind_Reason_Code is returnd: 5387 5388 _URC_END_OF_STACK 5389 The unwinder encountered the end of the stack during 5390 phase one without finding a handler. The unwind runtime 5391 will not have modified the stack. The C++ runtime will 5392 normally call uncaught_exception() in this case. 5393 5394 _URC_FATAL_PHASE1_ERROR 5395 The unwinder encountered an unexpected error during 5396 phase one, because of something like stack corruption. 5397 The unwind runtime will not have modified the stack. 5398 The C++ runtime will normally call terminate() in this 5399 case. 5400 5401 _URC_FATAL_PHASE2_ERROR 5402 The unwinder encountered an unexpected error during 5403 phase two. This is usually a throw, which will call 5404 terminate(). 5405 5406 _Unwind_Resume 5407 5408 Name 5409 5410 _Unwind_Resume -- private C++ error handling method 5411 5412 Synopsis 5413 5414 void _Unwind_Resume(struct _Unwind_Exception * object); 5415 5416 Description 5417 5418 _Unwind_Resume() resumes propagation of an existing exception 5419 object. A call to this routine is inserted as the end of a 5420 landing pad that performs cleanup, but does not resume normal 5421 execution. It causes unwinding to proceed further. 5422 5423 _Unwind_SetGR 5424 5425 Name 5426 5427 _Unwind_SetGR -- private C++ error handling method 5428 5429 Synopsis 5430 5431 void _Unwind_SetGR(struct _Unwind_Context * context, int 5432 index, uint value); 5433 5434 Description 5435 5436 _Unwind_SetGR() sets the value of the register indexed for the 5437 routine identified by the unwind context. 5438 5439 _Unwind_SetIP 5440 5441 Name 5442 5443 _Unwind_SetIP -- private C++ error handling method 5444 5445 Synopsis 5446 5447 void _Unwind_SetIP(struct _Unwind_Context * context, uint 5448 value); 5449 5450 Description 5451 5452 _Unwind_SetIP() sets the value of the instruction pointer for 5453 the routine identified by the unwind context 5454 _________________________________________________________ 5455 5456 11.11. Interfaces for libdl 5457 5458 Table 11-33 defines the library name and shared object name 5459 for the libdl library 5460 5461 Table 11-33. libdl Definition 5462 Library: libdl 5463 SONAME: libdl.so.2 5464 5465 The behavior of the interfaces in this library is specified by 5466 the following specifications: 5467 5468 [LSB] This Specification 5469 [SUSv3] ISO POSIX (2003) 5470 _________________________________________________________ 5471 5472 11.11.1. Dynamic Loader 5473 _________________________________________________________ 5474 5475 11.11.1.1. Interfaces for Dynamic Loader 5476 5477 An LSB conforming implementation shall provide the 5478 architecture specific functions for Dynamic Loader specified 5479 in Table 11-34, with the full mandatory functionality as 5480 described in the referenced underlying specification. 5481 5482 Table 11-34. libdl - Dynamic Loader Function Interfaces 5483 dladdr(GLIBC_2.2.5) [LSB] dlclose(GLIBC_2.2.5) [SUSv3] 5484 dlerror(GLIBC_2.2.5) [SUSv3] dlopen(GLIBC_2.2.5) [LSB] 5485 dlsym(GLIBC_2.2.5) [LSB] 5486 _________________________________________________________ 5487 5488 11.12. Data Definitions for libdl 5489 5490 This section defines global identifiers and their values that 5491 are associated with interfaces contained in libdl. These 5492 definitions are organized into groups that correspond to 5493 system headers. This convention is used as a convenience for 5494 the reader, and does not imply the existence of these headers, 5495 or their content. Where an interface is defined as requiring a 5496 particular system header file all of the data definitions for 5497 that system header file presented here shall be in effect. 5498 5499 This section gives data definitions to promote binary 5500 application portability, not to repeat source interface 5501 definitions available elsewhere. System providers and 5502 application developers should use this ABI to supplement - not 5503 to replace - source interface definition specifications. 5504 5505 This specification uses the ISO C (1999) C Language as the 5506 reference programming language, and data definitions are 5507 specified in ISO C format. The C language is used here as a 5508 convenient notation. Using a C language description of these 5509 data objects does not preclude their use by other programming 5510 languages. 5511 _________________________________________________________ 5512 5513 11.12.1. dlfcn.h 5514 5515 extern int dladdr(const void *, Dl_info *); 5516 extern int dlclose(void *); 5517 extern char *dlerror(void); 5518 extern void *dlopen(char *, int); 5519 extern void *dlsym(void *, char *); 5520 _________________________________________________________ 5521 5522 11.13. Interfaces for libcrypt 5523 5524 Table 11-35 defines the library name and shared object name 5525 for the libcrypt library 5526 5527 Table 11-35. libcrypt Definition 5528 Library: libcrypt 5529 SONAME: libcrypt.so.1 5530 5531 The behavior of the interfaces in this library is specified by 5532 the following specifications: 5533 5534 [SUSv3] ISO POSIX (2003) 5535 _________________________________________________________ 5536 5537 11.13.1. Encryption 5538 _________________________________________________________ 5539 5540 11.13.1.1. Interfaces for Encryption 5541 5542 An LSB conforming implementation shall provide the 5543 architecture specific functions for Encryption specified in 5544 Table 11-36, with the full mandatory functionality as 5545 described in the referenced underlying specification. 5546 5547 Table 11-36. libcrypt - Encryption Function Interfaces 5548 crypt(GLIBC_2.2.5) [SUSv3] encrypt(GLIBC_2.2.5) [SUSv3] 5549 setkey(GLIBC_2.2.5) [SUSv3] 5550 5551 IV. Utility Libraries 5552 5553 Table of Contents 5554 12. Libraries 5555 5556 12.1. Interfaces for libz 5557 5558 12.1.1. Compression Library 5559 5560 12.2. Data Definitions for libz 5561 5562 12.2.1. zlib.h 5563 5564 12.3. Interfaces for libncurses 5565 5566 12.3.1. Curses 5567 5568 12.4. Data Definitions for libncurses 5569 5570 12.4.1. curses.h 5571 12.4.2. term.h 5572 5573 12.5. Interfaces for libutil 5574 5575 12.5.1. Utility Functions 5576 _________________________________________________________ 5577 5578 Chapter 12. Libraries 5579 5580 An LSB-conforming implementation shall also support some 5581 utility libraries which are built on top of the interfaces 5582 provided by the base libraries. These libraries implement 5583 common functionality, and hide additional system dependent 5584 information such as file formats and device names. 5585 _________________________________________________________ 5586 5587 12.1. Interfaces for libz 5588 5589 Table 12-1 defines the library name and shared object name for 5590 the libz library 5591 5592 Table 12-1. libz Definition 5593 Library: libz 5594 SONAME: libz.so.1 5595 _________________________________________________________ 5596 5597 12.1.1. Compression Library 5598 _________________________________________________________ 5599 5600 12.1.1.1. Interfaces for Compression Library 5601 5602 No external functions are defined for libz - Compression 5603 Library in this part of the specification. See also the 5604 generic specification. 5605 _________________________________________________________ 5606 5607 12.2. Data Definitions for libz 5608 5609 This section defines global identifiers and their values that 5610 are associated with interfaces contained in libz. These 5611 definitions are organized into groups that correspond to 5612 system headers. This convention is used as a convenience for 5613 the reader, and does not imply the existence of these headers, 5614 or their content. Where an interface is defined as requiring a 5615 particular system header file all of the data definitions for 5616 that system header file presented here shall be in effect. 5617 5618 This section gives data definitions to promote binary 5619 application portability, not to repeat source interface 5620 definitions available elsewhere. System providers and 5621 application developers should use this ABI to supplement - not 5622 to replace - source interface definition specifications. 5623 5624 This specification uses the ISO C (1999) C Language as the 5625 reference programming language, and data definitions are 5626 specified in ISO C . The C language is used here as a 5627 convenient notation. Using a C language description of these 5628 data objects does not preclude their use by other programming 5629 languages. 5630 _________________________________________________________ 5631 5632 12.2.1. zlib.h 5633 5634 extern int gzread(gzFile, voidp, unsigned int); 5635 extern int gzclose(gzFile); 5636 extern gzFile gzopen(const char *, const char *); 5637 extern gzFile gzdopen(int, const char *); 5638 extern int gzwrite(gzFile, voidpc, unsigned int); 5639 extern int gzflush(gzFile, int); 5640 extern const char *gzerror(gzFile, int *); 5641 extern uLong adler32(uLong, const Bytef *, uInt); 5642 extern int compress(Bytef *, uLongf *, const Bytef *, uLong); 5643 extern int compress2(Bytef *, uLongf *, const Bytef *, uLong, int); 5644 extern uLong crc32(uLong, const Bytef *, uInt); 5645 extern int deflate(z_streamp, int); 5646 extern int deflateCopy(z_streamp, z_streamp); 5647 extern int deflateEnd(z_streamp); 5648 extern int deflateInit2_(z_streamp, int, int, int, int, int, const char *, 5649 int); 5650 extern int deflateInit_(z_streamp, int, const char *, int); 5651 extern int deflateParams(z_streamp, int, int); 5652 extern int deflateReset(z_streamp); 5653 extern int deflateSetDictionary(z_streamp, const Bytef *, uInt); 5654 extern const uLongf *get_crc_table(void); 5655 extern int gzeof(gzFile); 5656 extern int gzgetc(gzFile); 5657 extern char *gzgets(gzFile, char *, int); 5658 extern int gzprintf(gzFile, const char *, ...); 5659 extern int gzputc(gzFile, int); 5660 extern int gzputs(gzFile, const char *); 5661 extern int gzrewind(gzFile); 5662 extern z_off_t gzseek(gzFile, z_off_t, int); 5663 extern int gzsetparams(gzFile, int, int); 5664 extern z_off_t gztell(gzFile); 5665 extern int inflate(z_streamp, int); 5666 extern int inflateEnd(z_streamp); 5667 extern int inflateInit2_(z_streamp, int, const char *, int); 5668 extern int inflateInit_(z_streamp, const char *, int); 5669 extern int inflateReset(z_streamp); 5670 extern int inflateSetDictionary(z_streamp, const Bytef *, uInt); 5671 extern int inflateSync(z_streamp); 5672 extern int inflateSyncPoint(z_streamp); 5673 extern int uncompress(Bytef *, uLongf *, const Bytef *, uLong); 5674 extern const char *zError(int); 5675 extern const char *zlibVersion(void); 5676 extern uLong deflateBound(z_streamp, uLong); 5677 extern uLong compressBound(uLong); 5678 _________________________________________________________ 5679 5680 12.3. Interfaces for libncurses 5681 5682 Table 12-2 defines the library name and shared object name for 5683 the libncurses library 5684 5685 Table 12-2. libncurses Definition 5686 Library: libncurses 5687 SONAME: libncurses.so.5 5688 _________________________________________________________ 5689 5690 12.3.1. Curses 5691 _________________________________________________________ 5692 5693 12.3.1.1. Interfaces for Curses 5694 5695 No external functions are defined for libncurses - Curses in 5696 this part of the specification. See also the generic 5697 specification. 5698 _________________________________________________________ 5699 5700 12.4. Data Definitions for libncurses 5701 5702 This section defines global identifiers and their values that 5703 are associated with interfaces contained in libncurses. These 5704 definitions are organized into groups that correspond to 5705 system headers. This convention is used as a convenience for 5706 the reader, and does not imply the existence of these headers, 5707 or their content. Where an interface is defined as requiring a 5708 particular system header file all of the data definitions for 5709 that system header file presented here shall be in effect. 5710 5711 This section gives data definitions to promote binary 5712 application portability, not to repeat source interface 5713 definitions available elsewhere. System providers and 5714 application developers should use this ABI to supplement - not 5715 to replace - source interface definition specifications. 5716 5717 This specification uses the ISO C (1999) C Language as the 5718 reference programming language, and data definitions are 5719 specified in ISO C . The C language is used here as a 5720 convenient notation. Using a C language description of these 5721 data objects does not preclude their use by other programming 5722 languages. 5723 _________________________________________________________ 5724 5725 12.4.1. curses.h 5726 5727 extern int addch(const chtype); 5728 extern int addchnstr(const chtype *, int); 5729 extern int addchstr(const chtype *); 5730 extern int addnstr(const char *, int); 5731 extern int addstr(const char *); 5732 extern int attroff(int); 5733 extern int attron(int); 5734 extern int attrset(int); 5735 extern int attr_get(attr_t *, short *, void *); 5736 extern int attr_off(attr_t, void *); 5737 extern int attr_on(attr_t, void *); 5738 extern int attr_set(attr_t, short, void *); 5739 extern int baudrate(void); 5740 extern int beep(void); 5741 extern int bkgd(chtype); 5742 extern void bkgdset(chtype); 5743 extern int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, 5744 chtype); 5745 extern int box(WINDOW *, chtype, chtype); 5746 extern bool can_change_color(void); 5747 extern int cbreak(void); 5748 extern int chgat(int, attr_t, short, const void *); 5749 extern int clear(void); 5750 extern int clearok(WINDOW *, bool); 5751 extern int clrtobot(void); 5752 extern int clrtoeol(void); 5753 extern int color_content(short, short *, short *, short *); 5754 extern int color_set(short, void *); 5755 extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, 5756 int); 5757 extern int curs_set(int); 5758 extern int def_prog_mode(void); 5759 extern int def_shell_mode(void); 5760 extern int delay_output(int); 5761 extern int delch(void); 5762 extern void delscreen(SCREEN *); 5763 extern int delwin(WINDOW *); 5764 extern int deleteln(void); 5765 extern WINDOW *derwin(WINDOW *, int, int, int, int); 5766 extern int doupdate(void); 5767 extern WINDOW *dupwin(WINDOW *); 5768 extern int echo(void); 5769 extern int echochar(const chtype); 5770 extern int erase(void); 5771 extern int endwin(void); 5772 extern char erasechar(void); 5773 extern void filter(void); 5774 extern int flash(void); 5775 extern int flushinp(void); 5776 extern chtype getbkgd(WINDOW *); 5777 extern int getch(void); 5778 extern int getnstr(char *, int); 5779 extern int getstr(char *); 5780 extern WINDOW *getwin(FILE *); 5781 extern int halfdelay(int); 5782 extern bool has_colors(void); 5783 extern bool has_ic(void); 5784 extern bool has_il(void); 5785 extern int hline(chtype, int); 5786 extern void idcok(WINDOW *, bool); 5787 extern int idlok(WINDOW *, bool); 5788 extern void immedok(WINDOW *, bool); 5789 extern chtype inch(void); 5790 extern int inchnstr(chtype *, int); 5791 extern int inchstr(chtype *); 5792 extern WINDOW *initscr(void); 5793 extern int init_color(short, short, short, short); 5794 extern int init_pair(short, short, short); 5795 extern int innstr(char *, int); 5796 extern int insch(chtype); 5797 extern int insdelln(int); 5798 extern int insertln(void); 5799 extern int insnstr(const char *, int); 5800 extern int insstr(const char *); 5801 extern int instr(char *); 5802 extern int intrflush(WINDOW *, bool); 5803 extern bool isendwin(void); 5804 extern bool is_linetouched(WINDOW *, int); 5805 extern bool is_wintouched(WINDOW *); 5806 extern const char *keyname(int); 5807 extern int keypad(WINDOW *, bool); 5808 extern char killchar(void); 5809 extern int leaveok(WINDOW *, bool); 5810 extern char *longname(void); 5811 extern int meta(WINDOW *, bool); 5812 extern int move(int, int); 5813 extern int mvaddch(int, int, const chtype); 5814 extern int mvaddchnstr(int, int, const chtype *, int); 5815 extern int mvaddchstr(int, int, const chtype *); 5816 extern int mvaddnstr(int, int, const char *, int); 5817 extern int mvaddstr(int, int, const char *); 5818 extern int mvchgat(int, int, int, attr_t, short, const void *); 5819 extern int mvcur(int, int, int, int); 5820 extern int mvdelch(int, int); 5821 extern int mvderwin(WINDOW *, int, int); 5822 extern int mvgetch(int, int); 5823 extern int mvgetnstr(int, int, char *, int); 5824 extern int mvgetstr(int, int, char *); 5825 extern int mvhline(int, int, chtype, int); 5826 extern chtype mvinch(int, int); 5827 extern int mvinchnstr(int, int, chtype *, int); 5828 extern int mvinchstr(int, int, chtype *); 5829 extern int mvinnstr(int, int, char *, int); 5830 extern int mvinsch(int, int, chtype); 5831 extern int mvinsnstr(int, int, const char *, int); 5832 extern int mvinsstr(int, int, const char *); 5833 extern int mvinstr(int, int, char *); 5834 extern int mvprintw(int, int, char *, ...); 5835 extern int mvscanw(int, int, const char *, ...); 5836 extern int mvvline(int, int, chtype, int); 5837 extern int mvwaddch(WINDOW *, int, int, const chtype); 5838 extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 5839 extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 5840 extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 5841 extern int mvwaddstr(WINDOW *, int, int, const char *); 5842 extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void*); 5843 extern int mvwdelch(WINDOW *, int, int); 5844 extern int mvwgetch(WINDOW *, int, int); 5845 extern int mvwgetnstr(WINDOW *, int, int, char *, int); 5846 extern int mvwgetstr(WINDOW *, int, int, char *); 5847 extern int mvwhline(WINDOW *, int, int, chtype, int); 5848 extern int mvwin(WINDOW *, int, int); 5849 extern chtype mvwinch(WINDOW *, int, int); 5850 extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 5851 extern int mvwinchstr(WINDOW *, int, int, chtype *); 5852 extern int mvwinnstr(WINDOW *, int, int, char *, int); 5853 extern int mvwinsch(WINDOW *, int, int, chtype); 5854 extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 5855 extern int mvwinsstr(WINDOW *, int, int, const char *); 5856 extern int mvwinstr(WINDOW *, int, int, char *); 5857 extern int mvwprintw(WINDOW *, int, int, char *, ...); 5858 extern int mvwscanw(WINDOW *, int, int, const char *, ...); 5859 extern int mvwvline(WINDOW *, int, int, chtype, int); 5860 extern int napms(int); 5861 extern WINDOW *newpad(int, int); 5862 extern SCREEN *newterm(const char *, FILE *, FILE *); 5863 extern WINDOW *newwin(int, int, int, int); 5864 extern int nl(void); 5865 extern int nocbreak(void); 5866 extern int nodelay(WINDOW *, bool); 5867 extern int noecho(void); 5868 extern int nonl(void); 5869 extern void noqiflush(void); 5870 extern int noraw(void); 5871 extern int notimeout(WINDOW *, bool); 5872 extern int overlay(const WINDOW *, WINDOW *); 5873 extern int overwrite(const WINDOW *, WINDOW *); 5874 extern int pair_content(short, short *, short *); 5875 extern int pechochar(WINDOW *, chtype); 5876 extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 5877 extern int prefresh(WINDOW *, int, int, int, int, int, int); 5878 extern int printw(char *, ...); 5879 extern int putwin(WINDOW *, FILE *); 5880 extern void qiflush(void); 5881 extern int raw(void); 5882 extern int redrawwin(WINDOW *); 5883 extern int refresh(void); 5884 extern int resetty(void); 5885 extern int reset_prog_mode(void); 5886 extern int reset_shell_mode(void); 5887 extern int ripoffline(int, int (*init) (WINDOW *, int) 5888 ); 5889 extern int savetty(void); 5890 extern int scanw(const char *, ...); 5891 extern int scr_dump(const char *); 5892 extern int scr_init(const char *); 5893 extern int scrl(int); 5894 extern int scroll(WINDOW *); 5895 extern int scrollok(WINDOW *, typedef unsigned char bool); 5896 extern int scr_restore(const char *); 5897 extern int scr_set(const char *); 5898 extern int setscrreg(int, int); 5899 extern SCREEN *set_term(SCREEN *); 5900 extern int slk_attroff(const typedef unsigned long int chtype); 5901 extern int slk_attron(const typedef unsigned long int chtype); 5902 extern int slk_attrset(const typedef unsigned long int chtype); 5903 extern int slk_attr_set(const typedef chtype attr_t, short, void *); 5904 extern int slk_clear(void); 5905 extern int slk_color(short); 5906 extern int slk_init(int); 5907 extern char *slk_label(int); 5908 extern int slk_noutrefresh(void); 5909 extern int slk_refresh(void); 5910 extern int slk_restore(void); 5911 extern int slk_set(int, const char *, int); 5912 extern int slk_touch(void); 5913 extern int standout(void); 5914 extern int standend(void); 5915 extern int start_color(void); 5916 extern WINDOW *subpad(WINDOW *, int, int, int, int); 5917 extern WINDOW *subwin(WINDOW *, int, int, int, int); 5918 extern int syncok(WINDOW *, typedef unsigned char bool); 5919 extern typedef unsigned long int chtype termattrs(void); 5920 extern char *termname(void); 5921 extern void timeout(int); 5922 extern int typeahead(int); 5923 extern int ungetch(int); 5924 extern int untouchwin(WINDOW *); 5925 extern void use_env(typedef unsigned char bool); 5926 extern int vidattr(typedef unsigned long int chtype); 5927 extern int vidputs(typedef unsigned long int chtype, 5928 int (*vidputs_int) (int) 5929 ); 5930 extern int vline(typedef unsigned long int chtype, int); 5931 extern int vwprintw(WINDOW *, char *, typedef void *va_list); 5932 extern int vw_printw(WINDOW *, const char *, typedef void *va_list); 5933 extern int vwscanw(WINDOW *, const char *, typedef void *va_list); 5934 extern int vw_scanw(WINDOW *, const char *, typedef void *va_list); 5935 extern int waddch(WINDOW *, const typedef unsigned long int chtype); 5936 extern int waddchnstr(WINDOW *, const typedef unsigned long int chtype*, 5937 int); 5938 extern int waddchstr(WINDOW *, const typedef unsigned long int chtype *); 5939 extern int waddnstr(WINDOW *, const char *, int); 5940 extern int waddstr(WINDOW *, const char *); 5941 extern int wattron(WINDOW *, int); 5942 extern int wattroff(WINDOW *, int); 5943 extern int wattrset(WINDOW *, int); 5944 extern int wattr_get(WINDOW *, attr_t *, short *, void *); 5945 extern int wattr_on(WINDOW *, typedef chtype attr_t, void *); 5946 extern int wattr_off(WINDOW *, typedef chtype attr_t, void *); 5947 extern int wattr_set(WINDOW *, typedef chtype attr_t, short, void *); 5948 extern int wbkgd(WINDOW *, typedef unsigned long int chtype); 5949 extern void wbkgdset(WINDOW *, typedef unsigned long int chtype); 5950 extern int wborder(WINDOW *, typedef unsigned long int chtype, 5951 typedef unsigned long int chtype, 5952 typedef unsigned long int chtype, 5953 typedef unsigned long int chtype, 5954 typedef unsigned long int chtype, 5955 typedef unsigned long int chtype, 5956 typedef unsigned long int chtype, 5957 typedef unsigned long int chtype); 5958 extern int wchgat(WINDOW *, int, typedef chtype attr_t, short, 5959 const void *); 5960 extern int wclear(WINDOW *); 5961 extern int wclrtobot(WINDOW *); 5962 extern int wclrtoeol(WINDOW *); 5963 extern int wcolor_set(WINDOW *, short, void *); 5964 extern void wcursyncup(WINDOW *); 5965 extern int wdelch(WINDOW *); 5966 extern int wdeleteln(WINDOW *); 5967 extern int wechochar(WINDOW *, const typedef unsigned long int chtype); 5968 extern int werase(WINDOW *); 5969 extern int wgetch(WINDOW *); 5970 extern int wgetnstr(WINDOW *, char *, int); 5971 extern int wgetstr(WINDOW *, char *); 5972 extern int whline(WINDOW *, typedef unsigned long int chtype, int); 5973 extern typedef unsigned long int chtype winch(WINDOW *); 5974 extern int winchnstr(WINDOW *, chtype *, int); 5975 extern int winchstr(WINDOW *, chtype *); 5976 extern int winnstr(WINDOW *, char *, int); 5977 extern int winsch(WINDOW *, typedef unsigned long int chtype); 5978 extern int winsdelln(WINDOW *, int); 5979 extern int winsertln(WINDOW *); 5980 extern int winsnstr(WINDOW *, const char *, int); 5981 extern int winsstr(WINDOW *, const char *); 5982 extern int winstr(WINDOW *, char *); 5983 extern int wmove(WINDOW *, int, int); 5984 extern int wnoutrefresh(WINDOW *); 5985 extern int wprintw(WINDOW *, char *, ...); 5986 extern int wredrawln(WINDOW *, int, int); 5987 extern int wrefresh(WINDOW *); 5988 extern int wscanw(WINDOW *, const char *, ...); 5989 extern int wscrl(WINDOW *, int); 5990 extern int wsetscrreg(WINDOW *, int, int); 5991 extern int wstandout(WINDOW *); 5992 extern int wstandend(WINDOW *); 5993 extern void wsyncdown(WINDOW *); 5994 extern void wsyncup(WINDOW *); 5995 extern void wtimeout(WINDOW *, int); 5996 extern int wtouchln(WINDOW *, int, int, int); 5997 extern int wvline(WINDOW *, typedef unsigned long int chtype, int); 5998 extern char *unctrl(typedef unsigned long int chtype); 5999 extern int COLORS(void); 6000 extern int COLOR_PAIRS(void); 6001 extern chtype acs_map(void); 6002 extern WINDOW *curscr(void); 6003 extern WINDOW *stdscr(void); 6004 extern int COLS(void); 6005 extern int LINES(void); 6006 extern int touchline(WINDOW *, int, int); 6007 extern int touchwin(WINDOW *); 6008 _________________________________________________________ 6009 6010 12.4.2. term.h 6011 6012 extern int putp(const char *); 6013 extern int tigetflag(const char *); 6014 extern int tigetnum(const char *); 6015 extern char *tigetstr(const char *); 6016 extern char *tparm(const char *, ...); 6017 extern TERMINAL *set_curterm(TERMINAL *); 6018 extern int del_curterm(TERMINAL *); 6019 extern int restartterm(char *, int, int *); 6020 extern int setupterm(char *, int, int *); 6021 extern char *tgetstr(char *, char **); 6022 extern char *tgoto(const char *, int, int); 6023 extern int tgetent(char *, const char *); 6024 extern int tgetflag(char *); 6025 extern int tgetnum(char *); 6026 extern int tputs(const char *, int, int (*putcproc) (int) 6027 ); 6028 extern TERMINAL *cur_term(void); 6029 _________________________________________________________ 6030 6031 12.5. Interfaces for libutil 6032 6033 Table 12-3 defines the library name and shared object name for 6034 the libutil library 6035 6036 Table 12-3. libutil Definition 6037 Library: libutil 6038 SONAME: libutil.so.1 6039 6040 The behavior of the interfaces in this library is specified by 6041 the following specifications: 6042 6043 [LSB] This Specification 6044 _________________________________________________________ 6045 6046 12.5.1. Utility Functions 6047 _________________________________________________________ 6048 6049 12.5.1.1. Interfaces for Utility Functions 6050 6051 An LSB conforming implementation shall provide the 6052 architecture specific functions for Utility Functions 6053 specified in Table 12-4, with the full mandatory functionality 6054 as described in the referenced underlying specification. 6055 6056 Table 12-4. libutil - Utility Functions Function Interfaces 6057 forkpty(GLIBC_2.2.5) [LSB] login(GLIBC_2.2.5) [LSB] 6058 login_tty(GLIBC_2.2.5) [LSB] logout(GLIBC_2.2.5) [LSB] 6059 logwtmp(GLIBC_2.2.5) [LSB] openpty(GLIBC_2.2.5) [LSB] 6060 6061 V. Package Format and Installation 6062 6063 Table of Contents 6064 13. Software Installation 6065 6066 13.1. Package Dependencies 6067 13.2. Package Architecture Considerations 6068 _________________________________________________________ 6069 6070 Chapter 13. Software Installation 6071 _________________________________________________________ 6072 6073 13.1. Package Dependencies 6074 6075 The LSB runtime environment shall provde the following 6076 dependencies. 6077 6078 lsb-core-amd64 6079 6080 This dependency is used to indicate that the application is 6081 dependent on features contained in the LSB-Core specification. 6082 6083 These dependencies shall have a version of 3.0. 6084 6085 Other LSB modules may add additional dependencies; such 6086 dependencies shall have the format lsb-module-amd64. 6087 _________________________________________________________ 6088 6089 13.2. Package Architecture Considerations 6090 6091 All packages must specify an architecture of x86_64. An LSB 6092 runtime environment must accept an architecture of x86_64 even 6093 if the native architecture is different. 6094 6095 The archnum value in the Lead Section shall be 0x0001. 6096 _________________________________________________________ 6097 6098 Appendix A. Alphabetical Listing of Interfaces 6099 _________________________________________________________ 6100 6101 A.1. libgcc_s 6102 6103 The behavior of the interfaces in this library is specified by 6104 the following Standards. 6105 6106 This Specification 6107 6108 Table A-1. libgcc_s Function Interfaces 6109 _Unwind_Backtrace[1] _Unwind_GetDataRelBase[1] 6110 _Unwind_RaiseException[1] 6111 _Unwind_DeleteException[1] _Unwind_GetGR[1] _Unwind_Resume[1] 6112 _Unwind_FindEnclosingFunction[1] _Unwind_GetIP[1] 6113 _Unwind_Resume_or_Rethrow[1] 6114 _Unwind_Find_FDE[1] _Unwind_GetLanguageSpecificData[1] 6115 _Unwind_SetGR[1] 6116 _Unwind_ForcedUnwind[1] _Unwind_GetRegionStart[1] 6117 _Unwind_SetIP[1] 6118 _Unwind_GetCFA[1] _Unwind_GetTextRelBase[1] 6119 _________________________________________________________ 6120 6121 A.2. libm 6122 6123 The behavior of the interfaces in this library is specified by 6124 the following Standards. 6125 6126 ISO C (1999) 6127 ISO POSIX (2003) 6128 6129 Table A-2. libm Function Interfaces 6130 __fpclassifyl[1] __signbitl[1] exp2l[1] 6131 _________________________________________________________ 6132 6133 Appendix B. GNU Free Documentation License (Informative) 6134 6135 This specification is published under the terms of the GNU 6136 Free Documentation License, Version 1.1, March 2000 6137 6138 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 6139 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 6140 permitted to copy and distribute verbatim copies of this 6141 license document, but changing it is not allowed. 6142 _________________________________________________________ 6143 6144 B.1. PREAMBLE 6145 6146 The purpose of this License is to make a manual, textbook, or 6147 other written document "free" in the sense of freedom: to 6148 assure everyone the effective freedom to copy and redistribute 6149 it, with or without modifying it, either commercially or 6150 noncommercially. Secondarily, this License preserves for the 6151 author and publisher a way to get credit for their work, while 6152 not being considered responsible for modifications made by 6153 others. 6154 6155 This License is a kind of "copyleft", which means that 6156 derivative works of the document must themselves be free in 6157 the same sense. It complements the GNU General Public License, 6158 which is a copyleft license designed for free software. 6159 6160 We have designed this License in order to use it for manuals 6161 for free software, because free software needs free 6162 documentation: a free program should come with manuals 6163 providing the same freedoms that the software does. But this 6164 License is not limited to software manuals; it can be used for 6165 any textual work, regardless of subject matter or whether it 6166 is published as a printed book. We recommend this License 6167 principally for works whose purpose is instruction or 6168 reference. 6169 _________________________________________________________ 6170 6171 B.2. APPLICABILITY AND DEFINITIONS 6172 6173 This License applies to any manual or other work that contains 6174 a notice placed by the copyright holder saying it can be 6175 distributed under the terms of this License. The "Document", 6176 below, refers to any such manual or work. Any member of the 6177 public is a licensee, and is addressed as "you". 6178 6179 A "Modified Version" of the Document means any work containing 6180 the Document or a portion of it, either copied verbatim, or 6181 with modifications and/or translated into another language. 6182 6183 A "Secondary Section" is a named appendix or a front-matter 6184 section of the Document that deals exclusively with the 6185 relationship of the publishers or authors of the Document to 6186 the Document's overall subject (or to related matters) and 6187 contains nothing that could fall directly within that overall 6188 subject. (For example, if the Document is in part a textbook 6189 of mathematics, a Secondary Section may not explain any 6190 mathematics.) The relationship could be a matter of historical 6191 connection with the subject or with related matters, or of 6192 legal, commercial, philosophical, ethical or political 6193 position regarding them. 6194 6195 The "Invariant Sections" are certain Secondary Sections whose 6196 titles are designated, as being those of Invariant Sections, 6197 in the notice that says that the Document is released under 6198 this License. 6199 6200 The "Cover Texts" are certain short passages of text that are 6201 listed, as Front-Cover Texts or Back-Cover Texts, in the 6202 notice that says that the Document is released under this 6203 License. 6204 6205 A "Transparent" copy of the Document means a machine-readable 6206 copy, represented in a format whose specification is available 6207 to the general public, whose contents can be viewed and edited 6208 directly and straightforwardly with generic text editors or 6209 (for images composed of pixels) generic paint programs or (for 6210 drawings) some widely available drawing editor, and that is 6211 suitable for input to text formatters or for automatic 6212 translation to a variety of formats suitable for input to text 6213 formatters. A copy made in an otherwise Transparent file 6214 format whose markup has been designed to thwart or discourage 6215 subsequent modification by readers is not Transparent. A copy 6216 that is not "Transparent" is called "Opaque". 6217 6218 Examples of suitable formats for Transparent copies include 6219 plain ASCII without markup, Texinfo input format, LaTeX input 6220 format, SGML or XML using a publicly available DTD, and 6221 standard-conforming simple HTML designed for human 6222 modification. Opaque formats include PostScript, PDF, 6223 proprietary formats that can be read and edited only by 6224 proprietary word processors, SGML or XML for which the DTD 6225 and/or processing tools are not generally available, and the 6226 machine-generated HTML produced by some word processors for 6227 output purposes only. 6228 6229 The "Title Page" means, for a printed book, the title page 6230 itself, plus such following pages as are needed to hold, 6231 legibly, the material this License requires to appear in the 6232 title page. For works in formats which do not have any title 6233 page as such, "Title Page" means the text near the most 6234 prominent appearance of the work's title, preceding the 6235 beginning of the body of the text. 6236 _________________________________________________________ 6237 6238 B.3. VERBATIM COPYING 6239 6240 You may copy and distribute the Document in any medium, either 6241 commercially or noncommercially, provided that this License, 6242 the copyright notices, and the license notice saying this 6243 License applies to the Document are reproduced in all copies, 6244 and that you add no other conditions whatsoever to those of 6245 this License. You may not use technical measures to obstruct 6246 or control the reading or further copying of the copies you 6247 make or distribute. However, you may accept compensation in 6248 exchange for copies. If you distribute a large enough number 6249 of copies you must also follow the conditions in section 3. 6250 6251 You may also lend copies, under the same conditions stated 6252 above, and you may publicly display copies. 6253 _________________________________________________________ 6254 6255 B.4. COPYING IN QUANTITY 6256 6257 If you publish printed copies of the Document numbering more 6258 than 100, and the Document's license notice requires Cover 6259 Texts, you must enclose the copies in covers that carry, 6260 clearly and legibly, all these Cover Texts: Front-Cover Texts 6261 on the front cover, and Back-Cover Texts on the back cover. 6262 Both covers must also clearly and legibly identify you as the 6263 publisher of these copies. The front cover must present the 6264 full title with all words of the title equally prominent and 6265 visible. You may add other material on the covers in addition. 6266 Copying with changes limited to the covers, as long as they 6267 preserve the title of the Document and satisfy these 6268 conditions, can be treated as verbatim copying in other 6269 respects. 6270 6271 If the required texts for either cover are too voluminous to 6272 fit legibly, you should put the first ones listed (as many as 6273 fit reasonably) on the actual cover, and continue the rest 6274 onto adjacent pages. 6275 6276 If you publish or distribute Opaque copies of the Document 6277 numbering more than 100, you must either include a 6278 machine-readable Transparent copy along with each Opaque copy, 6279 or state in or with each Opaque copy a publicly-accessible 6280 computer-network location containing a complete Transparent 6281 copy of the Document, free of added material, which the 6282 general network-using public has access to download 6283 anonymously at no charge using public-standard network 6284 protocols. If you use the latter option, you must take 6285 reasonably prudent steps, when you begin distribution of 6286 Opaque copies in quantity, to ensure that this Transparent 6287 copy will remain thus accessible at the stated location until 6288 at least one year after the last time you distribute an Opaque 6289 copy (directly or through your agents or retailers) of that 6290 edition to the public. 6291 6292 It is requested, but not required, that you contact the 6293 authors of the Document well before redistributing any large 6294 number of copies, to give them a chance to provide you with an 6295 updated version of the Document. 6296 _________________________________________________________ 6297 6298 B.5. MODIFICATIONS 6299 6300 You may copy and distribute a Modified Version of the Document 6301 under the conditions of sections 2 and 3 above, provided that 6302 you release the Modified Version under precisely this License, 6303 with the Modified Version filling the role of the Document, 6304 thus licensing distribution and modification of the Modified 6305 Version to whoever possesses a copy of it. In addition, you 6306 must do these things in the Modified Version: 6307 6308 A. Use in the Title Page (and on the covers, if any) a title 6309 distinct from that of the Document, and from those of 6310 previous versions (which should, if there were any, be 6311 listed in the History section of the Document). You may 6312 use the same title as a previous version if the original 6313 publisher of that version gives permission. 6314 B. List on the Title Page, as authors, one or more persons or 6315 entities responsible for authorship of the modifications 6316 in the Modified Version, together with at least five of 6317 the principal authors of the Document (all of its 6318 principal authors, if it has less than five). 6319 C. State on the Title page the name of the publisher of the 6320 Modified Version, as the publisher. 6321 D. Preserve all the copyright notices of the Document. 6322 E. Add an appropriate copyright notice for your modifications 6323 adjacent to the other copyright notices. 6324 F. Include, immediately after the copyright notices, a 6325 license notice giving the public permission to use the 6326 Modified Version under the terms of this License, in the 6327 form shown in the Addendum below. 6328 G. Preserve in that license notice the full lists of 6329 Invariant Sections and required Cover Texts given in the 6330 Document's license notice. 6331 H. Include an unaltered copy of this License. 6332 I. Preserve the section entitled "History", and its title, 6333 and add to it an item stating at least the title, year, 6334 new authors, and publisher of the Modified Version as 6335 given on the Title Page. If there is no section entitled 6336 "History" in the Document, create one stating the title, 6337 year, authors, and publisher of the Document as given on 6338 its Title Page, then add an item describing the Modified 6339 Version as stated in the previous sentence. 6340 J. Preserve the network location, if any, given in the 6341 Document for public access to a Transparent copy of the 6342 Document, and likewise the network locations given in the 6343 Document for previous versions it was based on. These may 6344 be placed in the "History" section. You may omit a network 6345 location for a work that was published at least four years 6346 before the Document itself, or if the original publisher 6347 of the version it refers to gives permission. 6348 K. In any section entitled "Acknowledgements" or 6349 "Dedications", preserve the section's title, and preserve 6350 in the section all the substance and tone of each of the 6351 contributor acknowledgements and/or dedications given 6352 therein. 6353 L. Preserve all the Invariant Sections of the Document, 6354 unaltered in their text and in their titles. Section 6355 numbers or the equivalent are not considered part of the 6356 section titles. 6357 M. Delete any section entitled "Endorsements". Such a section 6358 may not be included in the Modified Version. 6359 N. Do not retitle any existing section as "Endorsements" or 6360 to conflict in title with any Invariant Section. 6361 6362 If the Modified Version includes new front-matter sections or 6363 appendices that qualify as Secondary Sections and contain no 6364 material copied from the Document, you may at your option 6365 designate some or all of these sections as invariant. To do 6366 this, add their titles to the list of Invariant Sections in 6367 the Modified Version's license notice. These titles must be 6368 distinct from any other section titles. 6369 6370 You may add a section entitled "Endorsements", provided it 6371 contains nothing but endorsements of your Modified Version by 6372 various parties--for example, statements of peer review or 6373 that the text has been approved by an organization as the 6374 authoritative definition of a standard. 6375 6376 You may add a passage of up to five words as a Front-Cover 6377 Text, and a passage of up to 25 words as a Back-Cover Text, to 6378 the end of the list of Cover Texts in the Modified Version. 6379 Only one passage of Front-Cover Text and one of Back-Cover 6380 Text may be added by (or through arrangements made by) any one 6381 entity. If the Document already includes a cover text for the 6382 same cover, previously added by you or by arrangement made by 6383 the same entity you are acting on behalf of, you may not add 6384 another; but you may replace the old one, on explicit 6385 permission from the previous publisher that added the old one. 6386 6387 The author(s) and publisher(s) of the Document do not by this 6388 License give permission to use their names for publicity for 6389 or to assert or imply endorsement of any Modified Version. 6390 _________________________________________________________ 6391 6392 B.6. COMBINING DOCUMENTS 6393 6394 You may combine the Document with other documents released 6395 under this License, under the terms defined in section 4 above 6396 for modified versions, provided that you include in the 6397 combination all of the Invariant Sections of all of the 6398 original documents, unmodified, and list them all as Invariant 6399 Sections of your combined work in its license notice. 6400 6401 The combined work need only contain one copy of this License, 6402 and multiple identical Invariant Sections may be replaced with 6403 a single copy. If there are multiple Invariant Sections with 6404 the same name but different contents, make the title of each 6405 such section unique by adding at the end of it, in 6406 parentheses, the name of the original author or publisher of 6407 that section if known, or else a unique number. Make the same 6408 adjustment to the section titles in the list of Invariant 6409 Sections in the license notice of the combined work. 6410 6411 In the combination, you must combine any sections entitled 6412 "History" in the various original documents, forming one 6413 section entitled "History"; likewise combine any sections 6414 entitled "Acknowledgements", and any sections entitled 6415 "Dedications". You must delete all sections entitled 6416 "Endorsements." 6417 _________________________________________________________ 6418 6419 B.7. COLLECTIONS OF DOCUMENTS 6420 6421 You may make a collection consisting of the Document and other 6422 documents released under this License, and replace the 6423 individual copies of this License in the various documents 6424 with a single copy that is included in the collection, 6425 provided that you follow the rules of this License for 6426 verbatim copying of each of the documents in all other 6427 respects. 6428 6429 You may extract a single document from such a collection, and 6430 distribute it individually under this License, provided you 6431 insert a copy of this License into the extracted document, and 6432 follow this License in all other respects regarding verbatim 6433 copying of that document. 6434 _________________________________________________________ 6435 6436 B.8. AGGREGATION WITH INDEPENDENT WORKS 6437 6438 A compilation of the Document or its derivatives with other 6439 separate and independent documents or works, in or on a volume 6440 of a storage or distribution medium, does not as a whole count 6441 as a Modified Version of the Document, provided no compilation 6442 copyright is claimed for the compilation. Such a compilation 6443 is called an "aggregate", and this License does not apply to 6444 the other self-contained works thus compiled with the 6445 Document, on account of their being thus compiled, if they are 6446 not themselves derivative works of the Document. 6447 6448 If the Cover Text requirement of section 3 is applicable to 6449 these copies of the Document, then if the Document is less 6450 than one quarter of the entire aggregate, the Document's Cover 6451 Texts may be placed on covers that surround only the Document 6452 within the aggregate. Otherwise they must appear on covers 6453 around the whole aggregate. 6454 _________________________________________________________ 6455 6456 B.9. TRANSLATION 6457 6458 Translation is considered a kind of modification, so you may 6459 distribute translations of the Document under the terms of 6460 section 4. Replacing Invariant Sections with translations 6461 requires special permission from their copyright holders, but 6462 you may include translations of some or all Invariant Sections 6463 in addition to the original versions of these Invariant 6464 Sections. You may include a translation of this License 6465 provided that you also include the original English version of 6466 this License. In case of a disagreement between the 6467 translation and the original English version of this License, 6468 the original English version will prevail. 6469 _________________________________________________________ 6470 6471 B.10. TERMINATION 6472 6473 You may not copy, modify, sublicense, or distribute the 6474 Document except as expressly provided for under this License. 6475 Any other attempt to copy, modify, sublicense or distribute 6476 the Document is void, and will automatically terminate your 6477 rights under this License. However, parties who have received 6478 copies, or rights, from you under this License will not have 6479 their licenses terminated so long as such parties remain in 6480 full compliance. 6481 _________________________________________________________ 6482 6483 B.11. FUTURE REVISIONS OF THIS LICENSE 6484 6485 The Free Software Foundation may publish new, revised versions 6486 of the GNU Free Documentation License from time to time. Such 6487 new versions will be similar in spirit to the present version, 6488 but may differ in detail to address new problems or concerns. 6489 See http://www.gnu.org/copyleft/. 6490 6491 Each version of the License is given a distinguishing version 6492 number. If the Document specifies that a particular numbered 6493 version of this License "or any later version" applies to it, 6494 you have the option of following the terms and conditions 6495 either of that specified version or of any later version that 6496 has been published (not as a draft) by the Free Software 6497 Foundation. If the Document does not specify a version number 6498 of this License, you may choose any version ever published 6499 (not as a draft) by the Free Software Foundation. 6500 _________________________________________________________ 6501 6502 B.12. How to use this License for your documents 6503 6504 To use this License in a document you have written, include a 6505 copy of the License in the document and put the following 6506 copyright and license notices just after the title page: 6507 6508 Copyright (c) YEAR YOUR NAME. Permission is granted to 6509 copy, distribute and/or modify this document under the 6510 terms of the GNU Free Documentation License, Version 1.1 or 6511 any later version published by the Free Software 6512 Foundation; with the Invariant Sections being LIST THEIR 6513 TITLES, with the Front-Cover Texts being LIST, and with the 6514 Back-Cover Texts being LIST. A copy of the license is 6515 included in the section entitled "GNU Free Documentation 6516 License". 6517 6518 If you have no Invariant Sections, write "with no Invariant 6519 Sections" instead of saying which ones are invariant. If you 6520 have no Front-Cover Texts, write "no Front-Cover Texts" 6521 instead of "Front-Cover Texts being LIST"; likewise for 6522 Back-Cover Texts. 6523 6524 If your document contains nontrivial examples of program code, 6525 we recommend releasing these examples in parallel under your 6526 choice of free software license, such as the GNU General 6527 Public License, to permit their use in free software.