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