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