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