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