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