1 Linux Standard Base Core Specification, Generic Part 2 3 LSB Core - Generic 5.0 Edition 4 5 Copyright © 2015 Linux Foundation 6 7 Permission is granted to copy, distribute and/or modify this 8 document under the terms of the GNU Free Documentation License, 9 Version 1.1; with no Invariant Sections, with no Front-Cover 10 Texts, and with no Back-Cover Texts. A copy of the license is 11 included in the section entitled "GNU Free Documentation 12 License". 13 14 Portions of the text may be copyrighted by the following 15 parties: 16 17 * The Regents of the University of California 18 * Free Software Foundation 19 * Ian F. Darwin 20 * Paul Vixie 21 * BSDI (now Wind River) 22 * Jean-loup Gailly and Mark Adler 23 * Massachusetts Institute of Technology 24 * Apple Inc. 25 * Easy Software Products 26 * artofcode LLC 27 * Till Kamppeter 28 * Manfred Wassman 29 * Python Software Foundation 30 31 These excerpts are being used in accordance with their 32 respective licenses. 33 34 Linux is the registered trademark of Linus Torvalds in the U.S. 35 and other countries. 36 37 UNIX is a registered trademark of The Open Group. 38 39 LSB is a trademark of the Linux Foundation in the United States 40 and other countries. 41 42 AMD is a trademark of Advanced Micro Devices, Inc. 43 44 Intel and Itanium are registered trademarks and Intel386 is a 45 trademark of Intel Corporation. 46 47 PowerPC is a registered trademark and PowerPC Architecture is a 48 trademark of the IBM Corporation. 49 50 S/390 is a registered trademark of the IBM Corporation. 51 52 OpenGL is a registered trademark of Silicon Graphics, Inc. 53 54 PAM documentation is Copyright (C) Andrew G. Morgan 1996-9. All 55 rights reserved. Used under the following conditions: 56 57 1. Redistributions of source code must retain the above 58 copyright notice, and the entire permission notice in its 59 entirety, including the disclaimer of warranties. 60 2. Redistributions in binary form must reproduce the above 61 copyright notice, this list of conditions and the following 62 disclaimer in the documentation and/or other materials 63 provided with the distribution. 64 3. The name of the author may not be used to endorse or 65 promote products derived from this software without 66 specific prior written permission. 67 __________________________________________________________ 68 69 Table of Contents 70 Foreword 71 Status of this Document 72 Introduction 73 I. Introductory Elements 74 75 1. Scope 76 77 1.1. General 78 1.2. Module Specific Scope 79 80 2. References 81 82 2.1. Normative References 83 2.2. Informative References/Bibliography 84 85 3. Requirements 86 87 3.1. Relevant Libraries 88 3.2. LSB Implementation Conformance 89 3.3. LSB Application Conformance 90 91 4. Terms and Definitions 92 5. Documentation Conventions 93 6. Relationship To ISO/IEC 9945 POSIX 94 7. Relationship To Other Linux Foundation Specifications 95 96 II. Executable And Linking Format (ELF) 97 98 8. Introduction 99 9. Low Level System Information 100 101 9.1. Operating System Interface 102 9.2. Machine Interface 103 104 10. Object Format 105 106 10.1. Object Files 107 10.2. Sections 108 10.3. Special Sections 109 10.4. Symbol Mapping 110 10.5. DWARF Extensions 111 10.6. Exception Frames 112 10.7. Symbol Versioning 113 10.8. ABI note tag 114 115 11. Dynamic Linking 116 117 11.1. Program Loading and Dynamic Linking 118 11.2. Program Header 119 11.3. Dynamic Entries 120 121 12. C++ Class Representations 122 123 12.1. C++ Data Representation 124 125 13. Symbol Mapping 126 127 13.1. Symbol Mapping 128 129 III. Base Libraries 130 131 14. Base Libraries 132 133 14.1. Introduction 134 14.2. Program Interpreter 135 14.3. Interfaces for libc 136 14.4. Data Definitions for libc 137 14.5. Interface Definitions for libc 138 14.6. Interfaces for libm 139 14.7. Data Definitions for libm 140 14.8. Interface Definitions for libm 141 14.9. Interfaces for libpthread 142 14.10. Data Definitions for libpthread 143 14.11. Interface Definitions for libpthread 144 14.12. Interfaces for libgcc_s 145 14.13. Data Definitions for libgcc_s 146 14.14. Interface Definitions for libgcc_s 147 14.15. Interfaces for libdl 148 14.16. Data Definitions for libdl 149 14.17. Interface Definitions for libdl 150 14.18. Interfaces for librt 151 14.19. Data Definitions for librt 152 14.20. Interfaces for libcrypt 153 14.21. Data Definitions for libcrypt 154 14.22. Interface Definitions for libcrypt 155 14.23. Interfaces for libpam 156 14.24. Data Definitions for libpam 157 14.25. Interface Definitions for libpam 158 159 IV. Utility Libraries 160 161 15. Utility Libraries 162 163 15.1. Introduction 164 15.2. Interfaces for libz 165 15.3. Data Definitions for libz 166 15.4. Interface Definitions for libz 167 15.5. Interfaces for libncurses 168 15.6. Data Definitions for libncurses 169 15.7. Interface Definitions for libncurses 170 15.8. Interfaces for libncursesw 171 15.9. Data Definitions for libncursesw 172 15.10. Interface Definitions for libncursesw 173 15.11. Interfaces for libutil 174 15.12. Data Definitions for libutil 175 15.13. Interface Definitions for libutil 176 177 V. C++ Libraries 178 179 16. Libraries 180 181 16.1. Interfaces for libstdcxx 182 16.2. Interface Definitions for libstdcxx 183 184 VI. Commands and Utilities 185 186 17. Commands and Utilities 187 188 17.1. Commands and Utilities 189 17.2. Command Behavior 190 191 VII. Execution Environment 192 193 18. File System Hierarchy 194 195 18.1. /dev: Device Files 196 18.2. /etc: Host-specific system configuration 197 18.3. User Accounting Databases 198 18.4. Path For System Administration Utilities 199 200 19. Additional Recommendations 201 202 19.1. Recommendations for applications on ownership 203 and permissions 204 205 20. Additional Behaviors 206 207 20.1. Mandatory Optional Behaviors 208 20.2. Optional Mandatory Behaviors 209 20.3. Executable Scripts 210 211 21. Localization 212 213 21.1. Introduction 214 21.2. Regular Expressions 215 21.3. Pattern Matching Notation 216 217 VIII. System Initialization 218 219 22. System Initialization 220 221 22.1. Cron Jobs 222 22.2. Init Script Actions 223 22.3. Comment Conventions for Init Scripts 224 22.4. Installation and Removal of Init Scripts 225 22.5. Run Levels 226 22.6. Facility Names 227 22.7. Script Names 228 22.8. Init Script Functions 229 230 IX. Users & Groups 231 232 23. Users & Groups 233 234 23.1. User and Group Database 235 23.2. User & Group Names 236 23.3. User ID Ranges 237 23.4. Rationale 238 239 X. Network Security Services 240 241 24. Libraries 242 243 24.1. Interfaces for libnspr4 244 24.2. Data Definitions for libnspr4 245 24.3. Interfaces for libnss3 246 24.4. Data Definitions for libnss3 247 24.5. Interfaces for libssl3 248 24.6. Data Definitions for libssl3 249 250 XI. Package Format and Installation 251 252 25. Software Installation 253 254 25.1. Introduction 255 25.2. Package File Format 256 25.3. Package Script Restrictions 257 25.4. Package Tools 258 25.5. Package Naming Conventions 259 25.6. Package Dependencies 260 25.7. Package Architecture Considerations 261 262 A. Alphabetical Listing of Interfaces by Library 263 264 A.1. libc 265 A.2. libcrypt 266 A.3. libdl 267 A.4. libgcc_s 268 A.5. libm 269 A.6. libncurses 270 A.7. libncursesw 271 A.8. libpam 272 A.9. libpthread 273 A.10. librt 274 A.11. libutil 275 A.12. libz 276 A.13. libnspr4 277 A.14. libnss3 278 A.15. libssl3 279 280 B. GNU Free Documentation License (Informative) 281 282 B.1. PREAMBLE 283 B.2. APPLICABILITY AND DEFINITIONS 284 B.3. VERBATIM COPYING 285 B.4. COPYING IN QUANTITY 286 B.5. MODIFICATIONS 287 B.6. COMBINING DOCUMENTS 288 B.7. COLLECTIONS OF DOCUMENTS 289 B.8. AGGREGATION WITH INDEPENDENT WORKS 290 B.9. TRANSLATION 291 B.10. TERMINATION 292 B.11. FUTURE REVISIONS OF THIS LICENSE 293 B.12. How to use this License for your documents 294 295 List of Figures 296 10-1. Version Definition Entries 297 10-2. Version Definition Auxiliary Entries 298 10-3. Version Needed Entries 299 10-4. Version Needed Auxiliary Entries 300 11-1. Dynamic Structure 301 12-1. Category 1 Virtual Table 302 12-2. Category 2 Virtual Table 303 12-3. Run-Time Type Information Prefix 304 12-4. Run-Time Type Information For Classes with no base class 305 12-5. Run-Time Type Information for Classes with a single base 306 class 307 308 12-6. Run-Time Type Information for classes with multiple 309 inheritance 310 311 12-7. Run-Time Type Information for pointer types 312 12-8. Run-Time Type Information for pointer to member types 313 314 List of Tables 315 2-1. Normative References 316 2-2. Other References 317 3-1. Standard Library Names 318 3-2. Standard Library Names defined in the Architecture 319 Specific Parts of the LSB Core Specification 320 321 9-1. Scalar Types 322 10-1. ELF Section Types 323 10-2. Additional Section Types 324 10-3. ELF Special Sections 325 10-4. Additional Special Sections 326 10-5. DWARF Exception Header value format 327 10-6. DWARF Exception Header application 328 10-7. Additional DWARF Call Frame Instructions 329 10-8. Call Frame Information Format 330 10-9. Common Information Entry Format 331 10-10. Frame Description Entry Format 332 10-11. .eh_frame_hdr Section Format 333 11-1. Linux Segment Types 334 12-1. Class Components 335 12-2. Primary vtable for K (example) 336 14-1. libc Definition 337 14-2. libc - RPC Function Interfaces 338 14-3. libc - RPC Deprecated Function Interfaces 339 14-4. libc - Epoll Function Interfaces 340 14-5. libc - System Calls Function Interfaces 341 14-6. libc - System Calls Deprecated Function Interfaces 342 14-7. libc - Standard I/O Function Interfaces 343 14-8. libc - Standard I/O Deprecated Function Interfaces 344 14-9. libc - Standard I/O Data Interfaces 345 14-10. libc - Signal Handling Function Interfaces 346 14-11. libc - Signal Handling Deprecated Function Interfaces 347 14-12. libc - Signal Handling Data Interfaces 348 14-13. libc - Localization Functions Function Interfaces 349 14-14. libc - Localization Functions Data Interfaces 350 14-15. libc - Posix Spawn Option Function Interfaces 351 14-16. libc - Posix Advisory Option Function Interfaces 352 14-17. libc - Socket Interface Function Interfaces 353 14-18. libc - Socket Interface Data Interfaces 354 14-19. libc - Wide Characters Function Interfaces 355 14-20. libc - String Functions Function Interfaces 356 14-21. libc - String Functions Deprecated Function Interfaces 357 14-22. libc - IPC Functions Function Interfaces 358 14-23. libc - Regular Expressions Function Interfaces 359 14-24. libc - Character Type Functions Function Interfaces 360 14-25. libc - Time Manipulation Function Interfaces 361 14-26. libc - Time Manipulation Data Interfaces 362 14-27. libc - Terminal Interface Functions Function Interfaces 363 14-28. libc - System Database Interface Function Interfaces 364 14-29. libc - System Database Interface Deprecated Function 365 Interfaces 366 367 14-30. libc - Language Support Function Interfaces 368 14-31. libc - Large File Support Function Interfaces 369 14-32. libc - Large File Support Deprecated Function Interfaces 370 14-33. libc - Inotify Function Interfaces 371 14-34. libc - Standard Library Function Interfaces 372 14-35. libc - Standard Library Deprecated Function Interfaces 373 14-36. libc - Standard Library Data Interfaces 374 14-37. libc - GNU Extensions for libc Function Interfaces 375 14-38. libm Definition 376 14-39. libm - Math Function Interfaces 377 14-40. libm - Math Deprecated Function Interfaces 378 14-41. libm - Math Data Interfaces 379 14-42. libpthread Definition 380 14-43. libpthread - Realtime Threads Function Interfaces 381 14-44. libpthread - Advanced Realtime Threads Function 382 Interfaces 383 384 14-45. libpthread - Posix Threads Function Interfaces 385 14-46. libpthread - Posix Threads Deprecated Function 386 Interfaces 387 388 14-47. libpthread - Thread aware versions of libc interfaces 389 Function Interfaces 390 391 14-48. libpthread - GNU Extensions for libpthread Function 392 Interfaces 393 394 14-49. libpthread - System Calls Function Interfaces 395 14-50. libpthread - Standard I/O Function Interfaces 396 14-51. libpthread - Signal Handling Function Interfaces 397 14-52. libpthread - Standard Library Function Interfaces 398 14-53. libpthread - Socket Interface Function Interfaces 399 14-54. libpthread - Terminal Interface Functions Function 400 Interfaces 401 402 14-55. libgcc_s Definition 403 14-56. libgcc_s - Unwind Library Function Interfaces 404 14-57. libdl Definition 405 14-58. libdl - Dynamic Loader Function Interfaces 406 14-59. librt Definition 407 14-60. librt - Shared Memory Objects Function Interfaces 408 14-61. librt - Asynchronous I/O Function Interfaces 409 14-62. librt - Clock Function Interfaces 410 14-63. librt - Timers Function Interfaces 411 14-64. librt - Message Queues Function Interfaces 412 14-65. libcrypt Definition 413 14-66. libcrypt - Encryption Function Interfaces 414 14-67. libpam Definition 415 14-68. libpam - Pluggable Authentication API Function 416 Interfaces 417 418 15-1. libz Definition 419 15-2. libz - Compression Library Function Interfaces 420 15-3. libncurses Definition 421 15-4. libncurses - Curses Function Interfaces 422 15-5. libncurses - Curses Deprecated Function Interfaces 423 15-6. libncurses - Curses Data Interfaces 424 15-7. libncursesw Definition 425 15-8. libncursesw - Curses Wide Function Interfaces 426 15-9. libncursesw - Curses Wide Deprecated Function Interfaces 427 15-10. libncursesw - Curses Wide Data Interfaces 428 15-11. libutil Definition 429 15-12. libutil - Utility Functions Function Interfaces 430 16-1. libstdcxx Definition 431 16-2. libstdcxx - C++ Runtime Support Function Interfaces 432 16-3. libstdcxx - C++ Runtime Support Data Interfaces 433 16-4. libstdcxx - C++ type descriptors for built-in types Data 434 Interfaces 435 436 16-5. libstdcxx - C++ _Rb_tree Function Interfaces 437 16-6. Primary vtable for type_info 438 16-7. typeinfo for type_info 439 16-8. libstdcxx - Class type_info Function Interfaces 440 16-9. libstdcxx - Class type_info Data Interfaces 441 16-10. Primary vtable for __cxxabiv1::__enum_type_info 442 16-11. typeinfo for __cxxabiv1::__enum_type_info 443 16-12. libstdcxx - Class __cxxabiv1::__enum_type_info Function 444 Interfaces 445 446 16-13. libstdcxx - Class __cxxabiv1::__enum_type_info Data 447 Interfaces 448 449 16-14. Primary vtable for __cxxabiv1::__array_type_info 450 16-15. typeinfo for __cxxabiv1::__array_type_info 451 16-16. libstdcxx - Class __cxxabiv1::__array_type_info Function 452 Interfaces 453 454 16-17. libstdcxx - Class __cxxabiv1::__array_type_info Data 455 Interfaces 456 457 16-18. Primary vtable for __cxxabiv1::__class_type_info 458 16-19. typeinfo for __cxxabiv1::__class_type_info 459 16-20. libstdcxx - Class __cxxabiv1::__class_type_info Function 460 Interfaces 461 462 16-21. libstdcxx - Class __cxxabiv1::__class_type_info Data 463 Interfaces 464 465 16-22. Primary vtable for __cxxabiv1::__pbase_type_info 466 16-23. typeinfo for __cxxabiv1::__pbase_type_info 467 16-24. libstdcxx - Class __cxxabiv1::__pbase_type_info Function 468 Interfaces 469 470 16-25. libstdcxx - Class __cxxabiv1::__pbase_type_info Data 471 Interfaces 472 473 16-26. Primary vtable for __cxxabiv1::__pointer_type_info 474 16-27. typeinfo for __cxxabiv1::__pointer_type_info 475 16-28. libstdcxx - Class __cxxabiv1::__pointer_type_info 476 Function Interfaces 477 478 16-29. libstdcxx - Class __cxxabiv1::__pointer_type_info Data 479 Interfaces 480 481 16-30. Primary vtable for __cxxabiv1::__function_type_info 482 16-31. typeinfo for __cxxabiv1::__function_type_info 483 16-32. libstdcxx - Class __cxxabiv1::__function_type_info 484 Function Interfaces 485 486 16-33. libstdcxx - Class __cxxabiv1::__function_type_info Data 487 Interfaces 488 489 16-34. Primary vtable for __cxxabiv1::__si_class_type_info 490 16-35. typeinfo for __cxxabiv1::__si_class_type_info 491 16-36. libstdcxx - Class __cxxabiv1::__si_class_type_info 492 Function Interfaces 493 494 16-37. libstdcxx - Class __cxxabiv1::__si_class_type_info Data 495 Interfaces 496 497 16-38. Primary vtable for __cxxabiv1::__vmi_class_type_info 498 16-39. typeinfo for __cxxabiv1::__vmi_class_type_info 499 16-40. libstdcxx - Class __cxxabiv1::__vmi_class_type_info 500 Function Interfaces 501 502 16-41. libstdcxx - Class __cxxabiv1::__vmi_class_type_info Data 503 Interfaces 504 505 16-42. Primary vtable for __cxxabiv1::__fundamental_type_info 506 16-43. typeinfo for __cxxabiv1::__fundamental_type_info 507 16-44. libstdcxx - Class __cxxabiv1::__fundamental_type_info 508 Function Interfaces 509 510 16-45. libstdcxx - Class __cxxabiv1::__fundamental_type_info 511 Data Interfaces 512 513 16-46. Primary vtable for 514 __cxxabiv1::__pointer_to_member_type_info 515 516 16-47. typeinfo for __cxxabiv1::__pointer_to_member_type_info 517 16-48. libstdcxx - Class 518 __cxxabiv1::__pointer_to_member_type_info Function 519 Interfaces 520 521 16-49. libstdcxx - Class 522 __cxxabiv1::__pointer_to_member_type_info Data 523 Interfaces 524 525 16-50. libstdcxx - Class __gnu_cxx::stdio_filebuf > Data Interfaces 527 528 16-51. libstdcxx - Class __gnu_cxx::stdio_filebuf > Data Interfaces 530 531 16-52. libstdcxx - Class __gnu_cxx::__pool_alloc_base Function 532 Interfaces 533 534 16-53. Primary vtable for __gnu_cxx::stdio_sync_filebuf > 536 537 16-54. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Function Interfaces 539 540 16-55. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Data Interfaces 542 543 16-56. Primary vtable for 544 __gnu_cxx::stdio_sync_filebuf > 546 547 16-57. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Function Interfaces 549 550 16-58. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Data Interfaces 552 553 16-59. Primary vtable for exception 554 16-60. typeinfo for exception 555 16-61. libstdcxx - Class exception Function Interfaces 556 16-62. libstdcxx - Class exception Data Interfaces 557 16-63. Primary vtable for bad_typeid 558 16-64. typeinfo for bad_typeid 559 16-65. libstdcxx - Class bad_typeid Function Interfaces 560 16-66. libstdcxx - Class bad_typeid Data Interfaces 561 16-67. Primary vtable for logic_error 562 16-68. typeinfo for logic_error 563 16-69. libstdcxx - Class logic_error Function Interfaces 564 16-70. libstdcxx - Class logic_error Data Interfaces 565 16-71. Primary vtable for range_error 566 16-72. typeinfo for range_error 567 16-73. libstdcxx - Class range_error Function Interfaces 568 16-74. libstdcxx - Class range_error Data Interfaces 569 16-75. Primary vtable for domain_error 570 16-76. typeinfo for domain_error 571 16-77. libstdcxx - Class domain_error Function Interfaces 572 16-78. libstdcxx - Class domain_error Data Interfaces 573 16-79. Primary vtable for length_error 574 16-80. typeinfo for length_error 575 16-81. libstdcxx - Class length_error Function Interfaces 576 16-82. libstdcxx - Class length_error Data Interfaces 577 16-83. Primary vtable for out_of_range 578 16-84. typeinfo for out_of_range 579 16-85. libstdcxx - Class out_of_range Function Interfaces 580 16-86. libstdcxx - Class out_of_range Data Interfaces 581 16-87. Primary vtable for bad_exception 582 16-88. typeinfo for bad_exception 583 16-89. libstdcxx - Class bad_exception Function Interfaces 584 16-90. libstdcxx - Class bad_exception Data Interfaces 585 16-91. Primary vtable for runtime_error 586 16-92. typeinfo for runtime_error 587 16-93. libstdcxx - Class runtime_error Function Interfaces 588 16-94. libstdcxx - Class runtime_error Data Interfaces 589 16-95. Primary vtable for overflow_error 590 16-96. typeinfo for overflow_error 591 16-97. libstdcxx - Class overflow_error Function Interfaces 592 16-98. libstdcxx - Class overflow_error Data Interfaces 593 16-99. Primary vtable for underflow_error 594 16-100. typeinfo for underflow_error 595 16-101. libstdcxx - Class underflow_error Function Interfaces 596 16-102. libstdcxx - Class underflow_error Data Interfaces 597 16-103. Primary vtable for invalid_argument 598 16-104. typeinfo for invalid_argument 599 16-105. libstdcxx - Class invalid_argument Function Interfaces 600 16-106. libstdcxx - Class invalid_argument Data Interfaces 601 16-107. Primary vtable for bad_cast 602 16-108. typeinfo for bad_cast 603 16-109. libstdcxx - Class bad_cast Function Interfaces 604 16-110. libstdcxx - Class bad_cast Data Interfaces 605 16-111. Primary vtable for bad_alloc 606 16-112. typeinfo for bad_alloc 607 16-113. libstdcxx - Class bad_alloc Function Interfaces 608 16-114. libstdcxx - Class bad_alloc Data Interfaces 609 16-115. libstdcxx - struct __numeric_limits_base Data 610 Interfaces 611 612 16-116. libstdcxx - struct numeric_limits Data 613 Interfaces 614 615 16-117. libstdcxx - struct numeric_limits Data 616 Interfaces 617 618 16-118. libstdcxx - struct numeric_limits 619 Data Interfaces 620 621 16-119. libstdcxx - struct numeric_limits Data 622 Interfaces 623 624 16-120. libstdcxx - struct numeric_limits Data 625 Interfaces 626 627 16-121. libstdcxx - struct numeric_limits Data 628 Interfaces 629 630 16-122. libstdcxx - struct numeric_limits Data 631 Interfaces 632 633 16-123. libstdcxx - struct numeric_limits Data Interfaces 634 16-124. libstdcxx - struct numeric_limits Data 635 Interfaces 636 637 16-125. libstdcxx - struct numeric_limits Data Interfaces 638 16-126. libstdcxx - struct numeric_limits Data 639 Interfaces 640 641 16-127. libstdcxx - struct numeric_limits Data 642 Interfaces 643 644 16-128. libstdcxx - struct numeric_limits Data 645 Interfaces 646 647 16-129. libstdcxx - struct numeric_limits Data 648 Interfaces 649 650 16-130. libstdcxx - struct numeric_limits Data Interfaces 651 16-131. libstdcxx - struct numeric_limits Data Interfaces 652 16-132. typeinfo for ctype_base 653 16-133. libstdcxx - Class ctype_base Data Interfaces 654 16-134. Primary vtable for __ctype_abstract_base 655 16-135. libstdcxx - Class __ctype_abstract_base Data 656 Interfaces 657 658 16-136. Primary vtable for __ctype_abstract_base 659 16-137. libstdcxx - Class __ctype_abstract_base Data 660 Interfaces 661 662 16-138. Primary vtable for ctype 663 16-139. libstdcxx - Class ctype Function Interfaces 664 16-140. libstdcxx - Class ctype Data Interfaces 665 16-141. Primary vtable for ctype 666 16-142. typeinfo for ctype 667 16-143. libstdcxx - Class ctype Function Interfaces 668 16-144. libstdcxx - Class ctype Data Interfaces 669 16-145. Primary vtable for ctype_byname 670 16-146. typeinfo for ctype_byname 671 16-147. libstdcxx - Class ctype_byname Function 672 Interfaces 673 674 16-148. libstdcxx - Class ctype_byname Data Interfaces 675 16-149. Primary vtable for ctype_byname 676 16-150. typeinfo for ctype_byname 677 16-151. libstdcxx - Class ctype_byname Function 678 Interfaces 679 680 16-152. libstdcxx - Class ctype_byname Data Interfaces 681 16-153. libstdcxx - Class basic_string, 682 allocator > Function Interfaces 683 684 16-154. libstdcxx - Class basic_string, 685 allocator > Data Interfaces 686 687 16-155. libstdcxx - Class basic_string, allocator > Function 689 Interfaces 690 691 16-156. libstdcxx - Class basic_string, allocator > Data 693 Interfaces 694 695 16-157. VTT for basic_stringstream, 696 allocator > 697 698 16-158. libstdcxx - Class basic_stringstream, allocator > Function Interfaces 700 701 16-159. libstdcxx - Class basic_stringstream, allocator > Data Interfaces 703 704 16-160. VTT for basic_stringstream, allocator > 706 707 16-161. libstdcxx - Class basic_stringstream, allocator > Function 709 Interfaces 710 711 16-162. libstdcxx - Class basic_stringstream, allocator > Data 713 Interfaces 714 715 16-163. VTT for basic_istringstream, 716 allocator > 717 718 16-164. libstdcxx - Class basic_istringstream, allocator > Function Interfaces 720 721 16-165. libstdcxx - Class basic_istringstream, allocator > Data Interfaces 723 724 16-166. VTT for basic_istringstream, allocator > 726 727 16-167. libstdcxx - Class basic_istringstream, allocator > Function 729 Interfaces 730 731 16-168. libstdcxx - Class basic_istringstream, allocator > Data 733 Interfaces 734 735 16-169. VTT for basic_ostringstream, 736 allocator > 737 738 16-170. libstdcxx - Class basic_ostringstream, allocator > Function Interfaces 740 741 16-171. libstdcxx - Class basic_ostringstream, allocator > Data Interfaces 743 744 16-172. VTT for basic_ostringstream, allocator > 746 747 16-173. libstdcxx - Class basic_ostringstream, allocator > Function 749 Interfaces 750 751 16-174. libstdcxx - Class basic_ostringstream, allocator > Data 753 Interfaces 754 755 16-175. Primary vtable for basic_stringbuf, allocator > 757 758 16-176. typeinfo for basic_stringbuf, 759 allocator > 760 761 16-177. libstdcxx - Class basic_stringbuf, allocator > Function Interfaces 763 764 16-178. libstdcxx - Class basic_stringbuf, allocator > Data Interfaces 766 767 16-179. Primary vtable for basic_stringbuf, allocator > 769 770 16-180. typeinfo for basic_stringbuf, allocator > 772 773 16-181. libstdcxx - Class basic_stringbuf, allocator > Function 775 Interfaces 776 777 16-182. libstdcxx - Class basic_stringbuf, allocator > Data 779 Interfaces 780 781 16-183. VTT for basic_iostream > 782 16-184. libstdcxx - Class basic_iostream > Function Interfaces 784 785 16-185. libstdcxx - Class basic_iostream > Data Interfaces 787 788 16-186. VTT for basic_iostream > 789 16-187. libstdcxx - Class basic_iostream > Function Interfaces 791 792 16-188. libstdcxx - Class basic_iostream > Data Interfaces 794 795 16-189. VTT for basic_istream > 796 16-190. libstdcxx - Class basic_istream 797 > Function Interfaces 798 799 16-191. libstdcxx - Class basic_istream 800 > Data Interfaces 801 802 16-192. VTT for basic_istream > 803 16-193. libstdcxx - Class basic_istream > Function Interfaces 805 806 16-194. libstdcxx - Class basic_istream > Data Interfaces 808 809 16-195. libstdcxx - Class istreambuf_iterator > Function Interfaces 811 812 16-196. libstdcxx - Class istreambuf_iterator > Function Interfaces 814 815 16-197. VTT for basic_ostream > 816 16-198. libstdcxx - Class basic_ostream 817 > Function Interfaces 818 819 16-199. libstdcxx - Class basic_ostream 820 > Data Interfaces 821 822 16-200. VTT for basic_ostream > 823 16-201. libstdcxx - Class basic_ostream > Function Interfaces 825 826 16-202. libstdcxx - Class basic_ostream > Data Interfaces 828 829 16-203. VTT for basic_fstream > 830 16-204. libstdcxx - Class basic_fstream 831 > Function Interfaces 832 833 16-205. libstdcxx - Class basic_fstream 834 > Data Interfaces 835 836 16-206. VTT for basic_fstream > 837 16-207. libstdcxx - Class basic_fstream > Function Interfaces 839 840 16-208. libstdcxx - Class basic_fstream > Data Interfaces 842 843 16-209. VTT for basic_ifstream > 844 16-210. libstdcxx - Class basic_ifstream > Function Interfaces 846 847 16-211. libstdcxx - Class basic_ifstream > Data Interfaces 849 850 16-212. VTT for basic_ifstream > 851 16-213. libstdcxx - Class basic_ifstream > Function Interfaces 853 854 16-214. libstdcxx - Class basic_ifstream > Data Interfaces 856 857 16-215. VTT for basic_ofstream > 858 16-216. libstdcxx - Class basic_ofstream > Function Interfaces 860 861 16-217. libstdcxx - Class basic_ofstream > Data Interfaces 863 864 16-218. VTT for basic_ofstream > 865 16-219. libstdcxx - Class basic_ofstream > Function Interfaces 867 868 16-220. libstdcxx - Class basic_ofstream > Data Interfaces 870 871 16-221. Primary vtable for basic_streambuf > 873 874 16-222. typeinfo for basic_streambuf > 875 16-223. libstdcxx - Class basic_streambuf > Function Interfaces 877 878 16-224. libstdcxx - Class basic_streambuf > Data Interfaces 880 881 16-225. Primary vtable for basic_streambuf > 883 884 16-226. typeinfo for basic_streambuf > 886 887 16-227. libstdcxx - Class basic_streambuf > Function Interfaces 889 890 16-228. Primary vtable for basic_filebuf > 892 893 16-229. typeinfo for basic_filebuf > 894 16-230. libstdcxx - Class basic_filebuf 895 > Function Interfaces 896 897 16-231. libstdcxx - Class basic_filebuf 898 > Data Interfaces 899 900 16-232. Primary vtable for basic_filebuf > 902 903 16-233. typeinfo for basic_filebuf > 905 906 16-234. libstdcxx - Class basic_filebuf > Function Interfaces 908 909 16-235. libstdcxx - Class basic_filebuf > Data Interfaces 911 912 16-236. Primary vtable for ios_base 913 16-237. typeinfo for ios_base 914 16-238. libstdcxx - Class ios_base Function Interfaces 915 16-239. libstdcxx - Class ios_base Data Interfaces 916 16-240. Primary vtable for basic_ios > 917 16-241. libstdcxx - Class basic_ios > 918 Function Interfaces 919 920 16-242. libstdcxx - Class basic_ios > 921 Data Interfaces 922 923 16-243. Primary vtable for basic_ios > 925 926 16-244. typeinfo for basic_ios > 927 16-245. libstdcxx - Class basic_ios > Function Interfaces 929 930 16-246. libstdcxx - Class basic_ios > Data Interfaces 932 933 16-247. Primary vtable for ios_base::failure 934 16-248. typeinfo for ios_base::failure 935 16-249. libstdcxx - Class ios_base::failure Function Interfaces 936 16-250. libstdcxx - Class ios_base::failure Data Interfaces 937 16-251. Primary vtable for __timepunct 938 16-252. typeinfo for __timepunct 939 16-253. libstdcxx - Class __timepunct Function Interfaces 940 16-254. libstdcxx - Class __timepunct Data Interfaces 941 16-255. Primary vtable for __timepunct 942 16-256. typeinfo for __timepunct 943 16-257. libstdcxx - Class __timepunct Function 944 Interfaces 945 946 16-258. libstdcxx - Class __timepunct Data Interfaces 947 16-259. typeinfo for messages_base 948 16-260. libstdcxx - Class messages_base Data Interfaces 949 16-261. Primary vtable for messages 950 16-262. libstdcxx - Class messages Function Interfaces 951 16-263. libstdcxx - Class messages Data Interfaces 952 16-264. Primary vtable for messages 953 16-265. libstdcxx - Class messages Function Interfaces 954 16-266. libstdcxx - Class messages Data Interfaces 955 16-267. Primary vtable for messages_byname 956 16-268. typeinfo for messages_byname 957 16-269. libstdcxx - Class messages_byname Function 958 Interfaces 959 960 16-270. libstdcxx - Class messages_byname Data Interfaces 961 16-271. Primary vtable for messages_byname 962 16-272. typeinfo for messages_byname 963 16-273. libstdcxx - Class messages_byname Function 964 Interfaces 965 966 16-274. libstdcxx - Class messages_byname Data 967 Interfaces 968 969 16-275. Primary vtable for numpunct 970 16-276. typeinfo for numpunct 971 16-277. libstdcxx - Class numpunct Function Interfaces 972 16-278. libstdcxx - Class numpunct Data Interfaces 973 16-279. Primary vtable for numpunct 974 16-280. typeinfo for numpunct 975 16-281. libstdcxx - Class numpunct Function Interfaces 976 16-282. libstdcxx - Class numpunct Data Interfaces 977 16-283. Primary vtable for numpunct_byname 978 16-284. typeinfo for numpunct_byname 979 16-285. libstdcxx - Class numpunct_byname Function 980 Interfaces 981 982 16-286. libstdcxx - Class numpunct_byname Data Interfaces 983 16-287. Primary vtable for numpunct_byname 984 16-288. typeinfo for numpunct_byname 985 16-289. libstdcxx - Class numpunct_byname Function 986 Interfaces 987 988 16-290. libstdcxx - Class numpunct_byname Data 989 Interfaces 990 991 16-291. Primary vtable for __codecvt_abstract_base 993 994 16-292. libstdcxx - Class __codecvt_abstract_base Data Interfaces 996 997 16-293. Primary vtable for __codecvt_abstract_base 999 1000 16-294. libstdcxx - Class __codecvt_abstract_base Data Interfaces 1002 1003 16-295. typeinfo for codecvt_base 1004 16-296. libstdcxx - Class codecvt_base Data Interfaces 1005 16-297. Primary vtable for codecvt 1006 16-298. typeinfo for codecvt 1007 16-299. libstdcxx - Class codecvt 1008 Function Interfaces 1009 1010 16-300. libstdcxx - Class codecvt Data 1011 Interfaces 1012 1013 16-301. Primary vtable for codecvt 1014 16-302. typeinfo for codecvt 1015 16-303. libstdcxx - Class codecvt 1016 Function Interfaces 1017 1018 16-304. libstdcxx - Class codecvt 1019 Data Interfaces 1020 1021 16-305. Primary vtable for codecvt_byname 1023 1024 16-306. typeinfo for codecvt_byname 1025 16-307. libstdcxx - Class codecvt_byname Function Interfaces 1027 1028 16-308. libstdcxx - Class codecvt_byname Data Interfaces 1030 1031 16-309. Primary vtable for codecvt_byname 1033 1034 16-310. typeinfo for codecvt_byname 1035 16-311. libstdcxx - Class codecvt_byname Function Interfaces 1037 1038 16-312. libstdcxx - Class codecvt_byname Data Interfaces 1040 1041 16-313. Primary vtable for collate 1042 16-314. typeinfo for collate 1043 16-315. libstdcxx - Class collate Function Interfaces 1044 16-316. libstdcxx - Class collate Data Interfaces 1045 16-317. Primary vtable for collate 1046 16-318. typeinfo for collate 1047 16-319. libstdcxx - Class collate Function Interfaces 1048 16-320. libstdcxx - Class collate Data Interfaces 1049 16-321. Primary vtable for collate_byname 1050 16-322. typeinfo for collate_byname 1051 16-323. libstdcxx - Class collate_byname Function 1052 Interfaces 1053 1054 16-324. libstdcxx - Class collate_byname Data Interfaces 1055 16-325. Primary vtable for collate_byname 1056 16-326. typeinfo for collate_byname 1057 16-327. libstdcxx - Class collate_byname Function 1058 Interfaces 1059 1060 16-328. libstdcxx - Class collate_byname Data 1061 Interfaces 1062 1063 16-329. typeinfo for time_base 1064 16-330. libstdcxx - Class time_base Data Interfaces 1065 16-331. Primary vtable for time_get_byname > > 1067 1068 16-332. typeinfo for time_get_byname > > 1070 1071 16-333. libstdcxx - Class time_get_byname > > Function 1073 Interfaces 1074 1075 16-334. libstdcxx - Class time_get_byname > > Data 1077 Interfaces 1078 1079 16-335. Primary vtable for time_get_byname > > 1081 1082 16-336. typeinfo for time_get_byname > > 1084 1085 16-337. libstdcxx - Class time_get_byname > > 1087 Function Interfaces 1088 1089 16-338. libstdcxx - Class time_get_byname > > 1091 Data Interfaces 1092 1093 16-339. Primary vtable for time_put_byname > > 1095 1096 16-340. typeinfo for time_put_byname > > 1098 1099 16-341. libstdcxx - Class time_put_byname > > Function 1101 Interfaces 1102 1103 16-342. libstdcxx - Class time_put_byname > > Data 1105 Interfaces 1106 1107 16-343. Primary vtable for time_put_byname > > 1109 1110 16-344. typeinfo for time_put_byname > > 1112 1113 16-345. libstdcxx - Class time_put_byname > > 1115 Function Interfaces 1116 1117 16-346. libstdcxx - Class time_put_byname > > 1119 Data Interfaces 1120 1121 16-347. Primary vtable for time_get > > 1123 1124 16-348. libstdcxx - Class time_get > > Function 1126 Interfaces 1127 1128 16-349. libstdcxx - Class time_get > > Data 1130 Interfaces 1131 1132 16-350. Primary vtable for time_get > > 1134 1135 16-351. libstdcxx - Class time_get > > 1137 Function Interfaces 1138 1139 16-352. libstdcxx - Class time_get > > 1141 Data Interfaces 1142 1143 16-353. Primary vtable for time_put > > 1145 1146 16-354. typeinfo for time_put > > 1148 1149 16-355. libstdcxx - Class time_put > > Function 1151 Interfaces 1152 1153 16-356. libstdcxx - Class time_put > > Data 1155 Interfaces 1156 1157 16-357. Primary vtable for time_put > > 1159 1160 16-358. typeinfo for time_put > > 1162 1163 16-359. libstdcxx - Class time_put > > 1165 Function Interfaces 1166 1167 16-360. libstdcxx - Class time_put > > 1169 Data Interfaces 1170 1171 16-361. Primary vtable for moneypunct 1172 16-362. libstdcxx - Class moneypunct Function 1173 Interfaces 1174 1175 16-363. libstdcxx - Class moneypunct Data 1176 Interfaces 1177 1178 16-364. Primary vtable for moneypunct 1179 16-365. libstdcxx - Class moneypunct Function 1180 Interfaces 1181 1182 16-366. libstdcxx - Class moneypunct Data 1183 Interfaces 1184 1185 16-367. Primary vtable for moneypunct 1186 16-368. libstdcxx - Class moneypunct Function 1187 Interfaces 1188 1189 16-369. libstdcxx - Class moneypunct Data 1190 Interfaces 1191 1192 16-370. Primary vtable for moneypunct 1193 16-371. libstdcxx - Class moneypunct Function 1194 Interfaces 1195 1196 16-372. libstdcxx - Class moneypunct Data 1197 Interfaces 1198 1199 16-373. Primary vtable for moneypunct_byname 1200 16-374. typeinfo for moneypunct_byname 1201 16-375. libstdcxx - Class moneypunct_byname 1202 Function Interfaces 1203 1204 16-376. libstdcxx - Class moneypunct_byname Data 1205 Interfaces 1206 1207 16-377. Primary vtable for moneypunct_byname 1208 16-378. typeinfo for moneypunct_byname 1209 16-379. libstdcxx - Class moneypunct_byname 1210 Function Interfaces 1211 1212 16-380. libstdcxx - Class moneypunct_byname Data 1213 Interfaces 1214 1215 16-381. Primary vtable for moneypunct_byname 1216 16-382. typeinfo for moneypunct_byname 1217 16-383. libstdcxx - Class moneypunct_byname 1218 Function Interfaces 1219 1220 16-384. libstdcxx - Class moneypunct_byname 1221 Data Interfaces 1222 1223 16-385. Primary vtable for moneypunct_byname 1224 16-386. typeinfo for moneypunct_byname 1225 16-387. libstdcxx - Class moneypunct_byname 1226 Function Interfaces 1227 1228 16-388. libstdcxx - Class moneypunct_byname Data 1229 Interfaces 1230 1231 16-389. typeinfo for money_base 1232 16-390. libstdcxx - Class money_base Function Interfaces 1233 16-391. libstdcxx - Class money_base Data Interfaces 1234 16-392. Primary vtable for money_get > > 1236 1237 16-393. typeinfo for money_get > > 1239 1240 16-394. libstdcxx - Class money_get > > Function 1242 Interfaces 1243 1244 16-395. libstdcxx - Class money_get > > Data 1246 Interfaces 1247 1248 16-396. Primary vtable for money_get > > 1250 1251 16-397. typeinfo for money_get > > 1253 1254 16-398. libstdcxx - Class money_get > > 1256 Function Interfaces 1257 1258 16-399. libstdcxx - Class money_get > > 1260 Data Interfaces 1261 1262 16-400. Primary vtable for money_put > > 1264 1265 16-401. typeinfo for money_put > > 1267 1268 16-402. libstdcxx - Class money_put > > Function 1270 Interfaces 1271 1272 16-403. libstdcxx - Class money_put > > Data 1274 Interfaces 1275 1276 16-404. Primary vtable for money_put > > 1278 1279 16-405. typeinfo for money_put > > 1281 1282 16-406. libstdcxx - Class money_put > > 1284 Function Interfaces 1285 1286 16-407. libstdcxx - Class money_put > > 1288 Data Interfaces 1289 1290 16-408. libstdcxx - Class locale Function Interfaces 1291 16-409. libstdcxx - Class locale Data Interfaces 1292 16-410. Primary vtable for locale::facet 1293 16-411. typeinfo for locale::facet 1294 16-412. libstdcxx - Class locale::facet Function Interfaces 1295 16-413. libstdcxx - Class locale::facet Data Interfaces 1296 16-414. libstdcxx - facet functions Function Interfaces 1297 16-415. libstdcxx - Class __num_base Function Interfaces 1298 16-416. libstdcxx - Class __num_base Data Interfaces 1299 16-417. Primary vtable for num_get > > 1301 1302 16-418. typeinfo for num_get > > 1304 1305 16-419. libstdcxx - Class num_get > > Function 1307 Interfaces 1308 1309 16-420. libstdcxx - Class num_get > > Data 1311 Interfaces 1312 1313 16-421. Primary vtable for num_get > > 1315 1316 16-422. typeinfo for num_get > > 1318 1319 16-423. libstdcxx - Class num_get > > 1321 Function Interfaces 1322 1323 16-424. libstdcxx - Class num_get > > 1325 Data Interfaces 1326 1327 16-425. Primary vtable for num_put > > 1329 1330 16-426. typeinfo for num_put > > 1332 1333 16-427. libstdcxx - Class num_put > > Function 1335 Interfaces 1336 1337 16-428. libstdcxx - Class num_put > > Data 1339 Interfaces 1340 1341 16-429. Primary vtable for num_put > > 1343 1344 16-430. typeinfo for num_put > > 1346 1347 16-431. libstdcxx - Class num_put > > 1349 Function Interfaces 1350 1351 16-432. libstdcxx - Class num_put > > 1353 Data Interfaces 1354 1355 16-433. libstdcxx - Class __basic_file Function 1356 Interfaces 1357 1358 16-434. libstdcxx - Class _List_node_base Function Interfaces 1359 16-435. libstdcxx - Class allocator Function Interfaces 1360 16-436. libstdcxx - Class allocator Function 1361 Interfaces 1362 1363 16-437. libstdcxx - Class __gnu_cxx::__pool Function 1364 Interfaces 1365 1366 16-438. libstdcxx - Class __gnu_cxx::__pool Function 1367 Interfaces 1368 1369 16-439. libstdcxx - Class __gnu_cxx::free_list Function 1370 Interfaces 1371 1372 16-440. libstdcxx - Class char_traits Function Interfaces 1373 16-441. libstdcxx - Class char_traits Function 1374 Interfaces 1375 1376 17-1. Commands And Utilities 1377 17-2. Built In Utilities 1378 17-1. Escape Sequences 1379 23-1. Required User & Group Names 1380 23-2. Optional User & Group Names 1381 24-1. libnspr4 Definition 1382 24-2. libnspr4 - Netscape Portable Runtime Function Interfaces 1383 24-3. libnss3 Definition 1384 24-4. libnss3 - NSS Utility Function Interfaces 1385 24-5. libssl3 Definition 1386 24-6. libssl3 - NSS SSL Function Interfaces 1387 25-1. RPM File Format 1388 25-2. Signature Format 1389 25-3. Index Type values 1390 25-4. Header Private Tag Values 1391 25-5. Signature Tag Values 1392 25-6. Signature Digest Tag Values 1393 25-7. Signature Signing Tag Values 1394 25-8. Package Info Tag Values 1395 25-9. Installation Tag Values 1396 25-10. File Info Tag Values 1397 25-11. File Flags 1398 25-12. Package Dependency Tag Values 1399 25-13. Index Type values 1400 25-14. Package Dependency Attributes 1401 25-15. Other Tag Values 1402 25-16. CPIO File Format 1403 A-1. libc Function Interfaces 1404 A-2. libc Data Interfaces 1405 A-3. libcrypt Function Interfaces 1406 A-4. libdl Function Interfaces 1407 A-5. libgcc_s Function Interfaces 1408 A-6. libm Function Interfaces 1409 A-7. libm Data Interfaces 1410 A-8. libncurses Function Interfaces 1411 A-9. libncurses Data Interfaces 1412 A-10. libncursesw Function Interfaces 1413 A-11. libncursesw Data Interfaces 1414 A-12. libpam Function Interfaces 1415 A-13. libpthread Function Interfaces 1416 A-14. librt Function Interfaces 1417 A-15. libutil Function Interfaces 1418 A-16. libz Function Interfaces 1419 A-17. libnspr4 Function Interfaces 1420 A-18. libnss3 Function Interfaces 1421 A-19. libssl3 Function Interfaces 1422 __________________________________________________________ 1423 1424 Foreword 1425 1426 This is version 5.0 of the Linux Standard Base Core 1427 Specification, Generic Part. This specification is one of a 1428 series of volumes under the collective title Linux Standard 1429 Base: 1430 1431 * Common 1432 * Core 1433 * Desktop 1434 * Languages 1435 * Imaging 1436 1437 Note that the Core and Desktop volumes consist of a generic 1438 volume augmented by an architecture-specific volume. 1439 __________________________________________________________ 1440 1441 Status of this Document 1442 1443 This is a released specification, version 5.0. Other documents 1444 may supersede or augment this specification. 1445 1446 A list of current released Linux Standard Base (LSB) 1447 specifications is available at http://refspecs.linuxbase.org. 1448 1449 If you wish to make comments regarding this document in a 1450 manner that is tracked by the LSB project, please submit them 1451 using our public bug database at http://bugs.linuxbase.org. 1452 Please enter your feedback, carefully indicating the title of 1453 the section for which you are submitting feedback, and the 1454 volume and version of the specification where you found the 1455 problem, quoting the incorrect text if appropriate. If you are 1456 suggesting a new feature, please indicate what the problem you 1457 are trying to solve is. That is more important than the 1458 solution, in fact. 1459 1460 If you do not have or wish to create a bug database account 1461 then you can also e-mail feedback to 1462 (subscribe, archives), 1463 and arrangements will be made to transpose the comments to our 1464 public bug database. 1465 __________________________________________________________ 1466 1467 Introduction 1468 1469 The LSB defines a binary interface for application programs 1470 that are compiled and packaged for LSB-conforming 1471 implementations on many different hardware architectures. A 1472 binary specification must include information specific to the 1473 computer processor architecture for which it is intended. To 1474 avoid the complexity of conditional descriptions, the 1475 specification has instead been divided into generic parts which 1476 are augmented by one of several architecture-specific parts, 1477 depending on the target processor architecture; the generic 1478 part will indicate when reference must be made to the 1479 architecture part, and vice versa. 1480 1481 This document should be used in conjunction with the documents 1482 it references. This document enumerates the system components 1483 it includes, but descriptions of those components may be 1484 included entirely or partly in this document, partly in other 1485 documents, or entirely in other reference documents. For 1486 example, the section that describes system service routines 1487 includes a list of the system routines supported in this 1488 interface, formal declarations of the data structures they use 1489 that are visible to applications, and a pointer to the 1490 underlying referenced specification for information about the 1491 syntax and semantics of each call. Only those routines not 1492 described in standards referenced by this document, or 1493 extensions to those standards, are described in the detail. 1494 Information referenced in this way is as much a part of this 1495 document as is the information explicitly included here. 1496 1497 The specification carries a version number of either the form 1498 x.y or x.y.z. This version number carries the following 1499 meaning: 1500 1501 1. The first number (x) is the major version number. Versions 1502 sharing the same major version number shall be compatible 1503 in a backwards direction; that is, a newer version shall be 1504 compatible with an older version. Any deletion of a library 1505 results in a new major version number. Interfaces marked as 1506 deprecated may be removed from the specification at a major 1507 version change. 1508 2. The second number (y) is the minor version number. 1509 Libraries and individual interfaces may be added, but not 1510 removed. Interfaces may be marked as deprecated at a minor 1511 version change. Other minor changes may be permitted at the 1512 discretion of the LSB workgroup. 1513 3. The third number (z), if present, is the editorial level. 1514 Only editorial changes should be included in such versions. 1515 1516 Since this specification is a descriptive Application Binary 1517 Interface, and not a source level API specification, it is not 1518 possible to make a guarantee of 100% backward compatibility 1519 between major releases. However, it is the intent that those 1520 parts of the binary interface that are visible in the source 1521 level API will remain backward compatible from version to 1522 version, except where a feature marked as "Deprecated" in one 1523 release may be removed from a future release. Implementors are 1524 strongly encouraged to make use of symbol versioning to permit 1525 simultaneous support of applications conforming to different 1526 releases of this specification. 1527 1528 LSB is a trademark of the Linux Foundation. Developers of 1529 applications or implementations interested in using the 1530 trademark should see the Linux Foundation Certification Policy 1531 for details. 1532 1533 I. Introductory Elements 1534 1535 Table of Contents 1536 1. Scope 1537 1538 1.1. General 1539 1.2. Module Specific Scope 1540 1541 2. References 1542 1543 2.1. Normative References 1544 2.2. Informative References/Bibliography 1545 1546 3. Requirements 1547 1548 3.1. Relevant Libraries 1549 3.2. LSB Implementation Conformance 1550 3.3. LSB Application Conformance 1551 1552 4. Terms and Definitions 1553 5. Documentation Conventions 1554 6. Relationship To ISO/IEC 9945 POSIX 1555 7. Relationship To Other Linux Foundation Specifications 1556 __________________________________________________________ 1557 1558 Chapter 1. Scope 1559 1560 1.1. General 1561 1562 The Linux Standard Base (LSB) defines a system interface for 1563 compiled applications and a minimal environment for support of 1564 installation scripts. Its purpose is to enable a uniform 1565 industry standard environment for high-volume applications 1566 conforming to the LSB. 1567 1568 These specifications are composed of two basic parts: a common 1569 part describing those parts of the interface that remain 1570 constant across all implementations of the LSB, and an 1571 architecture-specific part describing the parts of the 1572 interface that vary by processor architecture. Together, the 1573 common part and the relevant architecture-specific part for a 1574 single hardware architecture provide a complete interface 1575 specification for compiled application programs on systems that 1576 share a common hardware architecture. 1577 1578 The LSB contains both a set of Application Program Interfaces 1579 (APIs) and Application Binary Interfaces (ABIs). APIs may 1580 appear in the source code of portable applications, while the 1581 compiled binary of that application may use the larger set of 1582 ABIs. A conforming implementation provides all of the ABIs 1583 listed here. The compilation system may replace (e.g. by macro 1584 definition) certain APIs with calls to one or more of the 1585 underlying binary interfaces, and may insert calls to binary 1586 interfaces as needed. 1587 1588 The LSB is primarily a binary interface definition. Not all of 1589 the source level APIs available to applications may be 1590 contained in this specification. 1591 __________________________________________________________ 1592 1593 1.2. Module Specific Scope 1594 1595 This is the common part of the Core module of the Linux 1596 Standard Base (LSB), LSB Core - Generic. This module provides 1597 the fundamental system interfaces, libraries, and runtime 1598 environment upon which all conforming applications and 1599 libraries depend. 1600 1601 LSB Core - Generic, the common part, should be used in 1602 conjunction with an architecture-specific part. Whenever a 1603 section of the common part is supplemented by 1604 architecture-specific information, the common part includes a 1605 reference to the architecture-specific part. 1606 Architecture-specific parts of the LSB Core Specification may 1607 also contain additional information that is not referenced in 1608 the common part. 1609 1610 Interfaces described in this part of the LSB Core Specification 1611 are mandatory except where explicitly listed otherwise. 1612 Interfaces described in the LSB Core module are supplemented by 1613 other LSB modules. All other modules depend on the presence of 1614 LSB Core. 1615 __________________________________________________________ 1616 1617 Chapter 2. References 1618 1619 2.1. Normative References 1620 1621 The following specifications are incorporated by reference into 1622 this specification. For dated references, only the edition 1623 cited applies. For undated references, the latest edition of 1624 the referenced specification (including any amendments) 1625 applies. 1626 1627 Note: Where copies of a referenced specification are 1628 available on the World Wide Web, a Uniform Resource Locator 1629 (URL) is given, for informative purposes only. Such URL 1630 might at any given time resolve to a more recent copy of the 1631 specification, or be out of date (not resolve). Reference 1632 copies of specifications at the revision level indicated may 1633 be found at the Linux Foundation's Reference Specifications 1634 site. 1635 1636 Table 2-1. Normative References 1637 Name Title URL 1638 Filesystem Hierarchy Standard Filesystem Hierarchy Standard 1639 (FHS) 3.0 http://refspecs.linuxbase.org/fhs 1640 ISO C (1999) ISO/IEC 9899:1999 - Programming Languages -- C 1641 ISO/IEC 14882: 2003 C++ Language ISO/IEC 14882: 2003 1642 Programming languages --C++ 1643 Itanium(TM) C++ ABI Itanium(TM) C++ ABI (Revision 1.86) 1644 http://refspecs.linuxfoundation.org/cxxabi-1.86.html 1645 Large File Support Large File Support 1646 http://www.UNIX-systems.org/version2/whatsnew/lfs20mar.html 1647 Libncursesw API Libncursesw API 1648 http://invisible-island.net/ncurses/man/ncurses.3x.html 1649 Libncursesw Placeholder Libncursesw Specification Placeholder 1650 http://refspecs.linux-foundation.org/libncursesw/libncurses.htm 1651 l 1652 POSIX 1003.1-2001 (ISO/IEC 9945-2003) 1653 1654 ISO/IEC 9945-1:2003 Information technology -- Portable 1655 Operating System Interface (POSIX) -- Part 1: Base Definitions 1656 1657 ISO/IEC 9945-2:2003 Information technology -- Portable 1658 Operating System Interface (POSIX) -- Part 2: System Interfaces 1659 1660 ISO/IEC 9945-3:2003 Information technology -- Portable 1661 Operating System Interface (POSIX) -- Part 3: Shell and 1662 Utilities 1663 1664 ISO/IEC 9945-4:2003 Information technology -- Portable 1665 Operating System Interface (POSIX) -- Part 4: Rationale 1666 1667 Including Technical Cor. 1: 2004 1668 http://www.unix.org/version3/ 1669 POSIX 1003.1-2008 (ISO/IEC 9945-2009) Portable Operating System 1670 Interface (POSIX®) 2008 Edition / The Open Group Technical 1671 Standard Base Specifications, Issue 7 1672 http://www.unix.org/version4/ 1673 SUSv2 CAE Specification, January 1997, System Interfaces and 1674 Headers (XSH),Issue 5 (ISBN: 1-85912-181-0, C606) 1675 http://www.opengroup.org/publications/catalog/un.htm 1676 SVID Issue 3 American Telephone and Telegraph Company, System V 1677 Interface Definition, Issue 3; Morristown, NJ, UNIX Press, 1678 1989. (ISBN 0201566524) 1679 SVID Issue 4 System V Interface Definition, Fourth Edition 1680 http://refspecs.linuxfoundation.org/svid4/ 1681 System V ABI System V Application Binary Interface, Edition 4.1 1682 http://www.sco.com/developers/devspecs/gabi41.pdf 1683 System V ABI Update System V Application Binary Interface - 1684 DRAFT - 17 December 2003 1685 http://www.sco.com/developers/gabi/2003-12-17/contents.html 1686 X/Open Curses, Issue 7 X/Open Curses, Issue 7 (ISBN: 1687 1-931624-83-6, The Open Group, November 2009) 1688 https://www2.opengroup.org/ogsys/catalog/C094 1689 __________________________________________________________ 1690 1691 2.2. Informative References/Bibliography 1692 1693 The documents listed below provide essential background 1694 information to implementors of this specification. These 1695 references are included for information only, and do not 1696 represent normative parts of this specification. 1697 1698 Table 2-2. Other References 1699 Name Title URL 1700 DWARF Debugging Information Format, Version 4 DWARF Debugging 1701 Information Format, Version 4 (June 10, 2010) 1702 http://www.dwarfstd.org/doc/DWARF4.pdf 1703 IEC 60559/IEEE 754 Floating Point IEC 60559:1989 Binary 1704 floating-point arithmetic for microprocessor systems 1705 http://www.ieee.org/ 1706 ISO/IEC TR14652 ISO/IEC Technical Report 14652:2002 1707 Specification method for cultural conventions 1708 ITU-T V.42 International Telecommunication Union Recommendation 1709 V.42 (2002): Error-correcting procedures for DCEs using 1710 asynchronous-to-synchronous conversionITUV 1711 http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&p 1712 arent=T-REC-V.42 1713 Li18nux Globalization Specification LI18NUX 2000 Globalization 1714 Specification, Version 1.0 with Amendment 4 1715 http://www.openi18n.org/docs/html/LI18NUX-2000-amd4.htm 1716 Linux Allocated Device Registry LINUX ALLOCATED DEVICES 1717 http://www.lanana.org/docs/device-list/devices-2.6+.txt 1718 Linux Assigned Names And Numbers Authority Linux Assigned Names 1719 And Numbers Authority http://www.lanana.org/ 1720 Mozilla's NSS SSL Reference Mozilla's NSS SSL Reference 1721 http://www.mozilla.org/projects/security/pki/nss/ref/ssl/ 1722 NSPR Reference Mozilla's NSPR Reference 1723 http://refspecs.linuxfoundation.org/NSPR_API_Reference/NSPR_API 1724 .html 1725 PAM Open Software Foundation, Request For Comments: 86.0 , 1726 October 1995, V. Samar & R.Schemers (SunSoft) 1727 http://www.opengroup.org/tech/rfc/mirror-rfc/rfc86.0.txt 1728 RFC 1321: The MD5 Message-Digest Algorithm IETF RFC 1321: The 1729 MD5 Message-Digest Algorithm 1730 http://www.ietf.org/rfc/rfc1321.txt 1731 RFC 1833: Binding Protocols for ONC RPC Version 2 IETF RFC 1732 1833: Binding Protocols for ONC RPC Version 2 1733 http://www.ietf.org/rfc/rfc1833.txt 1734 RFC 1950: ZLIB Compressed Data Format Specication IETF RFC 1735 1950: ZLIB Compressed Data Format Specification 1736 http://www.ietf.org/rfc/rfc1950.txt 1737 RFC 1951: DEFLATE Compressed Data Format Specification IETF RFC 1738 1951: DEFLATE Compressed Data Format Specification version 1.3 1739 http://www.ietf.org/rfc/rfc1951.txt 1740 RFC 1952: GZIP File Format Specification IETF RFC 1952: GZIP 1741 file format specification version 4.3 1742 http://www.ietf.org/rfc/rfc1952.txt 1743 RFC 2440: OpenPGP Message Format IETF RFC 2440: OpenPGP Message 1744 Format http://www.ietf.org/rfc/rfc2440.txt 1745 RFC 2821:Simple Mail Transfer Protocol IETF RFC 2821: Simple 1746 Mail Transfer Protocol http://www.ietf.org/rfc/rfc2821.txt 1747 RFC 2822:Internet Message Format IETF RFC 2822: Internet 1748 Message Format http://www.ietf.org/rfc/rfc2822.txt 1749 RFC 5531/4506 RPC & XDR IETF RFC 5531 & 4506 1750 http://www.ietf.org/ 1751 RFC 791:Internet Protocol IETF RFC 791: Internet Protocol 1752 Specification http://www.ietf.org/rfc/rfc791.txt 1753 RPM Package Format RPM Package Format V3.0 1754 http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.h 1755 tml 1756 zlib Manual zlib 1.2 Manual http://www.gzip.org/zlib/ 1757 __________________________________________________________ 1758 1759 Chapter 3. Requirements 1760 1761 3.1. Relevant Libraries 1762 1763 The libraries listed in Table 3-1 shall be available on a Linux 1764 Standard Base system, with the specified runtime names. The 1765 libraries listed in Table 3-2 are architecture specific, but 1766 shall be available on all LSB conforming systems. This list may 1767 be supplemented or amended by the relevant architecture 1768 specific part of the LSB Core Specification. 1769 1770 Table 3-1. Standard Library Names 1771 Library Runtime Name 1772 libcrypt libcrypt.so.1 1773 libdl libdl.so.2 1774 libgcc_s libgcc_s.so.1 1775 libncurses libncurses.so.5 1776 libncursesw libncursesw.so.5 1777 libnspr4 libnspr4.so 1778 libnss3 libnss3.so 1779 libpam libpam.so.0 1780 libpthread libpthread.so.0 1781 librt librt.so.1 1782 libssl3 libssl3.so 1783 libstdcxx libstdc++.so.6 1784 libutil libutil.so.1 1785 libz libz.so.1 1786 1787 Table 3-2. Standard Library Names defined in the Architecture 1788 Specific Parts of the LSB Core Specification 1789 Library Runtime Name 1790 libc See architecture specific part. 1791 libm See architecture specific part. 1792 proginterp See architecture specific part. 1793 1794 These libraries will be in an implementation-defined directory 1795 which the dynamic linker shall search by default. 1796 __________________________________________________________ 1797 1798 3.2. LSB Implementation Conformance 1799 1800 A conforming implementation is necessarily architecture 1801 specific, and must provide the interfaces specified by both the 1802 generic LSB Core specification (LSB Core - Generic) and the 1803 relevant architecture specific part of the LSB Core 1804 Specification. 1805 1806 Rationale: An implementation must provide at least the 1807 interfaces specified in these specifications. It may also 1808 provide additional interfaces. 1809 1810 A conforming implementation shall satisfy the following 1811 requirements: 1812 1813 * A processor architecture represents a family of related 1814 processors which may not have identical feature sets. The 1815 architecture specific parts of the LSB Core Specification 1816 that supplement this specification for a given target 1817 processor architecture describe a minimum acceptable 1818 processor. The implementation shall provide all features of 1819 this processor, whether in hardware or through emulation 1820 transparent to the application. 1821 * The implementation shall be capable of executing compiled 1822 applications having the format and using the system 1823 interfaces described in this specification. 1824 * The implementation shall provide libraries containing the 1825 interfaces specified by this specification, and shall 1826 provide a dynamic linking mechanism that allows these 1827 interfaces to be attached to applications at runtime. All 1828 the interfaces shall behave as specified in this 1829 specification. 1830 * The map of virtual memory provided by the implementation 1831 shall conform to the requirements of this specification. 1832 * The implementation's low-level behavior with respect to 1833 function call linkage, system traps, signals, and other 1834 such activities shall conform to the formats described in 1835 this specification. 1836 * The implementation shall provide all of the mandatory 1837 interfaces in their entirety. 1838 * The implementation may provide one or more of the optional 1839 interfaces. Each optional interface that is provided shall 1840 be provided in its entirety. The product documentation 1841 shall state which optional interfaces are provided. 1842 * The implementation shall provide all files and utilities 1843 specified as part of this specification in the format 1844 defined here and in other documents normatively included by 1845 reference. All commands and utilities shall behave as 1846 required by this specification. The implementation shall 1847 also provide all mandatory components of an application's 1848 runtime environment that are included or referenced in this 1849 specification. 1850 * The implementation, when provided with standard data 1851 formats and values at a named interface, shall provide the 1852 behavior defined for those values and data formats at that 1853 interface. However, a conforming implementation may consist 1854 of components which are separately packaged and/or sold. 1855 For example, a vendor of a conforming implementation might 1856 sell the hardware, operating system, and windowing system 1857 as separately packaged items. 1858 * The implementation may provide additional interfaces with 1859 different names. It may also provide additional behavior 1860 corresponding to data values outside the standard ranges, 1861 for standard named interfaces. 1862 __________________________________________________________ 1863 1864 3.3. LSB Application Conformance 1865 1866 A conforming application containing object files is necessarily 1867 architecture specific, and must conform to both the generic LSB 1868 Core specification (LSB Core - Generic) and the relevant 1869 architecture specific part of the LSB Core Specification. A 1870 conforming application which contains no object files may be 1871 architecture neutral. Architecture neutral applications shall 1872 conform only to the requirements of the generic LSB Core 1873 specification (LSB Core - Generic). 1874 1875 A conforming application shall satisfy the following 1876 requirements: 1877 1878 * Executable files shall be either object files in the format 1879 defined in the Object Format section of this specification, 1880 or script files in a scripting language where the 1881 interpreter is required by this specification. 1882 * Object files shall participate in dynamic linking as 1883 defined in the Program Loading and Linking section of this 1884 specification. 1885 * Object files shall employ only the instructions, traps, and 1886 other low-level facilities defined as being for use by 1887 applications in the Low-Level System Information section of 1888 this specification 1889 * If the application requires any optional interface defined 1890 in this specification in order to be installed or to 1891 execute successfully, the requirement for that optional 1892 interface shall be stated in the application's 1893 documentation. 1894 * The application shall not use any interface or data format 1895 that is not required to be provided by a conforming 1896 implementation, unless such an interface or data format is 1897 supplied by another application through direct invocation 1898 of that application during execution. The other application 1899 must also be a conforming application, and the use of such 1900 interface or data format, as well as its source (in other 1901 words, the other conforming application), shall be 1902 identified in the documentation of the application. 1903 * The application shall not use any values for a named 1904 interface that are reserved for vendor extensions. 1905 1906 A strictly conforming application shall not require or use any 1907 interface, facility, or implementation-defined extension not 1908 defined in this specification in order to be installed or to 1909 execute successfully. 1910 __________________________________________________________ 1911 1912 Chapter 4. Terms and Definitions 1913 1914 For the purposes of this document, the terms given in ISO/IEC 1915 Directives, Part 2, Annex H and the following apply. 1916 1917 archLSB 1918 Some LSB specification documents have both a generic, 1919 architecture-neutral part and an architecture-specific 1920 part. The latter describes elements whose definitions 1921 may be unique to a particular processor architecture. 1922 The term archLSB may be used in the generic part to 1923 refer to the corresponding section of the 1924 architecture-specific part. 1925 1926 Binary Standard, ABI 1927 The total set of interfaces that are available to be 1928 used in the compiled binary code of a conforming 1929 application, including the run-time details such as 1930 calling conventions, binary format, C++ name mangling, 1931 etc. 1932 1933 Implementation-defined 1934 Describes a value or behavior that is not defined by 1935 this document but is selected by an implementor. The 1936 value or behavior may vary among implementations that 1937 conform to this document. An application should not rely 1938 on the existence of the value or behavior. An 1939 application that relies on such a value or behavior 1940 cannot be assured to be portable across conforming 1941 implementations. The implementor shall document such a 1942 value or behavior so that it can be used correctly by an 1943 application. 1944 1945 Shell Script 1946 A file that is read by an interpreter (e.g., awk). The 1947 first line of the shell script includes a reference to 1948 its interpreter binary. 1949 1950 Source Standard, API 1951 The total set of interfaces that are available to be 1952 used in the source code of a conforming application. Due 1953 to translations, the Binary Standard and the Source 1954 Standard may contain some different interfaces. 1955 1956 Undefined 1957 Describes the nature of a value or behavior not defined 1958 by this document which results from use of an invalid 1959 program construct or invalid data input. The value or 1960 behavior may vary among implementations that conform to 1961 this document. An application should not rely on the 1962 existence or validity of the value or behavior. An 1963 application that relies on any particular value or 1964 behavior cannot be assured to be portable across 1965 conforming implementations. 1966 1967 Unspecified 1968 Describes the nature of a value or behavior not 1969 specified by this document which results from use of a 1970 valid program construct or valid data input. The value 1971 or behavior may vary among implementations that conform 1972 to this document. An application should not rely on the 1973 existence or validity of the value or behavior. An 1974 application that relies on any particular value or 1975 behavior cannot be assured to be portable across 1976 conforming implementations. 1977 1978 In addition, for the portions of this specification which build 1979 on IEEE Std 1003.1-2001, the definitions given in IEEE Std 1980 1003.1-2001, Base Definitions, Chapter 3 apply. 1981 __________________________________________________________ 1982 1983 Chapter 5. Documentation Conventions 1984 1985 Throughout this document, the following typographic conventions 1986 are used: 1987 1988 function() 1989 1990 the name of a function 1991 command 1992 1993 the name of a command or utility 1994 CONSTANT 1995 1996 a constant value 1997 parameter 1998 1999 a parameter 2000 variable 2001 2002 a variable 2003 2004 Throughout this specification, several tables of interfaces are 2005 presented. Each entry in these tables has the following format: 2006 2007 name 2008 2009 the name of the interface 2010 (symver) 2011 2012 An optional symbol version identifier, if required. 2013 [refno] 2014 2015 A reference number indexing the table of referenced 2016 specifications that follows this table. 2017 2018 For example, 2019 2020 forkpty(GLIBC_2.0) [SUSv4] 2021 2022 refers to the interface named forkpty() with symbol version 2023 GLIBC_2.0 that is defined in the reference indicated by the tag 2024 SUSv4. 2025 2026 Note: For symbols with versions which differ between 2027 architectures, the symbol versions are defined in the 2028 architecture specific parts of of this module specification 2029 only. In the generic part, they will appear without symbol 2030 versions. 2031 __________________________________________________________ 2032 2033 Chapter 6. Relationship To ISO/IEC 9945 POSIX 2034 2035 This specification includes many interfaces described in POSIX 2036 1003.1-2008 (ISO/IEC 9945-2009). Unless otherwise specified, 2037 such interfaces should behave exactly as described in that 2038 specification. Any conflict between the requirements described 2039 here and the POSIX 1003.1-2008 (ISO/IEC 9945-2009) standard is 2040 unintentional, except as explicitly noted otherwise. 2041 2042 Note: In addition to the differences noted in this 2043 specification, a report, ISO/IEC TR 24715-Technical Report 2044 on the Conflicts Between the ISO/IEC 9945 (POSIX) Standard 2045 and the Linux Standard Base Specification (LSB), identifies 2046 the differences between edition 3.1 of this specification 2047 and POSIX 1003.1-2001 (ISO/IEC 9945-2003) (more precisely, 2048 POSIX 2001 plus the first two corrigenda, informally known 2049 as the 2004 edition). It is the long term plan of the Linux 2050 Foundation to converge the LSB Core specification with the 2051 ISO/IEC POSIX specification. 2052 2053 The LSB Specification Authority is responsible for deciding the 2054 meaning of conformance to normative referenced standards in the 2055 LSB context. Problem reports regarding underlying or referenced 2056 standards in any other context will be referred to the relevant 2057 maintenance body for that standard. 2058 __________________________________________________________ 2059 2060 Chapter 7. Relationship To Other Linux Foundation Specifications 2061 2062 The LSB is the base for several other specification projects 2063 under the umbrella of the Linux Foundation (LF). This 2064 specification is the foundation, and other specifications build 2065 on the interfaces defined here. However, beyond those 2066 specifications listed as Normative References, this 2067 specification has no dependencies on other LF projects. 2068 2069 ISO/IEC 23360 corresponds to an earlier edition of this 2070 specification (version 3.1), published as an ISO/IEC standard 2071 in 2006 after submission by the Linux Foundation. The ISO 2072 edition is also the subject of the technical report ISO/IEC TR 2073 24715 referenced in the previous chapter. 2074 2075 II. Executable And Linking Format (ELF) 2076 2077 Table of Contents 2078 8. Introduction 2079 9. Low Level System Information 2080 2081 9.1. Operating System Interface 2082 9.2. Machine Interface 2083 2084 9.2.1. Data Representation 2085 2086 10. Object Format 2087 2088 10.1. Object Files 2089 10.2. Sections 2090 2091 10.2.1. Introduction 2092 10.2.2. Sections Types 2093 2094 10.3. Special Sections 2095 2096 10.3.1. Special Sections 2097 2098 10.4. Symbol Mapping 2099 2100 10.4.1. Introduction 2101 2102 10.5. DWARF Extensions 2103 2104 10.5.1. DWARF Exception Header Encoding 2105 10.5.2. DWARF CFI Extensions 2106 2107 10.6. Exception Frames 2108 2109 10.6.1. The .eh_frame section 2110 10.6.2. The .eh_frame_hdr section 2111 2112 10.7. Symbol Versioning 2113 2114 10.7.1. Introduction 2115 10.7.2. Symbol Version Table 2116 10.7.3. Version Definitions 2117 10.7.4. Version Requirements 2118 10.7.5. Startup Sequence 2119 10.7.6. Symbol Resolution 2120 2121 10.8. ABI note tag 2122 2123 11. Dynamic Linking 2124 2125 11.1. Program Loading and Dynamic Linking 2126 11.2. Program Header 2127 11.3. Dynamic Entries 2128 2129 11.3.1. Introduction 2130 11.3.2. Dynamic Entries 2131 2132 12. C++ Class Representations 2133 2134 12.1. C++ Data Representation 2135 2136 12.1.1. Class Representation 2137 2138 13. Symbol Mapping 2139 2140 13.1. Symbol Mapping 2141 2142 13.1.1. C++ Language 2143 __________________________________________________________ 2144 2145 Chapter 8. Introduction 2146 2147 Executable and Linking Format (ELF) defines the object format 2148 for compiled applications. This specification supplements the 2149 information found in System V ABI Update and is intended to 2150 document additions made since the publication of that document. 2151 __________________________________________________________ 2152 2153 Chapter 9. Low Level System Information 2154 2155 9.1. Operating System Interface 2156 2157 LSB-conforming applications shall assume that stack, heap and 2158 other allocated memory regions will be non-executable. The 2159 application must take steps to make them executable if needed. 2160 __________________________________________________________ 2161 2162 9.2. Machine Interface 2163 2164 9.2.1. Data Representation 2165 2166 LSB-conforming applications shall use the data representation 2167 as defined in the Arcitecture specific ELF documents. 2168 __________________________________________________________ 2169 2170 9.2.1.1. Fundamental Types 2171 2172 In addition to the fundamental types specified in the relevant 2173 architecture specific part of the LSB Core Specification, a 1 2174 byte data type is defined here. 2175 2176 Table 9-1. Scalar Types 2177 Type C C++ sizeof Alignment (bytes) Architecture Representation 2178 Integral _Bool bool 1 1 byte 2179 __________________________________________________________ 2180 2181 Chapter 10. Object Format 2182 2183 10.1. Object Files 2184 2185 LSB-conforming implementations shall support the Executable and 2186 Linking Format (ELF) object file format as defined by the 2187 following documents: 2188 2189 * System V ABI 2190 * System V ABI Update 2191 * the relevant architecture specific ABI supplement. 2192 * this specification 2193 * the relevant architecture specific part of the LSB Core 2194 Specification 2195 2196 Conforming implementations may also support other unspecified 2197 object file formats. 2198 __________________________________________________________ 2199 2200 10.2. Sections 2201 2202 10.2.1. Introduction 2203 2204 As described in System V ABI, an ELF object file contains a 2205 number of sections. 2206 __________________________________________________________ 2207 2208 10.2.2. Sections Types 2209 2210 The section header table is an array of Elf32_Shdr or 2211 Elf64_Shdr structures as described in System V ABI. The sh_type 2212 member shall be either a value from Table 10-1, drawn from the 2213 System V ABI, or one of the additional values specified in 2214 Table 10-2. 2215 2216 A section header's sh_type member specifies the sections's 2217 semantics. 2218 __________________________________________________________ 2219 2220 10.2.2.1. ELF Section Types 2221 2222 The following section types are defined in the System V ABI and 2223 the System V ABI Update. 2224 2225 Table 10-1. ELF Section Types 2226 Name Value Description 2227 SHT_DYNAMIC 0x6 The section holds information for dynamic 2228 linking. Currently, an object file shall have only one dynamic 2229 section, but this restriction may be relaxed in the future. See 2230 `Dynamic Section' in Chapter 5 of System V ABI Update for 2231 details. 2232 SHT_DYNSYM 0xb This section holds a minimal set of symbols 2233 adequate for dynamic linking. See also SHT_SYMTAB. Currently, 2234 an object file may have either a section of SHT_SYMTAB type or 2235 a section of SHT_DYNSYM type, but not both. This restriction 2236 may be relaxed in the future. 2237 SHT_FINI_ARRAY 0xf This section contains an array of pointers 2238 to termination functions, as described in `Initialization and 2239 Termination Functions' in Chapter 5 of System V ABI Update. 2240 Each pointer in the array is taken as a parameterless procedure 2241 with a void return. 2242 SHT_HASH 0x5 The section holds a symbol hash table. Currently, 2243 an object file shall have only one hash table, but this 2244 restriction may be relaxed in the future. See `Hash Table' in 2245 Chapter 5 of System V ABI Update for details. 2246 SHT_INIT_ARRAY 0xe This section contains an array of pointers 2247 to initialization functions, as described in `Initialization 2248 and Termination Functions' in Chapter 5 of System V ABI Update. 2249 Each pointer in the array is taken as a parameterless procedure 2250 with a void return. 2251 SHT_NOBITS 0x8 A section of this type occupies no space in the 2252 file but otherwise resembles SHT_PROGBITS. Although this 2253 section contains no bytes, the sh_offset member contains the 2254 conceptual file offset. 2255 SHT_NOTE 0x7 The section holds information that marks the file 2256 in some way. See `Note Section' in Chapter 5 of System V ABI 2257 Update for details. 2258 SHT_NULL 0x0 This value marks the section header as inactive; 2259 it does not have an associated section. Other members of the 2260 section header have undefined values. 2261 SHT_PREINIT_ARRAY 0x10 This section contains an array of 2262 pointers to functions that are invoked before all other 2263 initialization functions, as described in `Initialization and 2264 Termination Functions' in Chapter 5 of System V ABI Update. 2265 Each pointer in the array is taken as a parameterless proceure 2266 with a void return. 2267 SHT_PROGBITS 0x1 The section holds information defined by the 2268 program, whose format and meaning are determined solely by the 2269 program. 2270 SHT_REL 0x9 The section holds relocation entries without 2271 explicit addends, such as type Elf32_Rel for the 32-bit class 2272 of object files or type Elf64_Rel for the 64-bit class of 2273 object files. An object file may have multiple relocation 2274 sections. See `Relocation' in Chapter 4 of System V ABI Update 2275 for details. 2276 SHT_RELA 0x4 The section holds relocation entries with explicit 2277 addends, such as type Elf32_Rela for the 32-bit class of object 2278 files or type Elf64_Rela for the 64-bit class of object files. 2279 An object file may have multiple relocation sections. See 2280 `Relocation' in Chapter 4 of System V ABI Update for details. 2281 SHT_STRTAB 0x3 The section holds a string table. An object file 2282 may have multiple string table sections. See `String Table' in 2283 Chapter 4 of System V ABI Update for details. 2284 SHT_SYMTAB 0x2 This section holds a symbol table. Currently, an 2285 object file may have either a section of SHT_SYMTAB type or a 2286 section of SHT_DYNSYM type, but not both. This restriction may 2287 be relaxed in the future. Typically, SHT_SYMTAB provides 2288 symbols for link editing, though it may also be used for 2289 dynamic linking. As a complete symbol table, it may contain 2290 many symbols unnecessary for dynamic linking. 2291 __________________________________________________________ 2292 2293 10.2.2.2. Additional Section Types 2294 2295 The following additional section types are defined here. 2296 2297 Table 10-2. Additional Section Types 2298 Name Value Description 2299 SHT_GNU_verdef 0x6ffffffd This section contains the symbol 2300 versions that are provided. 2301 SHT_GNU_verneed 0x6ffffffe This section contains the symbol 2302 versions that are required. 2303 SHT_GNU_versym 0x6fffffff This section contains the Symbol 2304 Version Table. 2305 __________________________________________________________ 2306 2307 10.3. Special Sections 2308 2309 10.3.1. Special Sections 2310 2311 Various sections hold program and control information. Sections 2312 in the lists below are used by the system and have the 2313 indicated types and attributes. 2314 __________________________________________________________ 2315 2316 10.3.1.1. ELF Special Sections 2317 2318 The following sections are defined in the System V ABI and the 2319 System V ABI Update. 2320 2321 Table 10-3. ELF Special Sections 2322 Name Type Attributes 2323 .bss SHT_NOBITS SHF_ALLOC+SHF_WRITE 2324 .comment SHT_PROGBITS SHF_MERGE+SHF_STRINGS 2325 .data SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2326 .data1 SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2327 .debug SHT_PROGBITS 0 2328 .dynamic SHT_DYNAMIC SHF_ALLOC+SHF_WRITE 2329 .dynstr SHT_STRTAB SHF_ALLOC 2330 .dynsym SHT_DYNSYM SHF_ALLOC 2331 .fini SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 2332 .fini_array SHT_FINI_ARRAY SHF_ALLOC+SHF_WRITE 2333 .hash SHT_HASH SHF_ALLOC 2334 .init SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 2335 .init_array SHT_INIT_ARRAY SHF_ALLOC+SHF_WRITE 2336 .interp SHT_PROGBITS SHF_ALLOC 2337 .line SHT_PROGBITS 0 2338 .note SHT_NOTE 0 2339 .preinit_array SHT_PREINIT_ARRAY SHF_ALLOC+SHF_WRITE 2340 .rodata SHT_PROGBITS SHF_ALLOC+SHF_MERGE+SHF_STRINGS 2341 .rodata1 SHT_PROGBITS SHF_ALLOC+SHF_MERGE+SHF_STRINGS 2342 .shstrtab SHT_STRTAB 0 2343 .strtab SHT_STRTAB SHF_ALLOC 2344 .symtab SHT_SYMTAB SHF_ALLOC 2345 .tbss SHT_NOBITS SHF_ALLOC+SHF_WRITE+SHF_TLS 2346 .tdata SHT_PROGBITS SHF_ALLOC+SHF_WRITE+SHF_TLS 2347 .text SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR 2348 2349 .bss 2350 2351 This section holds data that contributes to the program's 2352 memory image. The program may treat this data as uninitialized. 2353 However, the system shall initialize this data with zeroes when 2354 the program begins to run. The section occupies no file space, 2355 as indicated by the section type, SHT_NOBITS. 2356 .comment 2357 2358 This section holds version control information. 2359 .data 2360 2361 This section holds initialized data that contribute to the 2362 program's memory image. 2363 .data1 2364 2365 This section holds initialized data that contribute to the 2366 program's memory image. 2367 .debug 2368 2369 This section holds information for symbolic debugging. The 2370 contents are unspecified. All section names with the prefix 2371 .debug hold information for symbolic debugging. The contents of 2372 these sections are unspecified. 2373 .dynamic 2374 2375 This section holds dynamic linking information. The section's 2376 attributes will include the SHF_ALLOC bit. Whether the 2377 SHF_WRITE bit is set is processor specific. See Chapter 5 of 2378 System V ABI Update for more information. 2379 .dynstr 2380 2381 This section holds strings needed for dynamic linking, most 2382 commonly the strings that represent the names associated with 2383 symbol table entries. See Chapter 5 of System V ABI Update for 2384 more information. 2385 .dynsym 2386 2387 This section holds the dynamic linking symbol table, as 2388 described in `Symbol Table' of System V ABI Update. 2389 .fini 2390 2391 This section holds executable instructions that contribute to 2392 the process termination code. That is, when a program exits 2393 normally, the system arranges to execute the code in this 2394 section. 2395 .fini_array 2396 2397 This section holds an array of function pointers that 2398 contributes to a single termination array for the executable or 2399 shared object containing the section. 2400 .hash 2401 2402 This section holds a symbol hash table. See `Hash Table' in 2403 Chapter 5 of System V ABI Update for more information. 2404 .init 2405 2406 This section holds executable instructions that contribute to 2407 the process initialization code. When a program starts to run, 2408 the system arranges to execute the code in this section before 2409 calling the main program entry point (called main for C 2410 programs). 2411 .init_array 2412 2413 This section holds an array of function pointers that 2414 contributes to a single initialization array for the executable 2415 or shared object containing the section. 2416 .interp 2417 2418 This section holds the path name of a program interpreter. If 2419 the file has a loadable segment that includes relocation, the 2420 sections' attributes will include the SHF_ALLOC bit; otherwise, 2421 that bit will be off. See Chapter 5 of System V ABI Update for 2422 more information. 2423 .line 2424 2425 This section holds line number information for symbolic 2426 debugging, which describes the correspondence between the 2427 source program and the machine code. The contents are 2428 unspecified. 2429 .note 2430 2431 This section holds information in the format that `Note 2432 Section' in Chapter 5 of System V ABI Update describes. 2433 .preinit_array 2434 2435 This section holds an array of function pointers that 2436 contributes to a single pre-initialization array for the 2437 executable or shared object containing the section. 2438 .rodata 2439 2440 This section holds read-only data that typically contribute to 2441 a non-writable segment in the process image. See `Program 2442 Header' in Chapter 5 of System V ABI Update for more 2443 information. 2444 .rodata1 2445 2446 This section holds read-only data that typically contribute to 2447 a non-writable segment in the process image. See `Program 2448 Header' in Chapter 5 of System V ABI Update for more 2449 information. 2450 .shstrtab 2451 2452 This section holds section names. 2453 .strtab 2454 2455 This section holds strings, most commonly the strings that 2456 represent the names associated with symbol table entries. If 2457 the file has a loadable segment that includes the symbol string 2458 table, the section's attributes will include the SHF_ALLOC bit; 2459 otherwise, that bit will be off. 2460 .symtab 2461 2462 This section holds a symbol table, as `Symbol Table' in Chapter 2463 4 of System V ABI Update describes. If the file has a loadable 2464 segment that includes the symbol table, the section's 2465 attributes will include the SHF_ALLOC bit; otherwise, that bit 2466 will be off. 2467 .tbss 2468 2469 This section holds uninitialized thread-local data that 2470 contribute to the program's memory image. By definition, the 2471 system initializes the data with zeros when the data is 2472 instantiated for each new execution flow. The section occupies 2473 no file space, as indicated by the section type, SHT_NOBITS. 2474 Implementations need not support thread-local storage. 2475 .tdata 2476 2477 This section holds initialized thread-local data that 2478 contributes to the program's memory image. A copy of its 2479 contents is instantiated by the system for each new execution 2480 flow. Implementations need not support thread-local storage. 2481 .text 2482 2483 This section holds the `text', or executable instructions, of a 2484 program. 2485 __________________________________________________________ 2486 2487 10.3.1.2. Additional Special Sections 2488 2489 Object files in an LSB conforming application may also contain 2490 one or more of the additional special sections described below. 2491 2492 Table 10-4. Additional Special Sections 2493 Name Type Attributes 2494 .ctors SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2495 .data.rel.ro SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2496 .dtors SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2497 .eh_frame SHT_PROGBITS SHF_ALLOC 2498 .eh_frame_hdr SHT_PROGBITS SHF_ALLOC 2499 .gcc_except_table SHT_PROGBITS SHF_ALLOC 2500 .gnu.version SHT_GNU_versym SHF_ALLOC 2501 .gnu.version_d SHT_GNU_verdef SHF_ALLOC 2502 .gnu.version_r SHT_GNU_verneed SHF_ALLOC 2503 .got.plt SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2504 .jcr SHT_PROGBITS SHF_ALLOC+SHF_WRITE 2505 .note.ABI-tag SHT_NOTE SHF_ALLOC 2506 .stab SHT_PROGBITS 0 2507 .stabstr SHT_STRTAB 0 2508 2509 .ctors 2510 2511 This section contains a list of global constructor function 2512 pointers. 2513 .data.rel.ro 2514 2515 This section holds initialized data that contribute to the 2516 program's memory image. This section may be made read-only 2517 after relocations have been applied. 2518 .dtors 2519 2520 This section contains a list of global destructor function 2521 pointers. 2522 .eh_frame 2523 2524 This section contains information necessary for frame unwinding 2525 during exception handling. See Section 10.6.1. 2526 .eh_frame_hdr 2527 2528 This section contains a pointer to the .eh_frame section which 2529 is accessible to the runtime support code of a C++ application. 2530 This section may also contain a binary search table which may 2531 be used by the runtime support code to more efficiently access 2532 records in the .eh_frame section. See Section 10.6.2. 2533 .gcc_except_table 2534 2535 This section holds Language Specific Data. 2536 .gnu.version 2537 2538 This section contains the Symbol Version Table. See Section 2539 10.7.2. 2540 .gnu.version_d 2541 2542 This section contains the Version Definitions. See Section 2543 10.7.3. 2544 .gnu.version_r 2545 2546 This section contains the Version Requirements. See Section 2547 10.7.4. 2548 .got.plt 2549 2550 This section holds the read-only portion of the GLobal Offset 2551 Table. This section may be made read-only after relocations 2552 have been applied. 2553 .jcr 2554 2555 This section contains information necessary for registering 2556 compiled Java classes. The contents are compiler-specific and 2557 used by compiler initialization functions. 2558 .note.ABI-tag 2559 2560 Specify ABI details. See Section 10.8. 2561 .stab 2562 2563 This section contains debugging information. The contents are 2564 not specified as part of the LSB. 2565 .stabstr 2566 2567 This section contains strings associated with the debugging 2568 infomation contained in the .stab section. 2569 __________________________________________________________ 2570 2571 10.4. Symbol Mapping 2572 2573 10.4.1. Introduction 2574 2575 Symbols in a source program are translated by the compilation 2576 system into symbols that exist in the object file. 2577 __________________________________________________________ 2578 2579 10.4.1.1. C Language 2580 2581 External C symbols shall be unchanged in an object file's 2582 symbol table. 2583 __________________________________________________________ 2584 2585 10.5. DWARF Extensions 2586 2587 The LSB does not specify debugging information, however, some 2588 additional sections contain information which is encoded using 2589 the the encoding as specified by DWARF Debugging Information 2590 Format, Version 4 with extensions defined here. 2591 __________________________________________________________ 2592 2593 10.5.1. DWARF Exception Header Encoding 2594 2595 The DWARF Exception Header Encoding is used to describe the 2596 type of data used in the .eh_frame and .eh_frame_hdr section. 2597 The upper 4 bits indicate how the value is to be applied. The 2598 lower 4 bits indicate the format of the data. 2599 2600 Table 10-5. DWARF Exception Header value format 2601 Name Value Meaning 2602 DW_EH_PE_absptr 0x00 The Value is a literal pointer whose size 2603 is determined by the architecture. 2604 DW_EH_PE_uleb128 0x01 Unsigned value is encoded using the 2605 Little Endian Base 128 (LEB128) as defined by DWARF Debugging 2606 Information Format, Version 4. 2607 DW_EH_PE_udata2 0x02 A 2 bytes unsigned value. 2608 DW_EH_PE_udata4 0x03 A 4 bytes unsigned value. 2609 DW_EH_PE_udata8 0x04 An 8 bytes unsigned value. 2610 DW_EH_PE_sleb128 0x09 Signed value is encoded using the Little 2611 Endian Base 128 (LEB128) as defined by DWARF Debugging 2612 Information Format, Version 4. 2613 DW_EH_PE_sdata2 0x0A A 2 bytes signed value. 2614 DW_EH_PE_sdata4 0x0B A 4 bytes signed value. 2615 DW_EH_PE_sdata8 0x0C An 8 bytes signed value. 2616 2617 Table 10-6. DWARF Exception Header application 2618 Name Value Meaning 2619 DW_EH_PE_pcrel 0x10 Value is relative to the current program 2620 counter. 2621 DW_EH_PE_textrel 0x20 Value is relative to the beginning of the 2622 .text section. 2623 DW_EH_PE_datarel 0x30 Value is relative to the beginning of the 2624 .got or .eh_frame_hdr section. 2625 DW_EH_PE_funcrel 0x40 Value is relative to the beginning of the 2626 function. 2627 DW_EH_PE_aligned 0x50 Value is aligned to an address unit sized 2628 boundary. 2629 2630 One special encoding, 0xff (DW_EH_PE_omit), shall be used to 2631 indicate that no value ispresent. 2632 __________________________________________________________ 2633 2634 10.5.2. DWARF CFI Extensions 2635 2636 In addition to the Call Frame Instructions defined in section 2637 6.4.2 of DWARF Debugging Information Format, Version 4, the 2638 following additional Call Frame Instructions may also be used. 2639 2640 Table 10-7. Additional DWARF Call Frame Instructions 2641 Name Value Meaning 2642 DW_CFA_GNU_args_size 0x2e The DW_CFA_GNU_args_size instruction 2643 takes an unsigned LEB128 operand representing an argument size. 2644 This instruction specifies the total of the size of the 2645 arguments which have been pushed onto the stack. 2646 DW_CFA_GNU_negative_offset_extended 0x2f The DW_CFA_def_cfa_sf 2647 instruction takes two operands: an unsigned LEB128 value 2648 representing a register number and an unsigned LEB128 which 2649 represents the magnitude of the offset. This instruction is 2650 identical to DW_CFA_offset_extended_sf except that the operand 2651 is subtracted to produce the offset. This instructions is 2652 obsoleted by DW_CFA_offset_extended_sf. 2653 __________________________________________________________ 2654 2655 10.6. Exception Frames 2656 2657 When using languages that support exceptions, such as C++, 2658 additional information must be provided to the runtime 2659 environment that describes the call frames that must be unwound 2660 during the processing of an exception. This information is 2661 contained in the special sections .eh_frame and .eh_framehdr. 2662 2663 Note: The format of the .eh_frame section is similar in 2664 format and purpose to the .debug_frame section which is 2665 specified in DWARF Debugging Information Format, Version 4. 2666 Readers are advised that there are some subtle difference, 2667 and care should be taken when comparing the two sections. 2668 __________________________________________________________ 2669 2670 10.6.1. The .eh_frame section 2671 2672 The .eh_frame section shall contain 1 or more Call Frame 2673 Information (CFI) records. The number of records present shall 2674 be determined by size of the section as contained in the 2675 section header. Each CFI record contains a Common Information 2676 Entry (CIE) record followed by 1 or more Frame Description 2677 Entry (FDE) records. Both CIEs and FDEs shall be aligned to an 2678 addressing unit sized boundary. 2679 2680 Table 10-8. Call Frame Information Format 2681 Common Information Entry Record 2682 Frame Description Entry Record(s) 2683 __________________________________________________________ 2684 2685 10.6.1.1. The Common Information Entry Format 2686 2687 Table 10-9. Common Information Entry Format 2688 Length Required 2689 Extended Length Optional 2690 CIE ID Required 2691 Version Required 2692 Augmentation String Required 2693 Code Alignment Factor Required 2694 Data Alignment Factor Required 2695 Return Address Register Required 2696 Augmentation Data Length Optional 2697 Augmentation Data Optional 2698 Initial Instructions Required 2699 Padding 2700 2701 Length 2702 A 4 byte unsigned value indicating the length in bytes 2703 of the CIE structure, not including the Length field 2704 itself. If Length contains the value 0xffffffff, then 2705 the length is contained in the Extended Length field. If 2706 Length contains the value 0, then this CIE shall be 2707 considered a terminator and processing shall end. 2708 2709 Extended Length 2710 A 8 byte unsigned value indicating the length in bytes 2711 of the CIE structure, not including the Length and 2712 Extended Length fields themselves. This field is not 2713 present unless the Length field contains the value 2714 0xffffffff. 2715 2716 CIE ID 2717 A 4 byte unsigned value that is used to distinguish CIE 2718 records from FDE records. This value shall always be 0, 2719 which indicates this record is a CIE. 2720 2721 Version 2722 A 1 byte value that identifies the version number of the 2723 frame information structure. This value shall be 1. 2724 2725 Augmentation String 2726 This value is a NUL terminated string that identifies 2727 the augmentation to the CIE or to the FDEs associated 2728 with this CIE. A zero length string indicates that no 2729 augmentation data is present. The augmentation string is 2730 case sensitive and shall be interpreted as described 2731 below. 2732 2733 Code Alignment Factor 2734 An unsigned LEB128 encoded value that is factored out of 2735 all advance location instructions that are associated 2736 with this CIE or its FDEs. This value shall be 2737 multiplied by the delta argument of an adavance location 2738 instruction to obtain the new location value. 2739 2740 Data Alignment Factor 2741 A signed LEB128 encoded value that is factored out of 2742 all offset instructions that are associated with this 2743 CIE or its FDEs. This value shall be multiplied by the 2744 register offset argument of an offset instruction to 2745 obtain the new offset value. 2746 2747 Augmentation Length 2748 An unsigned LEB128 encoded value indicating the length 2749 in bytes of the Augmentation Data. This field is only 2750 present if the Augmentation String contains the 2751 character 'z'. 2752 2753 Augmentation Data 2754 A block of data whose contents are defined by the 2755 contents of the Augmentation String as described below. 2756 This field is only present if the Augmentation String 2757 contains the character 'z'. The size of this data is 2758 given by the Augentation Length. 2759 2760 Initial Instructions 2761 Initial set of Call Frame Instructions. The number of 2762 instructions is determined by the remaining space in the 2763 CIE record. 2764 2765 Padding 2766 Extra bytes to align the CIE structure to an addressing 2767 unit size boundary. 2768 __________________________________________________________ 2769 2770 10.6.1.1.1. Augmentation String Format 2771 2772 The Agumentation String indicates the presence of some optional 2773 fields, and how those fields should be intepreted. This string 2774 is case sensitive. Each character in the augmentation string in 2775 the CIE can be interpreted as below: 2776 2777 'z' 2778 2779 A 'z' may be present as the first character of the string. If 2780 present, the Augmentation Data field shall be present. The 2781 contents of the Augmentation Data shall be intepreted according 2782 to other characters in the Augmentation String. 2783 'L' 2784 2785 A 'L' may be present at any position after the first character 2786 of the string. This character may only be present if 'z' is the 2787 first character of the string. If present, it indicates the 2788 presence of one argument in the Augmentation Data of the CIE, 2789 and a corresponding argument in the Augmentation Data of the 2790 FDE. The argument in the Augmentation Data of the CIE is 1-byte 2791 and represents the pointer encoding used for the argument in 2792 the Augmentation Data of the FDE, which is the address of a 2793 language-specific data area (LSDA). The size of the LSDA 2794 pointer is specified by the pointer encoding used. 2795 'P' 2796 2797 A 'P' may be present at any position after the first character 2798 of the string. This character may only be present if 'z' is the 2799 first character of the string. If present, it indicates the 2800 presence of two arguments in the Augmentation Data of the CIE. 2801 The first argument is 1-byte and represents the pointer 2802 encoding used for the second argument, which is the address of 2803 a personality routine handler. The personality routine is used 2804 to handle language and vendor-specific tasks. The system unwind 2805 library interface accesses the language-specific exception 2806 handling semantics via the pointer to the personality routine. 2807 The personality routine does not have an ABI-specific name. The 2808 size of the personality routine pointer is specified by the 2809 pointer encoding used. 2810 'R' 2811 2812 A 'R' may be present at any position after the first character 2813 of the string. This character may only be present if 'z' is the 2814 first character of the string. If present, The Augmentation 2815 Data shall include a 1 byte argument that represents the 2816 pointer encoding for the address pointers used in the FDE. 2817 __________________________________________________________ 2818 2819 10.6.1.2. The Frame Description Entry Format 2820 2821 Table 10-10. Frame Description Entry Format 2822 Length Required 2823 Extended Length Optional 2824 FDE Pointer Required 2825 PC Begin Required 2826 PC Range Required 2827 Augmentation Data Length Optional 2828 Augmentation Data Optional 2829 Call Frame Instructions Required 2830 Padding 2831 2832 Length 2833 A 4 byte unsigned value indicating the length in bytes 2834 of the FDE structure, not including the Length field 2835 itself. If Length contains the value 0xffffffff, then 2836 the length is contained the Extended Length field. If 2837 Length contains the value 0, then this FDE shall be 2838 considered a terminator and processing shall end. 2839 2840 Extended Length 2841 A 8 byte unsigned value indicating the length in bytes 2842 of the FDE structure, not including the Length or 2843 Extended Length field themselves. This field is not 2844 present unless the Length field contains the value 2845 0xffffffff. 2846 2847 CIE Pointer 2848 A 4 byte unsigned value that when subtracted from the 2849 offset of the CIE Pointer in the current FDE yields the 2850 offset of the start of the associated CIE. This value 2851 shall never be 0. 2852 2853 PC Begin 2854 An encoded value that indicates the address of the 2855 initial location associated with this FDE. The encoding 2856 format is specified in the Augmentation Data. 2857 2858 PC Range 2859 An absolute value that indicates the number of bytes of 2860 instructions associated with this FDE. 2861 2862 Augmentation Length 2863 An unsigned LEB128 encoded value indicating the length 2864 in bytes of the Augmentation Data. This field is only 2865 present if the Augmentation String in the associated CIE 2866 contains the character 'z'. 2867 2868 Augmentation Data 2869 A block of data whose contents are defined by the 2870 contents of the Augmentation String in the associated 2871 CIE as described above. This field is only present if 2872 the Augmentation String in the associated CIE contains 2873 the character 'z'. The size of this data is given by the 2874 Augentation Length. 2875 2876 Call Frame Instructions 2877 A set of Call Frame Instructions. 2878 2879 Padding 2880 Extra bytes to align the FDE structure to an addressing 2881 unit size boundary. 2882 __________________________________________________________ 2883 2884 10.6.2. The .eh_frame_hdr section 2885 2886 The .eh_frame_hdr section contains additional information about 2887 the .eh_frame section. A pointer to the start of the .eh_frame 2888 data, and optionally, a binary search table of pointers to the 2889 .eh_frame records are found in this section. 2890 2891 Data in this section is encoded according to Section 10.5.1. 2892 2893 Table 10-11. .eh_frame_hdr Section Format 2894 Encoding Field 2895 unsigned byte version 2896 unsigned byte eh_frame_ptr_enc 2897 unsigned byte fde_count_enc 2898 unsigned byte table_enc 2899 encoded eh_frame_ptr 2900 encoded fde_count 2901 binary search table 2902 2903 version 2904 2905 Version of the .eh_frame_hdr format. This value shall be 1. 2906 eh_frame_ptr_enc 2907 2908 The encoding format of the eh_frame_ptr field. 2909 fde_count_enc 2910 2911 The encoding format of the fde_count field. A value of 2912 DW_EH_PE_omit indicates the binary search table is not present. 2913 table_enc 2914 2915 The encoding format of the entries in the binary search table. 2916 A value of DW_EH_PE_omit indicates the binary search table is 2917 not present. 2918 eh_frame_ptr 2919 2920 The encoded value of the pointer to the start of the .eh_frame 2921 section. 2922 fde_count 2923 2924 The encoded value of the count of entries in the binary search 2925 table. 2926 binary search table 2927 2928 A binary search table containing fde_count entries. Each entry 2929 of the table consist of two encoded values, the initial 2930 location, and the address. The entries are sorted in an 2931 increasing order by the initial location value. 2932 __________________________________________________________ 2933 2934 10.7. Symbol Versioning 2935 2936 10.7.1. Introduction 2937 2938 This chapter describes the Symbol Versioning mechanism. All ELF 2939 objects may provide or depend on versioned symbols. Symbol 2940 Versioning is implemented by 3 section types: SHT_GNU_versym, 2941 SHT_GNU_verdef, and SHT_GNU_verneed. 2942 2943 The prefix Elfxx in the following descriptions and code 2944 fragments stands for either "Elf32" or "Elf64", depending on 2945 the architecture. 2946 2947 Versions are described by strings. The structures that are used 2948 for symbol versions also contain a member that holds the ELF 2949 hashing values of the strings. This allows for more efficient 2950 processing. 2951 __________________________________________________________ 2952 2953 10.7.2. Symbol Version Table 2954 2955 The special section .gnu.version which has a section type of 2956 SHT_GNU_versym shall contain the Symbol Version Table. This 2957 section shall have the same number of entries as the Dynamic 2958 Symbol Table in the .dynsym section. 2959 2960 The .gnu.version section shall contain an array of elements of 2961 type Elfxx_Half. Each entry specifies the version defined for 2962 or required by the corresponding symbol in the Dynamic Symbol 2963 Table. 2964 2965 The values in the Symbol Version Table are specific to the 2966 object in which they are located. These values are identifiers 2967 that are provided by the the vna_other member of the 2968 Elfxx_Vernaux structure or the vd_ndx member of the 2969 Elfxx_Verdef structure. 2970 2971 The values 0 and 1 are reserved. 2972 2973 0 2974 2975 The symbol is local, not available outside the object. 2976 1 2977 2978 The symbol is defined in this object and is globally available. 2979 2980 All other values are used to identify version strings located 2981 in one of the other Symbol Version sections. The value itself 2982 is not the version associated with the symbol. The string 2983 identified by the value defines the version of the symbol. 2984 __________________________________________________________ 2985 2986 10.7.3. Version Definitions 2987 2988 The special section .gnu.version_d which has a section type of 2989 SHT_GNU_verdef shall contain symbol version definitions. The 2990 number of entries in this section shall be contained in the 2991 DT_VERDEFNUM entry of the Dynamic Section .dynamic. The sh_link 2992 member of the section header (see figure 4-8 in the System V 2993 ABI) shall point to the section that contains the strings 2994 referenced by this section. 2995 2996 The section shall contain an array of Elfxx_Verdef structures, 2997 as described in Figure 10-1, optionally followed by an array of 2998 Elfxx_Verdaux structures, as defined in Figure 10-2. 2999 typedef struct { 3000 Elfxx_Half vd_version; 3001 Elfxx_Half vd_flags; 3002 Elfxx_Half vd_ndx; 3003 Elfxx_Half vd_cnt; 3004 Elfxx_Word vd_hash; 3005 Elfxx_Word vd_aux; 3006 Elfxx_Word vd_next; 3007 } Elfxx_Verdef; 3008 3009 Figure 10-1. Version Definition Entries 3010 3011 vd_version 3012 3013 Version revision. This field shall be set to 1. 3014 vd_flags 3015 3016 Version information flag bitmask. 3017 vd_ndx 3018 3019 Version index numeric value referencing the SHT_GNU_versym 3020 section. 3021 vd_cnt 3022 3023 Number of associated verdaux array entries. 3024 vd_hash 3025 3026 Version name hash value (ELF hash function). 3027 vd_aux 3028 3029 Offset in bytes to a corresponding entry in an array of 3030 Elfxx_Verdaux structures as defined in Figure 10-2 3031 vd_next 3032 3033 Offset to the next verdef entry, in bytes. 3034 typedef struct { 3035 Elfxx_Word vda_name; 3036 Elfxx_Word vda_next; 3037 } Elfxx_Verdaux; 3038 3039 Figure 10-2. Version Definition Auxiliary Entries 3040 3041 vda_name 3042 3043 Offset to the version or dependency name string in the section 3044 header, in bytes. 3045 vda_next 3046 3047 Offset to the next verdaux entry, in bytes. 3048 __________________________________________________________ 3049 3050 10.7.4. Version Requirements 3051 3052 The special section .gnu.version_r which has a section type of 3053 SHT_GNU_verneed shall contain required symbol version 3054 definitions. The number of entries in this section shall be 3055 contained in the DT_VERNEEDNUM entry of the Dynamic Section 3056 .dynamic. The sh_link member of the section header (see figure 3057 4-8 in System V ABI) shall point to the section that contains 3058 the strings referenced by this section. 3059 3060 The section shall contain an array of Elfxx_Verneed structures, 3061 as described in Figure 10-3, optionally followed by an array of 3062 Elfxx_Vernaux structures, as defined in Figure 10-4. 3063 typedef struct { 3064 Elfxx_Half vn_version; 3065 Elfxx_Half vn_cnt; 3066 Elfxx_Word vn_file; 3067 Elfxx_Word vn_aux; 3068 Elfxx_Word vn_next; 3069 } Elfxx_Verneed; 3070 3071 Figure 10-3. Version Needed Entries 3072 3073 vn_version 3074 3075 Version of structure. This value is currently set to 1, and 3076 will be reset if the versioning implementation is incompatibly 3077 altered. 3078 vn_cnt 3079 3080 Number of associated verneed array entries. 3081 vn_file 3082 3083 Offset to the file name string in the section header, in bytes. 3084 vn_aux 3085 3086 Offset to a corresponding entry in the vernaux array, in bytes. 3087 vn_next 3088 3089 Offset to the next verneed entry, in bytes. 3090 typedef struct { 3091 Elfxx_Word vna_hash; 3092 Elfxx_Half vna_flags; 3093 Elfxx_Half vna_other; 3094 Elfxx_Word vna_name; 3095 Elfxx_Word vna_next; 3096 } Elfxx_Vernaux; 3097 3098 Figure 10-4. Version Needed Auxiliary Entries 3099 3100 vna_hash 3101 3102 Dependency name hash value (ELF hash function). 3103 vna_flags 3104 3105 Dependency information flag bitmask. 3106 vna_other 3107 3108 Object file version identifier used in the .gnu.version symbol 3109 version array. Bit number 15 controls whether or not the object 3110 is hidden; if this bit is set, the object cannot be used and 3111 the static linker will ignore the symbol's presence in the 3112 object. 3113 vna_name 3114 3115 Offset to the dependency name string in the section header, in 3116 bytes. 3117 vna_next 3118 3119 Offset to the next vernaux entry, in bytes. 3120 __________________________________________________________ 3121 3122 10.7.5. Startup Sequence 3123 3124 When loading a sharable object the system shall analyze version 3125 definition data from the loaded object to assure that it meets 3126 the version requirements of the calling object. This step is 3127 referred to as definition testing. The dynamic loader shall 3128 retrieve the entries in the caller's Elfxx_Verneed array and 3129 attempt to find matching definition information in the loaded 3130 Elfxx_Verdef table. 3131 3132 Each object and dependency shall be tested in turn. If a symbol 3133 definition is missing and the vna_flags bit for VER_FLG_WEAK is 3134 not set, the loader shall return an error and exit. If the 3135 vna_flags bit for VER_FLG_WEAK is set in the Elfxx_Vernaux 3136 entry, and the loader shall issue a warning and continue 3137 operation. 3138 3139 When the versions referenced by undefined symbols in the loaded 3140 object are found, version availability is certified. The test 3141 completes without error and the object shall be made available. 3142 __________________________________________________________ 3143 3144 10.7.6. Symbol Resolution 3145 3146 When symbol versioning is used in an object, relocations extend 3147 definition testing beyond the simple match of symbol name 3148 strings: the version of the reference shall also equal the name 3149 of the definition. 3150 3151 The same index that is used in the symbol table can be 3152 referenced in the SHT_GNU_versym section, and the value of this 3153 index is then used to acquire name data. The corresponding 3154 requirement string is retrieved from the Elfxx_Verneed array, 3155 and likewise, the corresponding definition string from the 3156 Elfxx_Verdef table. 3157 3158 If the high order bit (bit number 15) of the version symbolis 3159 set, the object cannot be used and the static linker shall 3160 ignore the symbol's presence in the object. 3161 3162 When an object with a reference and an object with the 3163 definition are being linked, the following rules shall govern 3164 the result: 3165 3166 * The object with the reference and the object with the 3167 definitions both use versioning. All described matching is 3168 processed in this case. A fatal error shall be triggered 3169 when no matching definition can be found in the object 3170 whose name is the one referenced by the vn_name element in 3171 the Elfxx_Verneed entry. 3172 * The object with the reference does not use versioning, 3173 while the object with the definitions does. In this 3174 instance, only the definitions with index numbers 1 and 2 3175 will be used in the reference match, the same identified by 3176 the static linker as the base definition. In cases where 3177 the static linker was not used, such as in calls to 3178 dlopen(), a version that does not have the base definition 3179 index shall be acceptable if it is the only version for 3180 which the symbol is defined. 3181 * The object with the reference uses versioning, but the 3182 object with the definitions specifies none. A matching 3183 symbol shall be accepted in this case. A fatal error shall 3184 be triggered if a corruption in the required symbols list 3185 obscures an outdated object file and causes a match on the 3186 object filename in the Elfxx_Verneed entry. 3187 * Neither the object with the reference nor the object with 3188 the definitions use versioning. The behavior in this 3189 instance shall default to pre-existing symbol rules. 3190 __________________________________________________________ 3191 3192 10.8. ABI note tag 3193 3194 Every executable shall contain a section named .note.ABI-tag of 3195 type SHT_NOTE. This section is structured as a note section as 3196 documented in the ELF spec. The section shall contain at least 3197 the following entry. The name field (namesz/name) contains the 3198 string "GNU". The type field shall be 1. The descsz field shall 3199 be at least 16, and the first 16 bytes of the desc field shall 3200 be as follows. 3201 3202 The first 32-bit word of the desc field shall be 0 (this 3203 signifies a Linux executable). The second, third, and fourth 3204 32-bit words of the desc field contain the earliest compatible 3205 kernel version. For example, if the 3 words are 2, 2, and 5, 3206 this signifies a 2.2.5 kernel. 3207 __________________________________________________________ 3208 3209 Chapter 11. Dynamic Linking 3210 3211 11.1. Program Loading and Dynamic Linking 3212 3213 LSB-conforming implementations shall support the object file 3214 information and system actions that create running programs as 3215 specified in the System V ABI and System V ABI Update and as 3216 further required by this specification and the relevant 3217 architecture specific part of the LSB Core Specification. 3218 3219 Any shared object that is loaded shall contain sufficient 3220 DT_NEEDED records to satisfy the symbols on the shared library. 3221 __________________________________________________________ 3222 3223 11.2. Program Header 3224 3225 In addition to the Segment Types defined in the System V ABI 3226 and System V ABI Update the following Segment Types shall also 3227 be supported. 3228 3229 Table 11-1. Linux Segment Types 3230 Name Value 3231 PT_GNU_EH_FRAME 0x6474e550 3232 PT_GNU_STACK 0x6474e551 3233 PT_GNU_RELRO 0x6474e552 3234 3235 PT_GNU_EH_FRAME 3236 3237 The array element specifies the location and size of the 3238 exception handling information as defined by the .eh_frame_hdr 3239 section. 3240 PT_GNU_STACK 3241 3242 The p_flags member specifies the permissions on the segment 3243 containing the stack and is used to indicate wether the stack 3244 should be executable. The absense of this header indicates that 3245 the stack will be executable. 3246 PT_GNU_RELRO 3247 3248 the array element specifies the location and size of a segment 3249 which may be made read-only after relocations have been 3250 processed. 3251 __________________________________________________________ 3252 3253 11.3. Dynamic Entries 3254 3255 11.3.1. Introduction 3256 3257 As described in System V ABI, if an object file participates in 3258 dynamic linking, its program header table shall have an element 3259 of type PT_DYNAMIC. This `segment' contains the .dynamic 3260 section. A special symbol, _DYNAMIC, labels the section, which 3261 contains an array of the following structures. 3262 typedef struct { 3263 Elf32_Sword d_tag; 3264 union { 3265 Elf32_Word d_val; 3266 Elf32_Addr d_ptr; 3267 } d_un; 3268 } Elf32_Dyn; 3269 3270 extern Elf32_Dyn _DYNAMIC[]; 3271 3272 typedef struct { 3273 Elf64_Sxword d_tag; 3274 union { 3275 Elf64_Xword d_val; 3276 Elf64_Addr d_ptr; 3277 } d_un; 3278 } Elf64_Dyn; 3279 3280 extern Elf64_Dyn _DYNAMIC[]; 3281 3282 Figure 11-1. Dynamic Structure 3283 3284 For each object with this type, d_tag controls the 3285 interpretation of d_un. 3286 __________________________________________________________ 3287 3288 11.3.2. Dynamic Entries 3289 __________________________________________________________ 3290 3291 11.3.2.1. ELF Dynamic Entries 3292 3293 The following dynamic entries are defined in the System V ABI 3294 and System V ABI Update. 3295 3296 DT_BIND_NOW 3297 3298 Process relocations of object 3299 DT_DEBUG 3300 3301 For debugging; unspecified 3302 DT_FINI 3303 3304 Address of termination function 3305 DT_FINI_ARRAY 3306 3307 The address of an array of pointers to termination functions. 3308 DT_FINI_ARRAYSZ 3309 3310 Size in bytes of DT_FINI_ARRAY 3311 DT_FLAGS 3312 3313 Flag values specific to the object being loaded 3314 DT_HASH 3315 3316 Address of symbol hash table 3317 DT_HIPROC 3318 3319 End of processor-specific 3320 DT_INIT 3321 3322 Address of init function 3323 DT_INIT_ARRAY 3324 3325 The address of an array of pointers to initialization 3326 functions. 3327 DT_INIT_ARRAYSZ 3328 3329 Size in bytes of DT_INIT_ARRAY 3330 DT_JMPREL 3331 3332 Address of PLT relocs 3333 DT_LOPROC 3334 3335 Start of processor-specific 3336 DT_NEEDED 3337 3338 Name of needed library 3339 DT_NULL 3340 3341 Marks end of dynamic section 3342 DT_PLTREL 3343 3344 Type of reloc in PLT 3345 DT_PLTRELSZ 3346 3347 Size in bytes of PLT relocs 3348 DT_PREINIT_ARRAY 3349 3350 Array with addresses of preinit functions 3351 DT_PREINIT_ARRAYSZ 3352 3353 Size in bytes of DT_PREINIT_ARRAY 3354 DT_REL 3355 3356 Address of Rel relocs 3357 DT_RELA 3358 3359 Address of Rela relocs 3360 DT_RELAENT 3361 3362 Size of one Rela reloc 3363 DT_RELASZ 3364 3365 Total size of Rela relocs 3366 DT_RELENT 3367 3368 Size of one Rel reloc 3369 DT_RELSZ 3370 3371 Total size of Rel relocs 3372 DT_RPATH 3373 3374 Library search path 3375 DT_RUNPATH 3376 3377 null-terminated library search path string 3378 DT_SONAME 3379 3380 Name of shared object 3381 DT_STRSZ 3382 3383 Size of string table 3384 DT_STRTAB 3385 3386 Address of string table 3387 DT_SYMBOLIC 3388 3389 Start symbol search here 3390 DT_SYMENT 3391 3392 Size of one symbol table entry 3393 DT_SYMTAB 3394 3395 Address of symbol table 3396 DT_TEXTREL 3397 3398 Reloc might modify .text 3399 __________________________________________________________ 3400 3401 11.3.2.2. Additional Dynamic Entries 3402 3403 An LSB conforming object may also use the following additional 3404 Dynamic Entry types. 3405 3406 DT_ADDRRNGHI 3407 3408 Values from DT_ADDRRNGLO through DT_ADDRRNGHI are reserved for 3409 definition by an architecture specific part. 3410 DT_ADDRRNGLO 3411 3412 Values from DT_ADDRRNGLO through DT_ADDRRNGHI are reserved for 3413 definition by an architecture specific part. 3414 DT_AUXILIARY 3415 3416 Shared object to load before self 3417 DT_FILTER 3418 3419 Shared object to get values from 3420 DT_HIOS 3421 3422 Values from DT_LOOS through DT_HIOS are reserved for definition 3423 by specific operating systems. 3424 DT_LOOS 3425 3426 Values from DT_LOOS through DT_HIOS are reserved for definition 3427 by specific operating systems. 3428 DT_NUM 3429 3430 Number of dynamic entry tags defined (excepting reserved 3431 ranges). 3432 DT_POSFLAG_1 3433 3434 Flags for DT_* entries, effecting the following DT_* entry 3435 DT_RELCOUNT 3436 3437 All Elf32_Rel R_*_RELATIVE relocations have been placed into a 3438 single block and this entry specifies the number of entries in 3439 that block. This permits ld.so.1 to streamline the processing 3440 of RELATIVE relocations. 3441 DT_SYMINENT 3442 3443 Entry size of syminfo 3444 DT_SYMINFO 3445 3446 Address of the Syminfo table. 3447 DT_SYMINSZ 3448 3449 Size of syminfo table (in bytes) 3450 DT_VALRNGHI 3451 3452 Entries which fall between DT_VALRNGHI & DT_VALRNGLO use the 3453 Dyn.d_un.d_val field of the Elf*_Dyn structure. 3454 DT_VALRNGLO 3455 3456 Entries which fall between DT_VALRNGHI & DT_VALRNGLO use the 3457 Dyn.d_un.d_val field of the Elf*_Dyn structure. 3458 DT_VERDEF 3459 3460 Address of version definition table 3461 DT_VERDEFNUM 3462 3463 Number of version definitions 3464 DT_VERNEED 3465 3466 Address of table with needed versions 3467 DT_VERNEEDNUM 3468 3469 Number of needed versions 3470 DT_VERSYM 3471 3472 Address of the table provided by the .gnu.version section. 3473 __________________________________________________________ 3474 3475 Chapter 12. C++ Class Representations 3476 3477 12.1. C++ Data Representation 3478 3479 Support for the C++ language shall be as specified in 3480 Itanium(TM) C++ ABI. 3481 3482 Note: This document, although containing a few architecture 3483 specific matters, is written as a generic specification, to 3484 be usable by C++ implementations on a variety of 3485 architectures. 3486 3487 This section provides additional information to supplement 3488 Itanium(TM) C++ ABI. Many of the definitions in that document 3489 are made in terms of C++. This section provides addition 3490 explanations using C terms to avoid self-referential problems. 3491 __________________________________________________________ 3492 3493 12.1.1. Class Representation 3494 3495 An object file generated by the compilation process for a C++ 3496 program shall contain several closely related internal objects, 3497 or Class Components, to represent each C++ Class. Such objects 3498 are not a visible part of the source code. Table 12-1 describes 3499 these Class Components at a high level. 3500 3501 Table 12-1. Class Components 3502 Object Contains 3503 Class Data All non-static Class members 3504 Virtual Table Information needed to dispatch virtual functions, 3505 access virtual base class subobjects and to access the RTTI 3506 information 3507 RTTI Run-Time Type Information used by the typeid and 3508 dynamic_cast operators, and exception handlers 3509 Typeinfo Name String representation of Class name 3510 Construction Virtual Table Information needed during 3511 construction and destruction of Classes with non-trivial 3512 inheritance relationships. 3513 VTT A table of virtual table pointers which holds the addresses 3514 of construction and non-construction virtual tables. 3515 __________________________________________________________ 3516 3517 12.1.1.1. Virtual Table 3518 3519 Virtual tables are specified in Section 2.5.3 of Itanium(TM) 3520 C++ ABI. 3521 3522 Of the various categories of virtual table described in that 3523 specification, Category 1 (Leaf) is further described in Figure 3524 12-1 and Category 2 (Non-virtual bases only) is further 3525 described in Figure 12-2. LSB conforming systems shall support 3526 these categories. 3527 struct { 3528 ptrdiff_t baseobject; 3529 const char *typeinfo; 3530 fptr virtfuncs[0]; 3531 }; 3532 3533 Figure 12-1. Category 1 Virtual Table 3534 struct { 3535 unsigned long vcalloffset; 3536 ptrdiff_t baseobject; 3537 const char *typeinfo; 3538 fptr virtfuncs[0]; 3539 }; 3540 3541 Figure 12-2. Category 2 Virtual Table 3542 3543 This specification describes requirements for virtual tables of 3544 C++ classes using tables of the following form: 3545 3546 Table 12-2. Primary vtable for K (example) 3547 Base Offset 0 3548 Virtual Base Offset 0 3549 RTTI typeinfo for K 3550 vfunc[0]: K::~K() 3551 vfunc[1]: K::~K() 3552 vfunc[2]: K::m1(int*) 3553 vfunc[3]: X::m2() 3554 vfunc[4]: __cxa_pure_virtual() 3555 vfunc[5]: NULL or X::m4(int) 3556 3557 Each row starting from 'vfunc[i]:' refers to a vtable entry 3558 'vfunc[i]' of a class K, which is an entry for a virtual 3559 function A::m, where A is a base class of the class K as 3560 described in the Itanium(TM) C++ ABI. This specification 3561 requires implementations to interpret the vtable entry 3562 information in the following way: 3563 3564 1. A conforming implementation shall contain a vtable of the 3565 class K in the specified shared library; 3566 2. The corresponding entry of this vtable 'vfunc[i]' shall be 3567 an entry for the virtual function A::m; 3568 3. If the second column of the row contains 3569 __cxa_pure_virtual() the corresponding vtable entry of a 3570 LSB-conforming implementation shall contain 3571 __cxa_pure_virtual() or 'Y::m', where Y is the class K, the 3572 class A or a base class of the class K derived from the 3573 class A. 3574 3575 Note: In this case virtual function A::m in class K is 3576 considered to be specified as pure virtual by this 3577 specification. 3578 4. If the second column of the row contains 'X::m' the 3579 corresponding vtable entry of a LSB-conforming 3580 implementation shall contain 'Y::m', where Y is the class 3581 K, the class X or a base class of the class K derived from 3582 the class X. 3583 5. If the second column of the row contains 'NULL or X::m' the 3584 corresponding vtable entry of a LSB-conforming 3585 implementation shall contain NULL or 'Y::m', where Y is the 3586 class K, the class X or a base class of the class K derived 3587 from the class X. 3588 3589 Note: In this case virtual function A::m in class K is 3590 considered to be specified as inline by this specification. 3591 3592 An application may use any non-pure virtual function specified 3593 in this specification, and can expect the specified behavior 3594 irrespective of which particular method implements this 3595 functionality. An application may not use inline virtual 3596 functions at the binary level since its vtable entry may be 3597 NULL. 3598 __________________________________________________________ 3599 3600 12.1.1.2. Run-Time Type Information 3601 3602 Each type used in a C++ program has a data structure associated 3603 with it that provide information about the type which is used 3604 at runtime. This Run Time Type Information (RTTI) is defined in 3605 section 2.9.5 in Itanium(TM) C++ ABI. Additional details about 3606 the layout of this data is provided here. 3607 struct { 3608 void *basevtable; 3609 char *name; 3610 }; 3611 3612 Figure 12-3. Run-Time Type Information Prefix 3613 struct { 3614 void *basevtable; 3615 char *name; 3616 void *basetypeinfo[0]; 3617 }; 3618 3619 Figure 12-4. Run-Time Type Information For Classes with no base 3620 class 3621 struct { 3622 void *basevtable; 3623 char *name; 3624 void *basetype; 3625 void *basetypeinfo[0]; 3626 }; 3627 3628 Figure 12-5. Run-Time Type Information for Classes with a 3629 single base class 3630 struct base_type_info { 3631 char *base_type; 3632 unsigned long offset_flags; 3633 }; 3634 3635 struct { 3636 void *basevtable; 3637 char *name; 3638 unsigned int flags; 3639 unsigned int base_count; 3640 struct base_type_info base_info[0]; 3641 }; 3642 3643 Figure 12-6. Run-Time Type Information for classes with 3644 multiple inheritance 3645 struct { 3646 void *basevtable; 3647 char *name; 3648 unsigned int flags; 3649 void *pointee; 3650 void *basetypeinfo[0]; 3651 }; 3652 3653 Figure 12-7. Run-Time Type Information for pointer types 3654 struct { 3655 void *basevtable; 3656 char *name; 3657 unsigned int flags; 3658 void *pointee; 3659 void *context; 3660 void *basetypeinfo[0]; 3661 }; 3662 3663 Figure 12-8. Run-Time Type Information for pointer to member 3664 types 3665 __________________________________________________________ 3666 3667 Chapter 13. Symbol Mapping 3668 3669 This chapter defines how names are mapped from the source 3670 symbol to the object symbol. 3671 __________________________________________________________ 3672 3673 13.1. Symbol Mapping 3674 3675 Symbols in a source program are translated by the compilation 3676 system into symbols that exist in the object file. The rules 3677 for this translation are defined here. 3678 __________________________________________________________ 3679 3680 13.1.1. C++ Language 3681 3682 External symbol names in a C++ object file shall be encoded 3683 according to the "name mangling" rules described in the 3684 Itanium(TM) C++ ABI. 3685 3686 III. Base Libraries 3687 3688 Table of Contents 3689 14. Base Libraries 3690 3691 14.1. Introduction 3692 14.2. Program Interpreter 3693 14.3. Interfaces for libc 3694 3695 14.3.1. RPC 3696 14.3.2. Epoll 3697 14.3.3. System Calls 3698 14.3.4. Standard I/O 3699 14.3.5. Signal Handling 3700 14.3.6. Localization Functions 3701 14.3.7. Posix Spawn Option 3702 14.3.8. Posix Advisory Option 3703 14.3.9. Socket Interface 3704 14.3.10. Wide Characters 3705 14.3.11. String Functions 3706 14.3.12. IPC Functions 3707 14.3.13. Regular Expressions 3708 14.3.14. Character Type Functions 3709 14.3.15. Time Manipulation 3710 14.3.16. Terminal Interface Functions 3711 14.3.17. System Database Interface 3712 14.3.18. Language Support 3713 14.3.19. Large File Support 3714 14.3.20. Inotify 3715 14.3.21. Standard Library 3716 14.3.22. GNU Extensions for libc 3717 3718 14.4. Data Definitions for libc 3719 3720 14.4.1. argz.h 3721 14.4.2. arpa/inet.h 3722 14.4.3. assert.h 3723 14.4.4. cpio.h 3724 14.4.5. ctype.h 3725 14.4.6. dirent.h 3726 14.4.7. elf.h 3727 14.4.8. endian.h 3728 14.4.9. envz.h 3729 14.4.10. err.h 3730 14.4.11. errno.h 3731 14.4.12. error.h 3732 14.4.13. execinfo.h 3733 14.4.14. fcntl.h 3734 14.4.15. fmtmsg.h 3735 14.4.16. fnmatch.h 3736 14.4.17. ftw.h 3737 14.4.18. getopt.h 3738 14.4.19. glob.h 3739 14.4.20. gnu/libc-version.h 3740 14.4.21. grp.h 3741 14.4.22. iconv.h 3742 14.4.23. ifaddrs.h 3743 14.4.24. inttypes.h 3744 14.4.25. langinfo.h 3745 14.4.26. libgen.h 3746 14.4.27. libintl.h 3747 14.4.28. limits.h 3748 14.4.29. link.h 3749 14.4.30. locale.h 3750 14.4.31. lsb/time.h 3751 14.4.32. lsb/types.h 3752 14.4.33. lsb/wchar.h 3753 14.4.34. monetary.h 3754 14.4.35. net/if.h 3755 14.4.36. netdb.h 3756 14.4.37. netinet/icmp6.h 3757 14.4.38. netinet/igmp.h 3758 14.4.39. netinet/in.h 3759 14.4.40. netinet/in_systm.h 3760 14.4.41. netinet/ip.h 3761 14.4.42. netinet/ip6.h 3762 14.4.43. netinet/ip_icmp.h 3763 14.4.44. netinet/tcp.h 3764 14.4.45. netinet/udp.h 3765 14.4.46. nl_types.h 3766 14.4.47. poll.h 3767 14.4.48. pwd.h 3768 14.4.49. regex.h 3769 14.4.50. rpc/auth.h 3770 14.4.51. rpc/clnt.h 3771 14.4.52. rpc/pmap_clnt.h 3772 14.4.53. rpc/rpc_msg.h 3773 14.4.54. rpc/svc.h 3774 14.4.55. rpc/types.h 3775 14.4.56. rpc/xdr.h 3776 14.4.57. sched.h 3777 14.4.58. search.h 3778 14.4.59. setjmp.h 3779 14.4.60. signal.h 3780 14.4.61. spawn.h 3781 14.4.62. stddef.h 3782 14.4.63. stdint.h 3783 14.4.64. stdio.h 3784 14.4.65. stdlib.h 3785 14.4.66. string.h 3786 14.4.67. strings.h 3787 14.4.68. sys/epoll.h 3788 14.4.69. sys/file.h 3789 14.4.70. sys/inotify.h 3790 14.4.71. sys/ioctl.h 3791 14.4.72. sys/ipc.h 3792 14.4.73. sys/mman.h 3793 14.4.74. sys/msg.h 3794 14.4.75. sys/param.h 3795 14.4.76. sys/poll.h 3796 14.4.77. sys/ptrace.h 3797 14.4.78. sys/resource.h 3798 14.4.79. sys/select.h 3799 14.4.80. sys/sem.h 3800 14.4.81. sys/sendfile.h 3801 14.4.82. sys/shm.h 3802 14.4.83. sys/socket.h 3803 14.4.84. sys/stat.h 3804 14.4.85. sys/statfs.h 3805 14.4.86. sys/statvfs.h 3806 14.4.87. sys/sysinfo.h 3807 14.4.88. sys/time.h 3808 14.4.89. sys/timeb.h 3809 14.4.90. sys/times.h 3810 14.4.91. sys/types.h 3811 14.4.92. sys/uio.h 3812 14.4.93. sys/un.h 3813 14.4.94. sys/utsname.h 3814 14.4.95. sys/wait.h 3815 14.4.96. sysexits.h 3816 14.4.97. syslog.h 3817 14.4.98. tar.h 3818 14.4.99. termios.h 3819 14.4.100. time.h 3820 14.4.101. ucontext.h 3821 14.4.102. ulimit.h 3822 14.4.103. unistd.h 3823 14.4.104. utime.h 3824 14.4.105. utmp.h 3825 14.4.106. utmpx.h 3826 14.4.107. wchar.h 3827 14.4.108. wctype.h 3828 14.4.109. wordexp.h 3829 3830 14.5. Interface Definitions for libc 3831 3832 _IO_feof -- alias for feof 3833 _IO_getc -- alias for getc 3834 _IO_putc -- alias for putc 3835 _IO_puts -- alias for puts 3836 __assert_fail -- abort the program after false 3837 assertion 3838 3839 __chk_fail -- terminate a function in case of buffer 3840 overflow 3841 3842 __confstr_chk -- get configuration dependent string 3843 variables, with buffer overflow checking 3844 3845 __ctype_b_loc -- accessor function for __ctype_b 3846 array for ctype functions 3847 3848 __ctype_get_mb_cur_max -- maximum length of a 3849 multibyte character in the current locale 3850 3851 __ctype_tolower_loc -- accessor function for 3852 __ctype_b_tolower array for ctype tolower() 3853 function 3854 3855 __ctype_toupper_loc -- accessor function for 3856 __ctype_b_toupper() array for ctype 3857 toupper() function 3858 3859 __cxa_atexit -- register a function to be called by 3860 exit or when a shared library is unloaded 3861 3862 __cxa_finalize -- call destructors of global (or 3863 local static) C++ objects and exit functions 3864 registered with atexit 3865 3866 __daylight -- external daylight savings time flag 3867 __environ -- alias for environ - user environment 3868 __errno_location -- address of errno variable 3869 __fgets_chk -- string input, with buffer overflow 3870 checking 3871 3872 __fgets_unlocked_chk -- non-locking string input, 3873 with buffer overflow checking 3874 3875 __fgetws_chk -- read a wide-character string from a 3876 FILE stream, with buffer overflow checking 3877 3878 __fgetws_unlocked_chk -- read a wide-character 3879 string from a FILE stream in a non-locking 3880 manner, with stack checking 3881 3882 __fpending -- returns in bytes the amount of output 3883 pending on a stream 3884 3885 __fprintf_chk -- convert formatted output, with 3886 stack checking 3887 3888 __fwprintf_chk -- convert formatted wide-character 3889 output, with stack checking 3890 3891 __fxstatat -- get file status relative to directory 3892 file descriptor 3893 3894 __fxstatat64, fstatat64 -- get file status relative 3895 to a directory file descriptor (Large File 3896 Support) 3897 3898 __getcwd_chk -- get current working directory, with 3899 buffer overflow checking 3900 3901 __getgroups_chk -- get list of supplementary group 3902 IDs, with buffer overflow checking 3903 3904 __gethostname_chk -- get host name, with buffer 3905 overflow checking 3906 3907 __getlogin_r_chk -- get user name, with buffer 3908 overflow checking (reentrant) 3909 3910 __getpagesize -- alias for getpagesize - get current 3911 page size 3912 3913 __getpgid -- get the process group id 3914 __h_errno_location -- address of h_errno variable 3915 __isinf -- test for infinity 3916 __isinff -- test for infinity 3917 __isinfl -- test for infinity 3918 __isnan -- test for infinity 3919 __isnanf -- test for infinity 3920 __isnanl -- test for infinity 3921 __libc_current_sigrtmax -- return number of 3922 available real-time signal with lowest 3923 priority 3924 3925 __libc_current_sigrtmin -- return number of 3926 available real-time signal with highest 3927 priority 3928 3929 __libc_start_main -- initialization routine 3930 __mbsnrtowcs_chk -- convert a multibyte string to a 3931 wide-character string, with buffer overflow 3932 checking 3933 3934 __mbsrtowcs_chk -- convert a multibyte string to a 3935 wide-character string, with buffer overflow 3936 checking 3937 3938 __mbstowcs_chk -- convert a multibyte string to a 3939 wide-character string, with buffer overflow 3940 checking 3941 3942 __memcpy_chk -- copy memory area, with buffer 3943 overflow checking 3944 3945 __memmove_chk -- copy memory area, with buffer 3946 overflow checking 3947 3948 __mempcpy -- copy given number of bytes of source to 3949 destination 3950 3951 __mempcpy_chk -- copy memory area, with buffer 3952 overflow checking 3953 3954 __memset_chk -- fill memory with a constant byte, 3955 using buffer overflow checking 3956 3957 __pread64_chk -- read from a file descriptor at a 3958 given offset, with buffer overflow checking 3959 3960 __pread_chk -- read from a file descriptor at a 3961 given offset, with buffer overflow checking 3962 3963 __printf_chk -- format and print data, with stack 3964 checking 3965 3966 __rawmemchr -- scan memory 3967 __read_chk -- read from a file descriptor, with 3968 buffer overflow checking 3969 3970 __readlink_chk -- display value of a symbolic link, 3971 with buffer overflow checking 3972 3973 __realpath_chk -- return the canonicalized absolute 3974 pathname, with buffer overflow checking 3975 3976 __recv_chk -- receive a message from a socket, with 3977 buffer overflow checking 3978 3979 __recvfrom_chk -- receive a message from a socket, 3980 with buffer overflow checking 3981 3982 __register_atfork -- alias for register_atfork 3983 __sigsetjmp -- save stack context for non-local goto 3984 __snprintf_chk -- convert formatted output, with 3985 buffer overflow checking 3986 3987 __sprintf_chk -- convert formatted output, with 3988 stack checking 3989 3990 __stack_chk_fail -- terminate a function in case of 3991 stack overflow 3992 3993 __stpcpy -- alias for stpcpy 3994 __stpcpy_chk -- copy a string returning a pointer to 3995 its end, with buffer overflow checking 3996 3997 __stpncpy_chk -- copy a fixed-size string, returning 3998 a pointer to its end, with buffer overflow 3999 checking 4000 4001 __strcat_chk -- concatenate two strings, with buffer 4002 overflow checking 4003 4004 __strcpy_chk -- copy a string, with buffer overflow 4005 checking 4006 4007 __strdup -- alias for strdup 4008 __strncat_chk -- concatenate two strings, with 4009 buffer overflow checking 4010 4011 __strncpy_chk -- copy a string, with buffer overflow 4012 checking 4013 4014 __strtod_internal -- underlying function for strtod 4015 __strtof_internal -- underlying function for strtof 4016 __strtok_r -- alias for strtok_r 4017 __strtol_internal -- alias for strtol 4018 __strtold_internal -- underlying function for 4019 strtold 4020 4021 __strtoll_internal -- underlying function for 4022 strtoll 4023 4024 __strtoul_internal -- underlying function for 4025 strtoul 4026 4027 __strtoull_internal -- underlying function for 4028 strtoull 4029 4030 __swprintf_chk -- convert formatted wide-character 4031 output, with stack checking 4032 4033 __sysconf -- get configuration information at 4034 runtime 4035 4036 __syslog_chk -- send messages to the system logger, 4037 with stack checking 4038 4039 __sysv_signal -- signal handling 4040 __timezone -- external variable containing timezone 4041 __ttyname_r_chk -- return name of a terminal, with 4042 buffer overflow checking (reentrant) 4043 4044 __tzname -- external variable containing the 4045 timezone names 4046 4047 __vfprintf_chk -- convert formatted output, with 4048 stack checking 4049 4050 __vfwprintf_chk -- convert formatted wide-character 4051 output, with stack checking 4052 4053 __vprintf_chk -- convert formatted output, with 4054 stack checking 4055 4056 __vsnprintf_chk -- convert formatted output, with 4057 stack checking 4058 4059 __vsprintf_chk -- convert formatted output, with 4060 stack checking 4061 4062 __vswprintf_chk -- convert formatted wide-character 4063 output, with stack checking 4064 4065 __vsyslog_chk -- send messages to the system logger, 4066 with stack checking 4067 4068 __vwprintf_chk -- convert formatted wide-character 4069 output, with stack checking 4070 4071 __wcpcpy_chk -- copy a wide-character string, 4072 returning a pointer to its end, with buffer 4073 overflow checking 4074 4075 __wcpncpy_chk -- copy a fixed-size string of wide 4076 characters, returning a pointer to its end, 4077 with buffer overflow checking 4078 4079 __wcrtomb_chk -- convert a wide character to a 4080 multibyte sequence, with buffer overflow 4081 checking 4082 4083 __wcscat_chk -- concatenate two wide-character 4084 strings, with buffer overflow checking 4085 4086 __wcscpy_chk -- copy a wide-character string, with 4087 buffer overflow checking 4088 4089 __wcsncat_chk -- concatenate two wide-character 4090 strings, with buffer overflow checking 4091 4092 __wcsncpy_chk -- copy a fixed-size string of wide 4093 characters, with buffer overflow checking 4094 4095 __wcsnrtombs_chk -- convert a wide-character string 4096 to a multibyte string, with buffer overflow 4097 checking 4098 4099 __wcsrtombs_chk -- convert a wide-character string 4100 to a multibyte string, with buffer overflow 4101 checking 4102 4103 __wcstod_internal -- underlying function for wcstod 4104 __wcstof_internal -- underlying function for wcstof 4105 __wcstol_internal -- underlying function for wcstol 4106 __wcstold_internal -- underlying function for 4107 wcstold 4108 4109 __wcstombs_chk -- convert a wide-character string to 4110 a multibyte string, with buffer overflow 4111 checking 4112 4113 __wcstoul_internal -- underlying function for 4114 wcstoul 4115 4116 __wctomb_chk -- convert a wide character to a 4117 multibyte sequence, with buffer overflow 4118 checking 4119 4120 __wmemcpy_chk -- copy an array of wide-characters, 4121 with buffer overflow checking 4122 4123 __wmemmove_chk -- copy an array of wide-characters, 4124 with buffer overflow checking 4125 4126 __wmempcpy_chk -- copy memory area, with buffer 4127 overflow checking 4128 4129 __wmemset_chk -- fill an array of wide-characters 4130 with a constant wide character, with buffer 4131 overflow checking 4132 4133 __wprintf_chk -- convert formatted wide-character 4134 output, with stack checking 4135 4136 __xmknod -- make a special file 4137 __xmknodat -- make a special file relative to a 4138 directory file descriptor 4139 4140 __xpg_basename -- return the last component of a 4141 file name 4142 4143 __xpg_sigpause -- remove a signal from the signal 4144 mask and suspend the thread 4145 4146 __xpg_strerror_r -- return string describing error 4147 number 4148 4149 __xstat -- get File Status 4150 __xstat64 -- get File Status 4151 _environ -- alias for environ - user environment 4152 _nl_msg_cat_cntr -- new catalog load counter 4153 _sys_errlist -- array containing the "C" locale 4154 strings used by strerror() 4155 4156 _sys_siglist -- array containing the names of the 4157 signal names 4158 4159 acct -- switch process accounting on or off 4160 adjtime -- correct the time to allow synchronization 4161 of the system clock 4162 4163 alphasort64 -- Comparison function for directory 4164 scanning (Large File Support) 4165 4166 argz_add, argz_add_sep, argz_append, argz_count, 4167 argz_create, argz_create_sep, argz_delete, 4168 argz_extract, argz_insert, argz_next, 4169 argz_replace, argz_stringify -- Operate on 4170 argz vectors 4171 4172 asprintf -- write formatted output to a dynamically 4173 allocated string 4174 4175 backtrace, backtrace_symbols, 4176 backtrace_symbols_fd -- runtime stack back 4177 tracing 4178 4179 basename -- return the last component of a file name 4180 bind_textdomain_codeset -- specify encoding for 4181 message retrieval 4182 4183 bindresvport -- bind socket to privileged IP port 4184 bindtextdomain -- specify the location of a message 4185 catalog 4186 4187 cfmakeraw -- get and set terminal attributes 4188 cfsetspeed -- set terminal input and output data 4189 rate 4190 4191 clearerr_unlocked -- non-thread-safe clearerr 4192 daemon -- run in the background 4193 dcgettext -- perform domain and category specific 4194 lookup in message catalog 4195 4196 dcngettext -- perform domain and category specific 4197 lookup in message catalog with plural 4198 4199 dgettext -- perform lookup in message catalog for 4200 the current LC_MESSAGES locale 4201 4202 dl_iterate_phdr -- iterate over a program's loaded 4203 shared objects 4204 4205 dngettext -- perform lookup in message catalog for 4206 the current locale 4207 4208 drand48_r -- reentrantly generate pseudorandom 4209 numbers in a uniform distribution 4210 4211 endutent -- access utmp file entries 4212 envz_add, envz_entry, envz_get, envz_merge, 4213 envz_remove, envz_strip -- Operate on 4214 environment vectors 4215 4216 epoll_create -- open an epoll file descriptor 4217 epoll_ctl -- control an epoll file descriptor 4218 epoll_wait -- wait for I/O events on an epoll file 4219 descriptor 4220 4221 erand48_r -- reentrantly generate pseudorandom 4222 numbers in a uniform distribution 4223 4224 err -- display formatted error messages 4225 error -- print error message 4226 errx -- display formatted error message and exit 4227 fcntl -- file control 4228 feof_unlocked -- non-thread-safe feof 4229 ferror_unlocked -- non-thread-safe ferror 4230 fflush_unlocked -- non thread safe fflush 4231 fgetc_unlocked -- non-thread-safe fgetc 4232 fgets_unlocked -- non-thread-safe fgets 4233 fgetwc_unlocked -- non thread safe fgetwc 4234 fgetws_unlocked -- non-thread-safe fgetws 4235 fileno_unlocked -- non-thread-safe fileno 4236 flock -- apply or remove an advisory lock on an open 4237 file 4238 4239 fnmatch -- match a filename or a pathname 4240 fputc_unlocked -- non-thread-safe fputc 4241 fputs_unlocked -- non-thread-safe fputs 4242 fputwc_unlocked -- non-thread-safe fputwc 4243 fputws_unlocked -- non-thread-safe fputws 4244 fread_unlocked -- non-thread-safe fread 4245 fscanf -- convert formatted input 4246 fstatfs -- (deprecated) 4247 fstatfs64 -- (deprecated) 4248 futimes -- set file access and modification times 4249 fwrite_unlocked -- non-thread-safe fwrite 4250 fwscanf -- convert formatted input 4251 getcwd -- get the pathname of the current working 4252 directory 4253 4254 getdomainname -- get NIS domain name (DEPRECATED). 4255 getdtablesize -- get file descriptor table size 4256 (DEPRECATED) 4257 4258 getgrent_r -- reentrantly get entry in group file 4259 getgrouplist -- get groups a user belongs to 4260 gethostbyaddr_r -- find network host database entry 4261 matching host name (DEPRECATED) 4262 4263 gethostbyname2 -- find network host database entry 4264 matching host name (DEPRECATED) 4265 4266 gethostbyname2_r -- find network host database entry 4267 matching host name (DEPRECATED) 4268 4269 gethostbyname_r -- find network host database entry 4270 matching host name (DEPRECATED) 4271 4272 getifaddrs -- get interface addresses 4273 getloadavg -- get system load averages 4274 getopt -- parse command line options 4275 getopt_long -- parse command line options 4276 getopt_long_only -- parse command line options 4277 getpagesize -- get memory page size (DEPRECATED) 4278 getprotobyname_r -- retrieve information from the 4279 network protocol database by protocol name, 4280 reentrantly 4281 4282 getprotobynumber_r -- retrieve information from the 4283 network protocol database by protocol 4284 number, reentrantly 4285 4286 getprotoent_r -- read the next entry of the protocol 4287 database, reentrantly 4288 4289 getpwent_r -- reentrantly get entry in passwd file 4290 getrlimit, setrlimit -- get resource consumption 4291 limits 4292 4293 getservbyname_r -- retrieve information from the 4294 network services database by service name, 4295 reentrantly 4296 4297 getservbyport_r -- retrieve information from the 4298 network services database by service port, 4299 reentrantly 4300 4301 getservent_r -- read the next entry of the network 4302 services database, reentrantly 4303 4304 getsockopt -- get socket options 4305 gettext -- search message catalogs for a string 4306 getutent -- access user accounting database entries 4307 getutent_r -- access user accounting database 4308 entries 4309 4310 getwc_unlocked -- non-thread-safe getwc 4311 getwchar_unlocked -- non-thread-safe getwchar 4312 glob64 -- find pathnames matching a pattern (Large 4313 File Support) 4314 4315 globfree64 -- free memory from glob64() (Large File 4316 Support) 4317 4318 gnu_get_libc_version, gnu_get_libc_release -- get 4319 glibc-specific version and release 4320 4321 hcreate_r -- allocate space for a hash search table, 4322 reentrantly 4323 4324 hdestroy_r -- dispose of a hash search table, 4325 reentrantly 4326 4327 hsearch_r -- search a hash table, reentrantly 4328 inet_aton -- Internet address manipulation routine 4329 initgroups -- initialize the supplementary group 4330 access list 4331 4332 initstate_r -- reentrantly initialize a state array 4333 for random number generator functions 4334 4335 inotify_add_watch -- add a watch to a watch list 4336 inotify_init -- instantiate inotify 4337 inotify_rm_watch -- remove a watch from an inotify 4338 watch list 4339 4340 ioctl -- control device 4341 sockio -- socket ioctl commands 4342 ttyio -- tty ioctl commands 4343 jrand48_r -- reentrantly generate pseudorandom 4344 numbers in a uniform distribution 4345 4346 kill -- send a signal 4347 lcong48_r -- reentrantly generate pseudorandom 4348 numbers in a uniform distribution 4349 4350 link -- create a link to a file 4351 lrand48_r -- reentrantly generate pseudorandom 4352 numbers in a uniform distribution 4353 4354 memmem -- locate bytes 4355 memrchr -- scan memory for a character 4356 mkstemp64 -- create a unique temporary file (Large 4357 File Support) 4358 4359 mrand48_r -- reentrantly generate pseudorandom 4360 numbers in a uniform distribution 4361 4362 mremap -- remap a virtual memory address 4363 ngettext -- search message catalogs for plural 4364 string 4365 4366 nrand48_r -- reentrantly generate pseudorandom 4367 numbers in a uniform distribution 4368 4369 openat64 -- open a file relative to a directory file 4370 descriptor (Large File Support) 4371 4372 pmap_getport -- find the port number assigned to a 4373 service registered with a portmapper. 4374 4375 pmap_set -- establishes mapping to machine's RPC 4376 Bind service. 4377 4378 pmap_unset -- destroys RPC Binding 4379 posix_fadvise64 -- File advisory information (Large 4380 File Support) 4381 4382 posix_fallocate64 -- file space control (Large File 4383 Support) 4384 4385 pread64 -- read from a file (Large File Support) 4386 ptrace -- process trace 4387 putwc_unlocked -- non-thread-safe putwc 4388 putwchar_unlocked -- non-thread-safe putwchar 4389 pwrite64 -- write on a file (Large File Support) 4390 random_r -- reentrantly generate pseudorandom 4391 numbers in a uniform distribution 4392 4393 readdir64_r -- read a directory (Large File Support) 4394 regexec -- regular expression matching 4395 scandir64 -- scan a directory (Large File Support) 4396 scanf -- convert formatted input 4397 sched_getaffinity -- retrieve the affinity mask of a 4398 process 4399 4400 sched_setaffinity -- set the CPU affinity mask for a 4401 process 4402 4403 sched_setscheduler -- set scheduling policy and 4404 parameters 4405 4406 seed48_r -- reentrantly generate pseudorandom 4407 numbers in a uniform distribution 4408 4409 sendfile -- transfer data between two file 4410 descriptors 4411 4412 sendfile64 -- transfer data between two file 4413 descriptors (Large File Support) 4414 4415 setbuffer -- stream buffering operation 4416 setgroups -- set list of supplementary group IDs 4417 sethostname -- set host name 4418 setsockopt -- set socket options 4419 setstate_r -- reentrantly change the state array 4420 used by random number generator functions 4421 4422 setutent -- access user accounting database entries 4423 sigandset -- build a new signal set by combining the 4424 two input sets using logical AND 4425 4426 sigisemptyset -- check for empty signal set 4427 sigorset -- build a new signal set by combining the 4428 two input sets using logical OR 4429 4430 sigpause -- remove a signal from the signal mask and 4431 suspend the thread (deprecated) 4432 4433 sigreturn -- return from signal handler and cleanup 4434 stack frame 4435 4436 srand48_r -- reentrantly generate pseudorandom 4437 numbers in a uniform distribution 4438 4439 srandom_r -- reentrantly set the seed for a new 4440 sequence of pseudorandom numbers 4441 4442 sscanf -- convert formatted input 4443 statfs -- (deprecated) 4444 statfs64 -- (deprecated) 4445 stime -- set time 4446 strcasestr -- locate a substring ignoring case 4447 strerror_r -- return string describing error number 4448 strptime -- parse a time string 4449 strsep -- extract token from string 4450 strtoq -- convert string value to a long or quad_t 4451 integer 4452 4453 strtouq -- convert a string to an unsigned long long 4454 svc_register -- register Remote Procedure Call 4455 interface 4456 4457 svc_run -- waits for RPC requests to arrive and 4458 calls service procedure 4459 4460 svc_sendreply -- called by RPC service's dispatch 4461 routine 4462 4463 svctcp_create -- create a TCP/IP-based RPC service 4464 transport 4465 4466 svcudp_create -- create a UDP-based RPC service 4467 transport 4468 4469 swscanf -- convert formatted input 4470 sysconf -- Get configuration information at runtime 4471 sysinfo -- return system information 4472 system -- execute a shell command 4473 textdomain -- set the current default message domain 4474 unlink -- remove a directory entry 4475 utmpname -- set user accounting database 4476 vasprintf -- write formatted output to a dynamically 4477 allocated string 4478 4479 verrx -- display formatted error message and exit 4480 vfscanf -- convert formatted input 4481 vfwscanf -- convert formatted input 4482 vscanf -- convert formatted input 4483 vsscanf -- convert formatted input 4484 vswscanf -- convert formatted input 4485 vsyslog -- log to system log 4486 vwscanf -- convert formatted input 4487 wait4 -- wait for process termination, BSD style 4488 warn -- formatted error messages 4489 warnx -- formatted error messages 4490 wcstoq -- convert wide string to long long int 4491 representation 4492 4493 wcstouq -- convert wide string to unsigned long long 4494 int representation 4495 4496 wscanf -- convert formatted input 4497 xdr_u_int -- library routines for external data 4498 representation 4499 4500 xdrstdio_create -- library routines for external 4501 data representation 4502 4503 14.6. Interfaces for libm 4504 4505 14.6.1. Math 4506 4507 14.7. Data Definitions for libm 4508 4509 14.7.1. complex.h 4510 14.7.2. fenv.h 4511 14.7.3. math.h 4512 4513 14.8. Interface Definitions for libm 4514 4515 __finite -- test for infinity 4516 __finitef -- test for infinity 4517 __finitel -- test for infinity 4518 __fpclassify -- Classify real floating type 4519 __fpclassifyf -- Classify real floating type 4520 __signbit -- test sign of floating point value 4521 __signbitf -- test sign of floating point value 4522 clog10 -- Logarithm of a Complex Number 4523 clog10f -- Logarithm of a Complex Number 4524 clog10l -- Logarithm of a Complex Number 4525 drem -- Floating Point Remainder (DEPRECATED) 4526 dremf -- Floating Point Remainder (DEPRECATED) 4527 dreml -- Floating Point Remainder (DEPRECATED) 4528 exp10 -- Base-10 power function 4529 exp10f -- Base-10 power function 4530 exp10l -- Base-10 power function 4531 fedisableexcept -- disable floating point exceptions 4532 feenableexcept -- enable floating point exceptions 4533 fegetexcept -- query floating point exception 4534 handling state 4535 4536 finite -- test for infinity (DEPRECATED) 4537 finitef -- test for infinity (DEPRECATED) 4538 finitel -- test for infinity (DEPRECATED) 4539 gamma -- log gamma function (DEPRECATED) 4540 gammaf -- log gamma function (DEPRECATED) 4541 gammal -- log gamma function (DEPRECATED) 4542 j0f -- Bessel functions 4543 j0l -- Bessel functions 4544 j1f -- Bessel functions 4545 j1l -- Bessel functions 4546 jnf -- Bessel functions 4547 jnl -- Bessel functions 4548 lgamma_r -- log gamma functions 4549 lgammaf_r -- log gamma functions 4550 lgammal_r -- log gamma functions 4551 matherr -- math library exception handling 4552 pow10 -- Base-10 power function 4553 pow10f -- Base-10 power function 4554 pow10l -- Base-10 power function 4555 scalbf -- load exponent of radix-independent 4556 floating point number 4557 4558 scalbl -- load exponent of radix-independent 4559 floating point number 4560 4561 significand -- floating point mantissa 4562 significandf -- floating point mantissa 4563 significandl -- floating point mantissa 4564 sincos -- trigonometric functions 4565 sincosf -- trigonometric functions 4566 sincosl -- trigonometric functions 4567 y0f -- Bessel functions 4568 y0l -- Bessel functions 4569 y1f -- Bessel functions 4570 y1l -- Bessel functions 4571 ynf -- Bessel functions 4572 ynl -- Bessel functions 4573 4574 14.9. Interfaces for libpthread 4575 4576 14.9.1. Realtime Threads 4577 14.9.2. Advanced Realtime Threads 4578 14.9.3. Posix Threads 4579 14.9.4. Thread aware versions of libc interfaces 4580 14.9.5. GNU Extensions for libpthread 4581 14.9.6. System Calls 4582 14.9.7. Standard I/O 4583 14.9.8. Signal Handling 4584 14.9.9. Standard Library 4585 14.9.10. Socket Interface 4586 14.9.11. Terminal Interface Functions 4587 4588 14.10. Data Definitions for libpthread 4589 4590 14.10.1. lsb/pthread.h 4591 14.10.2. pthread.h 4592 14.10.3. semaphore.h 4593 4594 14.11. Interface Definitions for libpthread 4595 4596 _pthread_cleanup_pop -- establish cancellation 4597 handlers 4598 4599 _pthread_cleanup_push -- establish cancellation 4600 handlers 4601 4602 pthread_getattr_np -- get thread attributes 4603 pthread_mutex_consistent_np -- mark state protected 4604 by robust mutex as consistent 4605 4606 pthread_mutexattr_getrobust_np, 4607 pthread_mutexattr_setrobust_np -- get and 4608 set the mutex robust attribute 4609 4610 pthread_rwlockattr_getkind_np, 4611 pthread_rwlockattr_setkind_np -- get/set the 4612 read-write lock kind of the thread 4613 read-write lock attribute object 4614 4615 waitpid -- wait for child process 4616 4617 14.12. Interfaces for libgcc_s 4618 4619 14.12.1. Unwind Library 4620 4621 14.13. Data Definitions for libgcc_s 4622 4623 14.13.1. unwind.h 4624 4625 14.14. Interface Definitions for libgcc_s 4626 4627 _Unwind_Backtrace -- private C++ error handling 4628 method 4629 4630 _Unwind_DeleteException -- private C++ error 4631 handling method 4632 4633 _Unwind_FindEnclosingFunction -- private C++ error 4634 handling method 4635 4636 _Unwind_ForcedUnwind -- private C++ error handling 4637 method 4638 4639 _Unwind_GetCFA -- private C++ error handling method 4640 _Unwind_GetGR -- private C++ error handling method 4641 _Unwind_GetIP -- private C++ error handling method 4642 _Unwind_GetIPInfo -- private C++ error handling 4643 method 4644 4645 _Unwind_GetLanguageSpecificData -- private C++ error 4646 handling method 4647 4648 _Unwind_GetRegionStart -- private C++ error handling 4649 method 4650 4651 _Unwind_RaiseException -- private C++ error handling 4652 method 4653 4654 _Unwind_Resume -- private C++ error handling method 4655 _Unwind_Resume_or_Rethrow -- private C++ error 4656 handling method 4657 4658 _Unwind_SetGR -- private C++ error handling method 4659 _Unwind_SetIP -- private C++ error handling method 4660 4661 14.15. Interfaces for libdl 4662 4663 14.15.1. Dynamic Loader 4664 4665 14.16. Data Definitions for libdl 4666 4667 14.16.1. dlfcn.h 4668 4669 14.17. Interface Definitions for libdl 4670 4671 dladdr -- find the shared object containing a given 4672 address 4673 4674 dlopen -- open dynamic object 4675 dlsym -- obtain the address of a symbol from a 4676 dlopen object 4677 4678 dlvsym -- obtain the address of a symbol from a 4679 dlopen object 4680 4681 14.18. Interfaces for librt 4682 4683 14.18.1. Shared Memory Objects 4684 14.18.2. Asynchronous I/O 4685 14.18.3. Clock 4686 14.18.4. Timers 4687 14.18.5. Message Queues 4688 4689 14.19. Data Definitions for librt 4690 4691 14.19.1. aio.h 4692 14.19.2. mqueue.h 4693 4694 14.20. Interfaces for libcrypt 4695 4696 14.20.1. Encryption 4697 4698 14.21. Data Definitions for libcrypt 4699 4700 14.21.1. crypt.h 4701 4702 14.22. Interface Definitions for libcrypt 4703 4704 crypt_r -- Cryptographic string encoding function 4705 encrypt_r -- Cryptographic encoding function 4706 setkey_r -- Set cryptographic encoding key 4707 4708 14.23. Interfaces for libpam 4709 4710 14.23.1. Pluggable Authentication API 4711 4712 14.24. Data Definitions for libpam 4713 4714 14.24.1. security/_pam_types.h 4715 14.24.2. security/pam_appl.h 4716 14.24.3. security/pam_modules.h 4717 4718 14.25. Interface Definitions for libpam 4719 4720 pam_acct_mgmt -- establish the status of a user's 4721 account 4722 4723 pam_authenticate -- authenticate the user 4724 pam_chauthtok -- change the authentication token for 4725 a given user 4726 4727 pam_close_session -- indicate that an authenticated 4728 session has ended 4729 4730 pam_end -- terminate the use of the PAM library 4731 pam_fail_delay -- specify delay time to use on 4732 authentication error 4733 4734 pam_get_item -- obtain the value of the indicated 4735 item. 4736 4737 pam_getenv -- get a PAM environment variable 4738 pam_getenvlist -- returns a pointer to the complete 4739 PAM environment. 4740 4741 pam_open_session -- indicate session has started 4742 pam_putenv -- Add, replace or delete a PAM 4743 environment variable 4744 4745 pam_set_item -- (re)set the value of an item. 4746 pam_setcred -- set the module-specific credentials 4747 of the user 4748 4749 pam_start -- initialize the PAM library 4750 pam_strerror -- returns a string describing the PAM 4751 error 4752 __________________________________________________________ 4753 4754 Chapter 14. Base Libraries 4755 4756 14.1. Introduction 4757 4758 An LSB-conforming implementation shall support the following 4759 base libraries which provide interfaces for accessing the 4760 operating system, processor and other hardware in the system. 4761 4762 * libc 4763 * libm 4764 * libgcc_s 4765 * libdl 4766 * librt 4767 * libcrypt 4768 * libpam 4769 4770 There are three main parts to the definition of each of these 4771 libraries. 4772 4773 The "Interfaces" section defines the required library name and 4774 version, and the required public symbols (interfaces and global 4775 data), as well as symbol versions, if any. 4776 4777 The "Interface Definitions" section provides complete or 4778 partial definitions of certain interfaces where either this 4779 specification is the source specification, or where there are 4780 variations from the source specification. If an interface 4781 definition requires one or more header files, one of those 4782 headers shall include the function prototype for the interface. 4783 4784 For source definitions of interfaces which include a reference 4785 to a header file, the contents of such header files form a part 4786 of the specification. The "Data Definitions" section provides 4787 the binary-level details for the header files from the source 4788 specifications, such as values for macros and enumerated types, 4789 as well as structure layouts, sizes and padding, etc. These 4790 data definitions, although presented in the form of header 4791 files for convenience, should not be taken a representing 4792 complete header files, as they are a supplement to the source 4793 specifications. Application developers should follow the 4794 guidelines of the source specifications when determining which 4795 header files need to be included to completely resolve all 4796 references. 4797 4798 Note: While the Data Definitions supplement the source 4799 specifications, this specification itself does not require 4800 conforming implementations to supply any header files. 4801 __________________________________________________________ 4802 4803 14.2. Program Interpreter 4804 4805 The Program Interpreter is specified in the appropriate 4806 architecture specific part of the LSB Core Specification. 4807 __________________________________________________________ 4808 4809 14.3. Interfaces for libc 4810 4811 Table 14-1 defines the library name and shared object name for 4812 the libc library 4813 4814 Table 14-1. libc Definition 4815 Library: libc 4816 SONAME: See architecture specific part. 4817 4818 The behavior of the interfaces in this library is specified by 4819 the following specifications: 4820 4821 [LFS] Large File Support 4822 [LSB] This Specification 4823 [RPC + XDR] RFC 5531/4506 RPC & XDR 4824 [SUSv2] SUSv2 4825 [SUSv3] POSIX 1003.1-2001 (ISO/IEC 9945-2003) 4826 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 4827 [SVID.4] SVID Issue 4 4828 __________________________________________________________ 4829 4830 14.3.1. RPC 4831 __________________________________________________________ 4832 4833 14.3.1.1. Interfaces for RPC 4834 4835 An LSB conforming implementation shall provide the generic 4836 functions for RPC specified in Table 14-2, with the full 4837 mandatory functionality as described in the referenced 4838 underlying specification. 4839 4840 Table 14-2. libc - RPC Function Interfaces 4841 authnone_create [SVID.4] callrpc [RPC + XDR] clnt_create 4842 [SVID.4] clnt_pcreateerror [SVID.4] 4843 clnt_perrno [SVID.4] clnt_perror [SVID.4] clnt_spcreateerror 4844 [SVID.4] clnt_sperrno [SVID.4] 4845 clnt_sperror [SVID.4] clntraw_create [RPC + XDR] clnttcp_create 4846 [RPC + XDR] clntudp_bufcreate [RPC + XDR] 4847 clntudp_create [RPC + XDR] key_decryptsession [SVID.4] 4848 pmap_getport [LSB] pmap_set [LSB] 4849 pmap_unset [LSB] svc_getreqset [SVID.4] svc_register [LSB] 4850 svc_run [LSB] 4851 svc_sendreply [LSB] svcerr_auth [SVID.4] svcerr_decode [SVID.4] 4852 svcerr_noproc [SVID.4] 4853 svcerr_noprog [SVID.4] svcerr_progvers [SVID.4] 4854 svcerr_systemerr [SVID.4] svcerr_weakauth [SVID.4] 4855 svcfd_create [RPC + XDR] svcraw_create [RPC + XDR] 4856 svctcp_create [LSB] svcudp_create [LSB] 4857 xdr_accepted_reply [SVID.4] xdr_array [SVID.4] xdr_bool 4858 [SVID.4] xdr_bytes [SVID.4] 4859 xdr_callhdr [SVID.4] xdr_callmsg [SVID.4] xdr_char [SVID.4] 4860 xdr_double [SVID.4] 4861 xdr_enum [SVID.4] xdr_float [SVID.4] xdr_free [SVID.4] xdr_int 4862 [SVID.4] 4863 xdr_long [SVID.4] xdr_opaque [SVID.4] xdr_opaque_auth [SVID.4] 4864 xdr_pointer [SVID.4] 4865 xdr_reference [SVID.4] xdr_rejected_reply [SVID.4] xdr_replymsg 4866 [SVID.4] xdr_short [SVID.4] 4867 xdr_string [SVID.4] xdr_u_char [SVID.4] xdr_u_int [LSB] 4868 xdr_u_long [SVID.4] 4869 xdr_u_short [SVID.4] xdr_union [SVID.4] xdr_vector [SVID.4] 4870 xdr_void [SVID.4] 4871 xdr_wrapstring [SVID.4] xdrmem_create [SVID.4] xdrrec_create 4872 [SVID.4] xdrrec_endofrecord [RPC + XDR] 4873 xdrrec_eof [SVID.4] xdrrec_skiprecord [RPC + XDR] 4874 xdrstdio_create [LSB] 4875 4876 An LSB conforming implementation shall provide the generic 4877 deprecated functions for RPC specified in Table 14-3, with the 4878 full mandatory functionality as described in the referenced 4879 underlying specification. 4880 4881 Note: These interfaces are deprecated, and applications 4882 should avoid using them. These interfaces may be withdrawn 4883 in future releases of this specification. 4884 4885 Table 14-3. libc - RPC Deprecated Function Interfaces 4886 key_decryptsession [SVID.4] 4887 __________________________________________________________ 4888 4889 14.3.2. Epoll 4890 __________________________________________________________ 4891 4892 14.3.2.1. Interfaces for Epoll 4893 4894 An LSB conforming implementation shall provide the generic 4895 functions for Epoll specified in Table 14-4, with the full 4896 mandatory functionality as described in the referenced 4897 underlying specification. 4898 4899 Table 14-4. libc - Epoll Function Interfaces 4900 epoll_create(GLIBC_2.3.2) [LSB] epoll_ctl(GLIBC_2.3.2) [LSB] 4901 epoll_wait(GLIBC_2.3.2) [LSB] 4902 __________________________________________________________ 4903 4904 14.3.3. System Calls 4905 __________________________________________________________ 4906 4907 14.3.3.1. Interfaces for System Calls 4908 4909 An LSB conforming implementation shall provide the generic 4910 functions for System Calls specified in Table 14-5, with the 4911 full mandatory functionality as described in the referenced 4912 underlying specification. 4913 4914 Table 14-5. libc - System Calls Function Interfaces 4915 __chk_fail(GLIBC_2.3.4) [LSB] __fxstat [LSB] 4916 __fxstatat(GLIBC_2.4) [LSB] __getgroups_chk(GLIBC_2.4) [LSB] 4917 __getpgid [LSB] __lxstat [LSB] __read_chk(GLIBC_2.4) [LSB] 4918 __readlink_chk(GLIBC_2.4) [LSB] 4919 __stack_chk_fail(GLIBC_2.4) [LSB] __xmknod [LSB] 4920 __xmknodat(GLIBC_2.4) [LSB] __xstat [LSB] 4921 access [SUSv4] acct [LSB] alarm [SUSv4] backtrace [LSB] 4922 backtrace_symbols [LSB] backtrace_symbols_fd [LSB] brk [SUSv2] 4923 chdir [SUSv4] 4924 chmod [SUSv4] chown [SUSv4] chroot [SUSv2] clock [SUSv4] 4925 close [SUSv4] closedir [SUSv4] creat [SUSv4] dup [SUSv4] 4926 dup2 [SUSv4] execl [SUSv4] execle [SUSv4] execlp [SUSv4] 4927 execv [SUSv4] execve [SUSv4] execvp [SUSv4] exit [SUSv4] 4928 faccessat(GLIBC_2.4) [SUSv4] fchdir [SUSv4] fchmod [SUSv4] 4929 fchmodat(GLIBC_2.4) [SUSv4] 4930 fchown [SUSv4] fchownat(GLIBC_2.4) [SUSv4] fcntl [LSB] 4931 fdatasync [SUSv4] 4932 fdopendir(GLIBC_2.4) [SUSv4] fexecve [SUSv4] flock [LSB] fork 4933 [SUSv4] 4934 fstatfs [LSB] fstatvfs [SUSv4] fsync [SUSv4] ftime [SUSv3] 4935 ftruncate [SUSv4] futimens(GLIBC_2.6) [SUSv4] 4936 futimes(GLIBC_2.3) [LSB] getcontext [SUSv3] 4937 getdtablesize [LSB] getegid [SUSv4] geteuid [SUSv4] getgid 4938 [SUSv4] 4939 getgroups [SUSv4] getitimer [SUSv4] getloadavg [LSB] 4940 getpagesize [LSB] 4941 getpgid [SUSv4] getpgrp [SUSv4] getpid [SUSv4] getppid [SUSv4] 4942 getpriority [SUSv4] getrlimit [LSB] getrusage [SUSv4] getsid 4943 [SUSv4] 4944 getuid [SUSv4] getwd [SUSv3] initgroups [LSB] ioctl [LSB] 4945 kill [LSB] killpg [SUSv4] lchown [SUSv4] link [LSB] 4946 linkat(GLIBC_2.4) [SUSv4] lockf [SUSv4] lseek [SUSv4] 4947 lutimes(GLIBC_2.3) [LSB] 4948 mkdir [SUSv4] mkdirat(GLIBC_2.4) [SUSv4] mkfifo [SUSv4] 4949 mkfifoat(GLIBC_2.4) [SUSv4] 4950 mlock [SUSv4] mlockall [SUSv4] mmap [SUSv4] mprotect [SUSv4] 4951 mremap [LSB] msync [SUSv4] munlock [SUSv4] munlockall [SUSv4] 4952 munmap [SUSv4] nanosleep [SUSv4] nice [SUSv4] open [SUSv4] 4953 openat(GLIBC_2.4) [SUSv4] opendir [SUSv4] pathconf [SUSv4] 4954 pause [SUSv4] 4955 pipe [SUSv4] poll [SUSv4] pread [SUSv4] pselect [SUSv4] 4956 ptrace [LSB] pwrite [SUSv4] read [SUSv4] readdir [SUSv4] 4957 readdir_r [SUSv4] readlink [SUSv4] readlinkat(GLIBC_2.4) 4958 [SUSv4] readv [SUSv4] 4959 rename [SUSv4] renameat(GLIBC_2.4) [SUSv4] rmdir [SUSv4] sbrk 4960 [SUSv2] 4961 sched_get_priority_max [SUSv4] sched_get_priority_min [SUSv4] 4962 sched_getaffinity(GLIBC_2.3.4) [LSB] sched_getparam [SUSv4] 4963 sched_getscheduler [SUSv4] sched_rr_get_interval [SUSv4] 4964 sched_setaffinity(GLIBC_2.3.4) [LSB] sched_setparam [SUSv4] 4965 sched_setscheduler [LSB] sched_yield [SUSv4] select [SUSv4] 4966 setcontext [SUSv3] 4967 setegid [SUSv4] seteuid [SUSv4] setgid [SUSv4] setitimer 4968 [SUSv4] 4969 setpgid [SUSv4] setpgrp [SUSv4] setpriority [SUSv4] setregid 4970 [SUSv4] 4971 setreuid [SUSv4] setrlimit [LSB] setrlimit64 [LFS] setsid 4972 [SUSv4] 4973 setuid [SUSv4] sleep [SUSv4] statfs [LSB] statvfs [SUSv4] 4974 stime [LSB] symlink [SUSv4] symlinkat(GLIBC_2.4) [SUSv4] sync 4975 [SUSv4] 4976 sysconf [LSB] sysinfo [LSB] time [SUSv4] times [SUSv4] 4977 truncate [SUSv4] ulimit [SUSv4] umask [SUSv4] uname [SUSv4] 4978 unlink [LSB] unlinkat(GLIBC_2.4) [SUSv4] utime [SUSv4] 4979 utimensat(GLIBC_2.6) [SUSv4] 4980 utimes [SUSv4] vfork [SUSv3] wait [SUSv4] wait4 [LSB] 4981 waitid [SUSv4] waitpid [SUSv4] write [SUSv4] writev [SUSv4] 4982 4983 An LSB conforming implementation shall provide the generic 4984 deprecated functions for System Calls specified in Table 14-6, 4985 with the full mandatory functionality as described in the 4986 referenced underlying specification. 4987 4988 Note: These interfaces are deprecated, and applications 4989 should avoid using them. These interfaces may be withdrawn 4990 in future releases of this specification. 4991 4992 Table 14-6. libc - System Calls Deprecated Function Interfaces 4993 fstatfs [LSB] getdtablesize [LSB] getpagesize [LSB] getwd 4994 [SUSv3] 4995 statfs [LSB] 4996 __________________________________________________________ 4997 4998 14.3.4. Standard I/O 4999 __________________________________________________________ 5000 5001 14.3.4.1. Interfaces for Standard I/O 5002 5003 An LSB conforming implementation shall provide the generic 5004 functions for Standard I/O specified in Table 14-7, with the 5005 full mandatory functionality as described in the referenced 5006 underlying specification. 5007 5008 Table 14-7. libc - Standard I/O Function Interfaces 5009 _IO_feof [LSB] _IO_getc [LSB] _IO_putc [LSB] _IO_puts [LSB] 5010 __fgets_chk(GLIBC_2.4) [LSB] __fgets_unlocked_chk(GLIBC_2.4) 5011 [LSB] __fgetws_unlocked_chk(GLIBC_2.4) [LSB] __fprintf_chk 5012 [LSB] 5013 __printf_chk [LSB] __snprintf_chk [LSB] __sprintf_chk [LSB] 5014 __vfprintf_chk [LSB] 5015 __vprintf_chk [LSB] __vsnprintf_chk [LSB] __vsprintf_chk [LSB] 5016 asprintf [LSB] 5017 clearerr [SUSv4] clearerr_unlocked [LSB] ctermid [SUSv4] 5018 dprintf [SUSv4] 5019 fclose [SUSv4] fdopen [SUSv4] feof [SUSv4] feof_unlocked [LSB] 5020 ferror [SUSv4] ferror_unlocked [LSB] fflush [SUSv4] 5021 fflush_unlocked [LSB] 5022 fgetc [SUSv4] fgetc_unlocked [LSB] fgetpos [SUSv4] fgets 5023 [SUSv4] 5024 fgets_unlocked [LSB] fgetwc_unlocked [LSB] fgetws_unlocked 5025 [LSB] fileno [SUSv4] 5026 fileno_unlocked [LSB] flockfile [SUSv4] fopen [SUSv4] fprintf 5027 [SUSv4] 5028 fputc [SUSv4] fputc_unlocked [LSB] fputs [SUSv4] fputs_unlocked 5029 [LSB] 5030 fputwc_unlocked [LSB] fputws_unlocked [LSB] fread [SUSv4] 5031 fread_unlocked [LSB] 5032 freopen [SUSv4] fscanf [LSB] fseek [SUSv4] fseeko [SUSv4] 5033 fsetpos [SUSv4] ftell [SUSv4] ftello [SUSv4] fwrite [SUSv4] 5034 fwrite_unlocked [LSB] getc [SUSv4] getc_unlocked [SUSv4] 5035 getchar [SUSv4] 5036 getchar_unlocked [SUSv4] getdelim [SUSv4] getline [SUSv4] getw 5037 [SUSv2] 5038 getwc_unlocked [LSB] getwchar_unlocked [LSB] pclose [SUSv4] 5039 popen [SUSv4] 5040 printf [SUSv4] putc [SUSv4] putc_unlocked [SUSv4] putchar 5041 [SUSv4] 5042 putchar_unlocked [SUSv4] puts [SUSv4] putw [SUSv2] 5043 putwc_unlocked [LSB] 5044 putwchar_unlocked [LSB] remove [SUSv4] rewind [SUSv4] rewinddir 5045 [SUSv4] 5046 scanf [LSB] seekdir [SUSv4] setbuf [SUSv4] setbuffer [LSB] 5047 setvbuf [SUSv4] snprintf [SUSv4] sprintf [SUSv4] sscanf [LSB] 5048 telldir [SUSv4] tempnam [SUSv4] ungetc [SUSv4] vasprintf [LSB] 5049 vdprintf [SUSv4] vfprintf [SUSv4] vprintf [SUSv4] vsnprintf 5050 [SUSv4] 5051 vsprintf [SUSv4] 5052 5053 An LSB conforming implementation shall provide the generic 5054 deprecated functions for Standard I/O specified in Table 14-8, 5055 with the full mandatory functionality as described in the 5056 referenced underlying specification. 5057 5058 Note: These interfaces are deprecated, and applications 5059 should avoid using them. These interfaces may be withdrawn 5060 in future releases of this specification. 5061 5062 Table 14-8. libc - Standard I/O Deprecated Function Interfaces 5063 tempnam [SUSv4] 5064 5065 An LSB conforming implementation shall provide the generic data 5066 interfaces for Standard I/O specified in Table 14-9, with the 5067 full mandatory functionality as described in the referenced 5068 underlying specification. 5069 5070 Table 14-9. libc - Standard I/O Data Interfaces 5071 stderr [SUSv4] stdin [SUSv4] stdout [SUSv4] 5072 __________________________________________________________ 5073 5074 14.3.5. Signal Handling 5075 __________________________________________________________ 5076 5077 14.3.5.1. Interfaces for Signal Handling 5078 5079 An LSB conforming implementation shall provide the generic 5080 functions for Signal Handling specified in Table 14-10, with 5081 the full mandatory functionality as described in the referenced 5082 underlying specification. 5083 5084 Table 14-10. libc - Signal Handling Function Interfaces 5085 __libc_current_sigrtmax [LSB] __libc_current_sigrtmin [LSB] 5086 __sigsetjmp [LSB] __sysv_signal [LSB] 5087 __xpg_sigpause [LSB] bsd_signal [SUSv3] psiginfo(GLIBC_2.10) 5088 [SUSv4] psignal [SUSv4] 5089 raise [SUSv4] sigaction [SUSv4] sigaddset [SUSv4] sigaltstack 5090 [SUSv4] 5091 sigandset [LSB] sigdelset [SUSv4] sigemptyset [SUSv4] 5092 sigfillset [SUSv4] 5093 sighold [SUSv4] sigignore [SUSv4] siginterrupt [SUSv4] 5094 sigisemptyset [LSB] 5095 sigismember [SUSv4] siglongjmp [SUSv4] signal [SUSv4] sigorset 5096 [LSB] 5097 sigpause [LSB] sigpending [SUSv4] sigprocmask [SUSv4] sigqueue 5098 [SUSv4] 5099 sigrelse [SUSv4] sigreturn [LSB] sigset [SUSv4] sigsuspend 5100 [SUSv4] 5101 sigtimedwait [SUSv4] sigwait [SUSv4] sigwaitinfo [SUSv4] 5102 5103 An LSB conforming implementation shall provide the generic 5104 deprecated functions for Signal Handling specified in Table 5105 14-11, with the full mandatory functionality as described in 5106 the referenced underlying specification. 5107 5108 Note: These interfaces are deprecated, and applications 5109 should avoid using them. These interfaces may be withdrawn 5110 in future releases of this specification. 5111 5112 Table 14-11. libc - Signal Handling Deprecated Function 5113 Interfaces 5114 sigpause [LSB] 5115 5116 An LSB conforming implementation shall provide the generic data 5117 interfaces for Signal Handling specified in Table 14-12, with 5118 the full mandatory functionality as described in the referenced 5119 underlying specification. 5120 5121 Table 14-12. libc - Signal Handling Data Interfaces 5122 _sys_siglist [LSB] 5123 __________________________________________________________ 5124 5125 14.3.6. Localization Functions 5126 __________________________________________________________ 5127 5128 14.3.6.1. Interfaces for Localization Functions 5129 5130 An LSB conforming implementation shall provide the generic 5131 functions for Localization Functions specified in Table 14-13, 5132 with the full mandatory functionality as described in the 5133 referenced underlying specification. 5134 5135 Table 14-13. libc - Localization Functions Function Interfaces 5136 bind_textdomain_codeset [LSB] bindtextdomain [LSB] catclose 5137 [SUSv4] catgets [SUSv4] 5138 catopen [SUSv4] dcgettext [LSB] dcngettext [LSB] dgettext [LSB] 5139 dngettext [LSB] duplocale(GLIBC_2.3) [SUSv4] 5140 freelocale(GLIBC_2.3) [SUSv4] gettext [LSB] 5141 iconv [SUSv4] iconv_close [SUSv4] iconv_open [SUSv4] localeconv 5142 [SUSv4] 5143 newlocale(GLIBC_2.3) [SUSv4] ngettext [LSB] nl_langinfo [SUSv4] 5144 setlocale [SUSv4] 5145 textdomain [LSB] uselocale(GLIBC_2.3) [SUSv4] 5146 5147 An LSB conforming implementation shall provide the generic data 5148 interfaces for Localization Functions specified in Table 14-14, 5149 with the full mandatory functionality as described in the 5150 referenced underlying specification. 5151 5152 Table 14-14. libc - Localization Functions Data Interfaces 5153 _nl_msg_cat_cntr [LSB] 5154 __________________________________________________________ 5155 5156 14.3.7. Posix Spawn Option 5157 __________________________________________________________ 5158 5159 14.3.7.1. Interfaces for Posix Spawn Option 5160 5161 An LSB conforming implementation shall provide the generic 5162 functions for Posix Spawn Option specified in Table 14-15, with 5163 the full mandatory functionality as described in the referenced 5164 underlying specification. 5165 5166 Table 14-15. libc - Posix Spawn Option Function Interfaces 5167 posix_spawn [SUSv4] posix_spawn_file_actions_addclose [SUSv4] 5168 posix_spawn_file_actions_adddup2 [SUSv4] 5169 posix_spawn_file_actions_addopen [SUSv4] 5170 posix_spawn_file_actions_destroy [SUSv4] 5171 posix_spawn_file_actions_init [SUSv4] posix_spawnattr_destroy 5172 [SUSv4] posix_spawnattr_getflags [SUSv4] 5173 posix_spawnattr_getpgroup [SUSv4] posix_spawnattr_getschedparam 5174 [SUSv4] posix_spawnattr_getschedpolicy [SUSv4] 5175 posix_spawnattr_getsigdefault [SUSv4] 5176 posix_spawnattr_getsigmask [SUSv4] posix_spawnattr_init [SUSv4] 5177 posix_spawnattr_setflags [SUSv4] posix_spawnattr_setpgroup 5178 [SUSv4] 5179 posix_spawnattr_setschedparam [SUSv4] 5180 posix_spawnattr_setschedpolicy [SUSv4] 5181 posix_spawnattr_setsigdefault [SUSv4] 5182 posix_spawnattr_setsigmask [SUSv4] 5183 posix_spawnp [SUSv4] 5184 __________________________________________________________ 5185 5186 14.3.8. Posix Advisory Option 5187 __________________________________________________________ 5188 5189 14.3.8.1. Interfaces for Posix Advisory Option 5190 5191 An LSB conforming implementation shall provide the generic 5192 functions for Posix Advisory Option specified in Table 14-16, 5193 with the full mandatory functionality as described in the 5194 referenced underlying specification. 5195 5196 Table 14-16. libc - Posix Advisory Option Function Interfaces 5197 posix_fadvise [SUSv4] posix_fallocate [SUSv4] posix_madvise 5198 [SUSv4] posix_memalign [SUSv4] 5199 __________________________________________________________ 5200 5201 14.3.9. Socket Interface 5202 __________________________________________________________ 5203 5204 14.3.9.1. Interfaces for Socket Interface 5205 5206 An LSB conforming implementation shall provide the generic 5207 functions for Socket Interface specified in Table 14-17, with 5208 the full mandatory functionality as described in the referenced 5209 underlying specification. 5210 5211 Table 14-17. libc - Socket Interface Function Interfaces 5212 __gethostname_chk(GLIBC_2.4) [LSB] __h_errno_location [LSB] 5213 __recv_chk(GLIBC_2.4) [LSB] __recvfrom_chk(GLIBC_2.4) [LSB] 5214 accept [SUSv4] bind [SUSv4] bindresvport [LSB] connect [SUSv4] 5215 freeifaddrs(GLIBC_2.3) [LSB] gethostid [SUSv4] gethostname 5216 [SUSv4] getifaddrs(GLIBC_2.3) [LSB] 5217 getpeername [SUSv4] getsockname [SUSv4] getsockopt [LSB] 5218 if_freenameindex [SUSv4] 5219 if_indextoname [SUSv4] if_nameindex [SUSv4] if_nametoindex 5220 [SUSv4] listen [SUSv4] 5221 recv [SUSv4] recvfrom [SUSv4] recvmsg [SUSv4] send [SUSv4] 5222 sendmsg [SUSv4] sendto [SUSv4] setsockopt [LSB] shutdown 5223 [SUSv4] 5224 sockatmark [SUSv4] socket [SUSv4] socketpair [SUSv4] 5225 5226 An LSB conforming implementation shall provide the generic data 5227 interfaces for Socket Interface specified in Table 14-18, with 5228 the full mandatory functionality as described in the referenced 5229 underlying specification. 5230 5231 Table 14-18. libc - Socket Interface Data Interfaces 5232 in6addr_any [SUSv3] in6addr_loopback [SUSv3] 5233 __________________________________________________________ 5234 5235 14.3.10. Wide Characters 5236 __________________________________________________________ 5237 5238 14.3.10.1. Interfaces for Wide Characters 5239 5240 An LSB conforming implementation shall provide the generic 5241 functions for Wide Characters specified in Table 14-19, with 5242 the full mandatory functionality as described in the referenced 5243 underlying specification. 5244 5245 Table 14-19. libc - Wide Characters Function Interfaces 5246 __fgetws_chk(GLIBC_2.4) [LSB] __fwprintf_chk(GLIBC_2.4) [LSB] 5247 __mbsnrtowcs_chk(GLIBC_2.4) [LSB] __mbsrtowcs_chk(GLIBC_2.4) 5248 [LSB] 5249 __mbstowcs_chk(GLIBC_2.4) [LSB] __swprintf_chk(GLIBC_2.4) [LSB] 5250 __vfwprintf_chk(GLIBC_2.4) [LSB] __vswprintf_chk(GLIBC_2.4) 5251 [LSB] 5252 __vwprintf_chk(GLIBC_2.4) [LSB] __wcpcpy_chk(GLIBC_2.4) [LSB] 5253 __wcpncpy_chk(GLIBC_2.4) [LSB] __wcrtomb_chk(GLIBC_2.4) [LSB] 5254 __wcscat_chk(GLIBC_2.4) [LSB] __wcscpy_chk(GLIBC_2.4) [LSB] 5255 __wcsncat_chk(GLIBC_2.4) [LSB] __wcsncpy_chk(GLIBC_2.4) [LSB] 5256 __wcsnrtombs_chk(GLIBC_2.4) [LSB] __wcsrtombs_chk(GLIBC_2.4) 5257 [LSB] __wcstod_internal [LSB] __wcstof_internal [LSB] 5258 __wcstol_internal [LSB] __wcstold_internal [LSB] 5259 __wcstombs_chk(GLIBC_2.4) [LSB] __wcstoul_internal [LSB] 5260 __wctomb_chk(GLIBC_2.4) [LSB] __wmemcpy_chk(GLIBC_2.4) [LSB] 5261 __wmemmove_chk(GLIBC_2.4) [LSB] __wmempcpy_chk(GLIBC_2.4) [LSB] 5262 __wmemset_chk(GLIBC_2.4) [LSB] __wprintf_chk(GLIBC_2.4) [LSB] 5263 btowc [SUSv4] fgetwc [SUSv4] 5264 fgetws [SUSv4] fputwc [SUSv4] fputws [SUSv4] fwide [SUSv4] 5265 fwprintf [SUSv4] fwscanf [LSB] getwc [SUSv4] getwchar [SUSv4] 5266 iswalnum_l(GLIBC_2.3) [SUSv4] iswalpha_l(GLIBC_2.3) [SUSv4] 5267 iswblank_l(GLIBC_2.3) [SUSv4] iswcntrl_l(GLIBC_2.3) [SUSv4] 5268 iswctype_l(GLIBC_2.3) [SUSv4] iswdigit_l(GLIBC_2.3) [SUSv4] 5269 iswgraph_l(GLIBC_2.3) [SUSv4] iswlower_l(GLIBC_2.3) [SUSv4] 5270 iswprint_l(GLIBC_2.3) [SUSv4] iswpunct_l(GLIBC_2.3) [SUSv4] 5271 iswspace_l(GLIBC_2.3) [SUSv4] iswupper_l(GLIBC_2.3) [SUSv4] 5272 iswxdigit_l(GLIBC_2.3) [SUSv4] mblen [SUSv4] mbrlen [SUSv4] 5273 mbrtowc [SUSv4] 5274 mbsinit [SUSv4] mbsnrtowcs [SUSv4] mbsrtowcs [SUSv4] mbstowcs 5275 [SUSv4] 5276 mbtowc [SUSv4] putwc [SUSv4] putwchar [SUSv4] swprintf [SUSv4] 5277 swscanf [LSB] towctrans [SUSv4] towctrans_l(GLIBC_2.3) [SUSv4] 5278 towlower [SUSv4] 5279 towlower_l(GLIBC_2.3) [SUSv4] towupper [SUSv4] 5280 towupper_l(GLIBC_2.3) [SUSv4] ungetwc [SUSv4] 5281 vfwprintf [SUSv4] vfwscanf [LSB] vswprintf [SUSv4] vswscanf 5282 [LSB] 5283 vwprintf [SUSv4] vwscanf [LSB] wcpcpy [SUSv4] wcpncpy [SUSv4] 5284 wcrtomb [SUSv4] wcscasecmp [SUSv4] wcscasecmp_l(GLIBC_2.3) 5285 [SUSv4] wcscat [SUSv4] 5286 wcschr [SUSv4] wcscmp [SUSv4] wcscoll [SUSv4] 5287 wcscoll_l(GLIBC_2.3) [SUSv4] 5288 wcscpy [SUSv4] wcscspn [SUSv4] wcsdup [SUSv4] wcsftime [SUSv4] 5289 wcslen [SUSv4] wcsncasecmp [SUSv4] wcsncasecmp_l(GLIBC_2.3) 5290 [SUSv4] wcsncat [SUSv4] 5291 wcsncmp [SUSv4] wcsncpy [SUSv4] wcsnlen [SUSv4] wcsnrtombs 5292 [SUSv4] 5293 wcspbrk [SUSv4] wcsrchr [SUSv4] wcsrtombs [SUSv4] wcsspn 5294 [SUSv4] 5295 wcsstr [SUSv4] wcstod [SUSv4] wcstof [SUSv4] wcstoimax [SUSv4] 5296 wcstok [SUSv4] wcstol [SUSv4] wcstold [SUSv4] wcstoll [SUSv4] 5297 wcstombs [SUSv4] wcstoq [LSB] wcstoul [SUSv4] wcstoull [SUSv4] 5298 wcstoumax [SUSv4] wcstouq [LSB] wcswcs [SUSv3] wcswidth [SUSv4] 5299 wcsxfrm [SUSv4] wcsxfrm_l(GLIBC_2.3) [SUSv4] wctob [SUSv4] 5300 wctomb [SUSv4] 5301 wctrans [SUSv4] wctrans_l(GLIBC_2.3) [SUSv4] wctype [SUSv4] 5302 wctype_l(GLIBC_2.3) [SUSv4] 5303 wcwidth [SUSv4] wmemchr [SUSv4] wmemcmp [SUSv4] wmemcpy [SUSv4] 5304 wmemmove [SUSv4] wmemset [SUSv4] wprintf [SUSv4] wscanf [LSB] 5305 __________________________________________________________ 5306 5307 14.3.11. String Functions 5308 __________________________________________________________ 5309 5310 14.3.11.1. Interfaces for String Functions 5311 5312 An LSB conforming implementation shall provide the generic 5313 functions for String Functions specified in Table 14-20, with 5314 the full mandatory functionality as described in the referenced 5315 underlying specification. 5316 5317 Table 14-20. libc - String Functions Function Interfaces 5318 __memcpy_chk(GLIBC_2.3.4) [LSB] __memmove_chk(GLIBC_2.3.4) 5319 [LSB] __mempcpy [LSB] __mempcpy_chk(GLIBC_2.3.4) [LSB] 5320 __memset_chk(GLIBC_2.3.4) [LSB] __rawmemchr [LSB] __stpcpy 5321 [LSB] __stpcpy_chk(GLIBC_2.3.4) [LSB] 5322 __stpncpy_chk(GLIBC_2.4) [LSB] __strcat_chk(GLIBC_2.3.4) [LSB] 5323 __strcpy_chk(GLIBC_2.3.4) [LSB] __strdup [LSB] 5324 __strncat_chk(GLIBC_2.3.4) [LSB] __strncpy_chk(GLIBC_2.3.4) 5325 [LSB] __strtod_internal [LSB] __strtof_internal [LSB] 5326 __strtok_r [LSB] __strtol_internal [LSB] __strtold_internal 5327 [LSB] __strtoll_internal [LSB] 5328 __strtoul_internal [LSB] __strtoull_internal [LSB] 5329 __xpg_strerror_r(GLIBC_2.3.4) [LSB] bcmp [SUSv3] 5330 bcopy [SUSv3] bzero [SUSv3] ffs [SUSv4] index [SUSv3] 5331 memccpy [SUSv4] memchr [SUSv4] memcmp [SUSv4] memcpy [SUSv4] 5332 memmove [SUSv4] memrchr [LSB] memset [SUSv4] rindex [SUSv3] 5333 stpcpy [SUSv4] stpncpy [SUSv4] strcasecmp [SUSv4] 5334 strcasecmp_l(GLIBC_2.3) [SUSv4] 5335 strcasestr [LSB] strcat [SUSv4] strchr [SUSv4] strcmp [SUSv4] 5336 strcoll [SUSv4] strcoll_l(GLIBC_2.3) [SUSv4] strcpy [SUSv4] 5337 strcspn [SUSv4] 5338 strdup [SUSv4] strerror [SUSv4] strerror_l(GLIBC_2.6) [SUSv4] 5339 strerror_r [LSB] 5340 strfmon [SUSv4] strfmon_l(GLIBC_2.3) [SUSv4] strftime [SUSv4] 5341 strftime_l(GLIBC_2.3) [SUSv4] 5342 strlen [SUSv4] strncasecmp [SUSv4] strncasecmp_l(GLIBC_2.3) 5343 [SUSv4] strncat [SUSv4] 5344 strncmp [SUSv4] strncpy [SUSv4] strndup [SUSv4] strnlen [SUSv4] 5345 strpbrk [SUSv4] strptime [LSB] strrchr [SUSv4] strsep [LSB] 5346 strsignal [SUSv4] strspn [SUSv4] strstr [SUSv4] strtof [SUSv4] 5347 strtoimax [SUSv4] strtok [SUSv4] strtok_r [SUSv4] strtold 5348 [SUSv4] 5349 strtoll [SUSv4] strtoq [LSB] strtoull [SUSv4] strtoumax [SUSv4] 5350 strtouq [LSB] strxfrm [SUSv4] strxfrm_l(GLIBC_2.3) [SUSv4] swab 5351 [SUSv4] 5352 5353 An LSB conforming implementation shall provide the generic 5354 deprecated functions for String Functions specified in Table 5355 14-21, with the full mandatory functionality as described in 5356 the referenced underlying specification. 5357 5358 Note: These interfaces are deprecated, and applications 5359 should avoid using them. These interfaces may be withdrawn 5360 in future releases of this specification. 5361 5362 Table 14-21. libc - String Functions Deprecated Function 5363 Interfaces 5364 strerror_r [LSB] 5365 __________________________________________________________ 5366 5367 14.3.12. IPC Functions 5368 __________________________________________________________ 5369 5370 14.3.12.1. Interfaces for IPC Functions 5371 5372 An LSB conforming implementation shall provide the generic 5373 functions for IPC Functions specified in Table 14-22, with the 5374 full mandatory functionality as described in the referenced 5375 underlying specification. 5376 5377 Table 14-22. libc - IPC Functions Function Interfaces 5378 ftok [SUSv4] msgctl [SUSv4] msgget [SUSv4] msgrcv [SUSv4] 5379 msgsnd [SUSv4] semctl [SUSv4] semget [SUSv4] semop [SUSv4] 5380 shmat [SUSv4] shmctl [SUSv4] shmdt [SUSv4] shmget [SUSv4] 5381 __________________________________________________________ 5382 5383 14.3.13. Regular Expressions 5384 __________________________________________________________ 5385 5386 14.3.13.1. Interfaces for Regular Expressions 5387 5388 An LSB conforming implementation shall provide the generic 5389 functions for Regular Expressions specified in Table 14-23, 5390 with the full mandatory functionality as described in the 5391 referenced underlying specification. 5392 5393 Table 14-23. libc - Regular Expressions Function Interfaces 5394 regcomp [SUSv4] regerror [SUSv4] regexec [LSB] regfree [SUSv4] 5395 __________________________________________________________ 5396 5397 14.3.14. Character Type Functions 5398 __________________________________________________________ 5399 5400 14.3.14.1. Interfaces for Character Type Functions 5401 5402 An LSB conforming implementation shall provide the generic 5403 functions for Character Type Functions specified in Table 5404 14-24, with the full mandatory functionality as described in 5405 the referenced underlying specification. 5406 5407 Table 14-24. libc - Character Type Functions Function 5408 Interfaces 5409 __ctype_b_loc(GLIBC_2.3) [LSB] __ctype_get_mb_cur_max [LSB] 5410 __ctype_tolower_loc(GLIBC_2.3) [LSB] 5411 __ctype_toupper_loc(GLIBC_2.3) [LSB] 5412 _tolower [SUSv4] _toupper [SUSv4] isalnum [SUSv4] 5413 isalnum_l(GLIBC_2.3) [SUSv4] 5414 isalpha [SUSv4] isalpha_l(GLIBC_2.3) [SUSv4] isascii [SUSv4] 5415 isblank_l(GLIBC_2.3) [SUSv4] 5416 iscntrl [SUSv4] iscntrl_l(GLIBC_2.3) [SUSv4] isdigit [SUSv4] 5417 isdigit_l(GLIBC_2.3) [SUSv4] 5418 isgraph [SUSv4] isgraph_l(GLIBC_2.3) [SUSv4] islower [SUSv4] 5419 islower_l(GLIBC_2.3) [SUSv4] 5420 isprint [SUSv4] isprint_l(GLIBC_2.3) [SUSv4] ispunct [SUSv4] 5421 ispunct_l(GLIBC_2.3) [SUSv4] 5422 isspace [SUSv4] isspace_l(GLIBC_2.3) [SUSv4] isupper [SUSv4] 5423 isupper_l(GLIBC_2.3) [SUSv4] 5424 iswalnum [SUSv4] iswalpha [SUSv4] iswblank [SUSv4] iswcntrl 5425 [SUSv4] 5426 iswctype [SUSv4] iswdigit [SUSv4] iswgraph [SUSv4] iswlower 5427 [SUSv4] 5428 iswprint [SUSv4] iswpunct [SUSv4] iswspace [SUSv4] iswupper 5429 [SUSv4] 5430 iswxdigit [SUSv4] isxdigit [SUSv4] isxdigit_l(GLIBC_2.3) 5431 [SUSv4] toascii [SUSv4] 5432 tolower [SUSv4] tolower_l(GLIBC_2.3) [SUSv4] toupper [SUSv4] 5433 toupper_l(GLIBC_2.3) [SUSv4] 5434 __________________________________________________________ 5435 5436 14.3.15. Time Manipulation 5437 __________________________________________________________ 5438 5439 14.3.15.1. Interfaces for Time Manipulation 5440 5441 An LSB conforming implementation shall provide the generic 5442 functions for Time Manipulation specified in Table 14-25, with 5443 the full mandatory functionality as described in the referenced 5444 underlying specification. 5445 5446 Table 14-25. libc - Time Manipulation Function Interfaces 5447 adjtime [LSB] asctime [SUSv4] asctime_r [SUSv4] ctime [SUSv4] 5448 ctime_r [SUSv4] difftime [SUSv4] gmtime [SUSv4] gmtime_r 5449 [SUSv4] 5450 localtime [SUSv4] localtime_r [SUSv4] mktime [SUSv4] tzset 5451 [SUSv4] 5452 ualarm [SUSv3] 5453 5454 An LSB conforming implementation shall provide the generic data 5455 interfaces for Time Manipulation specified in Table 14-26, with 5456 the full mandatory functionality as described in the referenced 5457 underlying specification. 5458 5459 Table 14-26. libc - Time Manipulation Data Interfaces 5460 __daylight [LSB] __timezone [LSB] __tzname [LSB] daylight 5461 [SUSv4] 5462 timezone [SUSv4] tzname [SUSv4] 5463 __________________________________________________________ 5464 5465 14.3.16. Terminal Interface Functions 5466 __________________________________________________________ 5467 5468 14.3.16.1. Interfaces for Terminal Interface Functions 5469 5470 An LSB conforming implementation shall provide the generic 5471 functions for Terminal Interface Functions specified in Table 5472 14-27, with the full mandatory functionality as described in 5473 the referenced underlying specification. 5474 5475 Table 14-27. libc - Terminal Interface Functions Function 5476 Interfaces 5477 cfgetispeed [SUSv4] cfgetospeed [SUSv4] cfmakeraw [LSB] 5478 cfsetispeed [SUSv4] 5479 cfsetospeed [SUSv4] cfsetspeed [LSB] tcdrain [SUSv4] tcflow 5480 [SUSv4] 5481 tcflush [SUSv4] tcgetattr [SUSv4] tcgetpgrp [SUSv4] tcgetsid 5482 [SUSv4] 5483 tcsendbreak [SUSv4] tcsetattr [SUSv4] tcsetpgrp [SUSv4] 5484 __________________________________________________________ 5485 5486 14.3.17. System Database Interface 5487 __________________________________________________________ 5488 5489 14.3.17.1. Interfaces for System Database Interface 5490 5491 An LSB conforming implementation shall provide the generic 5492 functions for System Database Interface specified in Table 5493 14-28, with the full mandatory functionality as described in 5494 the referenced underlying specification. 5495 5496 Table 14-28. libc - System Database Interface Function 5497 Interfaces 5498 endgrent [SUSv4] endprotoent [SUSv4] endpwent [SUSv4] 5499 endservent [SUSv4] 5500 endutent [LSB] endutxent [SUSv4] getgrent [SUSv4] getgrent_r 5501 [LSB] 5502 getgrgid [SUSv4] getgrgid_r [SUSv4] getgrnam [SUSv4] getgrnam_r 5503 [SUSv4] 5504 getgrouplist [LSB] gethostbyaddr [SUSv3] gethostbyaddr_r [LSB] 5505 gethostbyname [SUSv3] 5506 gethostbyname2 [LSB] gethostbyname2_r [LSB] gethostbyname_r 5507 [LSB] getprotobyname [SUSv4] 5508 getprotobyname_r [LSB] getprotobynumber [SUSv4] 5509 getprotobynumber_r [LSB] getprotoent [SUSv4] 5510 getprotoent_r [LSB] getpwent [SUSv4] getpwent_r [LSB] getpwnam 5511 [SUSv4] 5512 getpwnam_r [SUSv4] getpwuid [SUSv4] getpwuid_r [SUSv4] 5513 getservbyname [SUSv4] 5514 getservbyname_r [LSB] getservbyport [SUSv4] getservbyport_r 5515 [LSB] getservent [SUSv4] 5516 getservent_r [LSB] getutent [LSB] getutent_r [LSB] getutxent 5517 [SUSv4] 5518 getutxid [SUSv4] getutxline [SUSv4] pututxline [SUSv4] setgrent 5519 [SUSv4] 5520 setgroups [LSB] setprotoent [SUSv4] setpwent [SUSv4] setservent 5521 [SUSv4] 5522 setutent [LSB] setutxent [SUSv4] utmpname [LSB] 5523 5524 An LSB conforming implementation shall provide the generic 5525 deprecated functions for System Database Interface specified in 5526 Table 14-29, with the full mandatory functionality as described 5527 in the referenced underlying specification. 5528 5529 Note: These interfaces are deprecated, and applications 5530 should avoid using them. These interfaces may be withdrawn 5531 in future releases of this specification. 5532 5533 Table 14-29. libc - System Database Interface Deprecated 5534 Function Interfaces 5535 gethostbyaddr [SUSv3] gethostbyaddr_r [LSB] gethostbyname 5536 [SUSv3] gethostbyname2 [LSB] 5537 gethostbyname2_r [LSB] gethostbyname_r [LSB] 5538 __________________________________________________________ 5539 5540 14.3.18. Language Support 5541 __________________________________________________________ 5542 5543 14.3.18.1. Interfaces for Language Support 5544 5545 An LSB conforming implementation shall provide the generic 5546 functions for Language Support specified in Table 14-30, with 5547 the full mandatory functionality as described in the referenced 5548 underlying specification. 5549 5550 Table 14-30. libc - Language Support Function Interfaces 5551 __libc_start_main [LSB] __register_atfork(GLIBC_2.3.2) [LSB] 5552 __________________________________________________________ 5553 5554 14.3.19. Large File Support 5555 __________________________________________________________ 5556 5557 14.3.19.1. Interfaces for Large File Support 5558 5559 An LSB conforming implementation shall provide the generic 5560 functions for Large File Support specified in Table 14-31, with 5561 the full mandatory functionality as described in the referenced 5562 underlying specification. 5563 5564 Table 14-31. libc - Large File Support Function Interfaces 5565 __fxstat64 [LSB] __fxstatat64(GLIBC_2.4) [LSB] __lxstat64 [LSB] 5566 __xstat64 [LSB] 5567 creat64 [LFS] fgetpos64 [LFS] fopen64 [LFS] freopen64 [LFS] 5568 fseeko64 [LFS] fsetpos64 [LFS] fstatfs64 [LSB] fstatvfs64 [LFS] 5569 ftello64 [LFS] ftruncate64 [LFS] ftw64 [LFS] getrlimit64 [LFS] 5570 lockf64 [LFS] lseek64 [LFS] mkstemp64 [LSB] mmap64 [LFS] 5571 nftw64 [LFS] open64 [LFS] openat64(GLIBC_2.4) [LSB] 5572 posix_fadvise64 [LSB] 5573 posix_fallocate64 [LSB] pread64 [LSB] pwrite64 [LSB] readdir64 5574 [LFS] 5575 readdir64_r [LSB] statfs64 [LSB] statvfs64 [LFS] tmpfile64 5576 [LFS] 5577 truncate64 [LFS] 5578 5579 An LSB conforming implementation shall provide the generic 5580 deprecated functions for Large File Support specified in Table 5581 14-32, with the full mandatory functionality as described in 5582 the referenced underlying specification. 5583 5584 Note: These interfaces are deprecated, and applications 5585 should avoid using them. These interfaces may be withdrawn 5586 in future releases of this specification. 5587 5588 Table 14-32. libc - Large File Support Deprecated Function 5589 Interfaces 5590 fstatfs64 [LSB] statfs64 [LSB] 5591 __________________________________________________________ 5592 5593 14.3.20. Inotify 5594 __________________________________________________________ 5595 5596 14.3.20.1. Interfaces for Inotify 5597 5598 An LSB conforming implementation shall provide the generic 5599 functions for Inotify specified in Table 14-33, with the full 5600 mandatory functionality as described in the referenced 5601 underlying specification. 5602 5603 Table 14-33. libc - Inotify Function Interfaces 5604 inotify_add_watch(GLIBC_2.4) [LSB] inotify_init(GLIBC_2.4) 5605 [LSB] inotify_rm_watch(GLIBC_2.4) [LSB] 5606 __________________________________________________________ 5607 5608 14.3.21. Standard Library 5609 __________________________________________________________ 5610 5611 14.3.21.1. Interfaces for Standard Library 5612 5613 An LSB conforming implementation shall provide the generic 5614 functions for Standard Library specified in Table 14-34, with 5615 the full mandatory functionality as described in the referenced 5616 underlying specification. 5617 5618 Table 14-34. libc - Standard Library Function Interfaces 5619 _Exit [SUSv4] __assert_fail [LSB] __confstr_chk(GLIBC_2.4) 5620 [LSB] __cxa_atexit [LSB] 5621 __cxa_finalize [LSB] __errno_location [LSB] __fpending [LSB] 5622 __getcwd_chk(GLIBC_2.4) [LSB] 5623 __getlogin_r_chk(GLIBC_2.4) [LSB] __getpagesize [LSB] __isinf 5624 [LSB] __isinff [LSB] 5625 __isinfl [LSB] __isnan [LSB] __isnanf [LSB] __isnanl [LSB] 5626 __pread64_chk(GLIBC_2.4) [LSB] __pread_chk(GLIBC_2.4) [LSB] 5627 __realpath_chk(GLIBC_2.4) [LSB] __sysconf [LSB] 5628 __syslog_chk(GLIBC_2.4) [LSB] __ttyname_r_chk(GLIBC_2.4) [LSB] 5629 __vsyslog_chk(GLIBC_2.4) [LSB] __xpg_basename [LSB] 5630 _exit [SUSv4] _longjmp [SUSv4] _setjmp [SUSv4] a64l [SUSv4] 5631 abort [SUSv4] abs [SUSv4] alphasort [SUSv4] alphasort64 [LSB] 5632 argz_add [LSB] argz_add_sep [LSB] argz_append [LSB] argz_count 5633 [LSB] 5634 argz_create [LSB] argz_create_sep [LSB] argz_delete [LSB] 5635 argz_extract [LSB] 5636 argz_insert [LSB] argz_next [LSB] argz_replace [LSB] 5637 argz_stringify [LSB] 5638 atof [SUSv4] atoi [SUSv4] atol [SUSv4] atoll [SUSv4] 5639 basename [LSB] bsearch [SUSv4] calloc [SUSv4] closelog [SUSv4] 5640 confstr [SUSv4] cuserid [SUSv2] daemon [LSB] dirfd [SUSv4] 5641 dirname [SUSv4] div [SUSv4] dl_iterate_phdr [LSB] drand48 5642 [SUSv4] 5643 drand48_r [LSB] ecvt [SUSv3] envz_add [LSB] envz_entry [LSB] 5644 envz_get [LSB] envz_merge [LSB] envz_remove [LSB] envz_strip 5645 [LSB] 5646 erand48 [SUSv4] erand48_r [LSB] err [LSB] error [LSB] 5647 errx [LSB] fcvt [SUSv3] fmemopen [SUSv4] fmtmsg [SUSv4] 5648 fnmatch [LSB] fpathconf [SUSv4] free [SUSv4] freeaddrinfo 5649 [SUSv4] 5650 ftrylockfile [SUSv4] ftw [SUSv4] funlockfile [SUSv4] 5651 gai_strerror [SUSv4] 5652 gcvt [SUSv3] getaddrinfo [SUSv4] getcwd [LSB] getdate [SUSv4] 5653 getdomainname [LSB] getenv [SUSv4] getlogin [SUSv4] getlogin_r 5654 [SUSv4] 5655 getnameinfo [SUSv4] getopt [LSB] getopt_long [LSB] 5656 getopt_long_only [LSB] 5657 getsubopt [SUSv4] gettimeofday [SUSv4] glob [SUSv4] glob64 5658 [LSB] 5659 globfree [SUSv4] globfree64 [LSB] grantpt [SUSv4] hcreate 5660 [SUSv4] 5661 hcreate_r [LSB] hdestroy [SUSv4] hdestroy_r [LSB] hsearch 5662 [SUSv4] 5663 hsearch_r [LSB] htonl [SUSv4] htons [SUSv4] imaxabs [SUSv4] 5664 imaxdiv [SUSv4] inet_addr [SUSv4] inet_aton [LSB] inet_ntoa 5665 [SUSv4] 5666 inet_ntop [SUSv4] inet_pton [SUSv4] initstate [SUSv4] 5667 initstate_r [LSB] 5668 insque [SUSv4] isatty [SUSv4] isblank [SUSv4] jrand48 [SUSv4] 5669 jrand48_r [LSB] l64a [SUSv4] labs [SUSv4] lcong48 [SUSv4] 5670 lcong48_r [LSB] ldiv [SUSv4] lfind [SUSv4] llabs [SUSv4] 5671 lldiv [SUSv4] longjmp [SUSv4] lrand48 [SUSv4] lrand48_r [LSB] 5672 lsearch [SUSv4] makecontext [SUSv3] malloc [SUSv4] memmem [LSB] 5673 mkdtemp [SUSv4] mkstemp [SUSv4] mktemp [SUSv3] mrand48 [SUSv4] 5674 mrand48_r [LSB] nftw [SUSv4] nrand48 [SUSv4] nrand48_r [LSB] 5675 ntohl [SUSv4] ntohs [SUSv4] open_memstream [SUSv4] 5676 open_wmemstream(GLIBC_2.4) [SUSv4] 5677 openlog [SUSv4] perror [SUSv4] posix_openpt [SUSv4] ptsname 5678 [SUSv4] 5679 putenv [SUSv4] qsort [SUSv4] rand [SUSv4] rand_r [SUSv4] 5680 random [SUSv4] random_r [LSB] realloc [SUSv4] realpath [SUSv4] 5681 remque [SUSv4] scandir [SUSv4] scandir64 [LSB] seed48 [SUSv4] 5682 seed48_r [LSB] sendfile [LSB] sendfile64(GLIBC_2.3) [LSB] 5683 setenv [SUSv4] 5684 sethostname [LSB] setlogmask [SUSv4] setstate [SUSv4] 5685 setstate_r [LSB] 5686 srand [SUSv4] srand48 [SUSv4] srand48_r [LSB] srandom [SUSv4] 5687 srandom_r [LSB] strtod [SUSv4] strtol [SUSv4] strtoul [SUSv4] 5688 swapcontext [SUSv3] syslog [SUSv4] system [LSB] tdelete [SUSv4] 5689 tfind [SUSv4] tmpfile [SUSv4] tmpnam [SUSv4] tsearch [SUSv4] 5690 ttyname [SUSv4] ttyname_r [SUSv4] twalk [SUSv4] unlockpt 5691 [SUSv4] 5692 unsetenv [SUSv4] usleep [SUSv3] verrx [LSB] vfscanf [LSB] 5693 vscanf [LSB] vsscanf [LSB] vsyslog [LSB] warn [LSB] 5694 warnx [LSB] wordexp [SUSv4] wordfree [SUSv4] 5695 5696 An LSB conforming implementation shall provide the generic 5697 deprecated functions for Standard Library specified in Table 5698 14-35, with the full mandatory functionality as described in 5699 the referenced underlying specification. 5700 5701 Note: These interfaces are deprecated, and applications 5702 should avoid using them. These interfaces may be withdrawn 5703 in future releases of this specification. 5704 5705 Table 14-35. libc - Standard Library Deprecated Function 5706 Interfaces 5707 basename [LSB] getdomainname [LSB] inet_aton [LSB] tmpnam 5708 [SUSv4] 5709 5710 An LSB conforming implementation shall provide the generic data 5711 interfaces for Standard Library specified in Table 14-36, with 5712 the full mandatory functionality as described in the referenced 5713 underlying specification. 5714 5715 Table 14-36. libc - Standard Library Data Interfaces 5716 __environ [LSB] _environ [LSB] _sys_errlist [LSB] environ 5717 [SUSv4] 5718 getdate_err [SUSv4] optarg [SUSv4] opterr [SUSv4] optind 5719 [SUSv4] 5720 optopt [SUSv4] 5721 __________________________________________________________ 5722 5723 14.3.22. GNU Extensions for libc 5724 __________________________________________________________ 5725 5726 14.3.22.1. Interfaces for GNU Extensions for libc 5727 5728 An LSB conforming implementation shall provide the generic 5729 functions for GNU Extensions for libc specified in Table 14-37, 5730 with the full mandatory functionality as described in the 5731 referenced underlying specification. 5732 5733 Table 14-37. libc - GNU Extensions for libc Function Interfaces 5734 gnu_get_libc_release [LSB] gnu_get_libc_version [LSB] 5735 __________________________________________________________ 5736 5737 14.4. Data Definitions for libc 5738 5739 This section defines global identifiers and their values that 5740 are associated with interfaces contained in libc. These 5741 definitions are organized into groups that correspond to system 5742 headers. This convention is used as a convenience for the 5743 reader, and does not imply the existence of these headers, or 5744 their content. Where an interface is defined as requiring a 5745 particular system header file all of the data definitions for 5746 that system header file presented here shall be in effect. 5747 5748 This section gives data definitions to promote binary 5749 application portability, not to repeat source interface 5750 definitions available elsewhere. System providers and 5751 application developers should use this ABI to supplement - not 5752 to replace - source interface definition specifications. 5753 5754 This specification uses the ISO C (1999) C Language as the 5755 reference programming language, and data definitions are 5756 specified in ISO C format. The C language is used here as a 5757 convenient notation. Using a C language description of these 5758 data objects does not preclude their use by other programming 5759 languages. 5760 __________________________________________________________ 5761 5762 14.4.1. argz.h 5763 5764 typedef int error_t; 5765 extern error_t argz_add(char **argz, size_t * argz_len, const char *str); 5766 extern error_t argz_add_sep(char **argz, size_t * argz_len, 5767 const char *str, int sep); 5768 extern error_t argz_append(char **argz, size_t * argz_len, const char *buf, 5769 size_t buf_len); 5770 extern size_t argz_count(const char *argz, size_t * argz_len); 5771 extern error_t argz_create(char *const argv[], char **argz, 5772 size_t * argz_len); 5773 extern error_t argz_create_sep(const char *str, int sep, char **argz, 5774 size_t * argz_len); 5775 extern void argz_delete(char **argz, size_t * argz_len, char *entry); 5776 extern void argz_extract(const char *argz, size_t argz_len, char **argv); 5777 extern error_t argz_insert(char **argz_insert, size_t * argz_len, 5778 char *before, const char *entry); 5779 extern char argz_next(const char *argz, size_t argz_len, 5780 const char *entry); 5781 extern error_t argz_replace(char **argz, size_t * argz_len, 5782 const char *str, const char *with, 5783 unsigned int *replace_count); 5784 extern void argz_stringify(char *argz, size_t argz_len, int sep); 5785 __________________________________________________________ 5786 5787 14.4.2. arpa/inet.h 5788 5789 extern uint32_t htonl(uint32_t); 5790 extern uint16_t htons(uint16_t); 5791 extern in_addr_t inet_addr(const char *__cp); 5792 extern int inet_aton(const char *__cp, struct in_addr *__inp); 5793 extern char *inet_ntoa(struct in_addr __in); 5794 extern const char *inet_ntop(int __af, const void *__cp, char *__buf, 5795 socklen_t __len); 5796 extern int inet_pton(int __af, const char *__cp, void *__buf); 5797 extern uint32_t ntohl(uint32_t); 5798 extern uint16_t ntohs(uint16_t); 5799 __________________________________________________________ 5800 5801 14.4.3. assert.h 5802 5803 #ifdef NDEBUG 5804 #define assert(expr) ((void)0) 5805 #else 5806 #define assert(expr) ((void) ((expr) ? 0 : (__assert_fail (#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__), 0))) 5807 #endif 5808 5809 extern void __assert_fail(const char *__assertion, const char *__file, 5810 unsigned int __line, const char *__function); 5811 __________________________________________________________ 5812 5813 14.4.4. cpio.h 5814 5815 #define C_IXOTH 000001 5816 #define C_IWOTH 000002 5817 #define C_IROTH 000004 5818 #define C_IXGRP 000010 5819 #define C_IWGRP 000020 5820 #define C_IRGRP 000040 5821 #define C_IXUSR 000100 5822 #define C_IWUSR 000200 5823 #define C_IRUSR 000400 5824 #define C_ISVTX 001000 5825 #define C_ISGID 002000 5826 #define C_ISUID 004000 5827 #define C_ISFIFO 010000 5828 #define C_ISREG 0100000 5829 #define C_ISCTG 0110000 5830 #define C_ISLNK 0120000 5831 #define C_ISSOCK 0140000 5832 #define C_ISCHR 020000 5833 #define C_ISDIR 040000 5834 #define C_ISBLK 060000 5835 #define MAGIC "070707" 5836 __________________________________________________________ 5837 5838 14.4.5. ctype.h 5839 5840 extern const unsigned short **__ctype_b_loc(void); 5841 extern const int32_t **__ctype_tolower_loc(void); 5842 extern const int32_t **__ctype_toupper_loc(void); 5843 extern int _tolower(int); 5844 extern int _toupper(int); 5845 extern int isalnum(int); 5846 extern int isalnum_l(int c, locale_t locale); 5847 extern int isalpha(int); 5848 extern int isalpha_l(int c, locale_t locale); 5849 extern int isascii(int __c); 5850 extern int isblank(int); 5851 extern int isblank_l(int c, locale_t locale); 5852 extern int iscntrl(int); 5853 extern int iscntrl_l(int c, locale_t locale); 5854 extern int isdigit(int); 5855 extern int isdigit_l(int c, locale_t locale); 5856 extern int isgraph(int); 5857 extern int isgraph_l(int c, locale_t locale); 5858 extern int islower(int); 5859 extern int islower_l(int c, locale_t locale); 5860 extern int isprint(int); 5861 extern int isprint_l(int c, locale_t locale); 5862 extern int ispunct(int); 5863 extern int ispunct_l(int c, locale_t locale); 5864 extern int isspace(int); 5865 extern int isspace_l(int c, locale_t locale); 5866 extern int isupper(int); 5867 extern int isupper_l(int c, locale_t locale); 5868 extern int isxdigit(int); 5869 extern int isxdigit_l(int c, locale_t locale); 5870 extern int toascii(int __c); 5871 extern int tolower(int __c); 5872 extern int tolower_l(int c, locale_t locale); 5873 extern int toupper(int __c); 5874 extern int toupper_l(int c, locale_t locale); 5875 __________________________________________________________ 5876 5877 14.4.6. dirent.h 5878 5879 #define MAXNAMLEN NAME_MAX 5880 5881 typedef struct __dirstream DIR; 5882 5883 struct dirent { 5884 long int d_ino; 5885 off_t d_off; 5886 unsigned short d_reclen; 5887 unsigned char d_type; 5888 char d_name[256]; 5889 }; 5890 struct dirent64 { 5891 uint64_t d_ino; 5892 int64_t d_off; 5893 unsigned short d_reclen; 5894 unsigned char d_type; 5895 char d_name[256]; 5896 }; 5897 extern int alphasort(const struct dirent **__e1, 5898 const struct dirent **__e2); 5899 extern int alphasort64(const struct dirent64 **__e1, 5900 const struct dirent64 **__e2); 5901 extern int closedir(DIR * __dirp); 5902 extern int dirfd(DIR * __dirp); 5903 extern DIR *fdopendir(int __fd); 5904 extern DIR *opendir(const char *__name); 5905 extern struct dirent *readdir(DIR * __dirp); 5906 extern struct dirent64 *readdir64(DIR * __dirp); 5907 extern int readdir64_r(DIR * __dirp, struct dirent64 *__entry, 5908 struct dirent64 **__result); 5909 extern int readdir_r(DIR * __dirp, struct dirent *__entry, 5910 struct dirent **__result); 5911 extern void rewinddir(DIR * __dirp); 5912 extern int scandir(const char *__dir, struct dirent ***__namelist, 5913 int (*__selector) (const struct dirent *), 5914 int (*__cmp) (const struct dirent * *, 5915 const struct dirent * *)); 5916 extern int scandir64(const char *__dir, struct dirent64 ***__namelist, 5917 int (*__selector) (const struct dirent64 *), 5918 int (*__cmp) (const struct dirent64 * *, 5919 const struct dirent64 * *)); 5920 extern void seekdir(DIR * __dirp, long int __pos); 5921 extern long int telldir(DIR * __dirp); 5922 __________________________________________________________ 5923 5924 14.4.7. elf.h 5925 5926 #define ELFMAG1 'E' 5927 #define ELFMAG3 'F' 5928 #define ELFMAG2 'L' 5929 #define ELF64_R_INFO(sym, type) ((((Elf64_Xword) (sym)) << 32) + (type)) 5930 #define ELF32_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xf)) 5931 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) 5932 #define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) 5933 #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) 5934 #define ELF64_R_TYPE(i) ((i) & 0xffffffff) 5935 #define ELF64_R_SYM(i) ((i) >> 32) 5936 #define ELF32_M_SYM(info) ((info) >> 8) 5937 #define ELF32_ST_VISIBILITY(o) ((o) & 0x03) 5938 #define ELF32_M_SIZE(info) ((unsigned char) (info)) 5939 #define ELF32_ST_TYPE(val) ((val) & 0xf) 5940 #define ELF32_R_TYPE(val) ((val) & 0xff) 5941 #define ELF32_R_SYM(val) ((val) >> 8) 5942 #define PF_X (1 << 0) 5943 #define SHF_WRITE (1 << 0) 5944 #define PF_W (1 << 1) 5945 #define SHF_ALLOC (1 << 1) 5946 #define SHF_TLS (1 << 10) 5947 #define PF_R (1 << 2) 5948 #define SHF_EXECINSTR (1 << 2) 5949 #define SHF_MERGE (1 << 4) 5950 #define SHF_STRINGS (1 << 5) 5951 #define SHF_INFO_LINK (1 << 6) 5952 #define SHF_LINK_ORDER (1 << 7) 5953 #define SHF_OS_NONCONFORMING (1 << 8) 5954 #define SHF_GROUP (1 << 9) 5955 #define EI_NIDENT (16) 5956 #define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) 5957 #define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) 5958 #define DT_PPC64_GLINK (DT_LOPROC + 0) 5959 #define DT_PPC_GOT (DT_LOPROC + 0) 5960 #define DT_PPC64_OPD (DT_LOPROC + 1) 5961 #define DT_PPC64_OPDSZ (DT_LOPROC + 2) 5962 #define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) 5963 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) 5964 #define PT_IA_64_ARCHEXT (PT_LOPROC + 0) 5965 #define PT_IA_64_UNWIND (PT_LOPROC + 1) 5966 #define SHT_IA_64_EXT (SHT_LOPROC + 0) 5967 #define SHT_IA_64_UNWIND (SHT_LOPROC + 1) 5968 #define DT_NULL 0 5969 #define EI_MAG0 0 5970 #define ELFCLASSNONE 0 5971 #define ELFDATANONE 0 5972 #define ELFOSABI_NONE 0 5973 #define ELFOSABI_SYSV 0 5974 #define ELF_NOTE_OS_LINUX 0 5975 #define EM_NONE 0 5976 #define ET_NONE 0 5977 #define EV_NONE 0 5978 #define PT_NULL 0 5979 #define R_386_NONE 0 5980 #define R_390_NONE 0 5981 #define R_PPC_NONE 0 5982 #define R_X86_64_NONE 0 5983 #define SHN_UNDEF 0 5984 #define SHT_NULL 0 5985 #define STB_LOCAL 0 5986 #define STN_UNDEF 0 5987 #define STT_NOTYPE 0 5988 #define STV_DEFAULT 0 5989 #define SYMINFO_NONE 0 5990 #define R_IA64_NONE 0x00 5991 #define DF_1_NOW 0x00000001 5992 #define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */ 5993 #define DF_P1_LAZYLOAD 0x00000001 5994 #define DTF_1_PARINIT 0x00000001 5995 #define EF_S390_HIGH_GPRS 0x00000001 5996 #define DF_1_GLOBAL 0x00000002 5997 #define DF_P1_GROUPPERM 0x00000002 5998 #define DF_SYMBOLIC 0x00000002 /* Symbol resolutions start with this object */ 5999 #define DTF_1_CONFEXP 0x00000002 6000 #define DF_1_GROUP 0x00000004 6001 #define DF_TEXTREL 0x00000004 /* Object contains text relocations */ 6002 #define DF_1_NODELETE 0x00000008 6003 #define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */ 6004 #define EF_IA_64_MASKOS 0x0000000f 6005 #define DF_1_LOADFLTR 0x00000010 6006 #define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */ 6007 #define EF_IA_64_ABI64 0x00000010 6008 #define DF_1_INITFIRST 0x00000020 6009 #define DF_1_NOOPEN 0x00000040 6010 #define DF_1_ORIGIN 0x00000080 6011 #define DF_1_DIRECT 0x00000100 6012 #define DF_1_TRANS 0x00000200 6013 #define DF_1_INTERPOSE 0x00000400 6014 #define DF_1_NODEFLIB 0x00000800 6015 #define DF_1_NODUMP 0x00001000 6016 #define DF_1_CONFALT 0x00002000 6017 #define DF_1_ENDFILTEE 0x00004000 6018 #define DF_1_DISPRELDNE 0x00008000 6019 #define SYMINFO_FLG_DIRECT 0x0001 6020 #define DF_1_DISPRELPND 0x00010000 6021 #define SYMINFO_FLG_PASSTHRU 0x0002 6022 #define SYMINFO_FLG_COPY 0x0004 6023 #define SYMINFO_FLG_LAZYLOAD 0x0008 6024 #define EF_CPU32 0x00810000 6025 #define PF_MASKOS 0x0ff00000 6026 #define SHF_MASKOS 0x0ff00000 6027 #define GRP_COMDAT 0x1 6028 #define SHF_IA_64_SHORT 0x10000000 6029 #define SHF_IA_64_NORECOV 0x20000000 6030 #define R_IA64_IMM14 0x21 6031 #define R_IA64_IMM22 0x22 6032 #define R_IA64_IMM64 0x23 6033 #define R_IA64_DIR32MSB 0x24 6034 #define R_IA64_DIR32LSB 0x25 6035 #define R_IA64_DIR64MSB 0x26 6036 #define R_IA64_DIR64LSB 0x27 6037 #define R_IA64_GPREL22 0x2a 6038 #define R_IA64_GPREL64I 0x2b 6039 #define R_IA64_GPREL32MSB 0x2c 6040 #define R_IA64_GPREL32LSB 0x2d 6041 #define R_IA64_GPREL64MSB 0x2e 6042 #define R_IA64_GPREL64LSB 0x2f 6043 #define R_IA64_LTOFF22 0x32 6044 #define R_IA64_LTOFF64I 0x33 6045 #define R_IA64_PLTOFF22 0x3a 6046 #define R_IA64_PLTOFF64I 0x3b 6047 #define R_IA64_PLTOFF64MSB 0x3e 6048 #define R_IA64_PLTOFF64LSB 0x3f 6049 #define R_IA64_FPTR64I 0x43 6050 #define R_IA64_FPTR32MSB 0x44 6051 #define R_IA64_FPTR32LSB 0x45 6052 #define R_IA64_FPTR64MSB 0x46 6053 #define R_IA64_FPTR64LSB 0x47 6054 #define R_IA64_PCREL60B 0x48 6055 #define R_IA64_PCREL21B 0x49 6056 #define R_IA64_PCREL21M 0x4a 6057 #define R_IA64_PCREL21F 0x4b 6058 #define R_IA64_PCREL32MSB 0x4c 6059 #define R_IA64_PCREL32LSB 0x4d 6060 #define R_IA64_PCREL64MSB 0x4e 6061 #define R_IA64_PCREL64LSB 0x4f 6062 #define R_IA64_LTOFF_FPTR22 0x52 6063 #define R_IA64_LTOFF_FPTR64I 0x53 6064 #define R_IA64_LTOFF_FPTR32MSB 0x54 6065 #define R_IA64_LTOFF_FPTR32LSB 0x55 6066 #define R_IA64_LTOFF_FPTR64MSB 0x56 6067 #define R_IA64_LTOFF_FPTR64LSB 0x57 6068 #define R_IA64_SEGREL32MSB 0x5c 6069 #define R_IA64_SEGREL32LSB 0x5d 6070 #define R_IA64_SEGREL64MSB 0x5e 6071 #define R_IA64_SEGREL64LSB 0x5f 6072 #define PT_LOOS 0x60000000 6073 #define SHT_LOOS 0x60000000 6074 #define DT_LOOS 0x6000000d 6075 #define R_IA64_SECREL32MSB 0x64 6076 #define PT_GNU_EH_FRAME 0x6474e550 6077 #define PT_GNU_STACK 0x6474e551 6078 #define PT_GNU_RELRO 0x6474e552 6079 #define R_IA64_SECREL32LSB 0x65 6080 #define R_IA64_SECREL64MSB 0x66 6081 #define R_IA64_SECREL64LSB 0x67 6082 #define R_IA64_REL32MSB 0x6c 6083 #define R_IA64_REL32LSB 0x6d 6084 #define R_IA64_REL64MSB 0x6e 6085 #define R_IA64_REL64LSB 0x6f 6086 #define DT_HIOS 0x6ffff000 6087 #define DT_VALRNGLO 0x6ffffd00 6088 #define DT_GNU_PRELINKED 0x6ffffdf5 6089 #define DT_GNU_CONFLICTSZ 0x6ffffdf6 6090 #define DT_GNU_LIBLISTSZ 0x6ffffdf7 6091 #define DT_CHECKSUM 0x6ffffdf8 6092 #define DT_PLTPADSZ 0x6ffffdf9 6093 #define DT_MOVEENT 0x6ffffdfa 6094 #define DT_MOVESZ 0x6ffffdfb 6095 #define DT_FEATURE_1 0x6ffffdfc 6096 #define DT_POSFLAG_1 0x6ffffdfd 6097 #define DT_SYMINSZ 0x6ffffdfe 6098 #define DT_SYMINENT 0x6ffffdff 6099 #define DT_VALRNGHI 0x6ffffdff 6100 #define DT_ADDRRNGLO 0x6ffffe00 6101 #define DT_GNU_HASH 0x6ffffef5 6102 #define DT_TLSDESC_PLT 0x6ffffef6 6103 #define DT_TLSDESC_GOT 0x6ffffef7 6104 #define DT_GNU_CONFLICT 0x6ffffef8 6105 #define DT_GNU_LIBLIST 0x6ffffef9 6106 #define DT_CONFIG 0x6ffffefa 6107 #define DT_DEPAUDIT 0x6ffffefb 6108 #define DT_AUDIT 0x6ffffefc 6109 #define DT_PLTPAD 0x6ffffefd 6110 #define DT_MOVETAB 0x6ffffefe 6111 #define DT_ADDRRNGHI 0x6ffffeff 6112 #define DT_SYMINFO 0x6ffffeff 6113 #define DT_VERSYM 0x6ffffff0 6114 #define SHT_GNU_ATTRIBUTES 0x6ffffff5 6115 #define SHT_GNU_HASH 0x6ffffff6 6116 #define SHT_GNU_LIBLIST 0x6ffffff7 6117 #define SHT_CHECKSUM 0x6ffffff8 6118 #define DT_RELACOUNT 0x6ffffff9 6119 #define DT_RELCOUNT 0x6ffffffa 6120 #define DT_FLAGS_1 0x6ffffffb 6121 #define DT_VERDEF 0x6ffffffc 6122 #define DT_VERDEFNUM 0x6ffffffd 6123 #define SHT_GNU_verdef 0x6ffffffd 6124 #define DT_VERNEED 0x6ffffffe 6125 #define SHT_GNU_verneed 0x6ffffffe 6126 #define DT_VERNEEDNUM 0x6fffffff 6127 #define PT_HIOS 0x6fffffff 6128 #define SHT_GNU_versym 0x6fffffff 6129 #define SHT_HIOS 0x6fffffff 6130 #define DT_LOPROC 0x70000000 6131 #define PT_LOPROC 0x70000000 6132 #define SHT_LOPROC 0x70000000 6133 #define R_IA64_LTV32MSB 0x74 6134 #define R_IA64_LTV32LSB 0x75 6135 #define R_IA64_LTV64MSB 0x76 6136 #define R_IA64_LTV64LSB 0x77 6137 #define R_IA64_PCREL21BI 0x79 6138 #define R_IA64_PCREL22 0x7a 6139 #define R_IA64_PCREL64I 0x7b 6140 #define ELFMAG0 0x7f 6141 #define DT_AUXILIARY 0x7ffffffd 6142 #define DT_FILTER 0x7fffffff 6143 #define DT_HIPROC 0x7fffffff 6144 #define PT_HIPROC 0x7fffffff 6145 #define SHT_HIPROC 0x7fffffff 6146 #define R_IA64_IPLTMSB 0x80 6147 #define PF_IA_64_NORECOV 0x80000000 6148 #define SHT_LOUSER 0x80000000 6149 #define R_IA64_IPLTLSB 0x81 6150 #define R_IA64_COPY 0x84 6151 #define R_IA64_SUB 0x85 6152 #define R_IA64_LTOFF22X 0x86 6153 #define R_IA64_LDXMOV 0x87 6154 #define SHT_HIUSER 0x8fffffff 6155 #define R_IA64_TPREL14 0x91 6156 #define R_IA64_TPREL22 0x92 6157 #define R_IA64_TPREL64I 0x93 6158 #define R_IA64_TPREL64MSB 0x96 6159 #define R_IA64_TPREL64LSB 0x97 6160 #define R_IA64_LTOFF_TPREL22 0x9a 6161 #define R_IA64_DTPMOD64MSB 0xa6 6162 #define R_IA64_DTPMOD64LSB 0xa7 6163 #define R_IA64_LTOFF_DTPMOD22 0xaa 6164 #define R_IA64_DTPREL14 0xb1 6165 #define R_IA64_DTPREL22 0xb2 6166 #define R_IA64_DTPREL64I 0xb3 6167 #define R_IA64_DTPREL32MSB 0xb4 6168 #define R_IA64_DTPREL32LSB 0xb5 6169 #define R_IA64_DTPREL64MSB 0xb6 6170 #define R_IA64_DTPREL64LSB 0xb7 6171 #define R_IA64_LTOFF_DTPREL22 0xba 6172 #define PF_MASKPROC 0xf0000000 6173 #define SHF_MASKPROC 0xf0000000 6174 #define ET_LOOS 0xfe00 6175 #define ET_HIOS 0xfeff 6176 #define ET_LOPROC 0xff00 6177 #define SHN_LOPROC 0xff00 6178 #define SHN_LORESERVE 0xff00 6179 #define SYMINFO_BT_LOWRESERVE 0xff00 6180 #define EF_IA_64_ARCH 0xff000000 6181 #define SHN_HIPROC 0xff1f 6182 #define SHN_LOOS 0xff20 6183 #define SHN_HIOS 0xff3f 6184 #define SHN_ABS 0xfff1 6185 #define SHN_COMMON 0xfff2 6186 #define SYMINFO_BT_PARENT 0xfffe 6187 #define ET_HIPROC 0xffff 6188 #define PN_XNUM 0xffff 6189 #define SHN_HIRESERVE 0xffff 6190 #define SHN_XINDEX 0xffff 6191 #define SYMINFO_BT_SELF 0xffff 6192 #define DT_IA_64_NUM 1 6193 #define DT_NEEDED 1 6194 #define DT_PPC_NUM 1 6195 #define EI_MAG1 1 6196 #define ELFCLASS32 1 6197 #define ELFDATA2LSB 1 6198 #define ELF_NOTE_OS_GNU 1 6199 #define ET_REL 1 6200 #define EV_CURRENT 1 6201 #define NT_GNU_ABI_TAG 1 6202 #define PT_LOAD 1 6203 #define R_386_32 1 6204 #define R_390_8 1 6205 #define R_PPC_ADDR32 1 6206 #define R_X86_64_64 1 6207 #define SHT_PROGBITS 1 6208 #define STB_GLOBAL 1 6209 #define STT_OBJECT 1 6210 #define STV_INTERNAL 1 6211 #define SYMINFO_CURRENT 1 6212 #define DT_STRSZ 10 6213 #define R_386_GOTPC 10 6214 #define R_390_GLOB_DAT 10 6215 #define R_PPC_REL24 10 6216 #define R_X86_64_32 10 6217 #define SHT_SHLIB 10 6218 #define STB_LOOS 10 6219 #define STT_GNU_IFUNC 10 6220 #define STT_LOOS 10 6221 #define R_PPC64_TPREL16_HIGHESTA 100 6222 #define R_PPC64_DTPREL16_DS 101 6223 #define R_PPC64_DTPREL16_LO_DS 102 6224 #define R_PPC64_DTPREL16_HIGHER 103 6225 #define R_PPC64_DTPREL16_HIGHERA 104 6226 #define R_PPC64_DTPREL16_HIGHEST 105 6227 #define R_PPC64_DTPREL16_HIGHESTA 106 6228 #define DT_ADDRNUM 11 6229 #define DT_SYMENT 11 6230 #define R_386_32PLT 11 6231 #define R_390_JMP_SLOT 11 6232 #define R_PPC_REL14 11 6233 #define R_X86_64_32S 11 6234 #define SHT_DYNSYM 11 6235 #define DT_INIT 12 6236 #define DT_VALNUM 12 6237 #define R_390_RELATIVE 12 6238 #define R_PPC_REL14_BRTAKEN 12 6239 #define R_X86_64_16 12 6240 #define STB_HIOS 12 6241 #define STT_HIOS 12 6242 #define DT_FINI 13 6243 #define R_390_GOTOFF32 13 6244 #define R_PPC_REL14_BRNTAKEN 13 6245 #define R_X86_64_PC16 13 6246 #define STB_LOPROC 13 6247 #define STT_LOPROC 13 6248 #define DT_SONAME 14 6249 #define R_386_TLS_TPOFF 14 6250 #define R_390_GOTPC 14 6251 #define R_PPC_GOT16 14 6252 #define R_X86_64_8 14 6253 #define SHT_INIT_ARRAY 14 6254 #define DT_RPATH 15 6255 #define R_386_TLS_IE 15 6256 #define R_390_GOT16 15 6257 #define R_PPC_GOT16_LO 15 6258 #define R_X86_64_PC8 15 6259 #define SHT_FINI_ARRAY 15 6260 #define STB_HIPROC 15 6261 #define STT_HIPROC 15 6262 #define DT_SYMBOLIC 16 6263 #define DT_VERSIONTAGNUM 16 6264 #define R_386_TLS_GOTIE 16 6265 #define R_390_PC16 16 6266 #define R_PPC_GOT16_HI 16 6267 #define R_X86_64_DTPMOD64 16 6268 #define SHT_PREINIT_ARRAY 16 6269 #define DT_REL 17 6270 #define R_386_TLS_LE 17 6271 #define R_390_PC16DBL 17 6272 #define R_PPC_GOT16_HA 17 6273 #define R_X86_64_DTPOFF64 17 6274 #define SHT_GROUP 17 6275 #define DT_RELSZ 18 6276 #define R_386_TLS_GD 18 6277 #define R_390_PLT16DBL 18 6278 #define R_PPC_PLTREL24 18 6279 #define R_X86_64_TPOFF64 18 6280 #define SHT_SYMTAB_SHNDX 18 6281 #define DT_RELENT 19 6282 #define R_386_TLS_LDM 19 6283 #define R_390_PC32DBL 19 6284 #define R_PPC_COPY 19 6285 #define R_X86_64_TLSGD 19 6286 #define DT_PLTRELSZ 2 6287 #define EI_MAG2 2 6288 #define ELFCLASS64 2 6289 #define ELFDATA2MSB 2 6290 #define ELF_NOTE_OS_SOLARIS2 2 6291 #define ET_EXEC 2 6292 #define EV_NUM 2 6293 #define PT_DYNAMIC 2 6294 #define R_386_PC32 2 6295 #define R_390_12 2 6296 #define R_PPC_ADDR24 2 6297 #define R_X86_64_PC32 2 6298 #define SHT_SYMTAB 2 6299 #define STB_WEAK 2 6300 #define STT_FUNC 2 6301 #define STV_HIDDEN 2 6302 #define SYMINFO_NUM 2 6303 #define DT_PLTREL 20 6304 #define EM_PPC 20 6305 #define R_386_16 20 6306 #define R_390_PLT32DBL 20 6307 #define R_PPC_GLOB_DAT 20 6308 #define R_X86_64_TLSLD 20 6309 #define DT_DEBUG 21 6310 #define EM_PPC64 21 6311 #define R_386_PC16 21 6312 #define R_390_GOTPCDBL 21 6313 #define R_PPC_JMP_SLOT 21 6314 #define R_X86_64_DTPOFF32 21 6315 #define DT_TEXTREL 22 6316 #define EM_S390 22 6317 #define R_386_8 22 6318 #define R_390_64 22 6319 #define R_PPC_RELATIVE 22 6320 #define R_X86_64_GOTTPOFF 22 6321 #define DT_JMPREL 23 6322 #define R_386_PC8 23 6323 #define R_390_PC64 23 6324 #define R_PPC_LOCAL24PC 23 6325 #define R_X86_64_TPOFF32 23 6326 #define DT_BIND_NOW 24 6327 #define R_386_TLS_GD_32 24 6328 #define R_390_GOT64 24 6329 #define R_PPC_UADDR32 24 6330 #define R_X86_64_PC64 24 6331 #define R_PPC64_JMP_IREL 247 6332 #define R_PPC64_IRELATIVE 248 6333 #define R_PPC_IRELATIVE 248 6334 #define R_PPC64_REL16 249 6335 #define R_PPC_REL16 249 6336 #define DT_INIT_ARRAY 25 6337 #define R_386_TLS_GD_PUSH 25 6338 #define R_390_PLT64 25 6339 #define R_PPC_UADDR16 25 6340 #define R_X86_64_GOTOFF64 25 6341 #define R_PPC64_REL16_LO 250 6342 #define R_PPC_REL16_LO 250 6343 #define R_PPC64_REL16_HI 251 6344 #define R_PPC_REL16_HI 251 6345 #define R_PPC64_REL16_HA 252 6346 #define R_PPC_REL16_HA 252 6347 #define R_PPC_TOC16 255 6348 #define DT_FINI_ARRAY 26 6349 #define R_386_TLS_GD_CALL 26 6350 #define R_390_GOTENT 26 6351 #define R_PPC_REL32 26 6352 #define R_X86_64_GOTPC32 26 6353 #define DT_INIT_ARRAYSZ 27 6354 #define R_386_TLS_GD_POP 27 6355 #define R_390_GOTOFF16 27 6356 #define R_PPC_PLT32 27 6357 #define R_X86_64_GOT64 27 6358 #define DT_FINI_ARRAYSZ 28 6359 #define R_386_TLS_LDM_32 28 6360 #define R_390_GOTOFF64 28 6361 #define R_PPC_PLTREL32 28 6362 #define R_X86_64_GOTPCREL64 28 6363 #define DT_RUNPATH 29 6364 #define R_386_TLS_LDM_PUSH 29 6365 #define R_390_GOTPLT12 29 6366 #define R_PPC_PLT16_LO 29 6367 #define R_X86_64_GOTPC64 29 6368 #define DT_EXTRANUM 3 6369 #define DT_PLTGOT 3 6370 #define DT_PPC64_NUM 3 6371 #define EI_MAG3 3 6372 #define ELFCLASSNUM 3 6373 #define ELFDATANUM 3 6374 #define ELFOSABI_LINUX 3 6375 #define ELF_NOTE_OS_FREEBSD 3 6376 #define EM_386 3 6377 #define ET_DYN 3 6378 #define PT_INTERP 3 6379 #define R_386_GOT32 3 6380 #define R_390_16 3 6381 #define R_PPC_ADDR16 3 6382 #define R_X86_64_GOT32 3 6383 #define SHT_STRTAB 3 6384 #define STB_NUM 3 6385 #define STT_SECTION 3 6386 #define STV_PROTECTED 3 6387 #define DT_FLAGS 30 6388 #define R_386_TLS_LDM_CALL 30 6389 #define R_390_GOTPLT16 30 6390 #define R_PPC_PLT16_HI 30 6391 #define R_X86_64_GOTPLT64 30 6392 #define R_386_TLS_LDM_POP 31 6393 #define R_390_GOTPLT32 31 6394 #define R_PPC_PLT16_HA 31 6395 #define R_X86_64_PLTOFF64 31 6396 #define DT_ENCODING 32 6397 #define DT_PREINIT_ARRAY 32 6398 #define R_386_TLS_LDO_32 32 6399 #define R_390_GOTPLT64 32 6400 #define R_PPC_SDAREL16 32 6401 #define R_X86_64_SIZE32 32 6402 #define DT_PREINIT_ARRAYSZ 33 6403 #define R_386_TLS_IE_32 33 6404 #define R_390_GOTPLTENT 33 6405 #define R_PPC_SECTOFF 33 6406 #define R_X86_64_SIZE64 33 6407 #define DT_NUM 34 6408 #define R_386_TLS_LE_32 34 6409 #define R_390_PLTOFF16 34 6410 #define R_PPC_SECTOFF_LO 34 6411 #define R_X86_64_GOTPC32_TLSDESC 34 6412 #define R_386_TLS_DTPMOD32 35 6413 #define R_390_PLTOFF32 35 6414 #define R_PPC_SECTOFF_HI 35 6415 #define R_X86_64_TLSDESC_CALL 35 6416 #define R_386_TLS_DTPOFF32 36 6417 #define R_390_PLTOFF64 36 6418 #define R_PPC_SECTOFF_HA 36 6419 #define R_X86_64_TLSDESC 36 6420 #define R_386_TLS_TPOFF32 37 6421 #define R_390_TLS_LOAD 37 6422 #define R_PPC64_ADDR30 37 6423 #define R_X86_64_IRELATIVE 37 6424 #define R_390_TLS_GDCALL 38 6425 #define R_PPC64_ADDR64 38 6426 #define R_X86_64_NUM 38 6427 #define R_386_TLS_GOTDESC 39 6428 #define R_390_TLS_LDCALL 39 6429 #define R_PPC64_ADDR16_HIGHER 39 6430 #define DT_HASH 4 6431 #define EI_CLASS 4 6432 #define ET_CORE 4 6433 #define PT_NOTE 4 6434 #define R_386_PLT32 4 6435 #define R_390_32 4 6436 #define R_PPC_ADDR16_LO 4 6437 #define R_X86_64_PLT32 4 6438 #define SELFMAG 4 6439 #define SHT_RELA 4 6440 #define STT_FILE 4 6441 #define EM_ARM 40 6442 #define R_386_TLS_DESC_CALL 40 6443 #define R_390_TLS_GD32 40 6444 #define R_PPC64_ADDR16_HIGHERA 40 6445 #define R_386_TLS_DESC 41 6446 #define R_390_TLS_GD64 41 6447 #define R_PPC64_ADDR16_HIGHEST 41 6448 #define R_386_IRELATIVE 42 6449 #define R_390_TLS_GOTIE12 42 6450 #define R_PPC64_ADDR16_HIGHESTA 42 6451 #define R_386_NUM 43 6452 #define R_390_TLS_GOTIE32 43 6453 #define R_PPC64_UADDR64 43 6454 #define R_390_TLS_GOTIE64 44 6455 #define R_PPC64_REL64 44 6456 #define R_390_TLS_LDM32 45 6457 #define R_PPC64_PLT64 45 6458 #define R_390_TLS_LDM64 46 6459 #define R_PPC64_PLTREL64 46 6460 #define R_390_TLS_IE32 47 6461 #define R_PPC64_TOC16 47 6462 #define R_390_TLS_IE64 48 6463 #define R_PPC64_TOC16_LO 48 6464 #define R_390_TLS_IEENT 49 6465 #define R_PPC64_TOC16_HI 49 6466 #define DT_STRTAB 5 6467 #define EI_DATA 5 6468 #define ET_NUM 5 6469 #define PT_SHLIB 5 6470 #define R_386_COPY 5 6471 #define R_390_PC32 5 6472 #define R_PPC_ADDR16_HI 5 6473 #define R_X86_64_COPY 5 6474 #define SHT_HASH 5 6475 #define STT_COMMON 5 6476 #define EM_IA_64 50 6477 #define R_390_TLS_LE32 50 6478 #define R_PPC64_TOC16_HA 50 6479 #define R_390_TLS_LE64 51 6480 #define R_PPC64_TOC 51 6481 #define R_390_TLS_LDO32 52 6482 #define R_PPC64_PLTGOT16 52 6483 #define R_390_TLS_LDO64 53 6484 #define R_PPC64_PLTGOT16_LO 53 6485 #define R_390_TLS_DTPMOD 54 6486 #define R_PPC64_PLTGOT16_HI 54 6487 #define R_390_TLS_DTPOFF 55 6488 #define R_PPC64_PLTGOT16_HA 55 6489 #define R_390_TLS_TPOFF 56 6490 #define R_PPC64_ADDR16_DS 56 6491 #define R_390_20 57 6492 #define R_PPC64_ADDR16_LO_DS 57 6493 #define R_390_GOT20 58 6494 #define R_PPC64_GOT16_DS 58 6495 #define R_390_GOTPLT20 59 6496 #define R_PPC64_GOT16_LO_DS 59 6497 #define DT_SYMTAB 6 6498 #define EI_VERSION 6 6499 #define PT_PHDR 6 6500 #define R_386_GLOB_DAT 6 6501 #define R_390_GOT12 6 6502 #define R_PPC_ADDR16_HA 6 6503 #define R_X86_64_GLOB_DAT 6 6504 #define SHT_DYNAMIC 6 6505 #define STT_TLS 6 6506 #define R_390_TLS_GOTIE20 60 6507 #define R_PPC64_PLT16_LO_DS 60 6508 #define R_390_NUM 61 6509 #define R_PPC64_SECTOFF_DS 61 6510 #define EM_X86_64 62 6511 #define R_PPC64_SECTOFF_LO_DS 62 6512 #define R_PPC64_TOC16_DS 63 6513 #define R_PPC64_TOC16_LO_DS 64 6514 #define R_PPC64_PLTGOT16_DS 65 6515 #define R_PPC64_PLTGOT16_LO_DS 66 6516 #define R_PPC64_TLS 67 6517 #define R_PPC_TLS 67 6518 #define R_PPC64_DTPMOD64 68 6519 #define R_PPC_DTPMOD32 68 6520 #define R_PPC64_TPREL16 69 6521 #define R_PPC_TPREL16 69 6522 #define DT_RELA 7 6523 #define EI_OSABI 7 6524 #define PT_TLS 7 6525 #define R_386_JMP_SLOT 7 6526 #define R_390_GOT32 7 6527 #define R_PPC_ADDR14 7 6528 #define R_X86_64_JUMP_SLOT 7 6529 #define SHT_NOTE 7 6530 #define STT_NUM 7 6531 #define R_PPC64_TPREL16_LO 70 6532 #define R_PPC_TPREL16_LO 70 6533 #define R_PPC64_TPREL16_HI 71 6534 #define R_PPC_TPREL16_HI 71 6535 #define R_PPC64_TPREL16_HA 72 6536 #define R_PPC_TPREL16_HA 72 6537 #define R_PPC64_TPREL64 73 6538 #define R_PPC_TPREL32 73 6539 #define R_PPC64_DTPREL16 74 6540 #define R_PPC_DTPREL16 74 6541 #define R_PPC64_DTPREL16_LO 75 6542 #define R_PPC_DTPREL16_LO 75 6543 #define R_PPC64_DTPREL16_HI 76 6544 #define R_PPC_DTPREL16_HI 76 6545 #define R_PPC64_DTPREL16_HA 77 6546 #define R_PPC_DTPREL16_HA 77 6547 #define R_PPC64_DTPREL64 78 6548 #define R_PPC_DTPREL32 78 6549 #define R_PPC64_GOT_TLSGD16 79 6550 #define R_PPC_GOT_TLSGD16 79 6551 #define DT_RELASZ 8 6552 #define EI_ABIVERSION 8 6553 #define PT_NUM 8 6554 #define R_386_RELATIVE 8 6555 #define R_390_PLT32 8 6556 #define R_PPC_ADDR14_BRTAKEN 8 6557 #define R_X86_64_RELATIVE 8 6558 #define SHT_NOBITS 8 6559 #define R_PPC64_GOT_TLSGD16_LO 80 6560 #define R_PPC_GOT_TLSGD16_LO 80 6561 #define R_PPC64_GOT_TLSGD16_HI 81 6562 #define R_PPC_GOT_TLSGD16_HI 81 6563 #define R_PPC64_GOT_TLSGD16_HA 82 6564 #define R_PPC_GOT_TLSGD16_HA 82 6565 #define R_PPC64_GOT_TLSLD16 83 6566 #define R_PPC_GOT_TLSLD16 83 6567 #define R_PPC64_GOT_TLSLD16_LO 84 6568 #define R_PPC_GOT_TLSLD16_LO 84 6569 #define R_PPC64_GOT_TLSLD16_HI 85 6570 #define R_PPC_GOT_TLSLD16_HI 85 6571 #define R_PPC64_GOT_TLSLD16_HA 86 6572 #define R_PPC_GOT_TLSLD16_HA 86 6573 #define R_PPC64_GOT_TPREL16_DS 87 6574 #define R_PPC_GOT_TPREL16 87 6575 #define R_PPC64_GOT_TPREL16_LO_DS 88 6576 #define R_PPC_GOT_TPREL16_LO 88 6577 #define R_PPC64_GOT_TPREL16_HI 89 6578 #define R_PPC_GOT_TPREL16_HI 89 6579 #define DT_RELAENT 9 6580 #define EI_PAD 9 6581 #define R_386_GOTOFF 9 6582 #define R_390_COPY 9 6583 #define R_PPC_ADDR14_BRNTAKEN 9 6584 #define R_X86_64_GOTPCREL 9 6585 #define SHT_REL 9 6586 #define R_PPC64_GOT_TPREL16_HA 90 6587 #define R_PPC_GOT_TPREL16_HA 90 6588 #define R_PPC64_GOT_DTPREL16_DS 91 6589 #define R_PPC_GOT_DTPREL16 91 6590 #define R_PPC64_GOT_DTPREL16_LO_DS 92 6591 #define R_PPC_GOT_DTPREL16_LO 92 6592 #define R_PPC64_GOT_DTPREL16_HI 93 6593 #define R_PPC_GOT_DTPREL16_HI 93 6594 #define R_PPC64_GOT_DTPREL16_HA 94 6595 #define R_PPC_GOT_DTPREL16_HA 94 6596 #define R_PPC64_TPREL16_DS 95 6597 #define R_PPC64_TPREL16_LO_DS 96 6598 #define R_PPC64_TPREL16_HIGHER 97 6599 #define R_PPC64_TPREL16_HIGHERA 98 6600 #define R_PPC64_TPREL16_HIGHEST 99 6601 #define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) 6602 #define ELF64_M_SIZE(info) ELF32_M_SIZE (info) 6603 #define ELF64_M_SYM(info) ELF32_M_SYM (info) 6604 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val) 6605 #define ELF64_ST_INFO(bind,type) ELF32_ST_INFO ((bind), (type)) 6606 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) 6607 #define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY(o) 6608 #define ELF_NOTE_GNU "GNU" 6609 #define ELF_NOTE_ABI NT_GNU_ABI_TAG 6610 #define R_PPC64_ADDR14 R_PPC_ADDR14 6611 #define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN 6612 #define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN 6613 #define R_PPC64_ADDR16 R_PPC_ADDR16 6614 #define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA 6615 #define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI 6616 #define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO 6617 #define R_PPC64_ADDR24 R_PPC_ADDR24 6618 #define R_PPC64_ADDR32 R_PPC_ADDR32 6619 #define R_PPC64_COPY R_PPC_COPY 6620 #define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT 6621 #define R_PPC64_GOT16 R_PPC_GOT16 6622 #define R_PPC64_GOT16_HA R_PPC_GOT16_HA 6623 #define R_PPC64_GOT16_HI R_PPC_GOT16_HI 6624 #define R_PPC64_GOT16_LO R_PPC_GOT16_LO 6625 #define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT 6626 #define R_PPC64_NONE R_PPC_NONE 6627 #define R_PPC64_PLT16_HA R_PPC_PLT16_HA 6628 #define R_PPC64_PLT16_HI R_PPC_PLT16_HI 6629 #define R_PPC64_PLT16_LO R_PPC_PLT16_LO 6630 #define R_PPC64_PLT32 R_PPC_PLT32 6631 #define R_PPC64_PLTREL32 R_PPC_PLTREL32 6632 #define R_PPC64_REL14 R_PPC_REL14 6633 #define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN 6634 #define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN 6635 #define R_PPC64_REL24 R_PPC_REL24 6636 #define R_PPC64_REL32 R_PPC_REL32 6637 #define R_PPC64_RELATIVE R_PPC_RELATIVE 6638 #define R_PPC64_SECTOFF R_PPC_SECTOFF 6639 #define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA 6640 #define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI 6641 #define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO 6642 #define R_PPC64_UADDR16 R_PPC_UADDR16 6643 #define R_PPC64_UADDR32 R_PPC_UADDR32 6644 #define ELFMAG "\177ELF" 6645 6646 typedef uint32_t Elf32_Addr; 6647 typedef uint64_t Elf64_Addr; 6648 typedef uint32_t Elf32_Word; 6649 typedef uint32_t Elf64_Word; 6650 typedef int32_t Elf32_Sword; 6651 typedef int32_t Elf64_Sword; 6652 typedef uint64_t Elf32_Xword; 6653 typedef uint64_t Elf64_Xword; 6654 typedef int64_t Elf32_Sxword; 6655 typedef int64_t Elf64_Sxword; 6656 typedef uint32_t Elf32_Off; 6657 typedef uint64_t Elf64_Off; 6658 typedef struct { 6659 Elf32_Word p_type; /* Segment type */ 6660 Elf32_Off p_offset; /* Segment file offset */ 6661 Elf32_Addr p_vaddr; /* Segment virtual address */ 6662 Elf32_Addr p_paddr; /* Segment physical address */ 6663 Elf32_Word p_filesz; /* Segment size in file */ 6664 Elf32_Word p_memsz; /* Segment size in memory */ 6665 Elf32_Word p_flags; /* Segment flags */ 6666 Elf32_Word p_align; /* Segment alignment */ 6667 } Elf32_Phdr; 6668 typedef struct { 6669 Elf64_Word p_type; /* Segment type */ 6670 Elf64_Word p_flags; /* Segment flags */ 6671 Elf64_Off p_offset; /* Segment file offset */ 6672 Elf64_Addr p_vaddr; /* Segment virtual address */ 6673 Elf64_Addr p_paddr; /* Segment physical address */ 6674 Elf64_Xword p_filesz; /* Segment size in file */ 6675 Elf64_Xword p_memsz; /* Segment size in memory */ 6676 Elf64_Xword p_align; /* Segment alignment */ 6677 } Elf64_Phdr; 6678 typedef uint16_t Elf32_Half; 6679 typedef uint16_t Elf64_Half; 6680 typedef uint16_t Elf32_Section; 6681 typedef uint16_t Elf64_Section; 6682 typedef struct { 6683 Elf32_Word n_namesz; 6684 Elf32_Word n_descsz; 6685 Elf32_Word n_type; 6686 } Elf32_Nhdr; 6687 typedef struct { 6688 Elf64_Word n_namesz; 6689 Elf64_Word n_descsz; 6690 Elf64_Word n_type; 6691 } Elf64_Nhdr; 6692 typedef struct { 6693 Elf64_Word st_name; 6694 unsigned char st_info; 6695 unsigned char st_other; 6696 Elf64_Section st_shndx; 6697 Elf64_Addr st_value; 6698 Elf64_Xword st_size; 6699 } Elf64_Sym; 6700 typedef struct { 6701 Elf32_Word st_name; 6702 Elf32_Addr st_value; 6703 Elf32_Word st_size; 6704 unsigned char st_info; 6705 unsigned char st_other; 6706 Elf32_Section st_shndx; 6707 } Elf32_Sym; 6708 typedef struct { 6709 Elf64_Addr r_offset; 6710 Elf64_Xword r_info; 6711 } Elf64_Rel; 6712 typedef struct { 6713 Elf32_Addr r_offset; 6714 Elf32_Word r_info; 6715 } Elf32_Rel; 6716 typedef struct { 6717 Elf64_Addr r_offset; 6718 Elf64_Xword r_info; 6719 Elf64_Sxword r_addend; 6720 } Elf64_Rela; 6721 typedef struct { 6722 Elf32_Addr r_offset; 6723 Elf32_Word r_info; 6724 Elf32_Sword r_addend; 6725 } Elf32_Rela; 6726 typedef struct { 6727 Elf32_Half vd_version; 6728 Elf32_Half vd_flags; 6729 Elf32_Half vd_ndx; 6730 Elf32_Half vd_cnt; 6731 Elf32_Word vd_hash; 6732 Elf32_Word vd_aux; 6733 Elf32_Word vd_next; 6734 } Elf32_Verdef; 6735 typedef struct { 6736 Elf64_Half vd_version; 6737 Elf64_Half vd_flags; 6738 Elf64_Half vd_ndx; 6739 Elf64_Half vd_cnt; 6740 Elf64_Word vd_hash; 6741 Elf64_Word vd_aux; 6742 Elf64_Word vd_next; 6743 } Elf64_Verdef; 6744 typedef struct { 6745 Elf64_Word vda_name; 6746 Elf64_Word vda_next; 6747 } Elf64_Verdaux; 6748 typedef struct { 6749 Elf32_Word vda_name; 6750 Elf32_Word vda_next; 6751 } Elf32_Verdaux; 6752 typedef struct { 6753 Elf32_Half vn_version; 6754 Elf32_Half vn_cnt; 6755 Elf32_Word vn_file; 6756 Elf32_Word vn_aux; 6757 Elf32_Word vn_next; 6758 } Elf32_Verneed; 6759 typedef struct { 6760 Elf64_Half vn_version; 6761 Elf64_Half vn_cnt; 6762 Elf64_Word vn_file; 6763 Elf64_Word vn_aux; 6764 Elf64_Word vn_next; 6765 } Elf64_Verneed; 6766 typedef struct { 6767 Elf32_Word vna_hash; 6768 Elf32_Half vna_flags; 6769 Elf32_Half vna_other; 6770 Elf32_Word vna_name; 6771 Elf32_Word vna_next; 6772 } Elf32_Vernaux; 6773 typedef struct { 6774 Elf64_Word vna_hash; 6775 Elf64_Half vna_flags; 6776 Elf64_Half vna_other; 6777 Elf64_Word vna_name; 6778 Elf64_Word vna_next; 6779 } Elf64_Vernaux; 6780 typedef struct { 6781 unsigned char e_ident[EI_NIDENT]; 6782 Elf64_Half e_type; 6783 Elf64_Half e_machine; 6784 Elf64_Word e_version; 6785 Elf64_Addr e_entry; 6786 Elf64_Off e_phoff; 6787 Elf64_Off e_shoff; 6788 Elf64_Word e_flags; 6789 Elf64_Half e_ehsize; 6790 Elf64_Half e_phentsize; 6791 Elf64_Half e_phnum; 6792 Elf64_Half e_shentsize; 6793 Elf64_Half e_shnum; 6794 Elf64_Half e_shstrndx; 6795 } Elf64_Ehdr; 6796 typedef struct { 6797 unsigned char e_ident[EI_NIDENT]; 6798 Elf32_Half e_type; 6799 Elf32_Half e_machine; 6800 Elf32_Word e_version; 6801 Elf32_Addr e_entry; 6802 Elf32_Off e_phoff; 6803 Elf32_Off e_shoff; 6804 Elf32_Word e_flags; 6805 Elf32_Half e_ehsize; 6806 Elf32_Half e_phentsize; 6807 Elf32_Half e_phnum; 6808 Elf32_Half e_shentsize; 6809 Elf32_Half e_shnum; 6810 Elf32_Half e_shstrndx; 6811 } Elf32_Ehdr; 6812 typedef struct { 6813 Elf32_Word sh_name; 6814 Elf32_Word sh_type; 6815 Elf32_Word sh_flags; 6816 Elf32_Addr sh_addr; 6817 Elf32_Off sh_offset; 6818 Elf32_Word sh_size; 6819 Elf32_Word sh_link; 6820 Elf32_Word sh_info; 6821 Elf32_Word sh_addralign; 6822 Elf32_Word sh_entsize; 6823 } Elf32_Shdr; 6824 typedef struct { 6825 Elf64_Word sh_name; 6826 Elf64_Word sh_type; 6827 Elf64_Xword sh_flags; 6828 Elf64_Addr sh_addr; 6829 Elf64_Off sh_offset; 6830 Elf64_Xword sh_size; 6831 Elf64_Word sh_link; 6832 Elf64_Word sh_info; 6833 Elf64_Xword sh_addralign; 6834 Elf64_Xword sh_entsize; 6835 } Elf64_Shdr; 6836 typedef struct { 6837 Elf32_Sword d_tag; 6838 union { 6839 Elf32_Word d_val; 6840 Elf32_Addr d_ptr; 6841 } d_un; 6842 } Elf32_Dyn; 6843 typedef struct { 6844 Elf64_Sxword d_tag; 6845 union { 6846 Elf64_Xword d_val; 6847 Elf64_Addr d_ptr; 6848 } d_un; 6849 } Elf64_Dyn; 6850 __________________________________________________________ 6851 6852 14.4.8. endian.h 6853 6854 #define __LITTLE_ENDIAN 1234 6855 #define __BIG_ENDIAN 4321 6856 #define BIG_ENDIAN __BIG_ENDIAN 6857 #define BYTE_ORDER __BYTE_ORDER 6858 #define LITTLE_ENDIAN __LITTLE_ENDIAN 6859 __________________________________________________________ 6860 6861 14.4.9. envz.h 6862 6863 extern error_t envz_add(char **envz, size_t * envz_len, const char *name, 6864 const char *value); 6865 extern char envz_entry(const char *envz, size_t envz_len, 6866 const char *name); 6867 extern char envz_get(const char *envz, size_t envz_len, const char *name); 6868 extern error_t envz_merge(char **envz, size_t * envz_len, 6869 const char *envz2, size_t envz2_len, 6870 int override); 6871 extern void envz_remove(char **envz, size_t * envz_len, const char *name); 6872 extern void envz_strip(char **envz, size_t * envz_len); 6873 __________________________________________________________ 6874 6875 14.4.10. err.h 6876 6877 extern void err(int eval, const char *fmt, ...); 6878 extern void errx(int eval, const char *fmt, ...); 6879 extern void verrx(int eval, const char *fmt, va_list args); 6880 extern void warn(const char *fmt, ...); 6881 extern void warnx(const char *fmt, ...); 6882 __________________________________________________________ 6883 6884 14.4.11. errno.h 6885 6886 #define errno (*__errno_location()) 6887 6888 #define EPERM 1 /* Operation not permitted */ 6889 #define ECHILD 10 /* No child processes */ 6890 #define ENETDOWN 100 /* Network is down */ 6891 #define ENETUNREACH 101 /* Network is unreachable */ 6892 #define ENETRESET 102 /* Network dropped connection because of reset */ 6893 #define ECONNABORTED 103 /* Software caused connection abort */ 6894 #define ECONNRESET 104 /* Connection reset by peer */ 6895 #define ENOBUFS 105 /* No buffer space available */ 6896 #define EISCONN 106 /* Transport endpoint is already connected */ 6897 #define ENOTCONN 107 /* Transport endpoint is not connected */ 6898 #define ESHUTDOWN 108 /* Cannot send after transport endpointshutdown */ 6899 #define ETOOMANYREFS 109 /* Too many references: cannot splice */ 6900 #define EAGAIN 11 /* Try again */ 6901 #define ETIMEDOUT 110 /* Connection timed out */ 6902 #define ECONNREFUSED 111 /* Connection refused */ 6903 #define EHOSTDOWN 112 /* Host is down */ 6904 #define EHOSTUNREACH 113 /* No route to host */ 6905 #define EALREADY 114 /* Operation already in progress */ 6906 #define EINPROGRESS 115 /* Operation now in progress */ 6907 #define ESTALE 116 /* Stale NFS file handle */ 6908 #define EUCLEAN 117 /* Structure needs cleaning */ 6909 #define ENOTNAM 118 /* Not a XENIX named type file */ 6910 #define ENAVAIL 119 /* No XENIX semaphores available */ 6911 #define ENOMEM 12 /* Out of memory */ 6912 #define EISNAM 120 /* Is a named type file */ 6913 #define EREMOTEIO 121 /* Remote I/O error */ 6914 #define EDQUOT 122 /* Quota exceeded */ 6915 #define ENOMEDIUM 123 /* No medium found */ 6916 #define EMEDIUMTYPE 124 /* Wrong medium type */ 6917 #define ECANCELED 125 /* Operation Canceled */ 6918 #define EACCES 13 /* Permission denied */ 6919 #define EOWNERDEAD 130 /* Owner died */ 6920 #define ENOTRECOVERABLE 131 /* State not recoverable */ 6921 #define ERFKILL 132 /* Operation not possible due to RF-kill */ 6922 #define EFAULT 14 /* Bad address */ 6923 #define ENOTBLK 15 /* Block device required */ 6924 #define EBUSY 16 /* Device or resource busy */ 6925 #define EEXIST 17 /* File exists */ 6926 #define EXDEV 18 /* Cross-device link */ 6927 #define ENODEV 19 /* No such device */ 6928 #define ENOENT 2 /* No such file or directory */ 6929 #define ENOTDIR 20 /* Not a directory */ 6930 #define EISDIR 21 /* Is a directory */ 6931 #define EINVAL 22 /* Invalid argument */ 6932 #define ENFILE 23 /* File table overflow */ 6933 #define EMFILE 24 /* Too many open files */ 6934 #define ENOTTY 25 /* Not a typewriter */ 6935 #define ETXTBSY 26 /* Text file busy */ 6936 #define EFBIG 27 /* File too large */ 6937 #define ENOSPC 28 /* No space left on device */ 6938 #define ESPIPE 29 /* Illegal seek */ 6939 #define ESRCH 3 /* No such process */ 6940 #define EROFS 30 /* Read-only file system */ 6941 #define EMLINK 31 /* Too many links */ 6942 #define EPIPE 32 /* Broken pipe */ 6943 #define EDOM 33 /* Math argument out of domain of func */ 6944 #define ERANGE 34 /* Math result not representable */ 6945 #define EDEADLK 35 /* Resource deadlock would occur */ 6946 #define ENAMETOOLONG 36 /* File name too long */ 6947 #define ENOLCK 37 /* No record locks available */ 6948 #define ENOSYS 38 /* Function not implemented */ 6949 #define ENOTEMPTY 39 /* Directory not empty */ 6950 #define EINTR 4 /* Interrupted system call */ 6951 #define ELOOP 40 /* Too many symbolic links encountered */ 6952 #define ENOMSG 42 /* No message of desired type */ 6953 #define EIDRM 43 /* Identifier removed */ 6954 #define ECHRNG 44 /* Channel number out of range */ 6955 #define EL2NSYNC 45 /* Level 2 not synchronized */ 6956 #define EL3HLT 46 /* Level 3 halted */ 6957 #define EL3RST 47 /* Level 3 reset */ 6958 #define ELNRNG 48 /* Link number out of range */ 6959 #define EUNATCH 49 /* Protocol driver not attached */ 6960 #define EIO 5 /* I/O error */ 6961 #define ENOANO 55 /* No anode */ 6962 #define EBADRQC 56 /* Invalid request code */ 6963 #define EBADSLT 57 /* Invalid slot */ 6964 #define EBFONT 59 /* Bad font file format */ 6965 #define ENXIO 6 /* No such device or address */ 6966 #define ENOSTR 60 /* Device not a stream */ 6967 #define ENODATA 61 /* No data available */ 6968 #define ETIME 62 /* Timer expired */ 6969 #define ENOSR 63 /* Out of streams resources */ 6970 #define ENONET 64 /* Machine is not on the network */ 6971 #define ENOPKG 65 /* Package not installed */ 6972 #define EREMOTE 66 /* Object is remote */ 6973 #define ENOLINK 67 /* Link has been severed */ 6974 #define EADV 68 /* Advertise error */ 6975 #define ESRMNT 69 /* Srmount error */ 6976 #define E2BIG 7 /* Argument list too long */ 6977 #define ECOMM 70 /* Communication error on send */ 6978 #define EPROTO 71 /* Protocol error */ 6979 #define EMULTIHOP 72 /* Multihop attempted */ 6980 #define EDOTDOT 73 /* RFS specific error */ 6981 #define EBADMSG 74 /* Not a data message */ 6982 #define EOVERFLOW 75 /* Value too large for defined data type */ 6983 #define ENOTUNIQ 76 /* Name not unique on network */ 6984 #define EBADFD 77 /* File descriptor in bad state */ 6985 #define EREMCHG 78 /* Remote address changed */ 6986 #define ELIBACC 79 /* Can not access a needed shared library */ 6987 #define ENOEXEC 8 /* Exec format error */ 6988 #define ELIBBAD 80 /* Accessing a corrupted shared library*/ 6989 #define ELIBSCN 81 /* .lib section in a.out corrupted */ 6990 #define ELIBMAX 82 /* Attempting to link in too many shared libraries */ 6991 #define ELIBEXEC 83 /* Cannot exec a shared library directly */ 6992 #define EILSEQ 84 /* Illegal byte sequence */ 6993 #define ERESTART 85 /* Interrupted system call should be restarted */ 6994 #define ESTRPIPE 86 /* Streams pipe error */ 6995 #define EUSERS 87 /* Too many users */ 6996 #define ENOTSOCK 88 /* Socket operation on non-socket */ 6997 #define EDESTADDRREQ 89 /* Destination address required */ 6998 #define EBADF 9 /* Bad file number */ 6999 #define EMSGSIZE 90 /* Message too long */ 7000 #define EPROTOTYPE 91 /* Protocol wrong type for socket */ 7001 #define ENOPROTOOPT 92 /* Protocol not available */ 7002 #define EPROTONOSUPPORT 93 /* Protocol not supported */ 7003 #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ 7004 #define EOPNOTSUPP 95 /* Operation not supported on transportendpoint */ 7005 #define EPFNOSUPPORT 96 /* Protocol family not supported */ 7006 #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ 7007 #define EADDRINUSE 98 /* Address already in use */ 7008 #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ 7009 #define EWOULDBLOCK EAGAIN /* Operation would block */ 7010 #define ENOTSUP EOPNOTSUPP 7011 7012 extern int *__errno_location(void); 7013 __________________________________________________________ 7014 7015 14.4.12. error.h 7016 7017 extern void error(int status, int errnum, const char *format, ...); 7018 __________________________________________________________ 7019 7020 14.4.13. execinfo.h 7021 7022 extern int backtrace(void **__array, int __size); 7023 extern char **backtrace_symbols(void *const *__array, int __size); 7024 extern void backtrace_symbols_fd(void *const *__array, int __size, 7025 int __fd); 7026 __________________________________________________________ 7027 7028 14.4.14. fcntl.h 7029 7030 #define AT_FDCWD -100 /* Use the current working directory todetermine the target of relative file paths. */ 7031 #define POSIX_FADV_NORMAL 0 7032 #define O_RDONLY 00 7033 #define O_ACCMODE 0003 7034 #define O_WRONLY 01 7035 #define O_CREAT 0100 7036 #define O_TRUNC 01000 7037 #define O_DSYNC 010000 7038 #define O_RDWR 02 7039 #define O_EXCL 0200 7040 #define O_APPEND 02000 7041 #define O_ASYNC 020000 7042 #define O_CLOEXEC 02000000 /* The FD_CLOEXEC flag associated with the new descriptor shall be set to close the file descriptor upon execution of an exec family function. */ 7043 #define O_NOCTTY 0400 7044 #define O_NDELAY 04000 7045 #define O_NONBLOCK 04000 7046 #define O_SYNC 04010000 7047 #define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ 7048 #define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname. */ 7049 #define AT_EACCESS 0x200 /* Check access using effective user and group ID. */ 7050 #define AT_REMOVEDIR 0x200 /* Remove directory instead of file. */ 7051 #define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic link. */ 7052 #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal. */ 7053 #define FD_CLOEXEC 1 7054 #define POSIX_FADV_RANDOM 1 7055 #define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with the close-on-exec flag FD_CLOEXEC set. */ 7056 #define POSIX_FADV_SEQUENTIAL 2 7057 #define POSIX_FADV_WILLNEED 3 7058 #define O_RSYNC O_SYNC 7059 7060 struct flock { 7061 short l_type; 7062 short l_whence; 7063 off_t l_start; 7064 off_t l_len; 7065 pid_t l_pid; 7066 }; 7067 struct flock64 { 7068 short l_type; 7069 short l_whence; 7070 loff_t l_start; 7071 loff_t l_len; 7072 pid_t l_pid; 7073 }; 7074 7075 #define AT_FDCWD -100 7076 #define AT_SYMLINK_NOFOLLOW 0x100 7077 #define AT_EACCESS 0x200 7078 #define AT_REMOVEDIR 0x200 7079 #define AT_SYMLINK_FOLLOW 0x400 7080 7081 #define F_DUPFD 0 7082 #define F_RDLCK 0 7083 #ifndef SEEK_SET 7084 #define SEEK_SET 0 7085 #endif 7086 #define F_GETFD 1 7087 #define F_WRLCK 1 7088 #ifndef SEEK_CUR 7089 #define SEEK_CUR 1 7090 #endif 7091 #define F_SETSIG 10 7092 #define F_GETSIG 11 7093 #define F_SETFD 2 7094 #define F_UNLCK 2 7095 #ifndef SEEK_END 7096 #define SEEK_END 2 7097 #endif 7098 #define F_GETFL 3 7099 #define F_SETFL 4 7100 #define F_GETLK 5 7101 #define F_SETLK 6 7102 #define F_SETLKW 7 7103 #define F_SETOWN 8 7104 #define F_GETOWN 9 7105 7106 extern int creat(const char *__file, mode_t __mode); 7107 extern int creat64(const char *__file, mode_t __mode); 7108 extern int fcntl(int __fd, int __cmd, ...); 7109 extern int open(const char *__file, int __oflag, ...); 7110 extern int open64(const char *__file, int __oflag, ...); 7111 extern int openat(int __fd, const char *__file, int __oflag, ...); 7112 extern int openat64(int __fd, const char *__file, int __oflag, ...); 7113 extern int posix_fadvise(int __fd, off_t __offset, off_t __len, 7114 int __advise); 7115 extern int posix_fadvise64(int __fd, off64_t __offset, off64_t __len, 7116 int __advise); 7117 extern int posix_fallocate(int __fd, off_t __offset, off_t __len); 7118 extern int posix_fallocate64(int __fd, off64_t __offset, off64_t __len); 7119 __________________________________________________________ 7120 7121 14.4.15. fmtmsg.h 7122 7123 #define MM_HARD 1 /* Source of the condition is hardware.*/ 7124 #define MM_NRECOV 128 /* Non-recoverable error. */ 7125 #define MM_UTIL 16 /* Condition detected by utility. */ 7126 #define MM_SOFT 2 /* Source of the condition is software.*/ 7127 #define MM_PRINT 256 /* Display message in standard error. */ 7128 #define MM_OPSYS 32 /* Condition detected by operating system. */ 7129 #define MM_FIRM 4 /* Source of the condition is firmware.*/ 7130 #define MM_CONSOLE 512 /* Display message on system console. */ 7131 #define MM_RECOVER 64 /* Recoverable error. */ 7132 #define MM_APPL 8 /* Condition detected by application. */ 7133 7134 #define MM_NOSEV 0 /* No severity level provided for the message. */ 7135 #define MM_HALT 1 /* Error causing application to halt. */ 7136 #define MM_ERROR 2 /* Application has encountered a non-fatal fault. */ 7137 #define MM_WARNING 3 /* Application has detected unusual non-error condition. */ 7138 #define MM_INFO 4 /* Informative message. */ 7139 7140 #define MM_NULLACT ((char *) 0) 7141 #define MM_NULLLBL ((char *) 0) 7142 #define MM_NULLTAG ((char *) 0) 7143 #define MM_NULLTXT ((char *) 0) 7144 #define MM_NULLMC ((long int) 0) 7145 #define MM_NULLSEV 0 7146 7147 #define MM_NOTOK -1 /* The function failed completely. */ 7148 #define MM_OK 0 /* The function succeeded. */ 7149 #define MM_NOMSG 1 /* The function was unable to generate a message on standard error, but otherwise succeeded. */ 7150 #define MM_NOCON 4 /* The function was unable to generate a console message, but otherwise succeeded. */ 7151 7152 extern int fmtmsg(long int __classification, const char *__label, 7153 int __severity, const char *__text, const char *__action, 7154 const char *__tag); 7155 __________________________________________________________ 7156 7157 14.4.16. fnmatch.h 7158 7159 #define FNM_CASEFOLD (1<<4) 7160 #define FNM_FILE_NAME FNM_PATHNAME 7161 7162 #define FNM_PATHNAME (1<<0) 7163 #define FNM_NOESCAPE (1<<1) 7164 #define FNM_PERIOD (1<<2) 7165 #define FNM_NOMATCH 1 7166 7167 extern int fnmatch(const char *__pattern, const char *__name, int __flags); 7168 __________________________________________________________ 7169 7170 14.4.17. ftw.h 7171 7172 #define FTW_D FTW_D 7173 #define FTW_DNR FTW_DNR 7174 #define FTW_DP FTW_DP 7175 #define FTW_F FTW_F 7176 #define FTW_NS FTW_NS 7177 #define FTW_SL FTW_SL 7178 #define FTW_SLN FTW_SLN 7179 7180 enum { 7181 FTW_F, 7182 FTW_D, 7183 FTW_DNR, 7184 FTW_NS, 7185 FTW_SL, 7186 FTW_DP, 7187 FTW_SLN 7188 }; 7189 7190 enum { 7191 FTW_PHYS = 1, 7192 FTW_MOUNT = 2, 7193 FTW_CHDIR = 4, 7194 FTW_DEPTH = 8 7195 }; 7196 7197 struct FTW { 7198 int base; 7199 int level; 7200 }; 7201 7202 typedef int (*__ftw_func_t) (const char *__filename, 7203 const struct stat * __status, int __flag); 7204 typedef int (*__ftw64_func_t) (const char *__filename, 7205 const struct stat64 * __status, int __flag); 7206 typedef int (*__nftw_func_t) (const char *__filename, 7207 const struct stat * __status, int __flag, 7208 struct FTW * __info); 7209 typedef int (*__nftw64_func_t) (const char *__filename, 7210 const struct stat64 * __status, int __flag, 7211 struct FTW * __info); 7212 extern int ftw(const char *__dir, __ftw_func_t __func, int __descriptors); 7213 extern int ftw64(const char *__dir, __ftw64_func_t __func, 7214 int __descriptors); 7215 extern int nftw(const char *__dir, __nftw_func_t __func, int __descriptors, 7216 int __flag); 7217 extern int nftw64(const char *__dir, __nftw64_func_t __func, 7218 int __descriptors, int __flag); 7219 __________________________________________________________ 7220 7221 14.4.18. getopt.h 7222 7223 #define no_argument 0 7224 #define required_argument 1 7225 #define optional_argument 2 7226 7227 struct option { 7228 const char *name; 7229 int has_arg; 7230 int *flag; 7231 int val; 7232 }; 7233 extern int getopt_long(int ___argc, char *const ___argv[], 7234 const char *__shortopts, 7235 const struct option *__longopts, int *__longind); 7236 extern int getopt_long_only(int ___argc, char *const ___argv[], 7237 const char *__shortopts, 7238 const struct option *__longopts, 7239 int *__longind); 7240 __________________________________________________________ 7241 7242 14.4.19. glob.h 7243 7244 #define GLOB_ERR (1<<0) 7245 #define GLOB_MARK (1<<1) 7246 #define GLOB_BRACE (1<<10) 7247 #define GLOB_NOMAGIC (1<<11) 7248 #define GLOB_TILDE (1<<12) 7249 #define GLOB_ONLYDIR (1<<13) 7250 #define GLOB_TILDE_CHECK (1<<14) 7251 #define GLOB_NOSORT (1<<2) 7252 #define GLOB_DOOFFS (1<<3) 7253 #define GLOB_NOCHECK (1<<4) 7254 #define GLOB_APPEND (1<<5) 7255 #define GLOB_NOESCAPE (1<<6) 7256 #define GLOB_PERIOD (1<<7) 7257 #define GLOB_MAGCHAR (1<<8) 7258 #define GLOB_ALTDIRFUNC (1<<9) 7259 7260 #define GLOB_NOSPACE 1 7261 #define GLOB_ABORTED 2 7262 #define GLOB_NOMATCH 3 7263 #define GLOB_NOSYS 4 7264 7265 typedef struct { 7266 size_t gl_pathc; 7267 char **gl_pathv; 7268 size_t gl_offs; 7269 int gl_flags; 7270 void (*gl_closedir) (void *); 7271 struct dirent *(*gl_readdir) (void *); 7272 void *(*gl_opendir) (const char *); 7273 int (*gl_lstat) (const char *, struct stat *); 7274 int (*gl_stat) (const char *, struct stat *); 7275 } glob_t; 7276 7277 typedef struct { 7278 size_t gl_pathc; 7279 char **gl_pathv; 7280 size_t gl_offs; 7281 int gl_flags; 7282 void (*gl_closedir) (void *); 7283 struct dirent64 *(*gl_readdir) (void *); 7284 void *(*gl_opendir) (const char *); 7285 int (*gl_lstat) (const char *, struct stat *); 7286 int (*gl_stat) (const char *, struct stat *); 7287 } glob64_t; 7288 extern int glob(const char *__pattern, int __flags, 7289 int (*__errfunc) (const char *, int), glob_t * __pglob); 7290 extern int glob64(const char *__pattern, int __flags, 7291 int (*__errfunc) (const char *, int), 7292 glob64_t * __pglob); 7293 extern void globfree(glob_t * __pglob); 7294 extern void globfree64(glob64_t * __pglob); 7295 __________________________________________________________ 7296 7297 14.4.20. gnu/libc-version.h 7298 7299 extern const char *gnu_get_libc_release(void); 7300 extern const char *gnu_get_libc_version(void); 7301 __________________________________________________________ 7302 7303 14.4.21. grp.h 7304 7305 struct group { 7306 char *gr_name; 7307 char *gr_passwd; 7308 gid_t gr_gid; 7309 char **gr_mem; 7310 }; 7311 7312 extern void endgrent(void); 7313 extern struct group *getgrent(void); 7314 extern int getgrent_r(struct group *__resultbuf, char *__buffer, 7315 size_t __buflen, struct group **__result); 7316 extern struct group *getgrgid(gid_t __gid); 7317 extern int getgrgid_r(gid_t __gid, struct group *__resultbuf, 7318 char *__buffer, size_t __buflen, 7319 struct group **__result); 7320 extern struct group *getgrnam(const char *__name); 7321 extern int getgrnam_r(const char *__name, struct group *__resultbuf, 7322 char *__buffer, size_t __buflen, 7323 struct group **__result); 7324 extern int getgrouplist(const char *__user, gid_t __group, 7325 gid_t * __groups, int *__ngroups); 7326 extern int initgroups(const char *__user, gid_t __group); 7327 extern void setgrent(void); 7328 extern int setgroups(size_t __n, const gid_t * __groups); 7329 __________________________________________________________ 7330 7331 14.4.22. iconv.h 7332 7333 typedef void *iconv_t; 7334 extern size_t iconv(iconv_t __cd, char **__inbuf, size_t * __inbytesleft, 7335 char **__outbuf, size_t * __outbytesleft); 7336 extern int iconv_close(iconv_t __cd); 7337 extern iconv_t iconv_open(const char *__tocode, const char *__fromcode); 7338 __________________________________________________________ 7339 7340 14.4.23. ifaddrs.h 7341 7342 #define ifa_broadaddr ifa_ifu.ifu_broadaddr 7343 #define ifa_dstaddr ifa_ifu.ifu_dstaddr 7344 7345 struct ifaddrs { 7346 struct ifaddrs *ifa_next; 7347 char *ifa_name; 7348 unsigned int ifa_flags; 7349 struct sockaddr *ifa_addr; 7350 struct sockaddr *ifa_netmask; 7351 union { 7352 struct sockaddr *ifu_broadaddr; 7353 struct sockaddr *ifu_dstaddr; 7354 } ifa_ifu; 7355 void *ifa_data; 7356 }; 7357 extern void freeifaddrs(struct ifaddrs *); 7358 extern int getifaddrs(struct ifaddrs **); 7359 __________________________________________________________ 7360 7361 14.4.24. inttypes.h 7362 7363 #if !defined __cplusplus || defined __STDC_FORMAT_MACROS 7364 #define PRId16 "d" 7365 #define PRId32 "d" 7366 #define PRId8 "d" 7367 #define PRIdFAST8 "d" 7368 #define PRIdLEAST16 "d" 7369 #define PRIdLEAST32 "d" 7370 #define PRIdLEAST8 "d" 7371 #define SCNd32 "d" 7372 #define SCNdLEAST32 "d" 7373 #define SCNd16 "hd" 7374 #define SCNdLEAST16 "hd" 7375 #define SCNd8 "hhd" 7376 #define SCNdFAST8 "hhd" 7377 #define SCNdLEAST8 "hhd" 7378 #define SCNi8 "hhi" 7379 #define SCNiFAST8 "hhi" 7380 #define SCNiLEAST8 "hhi" 7381 #define SCNo8 "hho" 7382 #define SCNoFAST8 "hho" 7383 #define SCNoLEAST8 "hho" 7384 #define SCNu8 "hhu" 7385 #define SCNuFAST8 "hhu" 7386 #define SCNuLEAST8 "hhu" 7387 #define SCNx8 "hhx" 7388 #define SCNxFAST8 "hhx" 7389 #define SCNxLEAST8 "hhx" 7390 #define SCNi16 "hi" 7391 #define SCNiLEAST16 "hi" 7392 #define SCNo16 "ho" 7393 #define SCNoLEAST16 "ho" 7394 #define SCNu16 "hu" 7395 #define SCNuLEAST16 "hu" 7396 #define SCNx16 "hx" 7397 #define SCNxLEAST16 "hx" 7398 #define PRIi16 "i" 7399 #define PRIi32 "i" 7400 #define PRIi8 "i" 7401 #define PRIiFAST8 "i" 7402 #define PRIiLEAST16 "i" 7403 #define PRIiLEAST32 "i" 7404 #define PRIiLEAST8 "i" 7405 #define SCNi32 "i" 7406 #define SCNiLEAST32 "i" 7407 #define PRIo16 "o" 7408 #define PRIo32 "o" 7409 #define PRIo8 "o" 7410 #define PRIoFAST8 "o" 7411 #define PRIoLEAST16 "o" 7412 #define PRIoLEAST32 "o" 7413 #define PRIoLEAST8 "o" 7414 #define SCNo32 "o" 7415 #define SCNoLEAST32 "o" 7416 #define PRIu16 "u" 7417 #define PRIu32 "u" 7418 #define PRIu8 "u" 7419 #define PRIuFAST8 "u" 7420 #define PRIuLEAST16 "u" 7421 #define PRIuLEAST32 "u" 7422 #define PRIuLEAST8 "u" 7423 #define SCNu32 "u" 7424 #define SCNuLEAST32 "u" 7425 #define PRIX16 "X" 7426 #define PRIX32 "X" 7427 #define PRIX8 "X" 7428 #define PRIXFAST8 "X" 7429 #define PRIXLEAST16 "X" 7430 #define PRIXLEAST32 "X" 7431 #define PRIXLEAST8 "X" 7432 #define PRIx16 "x" 7433 #define PRIx32 "x" 7434 #define PRIx8 "x" 7435 #define PRIxFAST8 "x" 7436 #define PRIxLEAST16 "x" 7437 #define PRIxLEAST32 "x" 7438 #define PRIxLEAST8 "x" 7439 #define SCNx32 "x" 7440 #define SCNxLEAST32 "x" 7441 #define PRId64 __PRI64_PREFIX"d" 7442 #define PRIdFAST64 __PRI64_PREFIX"d" 7443 #define PRIdLEAST64 __PRI64_PREFIX"d" 7444 #define PRIdMAX __PRI64_PREFIX"d" 7445 #define SCNd64 __PRI64_PREFIX"d" 7446 #define SCNdFAST64 __PRI64_PREFIX"d" 7447 #define SCNdLEAST64 __PRI64_PREFIX"d" 7448 #define SCNdMAX __PRI64_PREFIX"d" 7449 #define PRIi64 __PRI64_PREFIX"i" 7450 #define PRIiFAST64 __PRI64_PREFIX"i" 7451 #define PRIiLEAST64 __PRI64_PREFIX"i" 7452 #define PRIiMAX __PRI64_PREFIX"i" 7453 #define SCNi64 __PRI64_PREFIX"i" 7454 #define SCNiFAST64 __PRI64_PREFIX"i" 7455 #define SCNiLEAST64 __PRI64_PREFIX"i" 7456 #define SCNiMAX __PRI64_PREFIX"i" 7457 #define PRIo64 __PRI64_PREFIX"o" 7458 #define PRIoFAST64 __PRI64_PREFIX"o" 7459 #define PRIoLEAST64 __PRI64_PREFIX"o" 7460 #define PRIoMAX __PRI64_PREFIX"o" 7461 #define SCNo64 __PRI64_PREFIX"o" 7462 #define SCNoFAST64 __PRI64_PREFIX"o" 7463 #define SCNoLEAST64 __PRI64_PREFIX"o" 7464 #define SCNoMAX __PRI64_PREFIX"o" 7465 #define PRIu64 __PRI64_PREFIX"u" 7466 #define PRIuFAST64 __PRI64_PREFIX"u" 7467 #define PRIuLEAST64 __PRI64_PREFIX"u" 7468 #define PRIuMAX __PRI64_PREFIX"u" 7469 #define SCNu64 __PRI64_PREFIX"u" 7470 #define SCNuFAST64 __PRI64_PREFIX"u" 7471 #define SCNuLEAST64 __PRI64_PREFIX"u" 7472 #define SCNuMAX __PRI64_PREFIX"u" 7473 #define PRIX64 __PRI64_PREFIX"X" 7474 #define PRIXFAST64 __PRI64_PREFIX"X" 7475 #define PRIXLEAST64 __PRI64_PREFIX"X" 7476 #define PRIXMAX __PRI64_PREFIX"X" 7477 #define PRIx64 __PRI64_PREFIX"x" 7478 #define PRIxFAST64 __PRI64_PREFIX"x" 7479 #define PRIxLEAST64 __PRI64_PREFIX"x" 7480 #define PRIxMAX __PRI64_PREFIX"x" 7481 #define SCNx64 __PRI64_PREFIX"x" 7482 #define SCNxFAST64 __PRI64_PREFIX"x" 7483 #define SCNxLEAST64 __PRI64_PREFIX"x" 7484 #define SCNxMAX __PRI64_PREFIX"x" 7485 #define PRIdFAST16 __PRIPTR_PREFIX"d" 7486 #define PRIdFAST32 __PRIPTR_PREFIX"d" 7487 #define PRIdPTR __PRIPTR_PREFIX"d" 7488 #define SCNdFAST16 __PRIPTR_PREFIX"d" 7489 #define SCNdFAST32 __PRIPTR_PREFIX"d" 7490 #define SCNdPTR __PRIPTR_PREFIX"d" 7491 #define PRIiFAST16 __PRIPTR_PREFIX"i" 7492 #define PRIiFAST32 __PRIPTR_PREFIX"i" 7493 #define PRIiPTR __PRIPTR_PREFIX"i" 7494 #define SCNiFAST16 __PRIPTR_PREFIX"i" 7495 #define SCNiFAST32 __PRIPTR_PREFIX"i" 7496 #define SCNiPTR __PRIPTR_PREFIX"i" 7497 #define PRIoFAST16 __PRIPTR_PREFIX"o" 7498 #define PRIoFAST32 __PRIPTR_PREFIX"o" 7499 #define PRIoPTR __PRIPTR_PREFIX"o" 7500 #define SCNoFAST16 __PRIPTR_PREFIX"o" 7501 #define SCNoFAST32 __PRIPTR_PREFIX"o" 7502 #define SCNoPTR __PRIPTR_PREFIX"o" 7503 #define PRIuFAST16 __PRIPTR_PREFIX"u" 7504 #define PRIuFAST32 __PRIPTR_PREFIX"u" 7505 #define PRIuPTR __PRIPTR_PREFIX"u" 7506 #define SCNuFAST16 __PRIPTR_PREFIX"u" 7507 #define SCNuFAST32 __PRIPTR_PREFIX"u" 7508 #define SCNuPTR __PRIPTR_PREFIX"u" 7509 #define PRIXFAST16 __PRIPTR_PREFIX"X" 7510 #define PRIXFAST32 __PRIPTR_PREFIX"X" 7511 #define PRIXPTR __PRIPTR_PREFIX"X" 7512 #define PRIxFAST16 __PRIPTR_PREFIX"x" 7513 #define PRIxFAST32 __PRIPTR_PREFIX"x" 7514 #define PRIxPTR __PRIPTR_PREFIX"x" 7515 #define SCNxFAST16 __PRIPTR_PREFIX"x" 7516 #define SCNxFAST32 __PRIPTR_PREFIX"x" 7517 #define SCNxPTR __PRIPTR_PREFIX"x" 7518 #endif 7519 7520 #define __PDP_ENDIAN 3412 7521 #define PDP_ENDIAN __PDP_ENDIAN 7522 7523 extern intmax_t imaxabs(intmax_t __n); 7524 extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denom); 7525 extern intmax_t strtoimax(const char *__nptr, char **__endptr, int __base); 7526 extern uintmax_t strtoumax(const char *__nptr, char **__endptr, 7527 int __base); 7528 extern intmax_t wcstoimax(const wchar_t * __nptr, wchar_t * *__endptr, 7529 int __base); 7530 extern uintmax_t wcstoumax(const wchar_t * __nptr, wchar_t * *__endptr, 7531 int __base); 7532 __________________________________________________________ 7533 7534 14.4.25. langinfo.h 7535 7536 #define ABDAY_1 0x20000 /* Sun. */ 7537 #define ABDAY_2 0x20001 7538 #define ABDAY_3 0x20002 7539 #define ABDAY_4 0x20003 7540 #define ABDAY_5 0x20004 7541 #define ABDAY_6 0x20005 7542 #define ABDAY_7 0x20006 7543 7544 #define DAY_1 0x20007 7545 #define DAY_2 0x20008 7546 #define DAY_3 0x20009 7547 #define DAY_4 0x2000A 7548 #define DAY_5 0x2000B 7549 #define DAY_6 0x2000C 7550 #define DAY_7 0x2000D 7551 7552 #define ABMON_1 0x2000E 7553 #define ABMON_2 0x2000F 7554 #define ABMON_3 0x20010 7555 #define ABMON_4 0x20011 7556 #define ABMON_5 0x20012 7557 #define ABMON_6 0x20013 7558 #define ABMON_7 0x20014 7559 #define ABMON_8 0x20015 7560 #define ABMON_9 0x20016 7561 #define ABMON_10 0x20017 7562 #define ABMON_11 0x20018 7563 #define ABMON_12 0x20019 7564 7565 #define MON_1 0x2001A 7566 #define MON_2 0x2001B 7567 #define MON_3 0x2001C 7568 #define MON_4 0x2001D 7569 #define MON_5 0x2001E 7570 #define MON_6 0x2001F 7571 #define MON_7 0x20020 7572 #define MON_8 0x20021 7573 #define MON_9 0x20022 7574 #define MON_10 0x20023 7575 #define MON_11 0x20024 7576 #define MON_12 0x20025 7577 7578 #define AM_STR 0x20026 7579 #define PM_STR 0x20027 7580 7581 #define D_T_FMT 0x20028 7582 #define D_FMT 0x20029 7583 #define T_FMT 0x2002A 7584 #define T_FMT_AMPM 0x2002B 7585 7586 #define ERA 0x2002C 7587 #define ERA_D_FMT 0x2002E 7588 #define ALT_DIGITS 0x2002F 7589 #define ERA_D_T_FMT 0x20030 7590 #define ERA_T_FMT 0x20031 7591 7592 #define CODESET 14 7593 7594 #define CRNCYSTR 0x4000F 7595 7596 #define RADIXCHAR 0x10000 7597 #define THOUSEP 0x10001 7598 #define YESEXPR 0x50000 7599 #define NOEXPR 0x50001 7600 #define YESSTR 0x50002 7601 #define NOSTR 0x50003 7602 7603 extern char *nl_langinfo(nl_item __item); 7604 __________________________________________________________ 7605 7606 14.4.26. libgen.h 7607 7608 #define basename __xpg_basename 7609 7610 extern char *__xpg_basename(char *__path); 7611 extern char *dirname(char *__path); 7612 __________________________________________________________ 7613 7614 14.4.27. libintl.h 7615 7616 extern char *bind_textdomain_codeset(const char *__domainname, 7617 const char *__codeset); 7618 extern char *bindtextdomain(const char *__domainname, 7619 const char *__dirname); 7620 extern char *dcgettext(const char *__domainname, const char *__msgid, 7621 int __category); 7622 extern char *dcngettext(const char *__domainname, const char *__msgid1, 7623 const char *__msgid2, unsigned long int __n, 7624 int __category); 7625 extern char *dgettext(const char *__domainname, const char *__msgid); 7626 extern char *dngettext(const char *__domainname, const char *__msgid1, 7627 const char *__msgid2, unsigned long int __n); 7628 extern char *gettext(const char *__msgid); 7629 extern char *ngettext(const char *__msgid1, const char *__msgid2, 7630 unsigned long int __n); 7631 extern char *textdomain(const char *__domainname); 7632 __________________________________________________________ 7633 7634 14.4.28. limits.h 7635 7636 #define LLONG_MIN (-LLONG_MAX-1LL) 7637 #define _POSIX_AIO_MAX 1 7638 #define _POSIX_QLIMIT 1 7639 #define _POSIX2_BC_STRING_MAX 1000 7640 #define IOV_MAX 1024 7641 #define _POSIX2_CHARCLASS_NAME_MAX 14 7642 #define _POSIX_NAME_MAX 14 7643 #define _POSIX_UIO_MAXIOV 16 7644 #define ULLONG_MAX 18446744073709551615ULL 7645 #define _POSIX2_COLL_WEIGHTS_MAX 2 7646 #define _POSIX_AIO_LISTIO_MAX 2 7647 #define _POSIX_OPEN_MAX 20 7648 #define _POSIX_CLOCKRES_MIN 20000000 7649 #define CHARCLASS_NAME_MAX 2048 7650 #define LINE_MAX 2048 7651 #define _POSIX2_BC_DIM_MAX 2048 7652 #define _POSIX2_LINE_MAX 2048 7653 #define _POSIX_CHILD_MAX 25 7654 #define COLL_WEIGHTS_MAX 255 7655 #define NAME_MAX 255 7656 #define _POSIX2_RE_DUP_MAX 255 7657 #define _POSIX_HOST_NAME_MAX 255 7658 #define _POSIX_MAX_CANON 255 7659 #define _POSIX_MAX_INPUT 255 7660 #define _POSIX_RE_DUP_MAX 255 7661 #define _POSIX_SYMLINK_MAX 255 7662 #define _POSIX_PATH_MAX 256 7663 #define _POSIX_SEM_NSEMS_MAX 256 7664 #define NGROUPS_MAX 32 7665 #define WORD_BIT 32 7666 #define _POSIX2_EXPR_NEST_MAX 32 7667 #define _POSIX_DELAYTIMER_MAX 32 7668 #define _POSIX_MQ_PRIO_MAX 32 7669 #define _POSIX_SIGQUEUE_MAX 32 7670 #define _POSIX_TIMER_MAX 32 7671 #define _POSIX_SEM_VALUE_MAX 32767 7672 #define _POSIX_SSIZE_MAX 32767 7673 #define PATH_MAX 4096 7674 #define _POSIX_ARG_MAX 4096 7675 #define _POSIX_PIPE_BUF 512 7676 #define _POSIX_TZNAME_MAX 6 7677 #define _POSIX_LINK_MAX 8 7678 #define _POSIX_MQ_OPEN_MAX 8 7679 #define _POSIX_NGROUPS_MAX 8 7680 #define _POSIX_RTSIG_MAX 8 7681 #define _POSIX_STREAM_MAX 8 7682 #define _POSIX_SYMLOOP_MAX 8 7683 #define _POSIX_LOGIN_NAME_MAX 9 7684 #define _POSIX_TTY_NAME_MAX 9 7685 #define LLONG_MAX 9223372036854775807LL 7686 #define _POSIX2_BC_BASE_MAX 99 7687 #define _POSIX2_BC_SCALE_MAX 99 7688 #define NL_MSGMAX INT_MAX 7689 #define NL_SETMAX INT_MAX 7690 #define NL_TEXTMAX INT_MAX 7691 #define SSIZE_MAX LONG_MAX /* Maximum value of an object of type ssize_t */ 7692 #define BC_BASE_MAX _POSIX2_BC_BASE_MAX 7693 #define BC_DIM_MAX _POSIX2_BC_DIM_MAX 7694 #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX 7695 #define BC_STRING_MAX _POSIX2_BC_STRING_MAX 7696 #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX 7697 #define NL_LANGMAX _POSIX2_LINE_MAX 7698 #define NL_ARGMAX _POSIX_ARG_MAX 7699 #define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX 7700 #define _POSIX_HIWAT _POSIX_PIPE_BUF 7701 7702 #define MB_LEN_MAX 16 7703 7704 #define SCHAR_MIN (-128) 7705 #define SCHAR_MAX 127 7706 #define UCHAR_MAX 255 7707 #define CHAR_BIT 8 7708 7709 #define SHRT_MIN (-32768) 7710 #define SHRT_MAX 32767 7711 #define USHRT_MAX 65535 7712 7713 #define INT_MIN (-INT_MAX-1) 7714 #define INT_MAX 2147483647 7715 #define UINT_MAX 4294967295U 7716 7717 #define LONG_MIN (-LONG_MAX-1L) 7718 7719 #define PTHREAD_KEYS_MAX 1024 7720 #define PTHREAD_THREADS_MAX 16384 7721 #define PTHREAD_DESTRUCTOR_ITERATIONS 4 7722 __________________________________________________________ 7723 7724 14.4.29. link.h 7725 7726 extern int 7727 dl_iterate_phdr(int (*callback) (struct dl_phdr_info *, size_t, void *), 7728 void *data); 7729 __________________________________________________________ 7730 7731 14.4.30. locale.h 7732 7733 struct lconv { 7734 char *decimal_point; 7735 char *thousands_sep; 7736 char *grouping; 7737 char *int_curr_symbol; 7738 char *currency_symbol; 7739 char *mon_decimal_point; 7740 char *mon_thousands_sep; 7741 char *mon_grouping; 7742 char *positive_sign; 7743 char *negative_sign; 7744 char int_frac_digits; 7745 char frac_digits; 7746 char p_cs_precedes; 7747 char p_sep_by_space; 7748 char n_cs_precedes; 7749 char n_sep_by_space; 7750 char p_sign_posn; 7751 char n_sign_posn; 7752 char int_p_cs_precedes; 7753 char int_p_sep_by_space; 7754 char int_n_cs_precedes; 7755 char int_n_sep_by_space; 7756 char int_p_sign_posn; 7757 char int_n_sign_posn; 7758 }; 7759 7760 #define LC_GLOBAL_LOCALE ((locale_t) -1L) 7761 #define LC_CTYPE 0 7762 #define LC_NUMERIC 1 7763 #define LC_TELEPHONE 10 7764 #define LC_MEASUREMENT 11 7765 #define LC_IDENTIFICATION 12 7766 #define LC_TIME 2 7767 #define LC_COLLATE 3 7768 #define LC_MONETARY 4 7769 #define LC_MESSAGES 5 7770 #define LC_ALL 6 7771 #define LC_PAPER 7 7772 #define LC_NAME 8 7773 #define LC_ADDRESS 9 7774 7775 struct __locale_struct { 7776 struct locale_data *__locales[13]; 7777 const unsigned short *__ctype_b; 7778 const int *__ctype_tolower; 7779 const int *__ctype_toupper; 7780 const char *__names[13]; 7781 }; 7782 typedef struct __locale_struct *__locale_t; 7783 7784 typedef struct __locale_struct *locale_t; 7785 7786 #define LC_ADDRESS_MASK (1 << LC_ADDRESS) 7787 #define LC_COLLATE_MASK (1 << LC_COLLATE) 7788 #define LC_IDENTIFICATION_MASK (1 << LC_IDENTIFICATION) 7789 #define LC_MEASUREMENT_MASK (1 << LC_MEASUREMENT) 7790 #define LC_MESSAGES_MASK (1 << LC_MESSAGES) 7791 #define LC_MONETARY_MASK (1 << LC_MONETARY) 7792 #define LC_NAME_MASK (1 << LC_NAME) 7793 #define LC_NUMERIC_MASK (1 << LC_NUMERIC) 7794 #define LC_PAPER_MASK (1 << LC_PAPER) 7795 #define LC_TELEPHONE_MASK (1 << LC_TELEPHONE) 7796 #define LC_TIME_MASK (1 << LC_TIME) 7797 #define LC_CTYPE_MASK (1<icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0) 8060 #define ICMP6_FILTER_WILLPASS(type,filterp) ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0) 8061 #define ICMP6_FILTER_SETPASS(type,filterp) ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31)))) 8062 #define ICMP6_FILTER_SETBLOCK(type,filterp) ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31)))) 8063 #define ICMP6_DST_UNREACH_NOROUTE 0 8064 #define ICMP6_PARAMPROB_HEADER 0 8065 #define ICMP6_TIME_EXCEED_TRANSIT 0 8066 #define ICMP6_RR_FLAGS_PREVDONE 0x08 8067 #define ICMP6_RR_FLAGS_SPECSITE 0x10 8068 #define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10 8069 #define ICMP6_RR_FLAGS_FORCEAPPLY 0x20 8070 #define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20 8071 #define ND_OPT_PI_FLAG_RADDR 0x20 8072 #define ND_RA_FLAG_HOME_AGENT 0x20 8073 #define ICMP6_RR_FLAGS_REQRESULT 0x40 8074 #define ND_OPT_PI_FLAG_AUTO 0x40 8075 #define ND_RA_FLAG_OTHER 0x40 8076 #define ICMP6_INFOMSG_MASK 0x80 8077 #define ICMP6_RR_FLAGS_TEST 0x80 8078 #define ND_OPT_PI_FLAG_ONLINK 0x80 8079 #define ND_RA_FLAG_MANAGED 0x80 8080 #define ICMP6_DST_UNREACH 1 8081 #define ICMP6_DST_UNREACH_ADMIN 1 8082 #define ICMP6_FILTER 1 8083 #define ICMP6_FILTER_BLOCK 1 8084 #define ICMP6_PARAMPROB_NEXTHEADER 1 8085 #define ICMP6_TIME_EXCEED_REASSEMBLY 1 8086 #define ND_OPT_SOURCE_LINKADDR 1 8087 #define RPM_PCO_ADD 1 8088 #define ICMP6_ECHO_REQUEST 128 8089 #define ICMP6_ECHO_REPLY 129 8090 #define MLD_LISTENER_QUERY 130 8091 #define MLD_LISTENER_REPORT 131 8092 #define MLD_LISTENER_REDUCTION 132 8093 #define ND_ROUTER_SOLICIT 133 8094 #define ND_ROUTER_ADVERT 134 8095 #define ND_NEIGHBOR_SOLICIT 135 8096 #define ND_NEIGHBOR_ADVERT 136 8097 #define ND_REDIRECT 137 8098 #define ICMP6_ROUTER_RENUMBERING 138 8099 #define ICMP6_DST_UNREACH_BEYONDSCOPE 2 8100 #define ICMP6_FILTER_PASS 2 8101 #define ICMP6_PACKET_TOO_BIG 2 8102 #define ICMP6_PARAMPROB_OPTION 2 8103 #define ND_OPT_TARGET_LINKADDR 2 8104 #define RPM_PCO_CHANGE 2 8105 #define ICMP6_DST_UNREACH_ADDR 3 8106 #define ICMP6_FILTER_BLOCKOTHERS 3 8107 #define ICMP6_TIME_EXCEEDED 3 8108 #define ND_OPT_PREFIX_INFORMATION 3 8109 #define RPM_PCO_SETGLOBAL 3 8110 #define ICMP6_DST_UNREACH_NOPORT 4 8111 #define ICMP6_FILTER_PASSONLY 4 8112 #define ICMP6_PARAM_PROB 4 8113 #define ND_OPT_REDIRECTED_HEADER 4 8114 #define ND_OPT_MTU 5 8115 #define ND_OPT_RTR_ADV_INTERVAL 7 8116 #define ND_OPT_HOME_AGENT_INFO 8 8117 #define icmp6_id icmp6_data16[0] 8118 #define icmp6_maxdelay icmp6_data16[0] 8119 #define icmp6_seq icmp6_data16[1] 8120 #define icmp6_mtu icmp6_data32[0] 8121 #define icmp6_pptr icmp6_data32[0] 8122 #define icmp6_data16 icmp6_dataun.icmp6_un_data16 8123 #define icmp6_data32 icmp6_dataun.icmp6_un_data32 8124 #define icmp6_data8 icmp6_dataun.icmp6_un_data8 8125 #define ICMP6_FILTER_SETPASSALL(filterp) memset (filterp, 0, sizeof (struct icmp6_filter)); 8126 #define ICMP6_FILTER_SETBLOCKALL(filterp) memset (filterp, 0xFF, sizeof (struct icmp6_filter)); 8127 #define mld_cksum mld_icmp6_hdr.icmp6_cksum 8128 #define mld_code mld_icmp6_hdr.icmp6_code 8129 #define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0] 8130 #define mld_reserved mld_icmp6_hdr.icmp6_data16[1] 8131 #define mld_type mld_icmp6_hdr.icmp6_type 8132 #define nd_na_cksum nd_na_hdr.icmp6_cksum 8133 #define nd_na_code nd_na_hdr.icmp6_code 8134 #define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0] 8135 #define nd_na_type nd_na_hdr.icmp6_type 8136 #define nd_ns_cksum nd_ns_hdr.icmp6_cksum 8137 #define nd_ns_code nd_ns_hdr.icmp6_code 8138 #define nd_ns_reserved nd_ns_hdr.icmp6_data32[0] 8139 #define nd_ns_type nd_ns_hdr.icmp6_type 8140 #define nd_ra_cksum nd_ra_hdr.icmp6_cksum 8141 #define nd_ra_code nd_ra_hdr.icmp6_code 8142 #define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1] 8143 #define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0] 8144 #define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1] 8145 #define nd_ra_type nd_ra_hdr.icmp6_type 8146 #define nd_rd_cksum nd_rd_hdr.icmp6_cksum 8147 #define nd_rd_code nd_rd_hdr.icmp6_code 8148 #define nd_rd_reserved nd_rd_hdr.icmp6_data32[0] 8149 #define nd_rd_type nd_rd_hdr.icmp6_type 8150 #define nd_rs_cksum nd_rs_hdr.icmp6_cksum 8151 #define nd_rs_code nd_rs_hdr.icmp6_code 8152 #define nd_rs_reserved nd_rs_hdr.icmp6_data32[0] 8153 #define nd_rs_type nd_rs_hdr.icmp6_type 8154 #define rr_cksum rr_hdr.icmp6_cksum 8155 #define rr_code rr_hdr.icmp6_code 8156 #define rr_seqnum rr_hdr.icmp6_data32[0] 8157 #define rr_type rr_hdr.icmp6_type 8158 8159 struct icmp6_filter { 8160 uint32_t icmp6_filt[8]; 8161 }; 8162 struct icmp6_hdr { 8163 uint8_t icmp6_type; 8164 uint8_t icmp6_code; 8165 uint16_t icmp6_cksum; 8166 union { 8167 uint32_t icmp6_un_data32[1]; 8168 uint16_t icmp6_un_data16[2]; 8169 uint8_t icmp6_un_data8[4]; 8170 } icmp6_dataun; 8171 }; 8172 struct nd_router_solicit { 8173 struct icmp6_hdr nd_rs_hdr; 8174 }; 8175 struct nd_router_advert { 8176 struct icmp6_hdr nd_ra_hdr; 8177 uint32_t nd_ra_reachable; 8178 uint32_t nd_ra_retransmit; 8179 }; 8180 struct nd_neighbor_solicit { 8181 struct icmp6_hdr nd_ns_hdr; 8182 struct in6_addr nd_ns_target; 8183 }; 8184 struct nd_neighbor_advert { 8185 struct icmp6_hdr nd_na_hdr; 8186 struct in6_addr nd_na_target; 8187 }; 8188 struct nd_redirect { 8189 struct icmp6_hdr nd_rd_hdr; 8190 struct in6_addr nd_rd_target; 8191 struct in6_addr nd_rd_dst; 8192 }; 8193 struct nd_opt_hdr { 8194 uint8_t nd_opt_type; 8195 uint8_t nd_opt_len; 8196 }; 8197 struct nd_opt_prefix_info { 8198 uint8_t nd_opt_pi_type; 8199 uint8_t nd_opt_pi_len; 8200 uint8_t nd_opt_pi_prefix_len; 8201 uint8_t nd_opt_pi_flags_reserved; 8202 uint32_t nd_opt_pi_valid_time; 8203 uint32_t nd_opt_pi_preferred_time; 8204 uint32_t nd_opt_pi_reserved2; 8205 struct in6_addr nd_opt_pi_prefix; 8206 }; 8207 struct nd_opt_rd_hdr { 8208 uint8_t nd_opt_rh_type; 8209 uint8_t nd_opt_rh_len; 8210 uint16_t nd_opt_rh_reserved1; 8211 uint32_t nd_opt_rh_reserved2; 8212 }; 8213 struct nd_opt_mtu { 8214 uint8_t nd_opt_mtu_type; 8215 uint8_t nd_opt_mtu_len; 8216 uint16_t nd_opt_mtu_reserved; 8217 uint32_t nd_opt_mtu_mtu; 8218 }; 8219 struct mld_hdr { 8220 struct icmp6_hdr mld_icmp6_hdr; 8221 struct in6_addr mld_addr; 8222 }; 8223 struct icmp6_router_renum { 8224 struct icmp6_hdr rr_hdr; 8225 uint8_t rr_segnum; 8226 uint8_t rr_flags; 8227 uint16_t rr_maxdelay; 8228 uint32_t rr_reserved; 8229 }; 8230 struct rr_pco_match { 8231 uint8_t rpm_code; 8232 uint8_t rpm_len; 8233 uint8_t rpm_ordinal; 8234 uint8_t rpm_matchlen; 8235 uint8_t rpm_minlen; 8236 uint8_t rpm_maxlen; 8237 uint16_t rpm_reserved; 8238 struct in6_addr rpm_prefix; 8239 }; 8240 struct rr_pco_use { 8241 uint8_t rpu_uselen; 8242 uint8_t rpu_keeplen; 8243 uint8_t rpu_ramask; 8244 uint8_t rpu_raflags; 8245 uint32_t rpu_vltime; 8246 uint32_t rpu_pltime; 8247 uint32_t rpu_flags; 8248 struct in6_addr rpu_prefix; 8249 }; 8250 struct rr_result { 8251 uint16_t rrr_flags; 8252 uint8_t rrr_ordinal; 8253 uint8_t rrr_matchedlen; 8254 uint32_t rrr_ifid; 8255 struct in6_addr rrr_prefix; 8256 }; 8257 struct nd_opt_adv_interval { 8258 uint8_t nd_opt_adv_interval_type; 8259 uint8_t nd_opt_adv_interval_len; 8260 uint16_t nd_opt_adv_interval_reserved; 8261 uint32_t nd_opt_adv_interval_ival; 8262 }; 8263 struct nd_opt_home_agent_info { 8264 uint8_t nd_opt_home_agent_info_type; 8265 uint8_t nd_opt_home_agent_info_len; 8266 uint16_t nd_opt_home_agent_info_reserved; 8267 int16_t nd_opt_home_agent_info_preference; 8268 uint16_t nd_opt_home_agent_info_lifetime; 8269 }; 8270 __________________________________________________________ 8271 8272 14.4.38. netinet/igmp.h 8273 8274 #define IGMP_MEMBERSHIP_QUERY 0x11 8275 #define IGMP_V1_MEMBERSHIP_REPORT 0x12 8276 #define IGMP_DVMRP 0x13 8277 #define IGMP_PIM 0x14 8278 #define IGMP_TRACE 0x15 8279 #define IGMP_V2_MEMBERSHIP_REPORT 0x16 8280 #define IGMP_V2_LEAVE_GROUP 0x17 8281 #define IGMP_MTRACE_RESP 0x1e 8282 #define IGMP_MTRACE 0x1f 8283 #define IGMP_DELAYING_MEMBER 1 8284 #define IGMP_v1_ROUTER 1 8285 #define IGMP_MAX_HOST_REPORT_DELAY 10 8286 #define IGMP_TIMER_SCALE 10 8287 #define IGMP_IDLE_MEMBER 2 8288 #define IGMP_v2_ROUTER 2 8289 #define IGMP_LAZY_MEMBER 3 8290 #define IGMP_SLEEPING_MEMBER 4 8291 #define IGMP_AWAKENING_MEMBER 5 8292 #define IGMP_MINLEN 8 8293 #define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY 8294 #define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT 8295 #define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP 8296 #define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT 8297 8298 struct igmp { 8299 u_int8_t igmp_type; 8300 u_int8_t igmp_code; 8301 u_int16_t igmp_cksum; 8302 struct in_addr igmp_group; 8303 }; 8304 __________________________________________________________ 8305 8306 14.4.39. netinet/in.h 8307 8308 #define IPPROTO_IP 0 8309 #define IPPROTO_ICMP 1 8310 #define IPPROTO_UDP 17 8311 #define IPPROTO_IGMP 2 8312 #define IPPROTO_RAW 255 8313 #define IPPROTO_IPV6 41 8314 #define IPPROTO_ICMPV6 58 8315 #define IPPROTO_TCP 6 8316 8317 typedef uint16_t in_port_t; 8318 8319 struct in_addr { 8320 uint32_t s_addr; 8321 }; 8322 typedef uint32_t in_addr_t; 8323 8324 #define INADDR_NONE ((in_addr_t) 0xffffffff) 8325 #define INADDR_BROADCAST (0xffffffff) 8326 #define INADDR_ANY 0 8327 #define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */ 8328 8329 #define s6_addr16 in6_u.u6_addr16 8330 #define s6_addr32 in6_u.u6_addr32 8331 #define s6_addr in6_u.u6_addr8 8332 8333 struct in6_addr { 8334 union { 8335 uint8_t u6_addr8[16]; 8336 uint16_t u6_addr16[8]; 8337 uint32_t u6_addr32[4]; 8338 } in6_u; 8339 }; 8340 8341 #define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }} } 8342 #define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }} } 8343 8344 #define IN_MULTICAST(a) ((((in_addr_t)(a))&0xf0000000)==0xe0000000) 8345 #define INET_ADDRSTRLEN 16 8346 8347 struct sockaddr_in { 8348 sa_family_t sin_family; 8349 unsigned short sin_port; 8350 struct in_addr sin_addr; 8351 unsigned char sin_zero[8]; 8352 }; 8353 8354 #define IN6_IS_ADDR_LINKLOCAL(a) ((((const uint32_t *) (a))[0] &htonl (0xffc00000)) == htonl (0xfe800000)) 8355 #define IN6_IS_ADDR_SITELOCAL(a) ((((const uint32_t *) (a))[0] &htonl (0xffc00000)) == htonl (0xfec00000)) 8356 #define IN6_ARE_ADDR_EQUAL(a,b) ((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3])) 8357 #define IN6_IS_ADDR_V4COMPAT(a) ((((const uint32_t *) (a))[0] == 0) && (((const uint32_t *) (a))[1] == 0) && (((const uint32_t *) (a))[2] == 0) && (ntohl (((const uint32_t *) (a))[3]) > 1)) 8358 #define IN6_IS_ADDR_V4MAPPED(a) ((((const uint32_t *) (a))[0] == 0) && (((const uint32_t *) (a))[1] == 0) && (((const uint32_t *) (a))[2] == htonl (0xffff))) 8359 #define IN6_IS_ADDR_UNSPECIFIED(a) (((const uint32_t *) (a))[0] ==0 && ((const uint32_t *) (a))[1] == 0 && ((const uint32_t *) (a))[2] == 0 && ((const uint32_t *) (a))[3] == 0) 8360 #define IN6_IS_ADDR_LOOPBACK(a) (((const uint32_t *) (a))[0] == 0 && ((const uint32_t *) (a))[1] == 0 && ((const uint32_t *) (a))[2] == 0 && ((const uint32_t *) (a))[3] == htonl (1)) 8361 #define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff) 8362 #define IN6_IS_ADDR_MC_NODELOCAL(a) (IN6_IS_ADDR_MULTICAST(a) && ((((const uint8_t *) (a))[1] & 0xf) == 0x1)) 8363 #define IN6_IS_ADDR_MC_LINKLOCAL(a) (IN6_IS_ADDR_MULTICAST(a) && ((((const uint8_t *) (a))[1] & 0xf) == 0x2)) 8364 #define IN6_IS_ADDR_MC_SITELOCAL(a) (IN6_IS_ADDR_MULTICAST(a) && ((((const uint8_t *) (a))[1] & 0xf) == 0x5)) 8365 #define IN6_IS_ADDR_MC_ORGLOCAL(a) (IN6_IS_ADDR_MULTICAST(a) && ((((const uint8_t *) (a))[1] & 0xf) == 0x8)) 8366 #define IN6_IS_ADDR_MC_GLOBAL(a) (IN6_IS_ADDR_MULTICAST(a) && ((((const uint8_t *) (a))[1] & 0xf) == 0xe)) 8367 #define INET6_ADDRSTRLEN 46 8368 8369 struct sockaddr_in6 { 8370 unsigned short sin6_family; /* AF_INET6 */ 8371 uint16_t sin6_port; /* Transport layer port # */ 8372 uint32_t sin6_flowinfo; /* IPv6 flow information */ 8373 struct in6_addr sin6_addr; /* IPv6 address */ 8374 uint32_t sin6_scope_id; /* scope id (new in RFC2553) */ 8375 }; 8376 8377 #define SOL_IP 0 8378 #define IP_TOS 1 /* IP type of service and precedence */ 8379 #define IPV6_UNICAST_HOPS 16 8380 #define IPV6_MULTICAST_IF 17 8381 #define IPV6_MULTICAST_HOPS 18 8382 #define IPV6_MULTICAST_LOOP 19 8383 #define IP_TTL 2 /* IP time to live */ 8384 #define IPV6_JOIN_GROUP 20 8385 #define IPV6_LEAVE_GROUP 21 8386 #define IPV6_V6ONLY 26 8387 #define IP_MULTICAST_IF 32 /* set/get IP multicast i/f */ 8388 #define IP_MULTICAST_TTL 33 /* set/get IP multicast ttl */ 8389 #define IP_MULTICAST_LOOP 34 /* set/get IP multicast loopback */ 8390 #define IP_ADD_MEMBERSHIP 35 /* add an IP group membership */ 8391 #define IP_DROP_MEMBERSHIP 36 /* drop an IP group membership */ 8392 #define IP_OPTIONS 4 /* IP per-packet options */ 8393 #define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP 8394 #define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP 8395 8396 struct ipv6_mreq { 8397 struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast address of group */ 8398 int ipv6mr_interface; /* local IPv6 address of interface */ 8399 }; 8400 struct ip_mreq { 8401 struct in_addr imr_multiaddr; /* IP multicast address of group */ 8402 struct in_addr imr_interface; /* local IP address of interface */ 8403 }; 8404 extern int bindresvport(int, struct sockaddr_in *); 8405 extern const struct in6_addr in6addr_any; 8406 extern const struct in6_addr in6addr_loopback; 8407 __________________________________________________________ 8408 8409 14.4.40. netinet/in_systm.h 8410 8411 typedef u_int16_t n_short; 8412 typedef u_int32_t n_long; 8413 typedef u_int32_t n_time; 8414 __________________________________________________________ 8415 8416 14.4.41. netinet/ip.h 8417 8418 #define IPOPT_CLASS(o) ((o) & IPOPT_CLASS_MASK) 8419 #define IPOPT_COPIED(o) ((o) & IPOPT_COPY) 8420 #define IPOPT_NUMBER(o) ((o) & IPOPT_NUMBER_MASK) 8421 #define IPOPT_EOL 0 8422 #define IPOPT_OPTVAL 0 8423 #define IPOPT_TS_TSONLY 0 8424 #define IPOPT_CONTROL 0x00 8425 #define IPOPT_SECUR_UNCLASS 0x0000 8426 #define IPOPT_NUMBER_MASK 0x1f 8427 #define IP_OFFMASK 0x1fff 8428 #define IPOPT_RESERVED1 0x20 8429 #define IP_MF 0x2000 8430 #define IPOPT_DEBMEAS 0x40 8431 #define IP_DF 0x4000 8432 #define IPOPT_CLASS_MASK 0x60 8433 #define IPOPT_RESERVED2 0x60 8434 #define IPOPT_SECUR_TOPSECRET 0x6bc5 8435 #define IPOPT_SECUR_EFTO 0x789a 8436 #define IPOPT_COPY 0x80 8437 #define IP_RF 0x8000 8438 #define IPOPT_SECUR_RESTR 0xaf13 8439 #define IPOPT_SECUR_MMMM 0xbc4d 8440 #define IPOPT_SECUR_SECRET 0xd788 8441 #define IPOPT_SECUR_CONFID 0xf135 8442 #define IPOPT_NOP 1 8443 #define IPOPT_OLEN 1 8444 #define IPOPT_TS_TSANDADDR 1 8445 #define IPTTLDEC 1 8446 #define IPOPT_SECURITY 130 8447 #define IPOPT_LSRR 131 8448 #define IPOPT_SATID 136 8449 #define IPOPT_SSRR 137 8450 #define IPOPT_RA 148 8451 #define IPOPT_OFFSET 2 8452 #define MAXTTL 255 8453 #define IPOPT_TS_PRESPEC 3 8454 #define IPOPT_MINOFF 4 8455 #define IPVERSION 4 8456 #define MAX_IPOPTLEN 40 8457 #define IP_MSS 576 8458 #define IPFRAGTTL 60 8459 #define IPDEFTTL 64 8460 #define IP_MAXPACKET 65535 8461 #define IPOPT_TS 68 8462 #define IPOPT_RR 7 8463 #define IPOPT_MEASUREMENT IPOPT_DEBMEAS 8464 #define IPOPT_END IPOPT_EOL 8465 #define IPOPT_NOOP IPOPT_NOP 8466 #define IPOPT_SID IPOPT_SATID 8467 #define IPOPT_SEC IPOPT_SECURITY 8468 #define IPOPT_TIMESTAMP IPOPT_TS 8469 8470 #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) 8471 #define IPTOS_LOWCOST 0x02 8472 #define IPTOS_RELIABILITY 0x04 8473 #define IPTOS_THROUGHPUT 0x08 8474 #define IPTOS_LOWDELAY 0x10 8475 #define IPTOS_TOS_MASK 0x1e 8476 #define IPTOS_MINCOST IPTOS_LOWCOST 8477 8478 #define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) 8479 #define IPTOS_PREC_MASK 0xe0 8480 __________________________________________________________ 8481 8482 14.4.42. netinet/ip6.h 8483 8484 #define IP6OPT_TYPE(o) ((o) & 0xc0) 8485 #define IP6OPT_PAD1 0 8486 #define IP6OPT_TYPE_SKIP 0x00 8487 #define IP6OPT_TUNNEL_LIMIT 0x04 8488 #define IP6OPT_ROUTER_ALERT 0x05 8489 #define IP6OPT_TYPE_MUTABLE 0x20 8490 #define IP6OPT_TYPE_DISCARD 0x40 8491 #define IP6OPT_TYPE_FORCEICMP 0x80 8492 #define IP6OPT_TYPE_ICMP 0xc0 8493 #define IP6OPT_JUMBO 0xc2 8494 #define IP6OPT_NSAP_ADDR 0xc3 8495 #define IP6OPT_PADN 1 8496 #define IP6OPT_JUMBO_LEN 6 8497 #define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow 8498 #define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim 8499 #define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim 8500 #define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt 8501 #define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen 8502 #define ip6_vfc ip6_ctlun.ip6_un2_vfc 8503 8504 struct ip6_hdrctl { 8505 uint32_t ip6_un1_flow; 8506 uint16_t ip6_un1_plen; 8507 uint8_t ip6_un1_nxt; 8508 uint8_t ip6_un1_hlim; 8509 }; 8510 struct ip6_hdr { 8511 struct in6_addr ip6_src; 8512 struct in6_addr ip6_dst; 8513 }; 8514 struct ip6_ext { 8515 uint8_t ip6e_nxt; 8516 uint8_t ip6e_len; 8517 }; 8518 struct ip6_hbh { 8519 uint8_t ip6h_nxt; 8520 uint8_t ip6h_len; 8521 }; 8522 struct ip6_dest { 8523 uint8_t ip6d_nxt; 8524 uint8_t ip6d_len; 8525 }; 8526 struct ip6_rthdr { 8527 uint8_t ip6r_nxt; 8528 uint8_t ip6r_len; 8529 uint8_t ip6r_type; 8530 uint8_t ip6r_segleft; 8531 }; 8532 struct ip6_frag { 8533 uint8_t ip6f_nxt; 8534 uint8_t ip6f_reserved; 8535 uint16_t ip6f_offlg; 8536 uint32_t ip6f_ident; 8537 }; 8538 struct ip6_opt { 8539 uint8_t ip6o_type; 8540 uint8_t ip6o_len; 8541 }; 8542 struct ip6_opt_jumbo { 8543 uint8_t ip6oj_type; 8544 uint8_t ip6oj_len; 8545 uint8_t ip6oj_jumbo_len[4]; 8546 }; 8547 struct ip6_opt_nsap { 8548 uint8_t ip6on_type; 8549 uint8_t ip6on_len; 8550 uint8_t ip6on_src_nsap_len; 8551 uint8_t ip6on_dst_nsap_len; 8552 }; 8553 struct ip6_opt_tunnel { 8554 uint8_t ip6ot_type; 8555 uint8_t ip6ot_len; 8556 uint8_t ip6ot_encap_limit; 8557 }; 8558 struct ip6_opt_router { 8559 uint8_t ip6or_type; 8560 uint8_t ip6or_len; 8561 uint8_t ip6or_value[2]; 8562 }; 8563 __________________________________________________________ 8564 8565 14.4.43. netinet/ip_icmp.h 8566 8567 #define ICMP_INFOTYPE(type) ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) 8568 #define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) 8569 #define ICMP_TSLEN (8 + 3 * sizeof (n_time)) 8570 #define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) 8571 #define ICMP_ECHOREPLY 0 8572 #define ICMP_EXC_TTL 0 8573 #define ICMP_NET_UNREACH 0 8574 #define ICMP_REDIRECT_NET 0 8575 #define ICMP_REDIR_NET 0 8576 #define ICMP_TIMXCEED_INTRANS 0 8577 #define ICMP_UNREACH_NET 0 8578 #define ICMP_EXC_FRAGTIME 1 8579 #define ICMP_HOST_UNREACH 1 8580 #define ICMP_PARAMPROB_OPTABSENT 1 8581 #define ICMP_REDIRECT_HOST 1 8582 #define ICMP_REDIR_HOST 1 8583 #define ICMP_TIMXCEED_REASS 1 8584 #define ICMP_UNREACH_HOST 1 8585 #define ICMP_HOST_ANO 10 8586 #define ICMP_ROUTERSOLICIT 10 8587 #define ICMP_UNREACH_HOST_PROHIB 10 8588 #define ICMP_NET_UNR_TOS 11 8589 #define ICMP_TIME_EXCEEDED 11 8590 #define ICMP_TIMXCEED 11 8591 #define ICMP_UNREACH_TOSNET 11 8592 #define ICMP_HOST_UNR_TOS 12 8593 #define ICMP_MASKLEN 12 8594 #define ICMP_PARAMETERPROB 12 8595 #define ICMP_PARAMPROB 12 8596 #define ICMP_UNREACH_TOSHOST 12 8597 #define ICMP_PKT_FILTERED 13 8598 #define ICMP_TIMESTAMP 13 8599 #define ICMP_TSTAMP 13 8600 #define ICMP_UNREACH_FILTER_PROHIB 13 8601 #define ICMP_PREC_VIOLATION 14 8602 #define ICMP_TIMESTAMPREPLY 14 8603 #define ICMP_TSTAMPREPLY 14 8604 #define ICMP_UNREACH_HOST_PRECEDENCE 14 8605 #define ICMP_INFO_REQUEST 15 8606 #define ICMP_IREQ 15 8607 #define ICMP_PREC_CUTOFF 15 8608 #define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 8609 #define NR_ICMP_UNREACH 15 8610 #define ICMP_INFO_REPLY 16 8611 #define ICMP_IREQREPLY 16 8612 #define ICMP_ADDRESS 17 8613 #define ICMP_MASKREQ 17 8614 #define ICMP_ADDRESSREPLY 18 8615 #define ICMP_MASKREPLY 18 8616 #define ICMP_MAXTYPE 18 8617 #define NR_ICMP_TYPES 18 8618 #define ICMP_PROT_UNREACH 2 8619 #define ICMP_REDIRECT_TOSNET 2 8620 #define ICMP_REDIR_NETTOS 2 8621 #define ICMP_UNREACH_PROTOCOL 2 8622 #define ICMP_DEST_UNREACH 3 8623 #define ICMP_PORT_UNREACH 3 8624 #define ICMP_REDIRECT_TOSHOST 3 8625 #define ICMP_REDIR_HOSTTOS 3 8626 #define ICMP_UNREACH 3 8627 #define ICMP_UNREACH_PORT 3 8628 #define ICMP_FRAG_NEEDED 4 8629 #define ICMP_SOURCEQUENCH 4 8630 #define ICMP_SOURCE_QUENCH 4 8631 #define ICMP_UNREACH_NEEDFRAG 4 8632 #define ICMP_REDIRECT 5 8633 #define ICMP_SR_FAILED 5 8634 #define ICMP_UNREACH_SRCFAIL 5 8635 #define ICMP_NET_UNKNOWN 6 8636 #define ICMP_UNREACH_NET_UNKNOWN 6 8637 #define ICMP_HOST_UNKNOWN 7 8638 #define ICMP_UNREACH_HOST_UNKNOWN 7 8639 #define ICMP_ECHO 8 8640 #define ICMP_HOST_ISOLATED 8 8641 #define ICMP_MINLEN 8 8642 #define ICMP_UNREACH_ISOLATED 8 8643 #define ICMP_NET_ANO 9 8644 #define ICMP_ROUTERADVERT 9 8645 #define ICMP_UNREACH_NET_PROHIB 9 8646 #define icmp_data icmp_dun.id_data 8647 #define icmp_ip icmp_dun.id_ip.idi_ip 8648 #define icmp_mask icmp_dun.id_mask 8649 #define icmp_radv icmp_dun.id_radv 8650 #define icmp_otime icmp_dun.id_ts.its_otime 8651 #define icmp_rtime icmp_dun.id_ts.its_rtime 8652 #define icmp_ttime icmp_dun.id_ts.its_ttime 8653 #define icmp_gwaddr icmp_hun.ih_gwaddr 8654 #define icmp_id icmp_hun.ih_idseq.icd_id 8655 #define icmp_seq icmp_hun.ih_idseq.icd_seq 8656 #define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu 8657 #define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void 8658 #define icmp_pptr icmp_hun.ih_pptr 8659 #define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime 8660 #define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs 8661 #define icmp_wpa icmp_hun.ih_rtradv.irt_wpa 8662 #define icmp_void icmp_hun.ih_void 8663 8664 struct icmphdr { 8665 u_int8_t type; 8666 u_int8_t code; 8667 u_int16_t checksum; 8668 union { 8669 struct { 8670 u_int16_t id; 8671 u_int16_t sequence; 8672 } echo; 8673 u_int32_t gateway; 8674 struct { 8675 u_int16_t __unused; 8676 u_int16_t mtu; 8677 } frag; 8678 } un; 8679 }; 8680 struct icmp_ra_addr { 8681 u_int32_t ira_addr; 8682 u_int32_t ira_preference; 8683 }; 8684 struct ih_idseq { 8685 u_int16_t icd_id; 8686 u_int16_t icd_seq; 8687 }; 8688 struct ih_pmtu { 8689 u_int16_t ipm_void; 8690 u_int16_t ipm_nextmtu; 8691 }; 8692 struct ih_rtradv { 8693 u_int8_t irt_num_addrs; 8694 u_int8_t irt_wpa; 8695 u_int16_t irt_lifetime; 8696 }; 8697 struct icmp { 8698 u_int8_t icmp_type; 8699 u_int8_t icmp_code; 8700 u_int16_t icmp_cksum; 8701 union { 8702 u_int16_t ih_pptr; 8703 struct in_addr ih_gwaddr; 8704 struct ih_idseq ih_idseq; 8705 u_int32_t ih_void; 8706 struct ih_pmtu ih_pmtu; 8707 struct ih_rtradv ih_rtradv; 8708 } icmp_hun; 8709 union { 8710 struct { 8711 u_int32_t its_otime; 8712 u_int32_t its_rtime; 8713 u_int32_t its_ttime; 8714 } id_ts; 8715 struct { 8716 struct ip idi_ip; 8717 } id_ip; 8718 struct icmp_ra_addr id_radv; 8719 u_int32_t id_mask; 8720 u_int8_t id_data[1]; 8721 } icmp_dun; 8722 }; 8723 __________________________________________________________ 8724 8725 14.4.44. netinet/tcp.h 8726 8727 #define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) 8728 #define TCPOPT_TSTAMP_HDR (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) 8729 #define TCPOPT_EOL 0 8730 #define TCPI_OPT_TIMESTAMPS 1 8731 #define TCPOPT_NOP 1 8732 #define TCP_NODELAY 1 8733 #define TCPOLEN_TIMESTAMP 10 8734 #define TCP_WINDOW_CLAMP 10 8735 #define TCP_INFO 11 8736 #define TCP_QUICKACK 12 8737 #define TCP_CONGESTION 13 8738 #define TCP_MAX_WINSHIFT 14 8739 #define TCPI_OPT_SACK 2 8740 #define TCPOLEN_SACK_PERMITTED 2 8741 #define TCPOPT_MAXSEG 2 8742 #define TCP_MAXSEG 2 8743 #define TCPOLEN_WINDOW 3 8744 #define TCPOPT_WINDOW 3 8745 #define TCP_CORK 3 8746 #define TCPI_OPT_WSCALE 4 8747 #define TCPOLEN_MAXSEG 4 8748 #define TCPOPT_SACK_PERMITTED 4 8749 #define TCP_KEEPIDLE 4 8750 #define TCPOPT_SACK 5 8751 #define TCP_KEEPINTVL 5 8752 #define TCP_MSS 512 8753 #define SOL_TCP 6 8754 #define TCP_KEEPCNT 6 8755 #define TCP_MAXWIN 65535 8756 #define TCP_SYNCNT 7 8757 #define TCPI_OPT_ECN 8 8758 #define TCPOPT_TIMESTAMP 8 8759 #define TCP_LINGER2 8 8760 #define TCP_DEFER_ACCEPT 9 8761 8762 enum tcp_ca_state { 8763 TCP_CA_Open, 8764 TCP_CA_Disorder, 8765 TCP_CA_CWR, 8766 TCP_CA_Recovery, 8767 TCP_CA_Loss 8768 }; 8769 struct tcp_info { 8770 uint8_t tcpi_state; 8771 uint8_t tcpi_ca_state; 8772 uint8_t tcpi_retransmits; 8773 uint8_t tcpi_probes; 8774 uint8_t tcpi_backoff; 8775 uint8_t tcpi_options; 8776 uint8_t tcpi_snd_wscale:4; 8777 uint8_t tcpi_rcv_wscale:4; 8778 uint32_t tcpi_rto; 8779 uint32_t tcpi_ato; 8780 uint32_t tcpi_snd_mss; 8781 uint32_t tcpi_rcv_mss; 8782 uint32_t tcpi_unacked; 8783 uint32_t tcpi_sacked; 8784 uint32_t tcpi_lost; 8785 uint32_t tcpi_retrans; 8786 uint32_t tcpi_fackets; 8787 uint32_t tcpi_last_data_sent; 8788 uint32_t tcpi_last_ack_sent; 8789 uint32_t tcpi_last_data_recv; 8790 uint32_t tcpi_last_ack_recv; 8791 uint32_t tcpi_pmtu; 8792 uint32_t tcpi_rcv_ssthresh; 8793 uint32_t tcpi_rtt; 8794 uint32_t tcpi_rttvar; 8795 uint32_t tcpi_snd_ssthresh; 8796 uint32_t tcpi_snd_cwnd; 8797 uint32_t tcpi_advmss; 8798 uint32_t tcpi_reordering; 8799 }; 8800 enum { 8801 TCP_ESTABLISHED = 1, 8802 TCP_SYN_SENT = 2, 8803 TCP_SYN_RECV = 3, 8804 TCP_FIN_WAIT1 = 4, 8805 TCP_FIN_WAIT2 = 5, 8806 TCP_TIME_WAIT = 6, 8807 TCP_CLOSE = 7, 8808 TCP_CLOSE_WAIT = 8, 8809 TCP_LAST_ACK = 9, 8810 TCP_LISTEN = 10, 8811 TCP_CLOSING = 11 8812 }; 8813 __________________________________________________________ 8814 8815 14.4.45. netinet/udp.h 8816 8817 #define SOL_UDP 17 8818 8819 struct udphdr { 8820 u_int16_t source; 8821 u_int16_t dest; 8822 u_int16_t len; 8823 u_int16_t check; 8824 }; 8825 __________________________________________________________ 8826 8827 14.4.46. nl_types.h 8828 8829 #define NL_CAT_LOCALE 1 8830 #define NL_SETD 1 8831 8832 typedef void *nl_catd; 8833 8834 typedef int nl_item; 8835 extern int catclose(nl_catd __catalog); 8836 extern char *catgets(nl_catd __catalog, int __set, int __number, 8837 const char *__string); 8838 extern nl_catd catopen(const char *__cat_name, int __flag); 8839 __________________________________________________________ 8840 8841 14.4.47. poll.h 8842 8843 extern int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout); 8844 __________________________________________________________ 8845 8846 14.4.48. pwd.h 8847 8848 struct passwd { 8849 char *pw_name; 8850 char *pw_passwd; 8851 uid_t pw_uid; 8852 gid_t pw_gid; 8853 char *pw_gecos; 8854 char *pw_dir; 8855 char *pw_shell; 8856 }; 8857 extern void endpwent(void); 8858 extern struct passwd *getpwent(void); 8859 extern int getpwent_r(struct passwd *__resultbuf, char *__buffer, 8860 size_t __buflen, struct passwd **__result); 8861 extern struct passwd *getpwnam(const char *__name); 8862 extern int getpwnam_r(const char *__name, struct passwd *__resultbuf, 8863 char *__buffer, size_t __buflen, 8864 struct passwd **__result); 8865 extern struct passwd *getpwuid(uid_t __uid); 8866 extern int getpwuid_r(uid_t __uid, struct passwd *__resultbuf, 8867 char *__buffer, size_t __buflen, 8868 struct passwd **__result); 8869 extern void setpwent(void); 8870 __________________________________________________________ 8871 8872 14.4.49. regex.h 8873 8874 #define RE_DUP_MAX (0x7fff) 8875 8876 typedef unsigned long int reg_syntax_t; 8877 8878 typedef struct re_pattern_buffer { 8879 unsigned char *buffer; 8880 unsigned long int allocated; 8881 unsigned long int used; 8882 reg_syntax_t syntax; 8883 char *fastmap; 8884 char *translate; 8885 size_t re_nsub; 8886 unsigned int can_be_null:1; 8887 unsigned int regs_allocated:2; 8888 unsigned int fastmap_accurate:1; 8889 unsigned int no_sub:1; 8890 unsigned int not_bol:1; 8891 unsigned int not_eol:1; 8892 unsigned int newline_anchor:1; 8893 } regex_t; 8894 typedef int regoff_t; 8895 typedef struct { 8896 regoff_t rm_so; 8897 regoff_t rm_eo; 8898 } regmatch_t; 8899 8900 #define REG_ICASE (REG_EXTENDED<<1) 8901 #define REG_NEWLINE (REG_ICASE<<1) 8902 #define REG_NOSUB (REG_NEWLINE<<1) 8903 #define REG_EXTENDED 1 8904 8905 #define REG_NOTEOL (1<<1) 8906 #define REG_NOTBOL 1 8907 8908 typedef enum { 8909 REG_ENOSYS = -1, 8910 REG_NOERROR = 0, 8911 REG_NOMATCH = 1, 8912 REG_BADPAT = 2, 8913 REG_ECOLLATE = 3, 8914 REG_ECTYPE = 4, 8915 REG_EESCAPE = 5, 8916 REG_ESUBREG = 6, 8917 REG_EBRACK = 7, 8918 REG_EPAREN = 8, 8919 REG_EBRACE = 9, 8920 REG_BADBR = 10, 8921 REG_ERANGE = 11, 8922 REG_ESPACE = 12, 8923 REG_BADRPT = 13, 8924 REG_EEND = 14, 8925 REG_ESIZE = 15, 8926 REG_ERPAREN = 16 8927 } reg_errcode_t; 8928 extern int regcomp(regex_t * __preg, const char *__pattern, int __cflags); 8929 extern size_t regerror(int __errcode, const regex_t * __preg, 8930 char *__errbuf, size_t __errbuf_size); 8931 extern int regexec(const regex_t * __preg, const char *__string, 8932 size_t __nmatch, regmatch_t __pmatch[], int __eflags); 8933 extern void regfree(regex_t * __preg); 8934 __________________________________________________________ 8935 8936 14.4.50. rpc/auth.h 8937 8938 #define auth_destroy(auth) ((*((auth)->ah_ops->ah_destroy))(auth)) 8939 8940 enum auth_stat { 8941 AUTH_OK = 0, 8942 AUTH_BADCRED = 1, /* bogus credentials (seal broken) */ 8943 AUTH_REJECTEDCRED = 2, /* client should begin new session */ 8944 AUTH_BADVERF = 3, /* bogus verifier (seal broken) */ 8945 AUTH_REJECTEDVERF = 4, /* verifier expired or was replayed */ 8946 AUTH_TOOWEAK = 5, /* Rpc calls return an enum clnt_stat. */ 8947 AUTH_INVALIDRESP = 6, /* bogus response verifier */ 8948 AUTH_FAILED = 7 /* some unknown reason */ 8949 }; 8950 8951 union des_block { 8952 struct { 8953 u_int32_t high; 8954 u_int32_t low; 8955 } key; 8956 char c[8]; 8957 }; 8958 8959 struct opaque_auth { 8960 enum_t oa_flavor; /* flavor of auth */ 8961 caddr_t oa_base; /* address of more auth stuff */ 8962 u_int oa_length; /* not to exceed MAX_AUTH_BYTES */ 8963 }; 8964 8965 typedef struct AUTH { 8966 struct opaque_auth ah_cred; 8967 struct opaque_auth ah_verf; 8968 union des_block ah_key; 8969 struct auth_ops *ah_ops; 8970 caddr_t ah_private; 8971 } AUTH; 8972 8973 struct auth_ops { 8974 void (*ah_nextverf) (struct AUTH *); 8975 int (*ah_marshal) (struct AUTH *, XDR *); /* nextverf & serialize*/ 8976 int (*ah_validate) (struct AUTH *, struct opaque_auth *); /* validate verifier */ 8977 int (*ah_refresh) (struct AUTH *); /* refresh credentials */ 8978 void (*ah_destroy) (struct AUTH *); /* Rpc calls return an enum clnt_stat. */ 8979 }; 8980 extern struct AUTH *authnone_create(void); 8981 extern int key_decryptsession(char *, union des_block *); 8982 extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); 8983 __________________________________________________________ 8984 8985 14.4.51. rpc/clnt.h 8986 8987 #define clnt_control(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in)) 8988 #define clnt_abort(rh) ((*(rh)->cl_ops->cl_abort)(rh)) 8989 #define clnt_destroy(rh) ((*(rh)->cl_ops->cl_destroy)(rh)) 8990 #define clnt_freeres(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp)) 8991 #define clnt_geterr(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp)) 8992 #define NULLPROC ((u_long)0) /* By convention, procedure 0 takes null arguments and returns */ 8993 #define CLSET_TIMEOUT 1 /* set timeout (timeval) */ 8994 #define CLGET_XID 10 /* Get xid */ 8995 #define CLSET_XID 11 /* Set xid */ 8996 #define CLGET_VERS 12 /* Get version number */ 8997 #define CLSET_VERS 13 /* Set version number */ 8998 #define CLGET_PROG 14 /* Get program number */ 8999 #define CLSET_PROG 15 /* Set program number */ 9000 #define CLGET_TIMEOUT 2 /* get timeout (timeval) */ 9001 #define CLGET_SERVER_ADDR 3 /* get server's address (sockaddr) */ 9002 #define CLSET_RETRY_TIMEOUT 4 /* set retry timeout (timeval) */ 9003 #define CLGET_RETRY_TIMEOUT 5 /* get retry timeout (timeval) */ 9004 #define CLGET_FD 6 /* get connections file descriptor */ 9005 #define CLGET_SVC_ADDR 7 /* get server's address (netbuf) */ 9006 #define CLSET_FD_CLOSE 8 /* close fd while clnt_destroy */ 9007 #define CLSET_FD_NCLOSE 9 /* Do not close fd while clnt_destroy */ 9008 #define clnt_call(rh, proc, xargs, argsp, xres, resp, secs) \ 9009 ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs)) 9010 9011 enum clnt_stat { 9012 RPC_SUCCESS = 0, /* call succeeded */ 9013 RPC_CANTENCODEARGS = 1, /* can't encode arguments */ 9014 RPC_CANTDECODERES = 2, /* can't decode results */ 9015 RPC_CANTSEND = 3, /* failure in sending call */ 9016 RPC_CANTRECV = 4, /* failure in receiving result */ 9017 RPC_TIMEDOUT = 5, /* call timed out */ 9018 RPC_VERSMISMATCH = 6, /* rpc versions not compatible */ 9019 RPC_AUTHERROR = 7, /* authentication error */ 9020 RPC_PROGUNAVAIL = 8, /* program not available */ 9021 RPC_PROGVERSMISMATCH = 9, /* program version mismatched */ 9022 RPC_PROCUNAVAIL = 10, /* procedure unavailable */ 9023 RPC_CANTDECODEARGS = 11, /* decode arguments error */ 9024 RPC_SYSTEMERROR = 12, /* generic "other problem" */ 9025 RPC_NOBROADCAST = 21, /* Broadcasting not supported */ 9026 RPC_UNKNOWNHOST = 13, /* unknown host name */ 9027 RPC_UNKNOWNPROTO = 17, /* unknown protocol */ 9028 RPC_UNKNOWNADDR = 19, /* Remote address unknown */ 9029 RPC_RPCBFAILURE = 14, /* portmapper failed in its call */ 9030 RPC_PROGNOTREGISTERED = 15, /* remote program is not registered */ 9031 RPC_N2AXLATEFAILURE = 22, /* Name to addr translation failed */ 9032 RPC_FAILED = 16, 9033 RPC_INTR = 18, 9034 RPC_TLIERROR = 20, 9035 RPC_UDERROR = 23, 9036 RPC_INPROGRESS = 24, 9037 RPC_STALERACHANDLE = 25 9038 }; 9039 struct rpc_err { 9040 enum clnt_stat re_status; 9041 union { 9042 int RE_errno; 9043 enum auth_stat RE_why; 9044 struct { 9045 u_long low; 9046 u_long high; 9047 } RE_vers; 9048 struct { 9049 long int s1; 9050 long int s2; 9051 } RE_lb; 9052 } ru; 9053 }; 9054 9055 typedef struct CLIENT { 9056 struct AUTH *cl_auth; 9057 struct clnt_ops *cl_ops; 9058 caddr_t cl_private; 9059 } CLIENT; 9060 9061 struct clnt_ops { 9062 enum clnt_stat (*cl_call) (struct CLIENT *, u_long, xdrproc_t, caddr_t, 9063 xdrproc_t, caddr_t, struct timeval); 9064 void (*cl_abort) (void); 9065 void (*cl_geterr) (struct CLIENT *, struct rpc_err *); 9066 bool_t(*cl_freeres) (struct CLIENT *, xdrproc_t, caddr_t); 9067 void (*cl_destroy) (struct CLIENT *); 9068 bool_t(*cl_control) (struct CLIENT *, int, char *); 9069 }; 9070 extern int callrpc(const char *__host, const u_long __prognum, 9071 const u_long __versnum, const u_long __procnum, 9072 const xdrproc_t __inproc, const char *__in, 9073 const xdrproc_t __outproc, char *__out); 9074 extern struct CLIENT *clnt_create(const char *__host, const u_long __prog, 9075 const u_long __vers, const char *__prot); 9076 extern void clnt_pcreateerror(const char *__msg); 9077 extern void clnt_perrno(enum clnt_stat __num); 9078 extern void clnt_perror(struct CLIENT *__clnt, const char *__msg); 9079 extern char *clnt_spcreateerror(const char *__msg); 9080 extern char *clnt_sperrno(enum clnt_stat __num); 9081 extern char *clnt_sperror(struct CLIENT *__clnt, const char *__msg); 9082 extern struct CLIENT *clntraw_create(u_long __prog, u_long __vers); 9083 extern struct CLIENT *clnttcp_create(struct sockaddr_in *__raddr, 9084 u_long __prog, u_long __version, 9085 int *__sockp, u_int __sendsz, 9086 u_int __recvsz); 9087 extern struct CLIENT *clntudp_bufcreate(struct sockaddr_in *__raddr, 9088 u_long __program, u_long __version, 9089 struct timeval __wait_resend, 9090 int *__sockp, u_int __sendsz, 9091 u_int __recvsz); 9092 extern struct CLIENT *clntudp_create(struct sockaddr_in *__raddr, 9093 u_long __program, u_long __version, 9094 struct timeval __wait_resend, 9095 int *__sockp); 9096 __________________________________________________________ 9097 9098 14.4.52. rpc/pmap_clnt.h 9099 9100 extern u_short pmap_getport(struct sockaddr_in *__address, 9101 const u_long __program, const u_long __version, 9102 u_int __protocol); 9103 extern bool_t pmap_set(const u_long __program, const u_long __vers, 9104 int __protocol, u_short __port); 9105 extern bool_t pmap_unset(u_long __program, u_long __vers); 9106 __________________________________________________________ 9107 9108 14.4.53. rpc/rpc_msg.h 9109 9110 enum msg_type { 9111 CALL = 0, 9112 REPLY = 1 9113 }; 9114 enum reply_stat { 9115 MSG_ACCEPTED = 0, 9116 MSG_DENIED = 1 9117 }; 9118 enum accept_stat { 9119 SUCCESS = 0, 9120 PROG_UNAVAIL = 1, 9121 PROG_MISMATCH = 2, 9122 PROC_UNAVAIL = 3, 9123 GARBAGE_ARGS = 4, 9124 SYSTEM_ERR = 5 9125 }; 9126 enum reject_stat { 9127 RPC_MISMATCH = 0, 9128 AUTH_ERROR = 1 9129 }; 9130 9131 #define ar_results ru.AR_results 9132 #define ar_vers ru.AR_versions 9133 9134 struct accepted_reply { 9135 struct opaque_auth ar_verf; 9136 enum accept_stat ar_stat; 9137 union { 9138 struct { 9139 unsigned long int low; 9140 unsigned long int high; 9141 } AR_versions; 9142 struct { 9143 caddr_t where; 9144 xdrproc_t proc; 9145 } AR_results; 9146 } ru; 9147 }; 9148 9149 #define rj_vers ru.RJ_versions 9150 #define rj_why ru.RJ_why 9151 9152 struct rejected_reply { 9153 enum reject_stat rj_stat; 9154 union { 9155 struct { 9156 unsigned long int low; 9157 unsigned long int high; 9158 } RJ_versions; 9159 enum auth_stat RJ_why; /* why authentication did not work */ 9160 } ru; 9161 }; 9162 9163 #define rp_acpt ru.RP_ar 9164 #define rp_rjct ru.RP_dr 9165 9166 struct reply_body { 9167 enum reply_stat rp_stat; 9168 union { 9169 struct accepted_reply RP_ar; 9170 struct rejected_reply RP_dr; 9171 } ru; 9172 }; 9173 9174 struct call_body { 9175 unsigned long int cb_rpcvers; /* must be equal to two */ 9176 unsigned long int cb_prog; 9177 unsigned long int cb_vers; 9178 unsigned long int cb_proc; 9179 struct opaque_auth cb_cred; 9180 struct opaque_auth cb_verf; /* protocol specific - provided by client */ 9181 }; 9182 9183 #define rm_call ru.RM_cmb 9184 #define rm_reply ru.RM_rmb 9185 #define acpted_rply ru.RM_rmb.ru.RP_ar 9186 #define rjcted_rply ru.RM_rmb.ru.RP_dr 9187 9188 struct rpc_msg { 9189 unsigned long int rm_xid; 9190 enum msg_type rm_direction; 9191 union { 9192 struct call_body RM_cmb; 9193 struct reply_body RM_rmb; 9194 } ru; 9195 }; 9196 extern bool_t xdr_accepted_reply(XDR *, struct accepted_reply *); 9197 extern bool_t xdr_callhdr(XDR * __xdrs, struct rpc_msg *__cmsg); 9198 extern bool_t xdr_callmsg(XDR * __xdrs, struct rpc_msg *__cmsg); 9199 extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *); 9200 extern bool_t xdr_replymsg(XDR * __xdrs, struct rpc_msg *__rmsg); 9201 __________________________________________________________ 9202 9203 14.4.54. rpc/svc.h 9204 9205 #define svc_getcaller(x) (&(x)->xp_raddr) 9206 #define svc_destroy(xprt) (*(xprt)->xp_ops->xp_destroy)(xprt) 9207 #define svc_recv(xprt,msg) (*(xprt)->xp_ops->xp_recv)((xprt), (msg)) 9208 #define svc_reply(xprt,msg) (*(xprt)->xp_ops->xp_reply) ((xprt), (msg)) 9209 #define svc_stat(xprt) (*(xprt)->xp_ops->xp_stat)(xprt) 9210 #define RPC_ANYSOCK -1 9211 #define svc_freeargs(xprt,xargs, argsp) \ 9212 (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp)) 9213 #define svc_getargs(xprt,xargs, argsp) \ 9214 (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp)) 9215 9216 enum xprt_stat { 9217 XPRT_DIED, 9218 XPRT_MOREREQS, 9219 XPRT_IDLE 9220 }; 9221 9222 typedef struct SVCXPRT { 9223 int xp_sock; 9224 u_short xp_port; 9225 struct xp_ops *xp_ops; 9226 int xp_addrlen; 9227 struct sockaddr_in xp_raddr; 9228 struct opaque_auth xp_verf; 9229 caddr_t xp_p1; 9230 caddr_t xp_p2; 9231 char xp_pad[256]; 9232 } SVCXPRT; 9233 9234 struct svc_req { 9235 rpcprog_t rq_prog; 9236 rpcvers_t rq_vers; 9237 rpcproc_t rq_proc; 9238 struct opaque_auth rq_cred; 9239 caddr_t rq_clntcred; 9240 SVCXPRT *rq_xprt; 9241 }; 9242 9243 typedef void (*__dispatch_fn_t) (struct svc_req *, SVCXPRT *); 9244 9245 struct xp_ops { 9246 bool_t(*xp_recv) (SVCXPRT * __xprt, struct rpc_msg * __msg); 9247 enum xprt_stat (*xp_stat) (SVCXPRT * __xprt); 9248 bool_t(*xp_getargs) (SVCXPRT * __xprt, xdrproc_t __xdr_args, 9249 caddr_t args_ptr); 9250 bool_t(*xp_reply) (SVCXPRT * __xprt, struct rpc_msg * __msg); 9251 bool_t(*xp_freeargs) (SVCXPRT * __xprt, xdrproc_t __xdr_args, 9252 caddr_t args_ptr); 9253 void (*xp_destroy) (SVCXPRT * __xprt); 9254 }; 9255 extern void svc_getreqset(fd_set * __readfds); 9256 extern bool_t svc_register(SVCXPRT * __xprt, rpcprog_t __prog, 9257 rpcvers_t __vers, __dispatch_fn_t __dispatch, 9258 rpcprot_t __protocol); 9259 extern void svc_run(void); 9260 extern bool_t svc_sendreply(SVCXPRT * xprt, xdrproc_t __xdr_results, 9261 caddr_t __xdr_location); 9262 extern void svcerr_auth(SVCXPRT * __xprt, enum auth_stat __why); 9263 extern void svcerr_decode(SVCXPRT * __xprt); 9264 extern void svcerr_noproc(SVCXPRT * __xprt); 9265 extern void svcerr_noprog(SVCXPRT * __xprt); 9266 extern void svcerr_progvers(SVCXPRT * __xprt, rpcvers_t __low_vers, 9267 rpcvers_t __high_vers); 9268 extern void svcerr_systemerr(SVCXPRT * __xprt); 9269 extern void svcerr_weakauth(SVCXPRT * __xprt); 9270 extern SVCXPRT *svcfd_create(int, unsigned int, unsigned int); 9271 extern SVCXPRT *svcraw_create(void); 9272 extern SVCXPRT *svctcp_create(int __sock, u_int __sendsize, 9273 u_int __recvsize); 9274 extern SVCXPRT *svcudp_create(int __sock); 9275 __________________________________________________________ 9276 9277 14.4.55. rpc/types.h 9278 9279 typedef int bool_t; 9280 typedef int enum_t; 9281 typedef unsigned long int rpcprog_t; 9282 typedef unsigned long int rpcvers_t; 9283 typedef unsigned long int rpcproc_t; 9284 typedef unsigned long int rpcprot_t; 9285 __________________________________________________________ 9286 9287 14.4.56. rpc/xdr.h 9288 9289 #define XDR_DESTROY(xdrs) \ 9290 do { if ((xdrs)->x_ops->x_destroy) (*(xdrs)->x_ops->x_destroy)(xdrs); \ 9291 } while (0) 9292 #define xdr_destroy(xdrs) \ 9293 do { if ((xdrs)->x_ops->x_destroy) (*(xdrs)->x_ops->x_destroy)(xdrs); \ 9294 } while (0) 9295 #define XDR_GETBYTES(xdrs,addr,len) (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) 9296 #define xdr_getbytes(xdrs,addr,len) (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) 9297 #define XDR_GETINT32(xdrs,int32p) (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) 9298 #define xdr_getint32(xdrs,int32p) (*(xdrs)->x_ops->x_getint32)(xdrs, int32p) 9299 #define XDR_GETLONG(xdrs,longp) (*(xdrs)->x_ops->x_getlong)(xdrs, longp) 9300 #define xdr_getlong(xdrs,longp) (*(xdrs)->x_ops->x_getlong)(xdrs, longp) 9301 #define XDR_GETPOS(xdrs) (*(xdrs)->x_ops->x_getpostn)(xdrs) 9302 #define xdr_getpos(xdrs) (*(xdrs)->x_ops->x_getpostn)(xdrs) 9303 #define XDR_INLINE(xdrs,len) (*(xdrs)->x_ops->x_inline)(xdrs, len) 9304 #define xdr_inline(xdrs,len) (*(xdrs)->x_ops->x_inline)(xdrs, len) 9305 #define XDR_PUTBYTES(xdrs,addr,len) (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) 9306 #define xdr_putbytes(xdrs,addr,len) (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) 9307 #define XDR_PUTINT32(xdrs,int32p) (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) 9308 #define xdr_putint32(xdrs,int32p) (*(xdrs)->x_ops->x_putint32)(xdrs, int32p) 9309 #define XDR_PUTLONG(xdrs,longp) (*(xdrs)->x_ops->x_putlong)(xdrs, longp) 9310 #define xdr_putlong(xdrs,longp) (*(xdrs)->x_ops->x_putlong)(xdrs, longp) 9311 #define XDR_SETPOS(xdrs,pos) (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) 9312 #define xdr_setpos(xdrs,pos) (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) 9313 9314 enum xdr_op { 9315 XDR_ENCODE, 9316 XDR_DECODE, 9317 XDR_FREE 9318 }; 9319 typedef struct XDR { 9320 enum xdr_op x_op; 9321 struct xdr_ops *x_ops; 9322 caddr_t x_public; 9323 caddr_t x_private; 9324 caddr_t x_base; 9325 int x_handy; 9326 } XDR; 9327 9328 struct xdr_ops { 9329 bool_t(*x_getlong) (XDR * __xdrs, long int *__lp); 9330 bool_t(*x_putlong) (XDR * __xdrs, long int *__lp); 9331 bool_t(*x_getbytes) (XDR * __xdrs, caddr_t __addr, u_int __len); 9332 bool_t(*x_putbytes) (XDR * __xdrs, char *__addr, u_int __len); 9333 u_int(*x_getpostn) (XDR * __xdrs); 9334 bool_t(*x_setpostn) (XDR * __xdrs, u_int __pos); 9335 int32_t *(*x_inline) (XDR * __xdrs, int __len); 9336 void (*x_destroy) (XDR * __xdrs); 9337 bool_t(*x_getint32) (XDR * __xdrs, int32_t * __ip); 9338 bool_t(*x_putint32) (XDR * __xdrs, int32_t * __ip); 9339 }; 9340 9341 typedef bool_t(*xdrproc_t) (XDR *, void *, ...); 9342 9343 struct xdr_discrim { 9344 int value; 9345 xdrproc_t proc; 9346 }; 9347 extern bool_t xdr_array(XDR * _xdrs, caddr_t * __addrp, u_int * __sizep, 9348 u_int __maxsize, u_int __elsize, 9349 xdrproc_t __elproc); 9350 extern bool_t xdr_bool(XDR * __xdrs, bool_t * __bp); 9351 extern bool_t xdr_bytes(XDR * __xdrs, char **__cpp, u_int * __sizep, 9352 u_int __maxsize); 9353 extern bool_t xdr_char(XDR * __xdrs, char *__cp); 9354 extern bool_t xdr_double(XDR * __xdrs, double *__dp); 9355 extern bool_t xdr_enum(XDR * __xdrs, enum_t * __ep); 9356 extern bool_t xdr_float(XDR * __xdrs, float *__fp); 9357 extern void xdr_free(xdrproc_t __proc, char *__objp); 9358 extern bool_t xdr_int(XDR * __xdrs, int *__ip); 9359 extern bool_t xdr_long(XDR * __xdrs, long int *__lp); 9360 extern bool_t xdr_opaque(XDR * __xdrs, caddr_t __cp, u_int __cnt); 9361 extern bool_t xdr_pointer(XDR * __xdrs, char **__objpp, u_int __obj_size, 9362 xdrproc_t __xdr_obj); 9363 extern bool_t xdr_reference(XDR * __xdrs, caddr_t * __xpp, u_int __size, 9364 xdrproc_t __proc); 9365 extern bool_t xdr_short(XDR * __xdrs, short *__sp); 9366 extern bool_t xdr_string(XDR * __xdrs, char **__cpp, u_int __maxsize); 9367 extern bool_t xdr_u_char(XDR * __xdrs, u_char * __cp); 9368 extern bool_t xdr_u_int(XDR * __xdrs, u_int * __up); 9369 extern bool_t xdr_u_long(XDR * __xdrs, u_long * __ulp); 9370 extern bool_t xdr_u_short(XDR * __xdrs, u_short * __usp); 9371 extern bool_t xdr_union(XDR * __xdrs, enum_t * __dscmp, char *__unp, 9372 const struct xdr_discrim *__choices, 9373 xdrproc_t dfault); 9374 extern bool_t xdr_vector(XDR * __xdrs, char *__basep, u_int __nelem, 9375 u_int __elemsize, xdrproc_t __xdr_elem); 9376 extern bool_t xdr_void(void); 9377 extern bool_t xdr_wrapstring(XDR * __xdrs, char **__cpp); 9378 extern void xdrmem_create(XDR * __xdrs, caddr_t __addr, u_int __size, 9379 enum xdr_op __xop); 9380 extern void xdrrec_create(XDR * __xdrs, u_int __sendsize, u_int __recvsize, 9381 caddr_t __tcp_handle, int (*__readit) (char *, 9382 char *, 9383 int), 9384 int (*__writeit) (char *, char *, int)); 9385 extern bool_t xdrrec_endofrecord(XDR * __xdrs, bool_t __sendnow); 9386 extern bool_t xdrrec_eof(XDR * __xdrs); 9387 extern bool_t xdrrec_skiprecord(XDR * __xdrs); 9388 extern void xdrstdio_create(XDR * __xdrs, FILE * __file, 9389 enum xdr_op __xop); 9390 __________________________________________________________ 9391 9392 14.4.57. sched.h 9393 9394 #define __CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8) 9395 #define __CPUELT(cpu) ((cpu) / __NCPUBITS) 9396 #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) 9397 #define __NCPUBITS (8 * sizeof (__cpu_mask)) 9398 #define SCHED_OTHER 0 9399 #define SCHED_FIFO 1 9400 #define __CPU_SETSIZE 1024 9401 #define SCHED_RR 2 9402 #define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ 9403 (__extension__\ 9404 ({ cpu_set_t *__dest = (destset); \ 9405 cpu_set_t *__arr1 = (srcset1); \ 9406 cpu_set_t *__arr2 = (srcset2); \ 9407 size_t __imax = (setsize) / sizeof (__cpu_mask); \ 9408 size_t __i; \ 9409 for (__i = 0; __i < __imax; ++__i)\ 9410 __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; \ 9411 __dest; })) 9412 #define __CPU_SET_S(cpu, setsize, cpusetp) \ 9413 (__extension__\ 9414 ({ size_t __cpu = (cpu); \ 9415 __cpu < 8 * (setsize) \ 9416 ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })) 9417 #define __CPU_ISSET_S(cpu, setsize, cpusetp) \ 9418 (__extension__\ 9419 ({ size_t __cpu = (cpu); \ 9420 __cpu < 8 * (setsize)\ 9421 ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0\ 9422 : 0; })) 9423 #define __CPU_CLR_S(cpu, setsize, cpusetp) \ 9424 (__extension__\ 9425 ({ size_t __cpu = (cpu); \ 9426 __cpu < 8 * (setsize)\ 9427 ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0;})) 9428 #define __CPU_ZERO_S(setsize, cpusetp) \ 9429 do {\ 9430 size_t __i; \ 9431 size_t __imax = (setsize) / sizeof (__cpu_mask); \ 9432 cpu_set_t *__arr = (cpusetp); \ 9433 for (__i = 0; __i < __imax; ++__i)\ 9434 __arr->__bits[__i] = 0; \ 9435 } while (0) 9436 #define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count) 9437 #define CPU_CLR(cpu, cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp) 9438 #define CPU_ISSET(cpu, cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t),cpusetp) 9439 #define CPU_AND_S(setsize, destset, srcset1, srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &) 9440 #define CPU_XOR_S(setsize, destset, srcset1, srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^) 9441 #define CPU_OR_S(setsize, destset, srcset1, srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |) 9442 #define CPU_AND(destset, srcset1, srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &) 9443 #define CPU_XOR(destset, srcset1, srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^) 9444 #define CPU_OR(destset, srcset1, srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |) 9445 #define CPU_SETSIZE __CPU_SETSIZE 9446 #define CPU_SET(cpu, cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp) 9447 #define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp) 9448 9449 struct sched_param { 9450 int sched_priority; 9451 }; 9452 typedef unsigned long int __cpu_mask; 9453 typedef struct { 9454 __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS]; 9455 } cpu_set_t; 9456 extern int sched_get_priority_max(int __algorithm); 9457 extern int sched_get_priority_min(int __algorithm); 9458 extern int sched_getaffinity(pid_t __pid, size_t __cpusetsize, 9459 cpu_set_t * __cpuset); 9460 extern int sched_getparam(pid_t __pid, struct sched_param *__param); 9461 extern int sched_getscheduler(pid_t __pid); 9462 extern int sched_rr_get_interval(pid_t __pid, struct timespec *__t); 9463 extern int sched_setaffinity(pid_t __pid, size_t __cpusetsize, 9464 const cpu_set_t * __cpuset); 9465 extern int sched_setparam(pid_t __pid, const struct sched_param *__param); 9466 extern int sched_setscheduler(pid_t __pid, int __policy, 9467 const struct sched_param *__param); 9468 extern int sched_yield(void); 9469 __________________________________________________________ 9470 9471 14.4.58. search.h 9472 9473 typedef struct entry { 9474 char *key; 9475 void *data; 9476 } ENTRY; 9477 typedef enum { 9478 FIND, 9479 ENTER 9480 } ACTION; 9481 struct _ENTRY; 9482 typedef enum { 9483 preorder, 9484 postorder, 9485 endorder, 9486 leaf 9487 } VISIT; 9488 struct hsearch_data { 9489 struct _ENTRY *table; 9490 unsigned int size; 9491 unsigned int filled; 9492 }; 9493 9494 typedef void (*__action_fn_t) (const void *__nodep, VISIT __value, 9495 int __level); 9496 extern int hcreate(size_t __nel); 9497 extern int hcreate_r(size_t __nel, struct hsearch_data *__htab); 9498 extern void hdestroy(void); 9499 extern void hdestroy_r(struct hsearch_data *__htab); 9500 extern ENTRY *hsearch(ENTRY __item, ACTION __action); 9501 extern int hsearch_r(ENTRY __item, ACTION __action, ENTRY * *__retval, 9502 struct hsearch_data *__htab); 9503 extern void insque(void *__elem, void *__prev); 9504 extern void *lfind(const void *__key, const void *__base, size_t * __nmemb, 9505 size_t __size, __compar_fn_t __compar); 9506 extern void *lsearch(const void *__key, void *__base, size_t * __nmemb, 9507 size_t __size, __compar_fn_t __compar); 9508 extern void remque(void *__elem); 9509 extern void *tdelete(const void *__key, void **__rootp, 9510 __compar_fn_t __compar); 9511 extern void *tfind(const void *__key, void *const *__rootp, 9512 __compar_fn_t __compar); 9513 extern void *tsearch(const void *__key, void **__rootp, 9514 __compar_fn_t __compar); 9515 extern void twalk(const void *__root, __action_fn_t __action); 9516 __________________________________________________________ 9517 9518 14.4.59. setjmp.h 9519 9520 #define setjmp(env) _setjmp(env) 9521 #define sigsetjmp(a,b) __sigsetjmp(a,b) 9522 9523 struct __jmp_buf_tag { 9524 __jmp_buf __jmpbuf; 9525 int __mask_was_saved; 9526 sigset_t __saved_mask; 9527 }; 9528 9529 typedef struct __jmp_buf_tag jmp_buf[1]; 9530 typedef jmp_buf sigjmp_buf; 9531 extern int __sigsetjmp(jmp_buf __env, int __savemask); 9532 extern void _longjmp(jmp_buf __env, int __val); 9533 extern int _setjmp(jmp_buf __env); 9534 extern void longjmp(jmp_buf __env, int __val); 9535 extern void siglongjmp(sigjmp_buf __env, int __val); 9536 __________________________________________________________ 9537 9538 14.4.60. signal.h 9539 9540 #define sigpause __xpg_sigpause 9541 9542 #define _SIGSET_NWORDS (1024/(8*sizeof(unsigned long))) 9543 #define SIGRTMAX (__libc_current_sigrtmax ()) 9544 #define SIGRTMIN (__libc_current_sigrtmin ()) 9545 #define NSIG 65 9546 #define SIG_BLOCK 0 /* Block signals. */ 9547 #define SIG_UNBLOCK 1 /* Unblock signals. */ 9548 #define SIG_SETMASK 2 /* Set the set of blocked signals. */ 9549 9550 typedef int sig_atomic_t; 9551 9552 typedef void (*sighandler_t) (int); 9553 9554 #define SIG_HOLD ((sighandler_t) 2) /* Request that signal be held. */ 9555 #define SIG_DFL ((sighandler_t)0) /* Request for default signal handling. */ 9556 #define SIG_IGN ((sighandler_t)1) /* Request that signal be ignored. */ 9557 #define SIG_ERR ((sighandler_t)-1) /* Return value from signal() in case of error. */ 9558 9559 #define SIGHUP 1 /* Hangup. */ 9560 #define SIGINT 2 /* Terminal interrupt signal. */ 9561 #define SIGQUIT 3 /* Terminal quit signal. */ 9562 #define SIGILL 4 /* Illegal instruction. */ 9563 #define SIGTRAP 5 /* Trace/breakpoint trap. */ 9564 #define SIGABRT 6 /* Process abort signal. */ 9565 #define SIGIOT 6 /* IOT trap */ 9566 #define SIGBUS 7 /* Access to an undefined portion of a memory object. */ 9567 #define SIGFPE 8 /* Erroneous arithmetic operation. */ 9568 #define SIGKILL 9 /* Kill (cannot be caught or ignored). */ 9569 #define SIGUSR1 10 /* User-defined signal 1. */ 9570 #define SIGSEGV 11 /* Invalid memory reference. */ 9571 #define SIGUSR2 12 /* User-defined signal 2. */ 9572 #define SIGPIPE 13 /* Write on a pipe with no one to readit. */ 9573 #define SIGALRM 14 /* Alarm clock. */ 9574 #define SIGTERM 15 /* Termination signal. */ 9575 #define SIGSTKFLT 16 /* Stack fault. */ 9576 #define SIGCHLD 17 /* Child process terminated, stopped, or continued. */ 9577 #define SIGCLD SIGCHLD /* Same as SIGCHLD */ 9578 #define SIGCONT 18 /* Continue executing, if stopped. */ 9579 #define SIGSTOP 19 /* Stop executing (cannot be caught or ignored). */ 9580 #define SIGTSTP 20 /* Terminal stop signal. */ 9581 #define SIGTTIN 21 /* Background process attempting read. */ 9582 #define SIGTTOU 22 /* Background process attempting write.*/ 9583 #define SIGURG 23 /* High bandwidth data is available at a socket. */ 9584 #define SIGXCPU 24 /* CPU time limit exceeded. */ 9585 #define SIGXFSZ 25 /* File size limit exceeded. */ 9586 #define SIGVTALRM 26 /* Virtual timer expired. */ 9587 #define SIGPROF 27 /* Profiling timer expired. */ 9588 #define SIGWINCH 28 /* Window size change. */ 9589 #define SIGIO 29 /* I/O now possible. */ 9590 #define SIGPOLL SIGIO /* Pollable event. */ 9591 #define SIGPWR 30 /* Power failure restart */ 9592 #define SIGSYS 31 /* Bad system call. */ 9593 #define SIGUNUSED 31 9594 9595 #define SV_ONSTACK (1<<0) /* Take the signal on the signal stack.*/ 9596 #define SV_INTERRUPT (1<<1) /* Do not restart system calls. */ 9597 #define SV_RESETHAND (1<<2) /* Reset handler to SIG_DFL on receipt.*/ 9598 9599 typedef union sigval { 9600 int sival_int; 9601 void *sival_ptr; 9602 } sigval_t; 9603 9604 #define SIGEV_SIGNAL 0 /* Notify via signal. */ 9605 #define SIGEV_NONE 1 /* Other notification: meaningless. */ 9606 #define SIGEV_THREAD 2 /* Deliver via thread creation. */ 9607 #define SIGEV_MAX_SIZE 64 9608 9609 typedef struct sigevent { 9610 sigval_t sigev_value; 9611 int sigev_signo; 9612 int sigev_notify; 9613 union { 9614 int _pad[SIGEV_PAD_SIZE]; 9615 struct { 9616 void (*_function) (sigval_t); 9617 void *_attribute; 9618 } _sigev_thread; 9619 } _sigev_un; 9620 } sigevent_t; 9621 9622 #define SI_MAX_SIZE 128 9623 #define si_pid _sifields._kill._pid 9624 #define si_uid _sifields._kill._uid 9625 #define si_value _sifields._rt._sigval 9626 #define si_int _sifields._rt._sigval.sival_int 9627 #define si_ptr _sifields._rt._sigval.sival_ptr 9628 #define si_status _sifields._sigchld._status 9629 #define si_stime _sifields._sigchld._stime 9630 #define si_utime _sifields._sigchld._utime 9631 #define si_addr _sifields._sigfault._addr 9632 #define si_band _sifields._sigpoll._band 9633 #define si_fd _sifields._sigpoll._fd 9634 #define si_timer1 _sifields._timer._timer1 9635 #define si_timer2 _sifields._timer._timer2 9636 #define sigev_notify_attributes _sigev_un._sigev_thread._attribute 9637 #define sigev_notify_function _sigev_un._sigev_thread._function 9638 9639 typedef struct siginfo { 9640 int si_signo; /* Signal number. */ 9641 int si_errno; 9642 int si_code; /* Signal code. */ 9643 union { 9644 int _pad[SI_PAD_SIZE]; 9645 struct { 9646 pid_t _pid; 9647 uid_t _uid; 9648 } _kill; 9649 struct { 9650 unsigned int _timer1; 9651 unsigned int _timer2; 9652 } _timer; 9653 struct { 9654 pid_t _pid; 9655 uid_t _uid; 9656 sigval_t _sigval; 9657 } _rt; 9658 struct { 9659 pid_t _pid; 9660 uid_t _uid; 9661 int _status; 9662 clock_t _utime; 9663 clock_t _stime; 9664 } _sigchld; 9665 struct { 9666 void *_addr; 9667 } _sigfault; 9668 struct { 9669 int _band; 9670 int _fd; 9671 } _sigpoll; 9672 } _sifields; 9673 } siginfo_t; 9674 9675 #define SI_QUEUE -1 /* Sent by sigqueue. */ 9676 #define SI_TIMER -2 /* Sent by timer expiration. */ 9677 #define SI_MESGQ -3 /* Sent by real time mesq state change.*/ 9678 #define SI_ASYNCIO -4 /* Sent by AIO completion. */ 9679 #define SI_SIGIO -5 /* Sent by queued SIGIO. */ 9680 #define SI_TKILL -6 /* Sent by tkill. */ 9681 #define SI_ASYNCNL -60 /* Sent by asynch name lookup completion. */ 9682 #define SI_USER 0 /* Sent by kill, sigsend, raise. */ 9683 #define SI_KERNEL 0x80 /* Sent by kernel. */ 9684 9685 #define ILL_ILLOPC 1 /* Illegal opcode. */ 9686 #define ILL_ILLOPN 2 /* Illegal operand. */ 9687 #define ILL_ILLADR 3 /* Illegal addressing mode. */ 9688 #define ILL_ILLTRP 4 /* Illegal trap. */ 9689 #define ILL_PRVOPC 5 /* Privileged opcode. */ 9690 #define ILL_PRVREG 6 /* Privileged register. */ 9691 #define ILL_COPROC 7 /* Coprocessor error. */ 9692 #define ILL_BADSTK 8 /* Internal stack error. */ 9693 9694 #define FPE_INTDIV 1 /* Integer divide by zero. */ 9695 #define FPE_INTOVF 2 /* Integer overflow. */ 9696 #define FPE_FLTDIV 3 /* Floating-point divide by zero. */ 9697 #define FPE_FLTOVF 4 /* Floating-point overflow. */ 9698 #define FPE_FLTUND 5 /* Floating-point underflow. */ 9699 #define FPE_FLTRES 6 /* Floating-point inexact result. */ 9700 #define FPE_FLTINV 7 /* Invalid floating-point operation. */ 9701 #define FPE_FLTSUB 8 /* Subscript out of range. */ 9702 9703 #define SEGV_MAPERR 1 /* Address not mapped to object. */ 9704 #define SEGV_ACCERR 2 /* Invalid permissions for mapped object. */ 9705 9706 #define BUS_ADRALN 1 /* Invalid address alignment. */ 9707 #define BUS_ADRERR 2 /* Nonexistent physical address. */ 9708 #define BUS_OBJERR 3 /* Object-specific hardware error. */ 9709 9710 #define TRAP_BRKPT 1 /* Process breakpoint. */ 9711 #define TRAP_TRACE 2 /* Process trace trap. */ 9712 9713 #define CLD_EXITED 1 /* Child has exited. */ 9714 #define CLD_KILLED 2 /* Child has terminated abnormally and did not create a core fi */ 9715 #define CLD_DUMPED 3 /* Child has terminated abnormally and created a core file. */ 9716 #define CLD_TRAPPED 4 /* Traced child has trapped. */ 9717 #define CLD_STOPPED 5 /* Child has stopped. */ 9718 #define CLD_CONTINUED 6 /* Stopped child has continued. */ 9719 9720 #define POLL_IN 1 /* Data input available. */ 9721 #define POLL_OUT 2 /* Output buffers available. */ 9722 #define POLL_MSG 3 /* Input message available. */ 9723 #define POLL_ERR 4 /* I/O error. */ 9724 #define POLL_PRI 5 /* High priority input available. */ 9725 #define POLL_HUP 6 /* Device disconnected. */ 9726 9727 typedef struct { 9728 unsigned long int sig[_SIGSET_NWORDS]; 9729 } sigset_t; 9730 9731 #define SA_INTERRUPT 0x20000000 9732 #define sa_handler __sigaction_handler._sa_handler 9733 #define sa_sigaction __sigaction_handler._sa_sigaction 9734 #define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer`. */ 9735 #define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry tohandler. */ 9736 #define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */ 9737 #define SA_SIGINFO 0x00000004 /* Invoke signal-catching function with three arguments instead of one. */ 9738 #define SA_NODEFER 0x40000000 /* Don't automatically block the signal when its handler is being executed. */ 9739 #define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ 9740 #define SA_NOCLDWAIT 0x00000002 /* Don't create zombie on childdeath. */ 9741 #define SA_NOMASK SA_NODEFER 9742 #define SA_ONESHOT SA_RESETHAND 9743 9744 typedef struct sigaltstack { 9745 void *ss_sp; 9746 int ss_flags; 9747 size_t ss_size; 9748 } stack_t; 9749 9750 #define SS_ONSTACK 1 9751 #define SS_DISABLE 2 9752 9753 extern int __libc_current_sigrtmax(void); 9754 extern int __libc_current_sigrtmin(void); 9755 extern sighandler_t __sysv_signal(int __sig, sighandler_t __handler); 9756 extern int __xpg_sigpause(int); 9757 extern char *const _sys_siglist[]; 9758 extern sighandler_t bsd_signal(int __sig, sighandler_t __handler); 9759 extern int kill(pid_t __pid, int __sig); 9760 extern int killpg(pid_t __pgrp, int __sig); 9761 extern void psiginfo(const siginfo_t * pinfo, const char *message); 9762 extern void psignal(int __sig, const char *__s); 9763 extern int pthread_kill(pthread_t, int); 9764 extern int pthread_sigmask(int, const sigset_t *, sigset_t *); 9765 extern int raise(int __sig); 9766 extern int sigaction(int __sig, const struct sigaction *__act, 9767 struct sigaction *__oact); 9768 extern int sigaddset(sigset_t * __set, int __signo); 9769 extern int sigaltstack(const struct sigaltstack *__ss, 9770 struct sigaltstack *__oss); 9771 extern int sigandset(sigset_t * __set, const sigset_t * __left, 9772 const sigset_t * __right); 9773 extern int sigdelset(sigset_t * __set, int __signo); 9774 extern int sigemptyset(sigset_t * __set); 9775 extern int sigfillset(sigset_t * __set); 9776 extern int sighold(int __sig); 9777 extern int sigignore(int __sig); 9778 extern int siginterrupt(int __sig, int __interrupt); 9779 extern int sigisemptyset(const sigset_t * __set); 9780 extern int sigismember(const sigset_t * __set, int __signo); 9781 extern sighandler_t signal(int __sig, sighandler_t __handler); 9782 extern int sigorset(sigset_t * __set, const sigset_t * __left, 9783 const sigset_t * __right); 9784 extern int sigpending(sigset_t * __set); 9785 extern int sigprocmask(int __how, const sigset_t * __set, 9786 sigset_t * __oset); 9787 extern int sigqueue(pid_t __pid, int __sig, const union sigval __val); 9788 extern int sigrelse(int __sig); 9789 extern int sigreturn(struct sigcontext *__scp); 9790 extern sighandler_t sigset(int __sig, sighandler_t __disp); 9791 extern int sigsuspend(const sigset_t * __set); 9792 extern int sigtimedwait(const sigset_t * __set, siginfo_t * __info, 9793 const struct timespec *__timeout); 9794 extern int sigwait(const sigset_t * __set, int *__sig); 9795 extern int sigwaitinfo(const sigset_t * __set, siginfo_t * __info); 9796 __________________________________________________________ 9797 9798 14.4.61. spawn.h 9799 9800 #define POSIX_SPAWN_RESETIDS 0x01 9801 #define POSIX_SPAWN_SETPGROUP 0x02 9802 #define POSIX_SPAWN_SETSIGDEF 0x04 9803 #define POSIX_SPAWN_SETSIGMASK 0x08 9804 #define POSIX_SPAWN_SETSCHEDPARAM 0x10 9805 #define POSIX_SPAWN_SETSCHEDULER 0x20 9806 9807 typedef struct { 9808 int __allocated; 9809 int __used; 9810 struct __spawn_action *__actions; 9811 int __pad[16]; 9812 } posix_spawn_file_actions_t; 9813 typedef struct { 9814 short __flags; 9815 pid_t __pgrp; 9816 sigset_t __sd; 9817 sigset_t __ss; 9818 struct sched_param __sp; 9819 int __policy; 9820 int __pad[16]; 9821 } posix_spawnattr_t; 9822 extern int posix_spawn(pid_t * __pid, const char *__path, 9823 const posix_spawn_file_actions_t * __file_actions, 9824 const posix_spawnattr_t * __attrp, 9825 char *const argv[], char *const envp[]); 9826 extern int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t* 9827 __file_actions, int __fd); 9828 extern int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t * 9829 __file_actions, int __fd, 9830 int __newfd); 9831 extern int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t * 9832 __file_actions, int __fd, 9833 const char *__path, 9834 int __oflag, mode_t __mode); 9835 extern int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t * 9836 __file_actions); 9837 extern int posix_spawn_file_actions_init(posix_spawn_file_actions_t * 9838 __file_actions); 9839 extern int posix_spawnattr_destroy(posix_spawnattr_t * __attr); 9840 extern int posix_spawnattr_getflags(const posix_spawnattr_t * __attr, 9841 short int *__flags); 9842 extern int posix_spawnattr_getpgroup(const posix_spawnattr_t * __attr, 9843 pid_t * __pgroup); 9844 extern int posix_spawnattr_getschedparam(const posix_spawnattr_t * __attr, 9845 struct sched_param *__schedparam); 9846 extern int posix_spawnattr_getschedpolicy(const posix_spawnattr_t * __attr, 9847 int *__schedpolicy); 9848 extern int posix_spawnattr_getsigdefault(const posix_spawnattr_t * __attr, 9849 sigset_t * __sigdefault); 9850 extern int posix_spawnattr_getsigmask(const posix_spawnattr_t * __attr, 9851 sigset_t * __sigmask); 9852 extern int posix_spawnattr_init(posix_spawnattr_t * __attr); 9853 extern int posix_spawnattr_setflags(posix_spawnattr_t * _attr, 9854 short int __flags); 9855 extern int posix_spawnattr_setpgroup(posix_spawnattr_t * __attr, 9856 pid_t __pgroup); 9857 extern int posix_spawnattr_setschedparam(posix_spawnattr_t * __attr, 9858 const struct sched_param 9859 *__schedparam); 9860 extern int posix_spawnattr_setschedpolicy(posix_spawnattr_t * __attr, 9861 int __schedpolicy); 9862 extern int posix_spawnattr_setsigdefault(posix_spawnattr_t * __attr, 9863 const sigset_t * __sigdefault); 9864 extern int posix_spawnattr_setsigmask(posix_spawnattr_t * __attr, 9865 const sigset_t * __sigmask); 9866 extern int posix_spawnp(pid_t * __pid, const char *__file, 9867 const posix_spawn_file_actions_t * __file_actions, 9868 const posix_spawnattr_t * __attrp, 9869 char *const argv[], char *const envp[]); 9870 __________________________________________________________ 9871 9872 14.4.62. stddef.h 9873 9874 #if !defined(__GNUC__) 9875 #define __builtin_offsetof (TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER) 9876 #endif 9877 #ifndef NULL 9878 # ifdef __cplusplus 9879 # define NULL (0L) 9880 # else 9881 # define NULL ((void*) 0) 9882 # endif 9883 #endif 9884 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) 9885 __________________________________________________________ 9886 9887 14.4.63. stdint.h 9888 9889 #define INT16_C(c) c 9890 #define INT32_C(c) c 9891 #define INT8_C(c) c 9892 #define UINT16_C(c) c 9893 #define UINT8_C(c) c 9894 #define UINT32_C(c) c ## U 9895 9896 #define INT8_MIN (-128) 9897 #define INT_FAST8_MIN (-128) 9898 #define INT_LEAST8_MIN (-128) 9899 #define INT32_MIN (-2147483647-1) 9900 #define INT_LEAST32_MIN (-2147483647-1) 9901 #define SIG_ATOMIC_MIN (-2147483647-1) 9902 #define INT16_MIN (-32767-1) 9903 #define INT_LEAST16_MIN (-32767-1) 9904 #define INT64_MIN (-__INT64_C(9223372036854775807)-1) 9905 #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) 9906 #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) 9907 #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) 9908 #define WINT_MIN (0u) 9909 #define INT8_MAX (127) 9910 #define INT_FAST8_MAX (127) 9911 #define INT_LEAST8_MAX (127) 9912 #define INT32_MAX (2147483647) 9913 #define INT_LEAST32_MAX (2147483647) 9914 #define SIG_ATOMIC_MAX (2147483647) 9915 #define UINT8_MAX (255) 9916 #define UINT_FAST8_MAX (255) 9917 #define UINT_LEAST8_MAX (255) 9918 #define INT16_MAX (32767) 9919 #define INT_LEAST16_MAX (32767) 9920 #define UINT32_MAX (4294967295U) 9921 #define UINT_LEAST32_MAX (4294967295U) 9922 #define WINT_MAX (4294967295u) 9923 #define UINT16_MAX (65535) 9924 #define UINT_LEAST16_MAX (65535) 9925 #define INT64_MAX (__INT64_C(9223372036854775807)) 9926 #define INTMAX_MAX (__INT64_C(9223372036854775807)) 9927 #define INT_FAST64_MAX (__INT64_C(9223372036854775807)) 9928 #define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) 9929 #define UINT64_MAX (__UINT64_C(18446744073709551615)) 9930 #define UINTMAX_MAX (__UINT64_C(18446744073709551615)) 9931 #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) 9932 #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) 9933 9934 typedef signed char int8_t; 9935 typedef short int16_t; 9936 typedef int int32_t; 9937 typedef unsigned char uint8_t; 9938 typedef unsigned short uint16_t; 9939 typedef unsigned int uint32_t; 9940 typedef signed char int_least8_t; 9941 typedef short int int_least16_t; 9942 typedef int int_least32_t; 9943 typedef unsigned char uint_least8_t; 9944 typedef unsigned short uint_least16_t; 9945 typedef unsigned int uint_least32_t; 9946 typedef signed char int_fast8_t; 9947 typedef unsigned char uint_fast8_t; 9948 __________________________________________________________ 9949 9950 14.4.64. stdio.h 9951 9952 #define EOF (-1) 9953 #define P_tmpdir "/tmp" 9954 #ifndef SEEK_SET 9955 #define SEEK_SET 0 9956 #endif 9957 #ifndef SEEK_CUR 9958 #define SEEK_CUR 1 9959 #endif 9960 #define FOPEN_MAX 16 9961 #ifndef SEEK_END 9962 #define SEEK_END 2 9963 #endif 9964 #define L_tmpnam 20 9965 #define TMP_MAX 238328 9966 #define FILENAME_MAX 4096 9967 #define BUFSIZ 8192 9968 #define L_ctermid 9 9969 #define L_cuserid 9 9970 9971 typedef struct { 9972 off_t __pos; 9973 mbstate_t __state; 9974 } fpos_t; 9975 typedef struct { 9976 off64_t __pos; 9977 mbstate_t __state; 9978 } fpos64_t; 9979 9980 typedef struct _IO_FILE FILE; 9981 9982 #define _IOFBF 0 9983 #define _IOLBF 1 9984 #define _IONBF 2 9985 9986 extern char *__fgets_chk(char *, size_t, int, FILE *); 9987 extern char *__fgets_unlocked_chk(char *, size_t, int, FILE *); 9988 extern size_t __fpending(FILE *); 9989 extern int __fprintf_chk(FILE *, int, const char *, ...); 9990 extern int __printf_chk(int, const char *, ...); 9991 extern int __snprintf_chk(char *, size_t, int, size_t, const char *, ...); 9992 extern int __sprintf_chk(char *, int, size_t, const char *, ...); 9993 extern int __vfprintf_chk(FILE *, int, const char *, va_list); 9994 extern int __vprintf_chk(int, const char *, va_list); 9995 extern int __vsnprintf_chk(char *, size_t, int, size_t, const char *, 9996 va_list); 9997 extern int __vsprintf_chk(char *, int, size_t, const char *, va_list); 9998 extern char *const _sys_errlist[]; 9999 extern int asprintf(char **__ptr, const char *__fmt, ...); 10000 extern void clearerr(FILE * __stream); 10001 extern void clearerr_unlocked(FILE * __stream); 10002 extern int dprintf(int __fd, const char *__fmt, ...); 10003 extern int fclose(FILE * __stream); 10004 extern FILE *fdopen(int __fd, const char *__modes); 10005 extern int feof(FILE * __stream); 10006 extern int feof_unlocked(FILE * __stream); 10007 extern int ferror(FILE * __stream); 10008 extern int ferror_unlocked(FILE * __stream); 10009 extern int fflush(FILE * __stream); 10010 extern int fflush_unlocked(FILE * __stream); 10011 extern int fgetc(FILE * __stream); 10012 extern int fgetc_unlocked(FILE * __stream); 10013 extern int fgetpos(FILE * __stream, fpos_t * __pos); 10014 extern int fgetpos64(FILE * __stream, fpos64_t * __pos); 10015 extern char *fgets(char *__s, int __n, FILE * __stream); 10016 extern char *fgets_unlocked(char *__s, int __n, FILE * __stream); 10017 extern int fileno(FILE * __stream); 10018 extern int fileno_unlocked(FILE * __stream); 10019 extern void flockfile(FILE * __stream); 10020 extern FILE *fmemopen(void *__s, size_t __len, const char *__modes); 10021 extern FILE *fopen(const char *__filename, const char *__modes); 10022 extern FILE *fopen64(const char *__filename, const char *__modes); 10023 extern int fprintf(FILE * __stream, const char *__format, ...); 10024 extern int fputc(int __c, FILE * __stream); 10025 extern int fputc_unlocked(int __c, FILE * __stream); 10026 extern int fputs(const char *__s, FILE * __stream); 10027 extern int fputs_unlocked(const char *__s, FILE * __stream); 10028 extern size_t fread(void *__ptr, size_t __size, size_t __n, 10029 FILE * __stream); 10030 extern size_t fread_unlocked(void *__ptr, size_t __size, size_t __n, 10031 FILE * __stream); 10032 extern FILE *freopen(const char *__filename, const char *__modes, 10033 FILE * __stream); 10034 extern FILE *freopen64(const char *__filename, const char *__modes, 10035 FILE * __stream); 10036 extern int fscanf(FILE * __stream, const char *__format, ...); 10037 extern int fseek(FILE * __stream, long int __off, int __whence); 10038 extern int fseeko(FILE * __stream, off_t __off, int __whence); 10039 extern int fseeko64(FILE * __stream, loff_t __off, int __whence); 10040 extern int fsetpos(FILE * __stream, const fpos_t * __pos); 10041 extern int fsetpos64(FILE * __stream, const fpos64_t * __pos); 10042 extern long int ftell(FILE * __stream); 10043 extern off_t ftello(FILE * __stream); 10044 extern loff_t ftello64(FILE * __stream); 10045 extern int ftrylockfile(FILE * __stream); 10046 extern void funlockfile(FILE * __stream); 10047 extern size_t fwrite(const void *__ptr, size_t __size, size_t __n, 10048 FILE * __s); 10049 extern size_t fwrite_unlocked(const void *__ptr, size_t __size, size_t __n, 10050 FILE * __stream); 10051 extern int getc(FILE * __stream); 10052 extern int getc_unlocked(FILE * __stream); 10053 extern int getchar(void); 10054 extern int getchar_unlocked(void); 10055 extern ssize_t getdelim(char **__lineptr, size_t * __n, int __delimiter, 10056 FILE * __stream); 10057 extern ssize_t getline(char **__lineptr, size_t * __n, FILE * __stream); 10058 extern int getw(FILE * __stream); 10059 extern FILE *open_memstream(char **__bufloc, size_t * __sizeloc); 10060 extern int pclose(FILE * __stream); 10061 extern void perror(const char *__s); 10062 extern FILE *popen(const char *__command, const char *__modes); 10063 extern int printf(const char *__format, ...); 10064 extern int putc(int __c, FILE * __stream); 10065 extern int putc_unlocked(int __c, FILE * __stream); 10066 extern int putchar(int __c); 10067 extern int putchar_unlocked(int __c); 10068 extern int puts(const char *__s); 10069 extern int putw(int __w, FILE * __stream); 10070 extern int remove(const char *__filename); 10071 extern int rename(const char *__old, const char *__new); 10072 extern int renameat(int __oldfd, const char *__old, int __newfd, 10073 const char *__new); 10074 extern void rewind(FILE * __stream); 10075 extern int scanf(const char *__format, ...); 10076 extern void setbuf(FILE * __stream, char *__buf); 10077 extern void setbuffer(FILE * __stream, char *__buf, size_t __size); 10078 extern int setvbuf(FILE * __stream, char *__buf, int __modes, size_t __n); 10079 extern int snprintf(char *__s, size_t __maxlen, const char *__format, ...); 10080 extern int sprintf(char *__s, const char *__format, ...); 10081 extern int sscanf(const char *__s, const char *__format, ...); 10082 extern FILE *stderr; 10083 extern FILE *stdin; 10084 extern FILE *stdout; 10085 extern char *tempnam(const char *__dir, const char *__pfx); 10086 extern FILE *tmpfile(void); 10087 extern FILE *tmpfile64(void); 10088 extern char *tmpnam(char *__s); 10089 extern int ungetc(int __c, FILE * __stream); 10090 extern int vasprintf(char **__ptr, const char *__f, va_list __arg); 10091 extern int vdprintf(int __fd, const char *__fmt, va_list __arg); 10092 extern int vfprintf(FILE * __s, const char *__format, va_list __arg); 10093 extern int vfscanf(FILE * __s, const char *__format, va_list __arg); 10094 extern int vprintf(const char *__format, va_list __arg); 10095 extern int vscanf(const char *__format, va_list __arg); 10096 extern int vsnprintf(char *__s, size_t __maxlen, const char *__format, 10097 va_list __arg); 10098 extern int vsprintf(char *__s, const char *__format, va_list __arg); 10099 extern int vsscanf(const char *__s, const char *__format, va_list __arg); 10100 __________________________________________________________ 10101 10102 14.4.65. stdlib.h 10103 10104 #define MB_CUR_MAX (__ctype_get_mb_cur_max()) 10105 #define EXIT_SUCCESS 0 10106 #define EXIT_FAILURE 1 10107 #define RAND_MAX 2147483647 10108 10109 struct drand48_data { 10110 unsigned short __x[3]; 10111 unsigned short __old_x[3]; 10112 unsigned short __c; 10113 unsigned short __init; 10114 unsigned long long int __a; 10115 }; 10116 typedef int (*__compar_fn_t) (const void *, const void *); 10117 struct random_data { 10118 int32_t *fptr; /* Front pointer. */ 10119 int32_t *rptr; /* Rear pointer. */ 10120 int32_t *state; /* Array of state values. */ 10121 int rand_type; /* Type of random number generator. */ 10122 int rand_deg; /* Degree of random number generator. */ 10123 int rand_sep; /* Distance between front and rear. */ 10124 int32_t *end_ptr; /* Pointer behind state table. */ 10125 }; 10126 10127 typedef struct { 10128 int quot; 10129 int rem; 10130 } div_t; 10131 10132 typedef struct { 10133 long int quot; 10134 long int rem; 10135 } ldiv_t; 10136 10137 typedef struct { 10138 long long int quot; 10139 long long int rem; 10140 } lldiv_t; 10141 extern void _Exit(int __status); 10142 extern size_t __ctype_get_mb_cur_max(void); 10143 extern size_t __mbstowcs_chk(wchar_t *, const char *, size_t, size_t); 10144 extern char *__realpath_chk(const char *, char *, size_t); 10145 extern double __strtod_internal(const char *, char **, int); 10146 extern float __strtof_internal(const char *, char **, int); 10147 extern long int __strtol_internal(const char *, char **, int, int); 10148 extern long double __strtold_internal(const char *, char **, int); 10149 extern long long int __strtoll_internal(const char *, char **, int, int); 10150 extern unsigned long int __strtoul_internal(const char *, char **, int, 10151 int); 10152 extern unsigned long long int __strtoull_internal(const char *, char **, 10153 int, int); 10154 extern size_t __wcstombs_chk(char *, const wchar_t *, size_t, size_t); 10155 extern int __wctomb_chk(char *, wchar_t, size_t); 10156 extern long int a64l(const char *__s); 10157 extern void abort(void); 10158 extern int abs(int __x); 10159 extern int atexit(void (*__func) (void)); 10160 extern double atof(const char *__nptr); 10161 extern int atoi(const char *__nptr); 10162 extern long int atol(const char *__nptr); 10163 extern long long int atoll(const char *__nptr); 10164 extern void *bsearch(const void *__key, const void *__base, size_t __nmemb, 10165 size_t __size, __compar_fn_t __compar); 10166 extern void *calloc(size_t __nmemb, size_t __size); 10167 extern div_t div(int __numer, int __denom); 10168 extern double drand48(void); 10169 extern int drand48_r(struct drand48_data *__buffer, double *__result); 10170 extern char *ecvt(double __value, int __ndigit, int *__decpt, int *__sign); 10171 extern char **environ; 10172 extern double erand48(unsigned short __xsubi[3]); 10173 extern int erand48_r(unsigned short __xsubi[3], 10174 struct drand48_data *__buffer, double *__result); 10175 extern void exit(int __status); 10176 extern char *fcvt(double __value, int __ndigit, int *__decpt, int *__sign); 10177 extern void free(void *__ptr); 10178 extern char *gcvt(double __value, int __ndigit, char *__buf); 10179 extern char *getenv(const char *__name); 10180 extern int getloadavg(double __loadavg[], int __nelem); 10181 extern int getsubopt(char **__optionp, char *const *__tokens, 10182 char **__valuep); 10183 extern int grantpt(int __fd); 10184 extern char *initstate(unsigned int __seed, char *__statebuf, 10185 size_t __statelen); 10186 extern int initstate_r(unsigned int __seed, char *__statebuf, 10187 size_t __statelen, struct random_data *__buf); 10188 extern long int jrand48(unsigned short __xsubi[3]); 10189 extern int jrand48_r(unsigned short __xsubi[3], 10190 struct drand48_data *__buffer, long int *__result); 10191 extern char *l64a(long int __n); 10192 extern long int labs(long int __x); 10193 extern void lcong48(unsigned short __param[7]); 10194 extern int lcong48_r(unsigned short __param[7], 10195 struct drand48_data *__buffer); 10196 extern ldiv_t ldiv(long int __numer, long int __denom); 10197 extern long long int llabs(long long int __x); 10198 extern lldiv_t lldiv(long long int __numer, long long int __denom); 10199 extern long int lrand48(void); 10200 extern int lrand48_r(struct drand48_data *__buffer, long int *__result); 10201 extern void *malloc(size_t __size); 10202 extern int mblen(const char *__s, size_t __n); 10203 extern size_t mbstowcs(wchar_t * __pwcs, const char *__s, size_t __n); 10204 extern int mbtowc(wchar_t * __pwc, const char *__s, size_t __n); 10205 extern char *mkdtemp(char *__template); 10206 extern int mkstemp(char *__template); 10207 extern int mkstemp64(char *__template); 10208 extern char *mktemp(char *__template); 10209 extern long int mrand48(void); 10210 extern int mrand48_r(struct drand48_data *__buffer, long int *__result); 10211 extern long int nrand48(unsigned short __xsubi[3]); 10212 extern int nrand48_r(unsigned short __xsubi[3], 10213 struct drand48_data *__buffer, long int *__result); 10214 extern int posix_memalign(void **__memptr, size_t __alignment, 10215 size_t __size); 10216 extern int posix_openpt(int __oflag); 10217 extern char *ptsname(int __fd); 10218 extern int putenv(char *__string); 10219 extern void qsort(void *__base, size_t __nmemb, size_t __size, 10220 const __compar_fn_t __compar); 10221 extern int rand(void); 10222 extern int rand_r(unsigned int *__seed); 10223 extern long int random(void); 10224 extern int random_r(struct random_data *__buf, int32_t * __result); 10225 extern void *realloc(void *__ptr, size_t __size); 10226 extern char *realpath(const char *__name, char *__resolved); 10227 extern unsigned short *seed48(unsigned short __seed16v[3]); 10228 extern int seed48_r(unsigned short __seed16v[3], 10229 struct drand48_data *__buffer); 10230 extern int setenv(const char *__name, const char *__value, int __replace); 10231 extern char *setstate(char *__statebuf); 10232 extern int setstate_r(char *__statebuf, struct random_data *__buf); 10233 extern void srand(unsigned int __seed); 10234 extern void srand48(long int __seedval); 10235 extern int srand48_r(long int __seedval, struct drand48_data *__buffer); 10236 extern void srandom(unsigned int __seed); 10237 extern int srandom_r(unsigned int __seed, struct random_data *__buf); 10238 extern double strtod(const char *__nptr, char **__endptr); 10239 extern float strtof(const char *__nptr, char **__endptr); 10240 extern long int strtol(const char *__nptr, char **__endptr, int __base); 10241 extern long double strtold(const char *__nptr, char **__endptr); 10242 extern long long int strtoll(const char *__nptr, char **__endptr, 10243 int __base); 10244 extern long long int strtoq(const char *__nptr, char **__endptr, 10245 int __base); 10246 extern unsigned long int strtoul(const char *__nptr, char **__endptr, 10247 int __base); 10248 extern unsigned long long int strtoull(const char *__nptr, char **__endptr, 10249 int __base); 10250 extern unsigned long long int strtouq(const char *__nptr, char **__endptr, 10251 int __base); 10252 extern int system(const char *__command); 10253 extern int unlockpt(int __fd); 10254 extern int unsetenv(const char *__name); 10255 extern size_t wcstombs(char *__s, const wchar_t * __pwcs, size_t __n); 10256 extern int wctomb(char *__s, wchar_t __wchar); 10257 __________________________________________________________ 10258 10259 14.4.66. string.h 10260 10261 #define strerror_r __xpg_strerror_r 10262 10263 #define bzero(s,n) memset(s,0,n) 10264 10265 extern void *__memcpy_chk(void *, const void *, size_t, size_t); 10266 extern void *__memmove_chk(void *, const void *, size_t, size_t); 10267 extern void *__mempcpy(void *__dest, const void *__src, size_t __n); 10268 extern void *__mempcpy_chk(void *, const void *, size_t, size_t); 10269 extern void *__memset_chk(void *, int, size_t, size_t); 10270 extern char *__stpcpy(char *__dest, const char *__src); 10271 extern char *__stpcpy_chk(char *, const char *, size_t); 10272 extern char *__stpncpy_chk(char *, const char *, size_t, size_t); 10273 extern char *__strcat_chk(char *, const char *, size_t); 10274 extern char *__strcpy_chk(char *, const char *, size_t); 10275 extern char *__strncat_chk(char *, const char *, size_t, size_t); 10276 extern char *__strncpy_chk(char *, const char *, size_t, size_t); 10277 extern char *__strtok_r(char *__s, const char *__delim, char **__save_ptr); 10278 extern int __xpg_strerror_r(int, char *, size_t); 10279 extern void *memccpy(void *__dest, const void *__src, int __c, size_t __n); 10280 extern void *memchr(const void *__s, int __c, size_t __n); 10281 extern int memcmp(const void *__s1, const void *__s2, size_t __n); 10282 extern void *memcpy(void *__dest, const void *__src, size_t __n); 10283 extern void *memmem(const void *__haystack, size_t __haystacklen, 10284 const void *__needle, size_t __needlelen); 10285 extern void *memmove(void *__dest, const void *__src, size_t __n); 10286 extern void *memrchr(const void *__s, int __c, size_t __n); 10287 extern void *memset(void *__s, int __c, size_t __n); 10288 extern char *stpcpy(char *__dest, const char *__src); 10289 extern char *stpncpy(char *__dest, const char *__src, size_t __n); 10290 extern char *strcasestr(const char *__haystack, const char *__needle); 10291 extern char *strcat(char *__dest, const char *__src); 10292 extern char *strchr(const char *__s, int __c); 10293 extern int strcmp(const char *__s1, const char *__s2); 10294 extern int strcoll(const char *__s1, const char *__s2); 10295 extern int strcoll_l(const char *s1, const char *s2, locale_t locale); 10296 extern char *strcpy(char *__dest, const char *__src); 10297 extern size_t strcspn(const char *__s, const char *__reject); 10298 extern char *strdup(const char *__s); 10299 extern char *strerror(int __errnum); 10300 extern char *strerror_l(int errnum, locale_t locale); 10301 extern size_t strlen(const char *__s); 10302 extern char *strncat(char *__dest, const char *__src, size_t __n); 10303 extern int strncmp(const char *__s1, const char *__s2, size_t __n); 10304 extern char *strncpy(char *__dest, const char *__src, size_t __n); 10305 extern char *strndup(const char *__string, size_t __n); 10306 extern size_t strnlen(const char *__string, size_t __maxlen); 10307 extern char *strpbrk(const char *__s, const char *__accept); 10308 extern char *strrchr(const char *__s, int __c); 10309 extern char *strsep(char **__stringp, const char *__delim); 10310 extern char *strsignal(int __sig); 10311 extern size_t strspn(const char *__s, const char *__accept); 10312 extern char *strstr(const char *__haystack, const char *__needle); 10313 extern char *strtok(char *__s, const char *__delim); 10314 extern char *strtok_r(char *__s, const char *__delim, char **__save_ptr); 10315 extern size_t strxfrm(char *__dest, const char *__src, size_t __n); 10316 extern size_t strxfrm_l(char *s1, const char *s2, size_t n, 10317 locale_t locale); 10318 __________________________________________________________ 10319 10320 14.4.67. strings.h 10321 10322 extern int bcmp(const void *__s1, const void *__s2, size_t __n); 10323 extern void bcopy(const void *__src, void *__dest, size_t __n); 10324 extern void bzero(void *__s, size_t __n); 10325 extern int ffs(int __i); 10326 extern char *index(const char *__s, int __c); 10327 extern char *rindex(const char *__s, int __c); 10328 extern int strcasecmp(const char *__s1, const char *__s2); 10329 extern int strcasecmp_l(const char *s1, const char *s2, locale_t locale); 10330 extern int strncasecmp(const char *__s1, const char *__s2, size_t __n); 10331 extern int strncasecmp_l(const char *s1, const char *s2, size_t n, 10332 locale_t locale); 10333 __________________________________________________________ 10334 10335 14.4.68. sys/epoll.h 10336 10337 #define EPOLL_CTL_ADD 1 /* Add a file decriptor to the interface. */ 10338 #define EPOLL_CTL_DEL 2 /* Remove a file decriptor from the interface. */ 10339 #define EPOLL_CTL_MOD 3 /* Change file decriptor epoll_event structure. */ 10340 #define EPOLLIN 1 10341 #define EPOLLPRI 2 10342 #define EPOLLOUT 4 10343 #define EPOLLERR 8 10344 #define EPOLLHUP 16 10345 #define EPOLLRDHUP 0x2000 10346 #define EPOLLONESHOT (1 << 30) 10347 #define EPOLLET (1 << 31) 10348 10349 typedef union epoll_data { 10350 void *ptr; 10351 int fd; 10352 uint32_t u32; 10353 uint64_t u64; 10354 } epoll_data_t; 10355 10356 struct epoll_event { 10357 uint32_t events; 10358 epoll_data_t data; 10359 }; 10360 extern int epoll_create(int __size); 10361 extern int epoll_ctl(int __epfd, int __op, int __fd, 10362 struct epoll_event *__event); 10363 extern int epoll_wait(int __epfd, struct epoll_event *__events, 10364 int __maxevents, int __timeout); 10365 __________________________________________________________ 10366 10367 14.4.69. sys/file.h 10368 10369 #define LOCK_SH 1 10370 #define LOCK_EX 2 10371 #define LOCK_NB 4 10372 #define LOCK_UN 8 10373 10374 extern int flock(int __fd, int __operation); 10375 __________________________________________________________ 10376 10377 14.4.70. sys/inotify.h 10378 10379 #define IN_ACCESS 0x00000001 10380 #define IN_MODIFY 0x00000002 10381 #define IN_ATTRIB 0x00000004 10382 #define IN_CLOSE_WRITE 0x00000008 10383 #define IN_CLOSE_NOWRITE 0x00000010 10384 #define IN_OPEN 0x00000020 10385 #define IN_MOVED_FROM 0x00000040 10386 #define IN_MOVED_TO 0x00000080 10387 #define IN_CREATE 0x00000100 10388 #define IN_DELETE 0x00000200 10389 #define IN_DELETE_SELF 0x00000400 10390 #define IN_MOVE_SELF 0x00000800 10391 #define IN_UNMOUNT 0x00002000 10392 #define IN_Q_OVERFLOW 0x00004000 10393 #define IN_IGNORED 0x00008000 10394 #define IN_ISDIR 0x40000000 10395 #define IN_ONESHOT 0x80000000 10396 #define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) 10397 #define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) 10398 #define IN_ALL_EVENTS \ 10399 (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ 10400 IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | IN_MOVED_TO | IN_CREATE | \ 10401 IN_DELETE | IN_DELETE_SELF | IN_MOVE_SELF) 10402 10403 struct inotify_event { 10404 int wd; 10405 uint32_t mask; 10406 uint32_t cookie; 10407 uint32_t len; 10408 char name[]; 10409 }; 10410 extern int inotify_add_watch(int __fd, const char *__name, 10411 uint32_t __mask); 10412 extern int inotify_init(void); 10413 extern int inotify_rm_watch(int __fd, int __wd); 10414 __________________________________________________________ 10415 10416 14.4.71. sys/ioctl.h 10417 10418 #define _IOC(dir,type,nr,size) (((dir) << _IOC_DIRSHIFT) | ((type) << _IOC_TYPESHIFT) | ((nr) << _IOC_NRSHIFT) | ((size) << _IOC_SIZESHIFT)) 10419 #define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) 10420 #define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) 10421 #define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) 10422 #define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) 10423 #define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1) 10424 #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) 10425 #define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1) 10426 #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) 10427 #define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) 10428 #define _IOC_TYPECHECK(t) (sizeof(t)) 10429 #define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) 10430 #define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT) 10431 #define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) 10432 #define IOCSIZE_SHIFT (_IOC_SIZESHIFT) 10433 #define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) 10434 #define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS) 10435 #define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) 10436 #define _IOC_NRSHIFT 0 10437 #define _IOC_NONE 0U 10438 #define _IOC_SIZEBITS 14 10439 #define _IOC_WRITE 1U 10440 #define _IOC_DIRBITS 2 10441 #define _IOC_READ 2U 10442 #define _IOC_NRBITS 8 10443 #define _IOC_TYPEBITS 8 10444 #define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) 10445 #define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) 10446 #define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) 10447 #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) 10448 #define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) 10449 #define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) 10450 #define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) 10451 10452 struct winsize { 10453 unsigned short ws_row; /* Rows, in characters. */ 10454 unsigned short ws_col; /* Columns, in characters. */ 10455 unsigned short ws_xpixel; /* Horizontal pixels. */ 10456 unsigned short ws_ypixel; /* Vertical pixels. */ 10457 }; 10458 extern int ioctl(int __fd, unsigned long int __request, ...); 10459 __________________________________________________________ 10460 10461 14.4.72. sys/ipc.h 10462 10463 #define IPC_PRIVATE ((key_t)0) 10464 #define IPC_RMID 0 10465 #define IPC_CREAT 00001000 10466 #define IPC_EXCL 00002000 10467 #define IPC_NOWAIT 00004000 10468 #define IPC_SET 1 10469 #define IPC_STAT 2 10470 10471 extern key_t ftok(const char *__pathname, int __proj_id); 10472 __________________________________________________________ 10473 10474 14.4.73. sys/mman.h 10475 10476 #define MAP_FAILED ((void*)-1) 10477 #define POSIX_MADV_NORMAL 0 10478 #define PROT_NONE 0x0 10479 #define MAP_SHARED 0x01 10480 #define MAP_PRIVATE 0x02 10481 #define PROT_READ 0x1 10482 #define MAP_FIXED 0x10 10483 #define PROT_WRITE 0x2 10484 #define MAP_ANONYMOUS 0x20 10485 #define PROT_EXEC 0x4 10486 #define MREMAP_MAYMOVE 1 10487 #define MS_ASYNC 1 10488 #define POSIX_MADV_RANDOM 1 10489 #define MREMAP_FIXED 2 10490 #define MS_INVALIDATE 2 10491 #define POSIX_MADV_SEQUENTIAL 2 10492 #define POSIX_MADV_WILLNEED 3 10493 #define MS_SYNC 4 10494 #define POSIX_MADV_DONTNEED 4 10495 #define MAP_ANON MAP_ANONYMOUS 10496 10497 extern int mlock(const void *__addr, size_t __len); 10498 extern int mlockall(int __flags); 10499 extern void *mmap(void *__addr, size_t __len, int __prot, int __flags, 10500 int __fd, off_t __offset); 10501 extern void *mmap64(void *__addr, size_t __len, int __prot, int __flags, 10502 int __fd, off64_t __offset); 10503 extern int mprotect(void *__addr, size_t __len, int __prot); 10504 extern void *mremap(void *__addr, size_t __old_len, size_t __new_len, 10505 int __flags, ...); 10506 extern int msync(void *__addr, size_t __len, int __flags); 10507 extern int munlock(const void *__addr, size_t __len); 10508 extern int munlockall(void); 10509 extern int munmap(void *__addr, size_t __len); 10510 extern int posix_madvise(void *__addr, size_t __len, int __advice); 10511 extern int shm_open(const char *__name, int __oflag, mode_t __mode); 10512 extern int shm_unlink(const char *__name); 10513 __________________________________________________________ 10514 10515 14.4.74. sys/msg.h 10516 10517 #define MSG_NOERROR 010000 10518 10519 extern int msgctl(int __msqid, int __cmd, struct msqid_ds *__buf); 10520 extern int msgget(key_t __key, int __msgflg); 10521 extern ssize_t msgrcv(int __msqid, void *__msgp, size_t __msgsz, 10522 long int __msgtyp, int __msgflg); 10523 extern int msgsnd(int __msqid, const void *__msgp, size_t __msgsz, 10524 int __msgflg); 10525 __________________________________________________________ 10526 10527 14.4.75. sys/param.h 10528 10529 #define NOFILE 256 10530 #define MAXPATHLEN 4096 10531 __________________________________________________________ 10532 10533 14.4.76. sys/poll.h 10534 10535 #define POLLIN 0x0001 /* There is data to read */ 10536 #define POLLPRI 0x0002 /* There is urgent data to read */ 10537 #define POLLOUT 0x0004 /* Writing now will not block */ 10538 #define POLLERR 0x0008 /* Error condition */ 10539 #define POLLHUP 0x0010 /* Hung up */ 10540 #define POLLNVAL 0x0020 /* Invalid request: fd not open */ 10541 #define POLLRDNORM 0x0040 /* Normal data may be read */ 10542 #define POLLRDBAND 0x0080 /* Priority data may be read */ 10543 #define POLLWRNORM 0x0100 /* Writing now will not block */ 10544 #define POLLWRBAND 0x0200 /* Priority data may be written */ 10545 10546 struct pollfd { 10547 int fd; /* File descriptor to poll. */ 10548 short events; /* Types of events poller cares about. */ 10549 short revents; /* Types of events that actually occurred. */ 10550 }; 10551 typedef unsigned long int nfds_t; 10552 __________________________________________________________ 10553 10554 14.4.77. sys/ptrace.h 10555 10556 enum __ptrace_setoptions { 10557 PTRACE_O_TRACESYSGOOD = 0x00000001, 10558 PTRACE_O_TRACEFORK = 0x00000002, 10559 PTRACE_O_TRACEVFORK = 0x00000004, 10560 PTRACE_O_TRACECLONE = 0x00000008, 10561 PTRACE_O_TRACEEXEC = 0x00000010, 10562 PTRACE_O_TRACEVFORKDONE = 0x00000020, 10563 PTRACE_O_TRACEEXIT = 0x00000040, 10564 PTRACE_O_MASK = 0x0000007f 10565 }; 10566 enum __ptrace_eventcodes { 10567 PTRACE_EVENT_FORK = 1, 10568 PTRACE_EVENT_VFORK = 2, 10569 PTRACE_EVENT_CLONE = 3, 10570 PTRACE_EVENT_EXEC = 4, 10571 PTRACE_EVENT_VFORK_DONE = 5, 10572 PTRACE_EVENT_EXIT = 6 10573 }; 10574 extern long int ptrace(enum __ptrace_request, ...); 10575 __________________________________________________________ 10576 10577 14.4.78. sys/resource.h 10578 10579 #define RUSAGE_CHILDREN (-1) 10580 #define RLIM_INFINITY (~0UL) 10581 #define RLIM_SAVED_CUR -1 10582 #define RLIM_SAVED_MAX -1 10583 #define RLIMIT_CPU 0 10584 #define RUSAGE_SELF 0 10585 #define RLIMIT_FSIZE 1 10586 #define RLIMIT_LOCKS 10 10587 #define RLIMIT_SIGPENDING 11 10588 #define RLIMIT_MSGQUEUE 12 10589 #define RLIMIT_NICE 13 10590 #define RLIMIT_RTPRIO 14 10591 #define RLIMIT_RTTIME 15 10592 #define RLIM_NLIMITS 16 10593 #define RLIMIT_DATA 2 10594 #define RLIMIT_STACK 3 10595 #define RLIMIT_CORE 4 10596 #define RLIMIT_RSS 5 10597 #define RLIMIT_NPROC 6 10598 #define RLIMIT_NOFILE 7 10599 #define RLIMIT_MEMLOCK 8 10600 #define RLIMIT_AS 9 10601 10602 typedef unsigned long int rlim_t; 10603 typedef unsigned long long int rlim64_t; 10604 typedef int __rlimit_resource_t; 10605 10606 struct rlimit { 10607 rlim_t rlim_cur; /* The current (soft) limit. */ 10608 rlim_t rlim_max; /* The hard limit. */ 10609 }; 10610 struct rlimit64 { 10611 rlim64_t rlim_cur; /* The current (soft) limit. */ 10612 rlim64_t rlim_max; /* The hard limit. */ 10613 }; 10614 10615 struct rusage { 10616 struct timeval ru_utime; /* Total amount of user time used. */ 10617 struct timeval ru_stime; /* Total amount of system time used. */ 10618 long int ru_maxrss; /* Maximum resident set size (in kilobytes). */ 10619 long int ru_ixrss; /* Amount of sharing of text segment memory with other p */ 10620 long int ru_idrss; /* Amount of data segment memory used (kilobyte-seconds). */ 10621 long int ru_isrss; /* Amount of stack memory used (kilobyte-seconds). */ 10622 long int ru_minflt; /* Number of soft page faults (i.e. those serviced by reclaimin */ 10623 long int ru_majflt; /* Number of hard page faults (i.e. those that required I/O). */ 10624 long int ru_nswap; /* Number of times a process was swapped out of physical memory */ 10625 long int ru_inblock; /* Number of input operations via the file system. Note: This */ 10626 long int ru_oublock; /* Number of output operations via the file system. */ 10627 long int ru_msgsnd; /* Number of IPC messages sent. */ 10628 long int ru_msgrcv; /* Number of IPC messages received. */ 10629 long int ru_nsignals; /* Number of signals delivered. */ 10630 long int ru_nvcsw; /* Number of voluntary context switches, i.e. because the proce */ 10631 long int ru_nivcsw; /* Number of involuntary context switches, i.e. a higher priori */ 10632 }; 10633 10634 enum __priority_which { 10635 PRIO_PROCESS = 0, /* WHO is a process ID. */ 10636 PRIO_PGRP = 1, /* WHO is a process group ID. */ 10637 PRIO_USER = 2 /* WHO is a user ID. */ 10638 }; 10639 10640 #define PRIO_PGRP PRIO_PGRP 10641 #define PRIO_PROCESS PRIO_PROCESS 10642 #define PRIO_USER PRIO_USER 10643 10644 typedef enum __priority_which __priority_which_t; 10645 extern int getpriority(__priority_which_t __which, id_t __who); 10646 extern int getrlimit(__rlimit_resource_t __resource, 10647 struct rlimit *__rlimits); 10648 extern int getrlimit64(__rlimit_resource_t __resource, 10649 struct rlimit64 *__rlimits); 10650 extern int getrusage(int __who, struct rusage *__usage); 10651 extern int setpriority(__priority_which_t __which, id_t __who, int __prio); 10652 extern int setrlimit(__rlimit_resource_t __resource, 10653 const struct rlimit *__rlimits); 10654 extern int setrlimit64(__rlimit_resource_t __resource, 10655 const struct rlimit64 *__rlimits); 10656 __________________________________________________________ 10657 10658 14.4.79. sys/select.h 10659 10660 #define FD_ISSET(d,set) (((set)->fds_bits[((d)/(8*sizeof(long)))]&(1L<<((d)%(8*sizeof(long)))))!=0) 10661 #define FD_CLR(d,set) ((set)->fds_bits[((d)/(8*sizeof(long)))]&=~(1L<<((d)%(8*sizeof(long))))) 10662 #define FD_SET(d,set) ((set)->fds_bits[((d)/(8*sizeof(long)))]|=(1L<<((d)%(8*sizeof(long))))) 10663 #define NFDBITS (8 * sizeof (long)) 10664 #define FD_SETSIZE 1024 10665 #define FD_ZERO(fdsetp) bzero(fdsetp, sizeof(*(fdsetp))) 10666 10667 typedef struct { 10668 unsigned long int fds_bits[FD_SETSIZE / NFDBITS]; 10669 } fd_set; 10670 extern int pselect(int __nfds, fd_set * __readfds, fd_set * __writefds, 10671 fd_set * __exceptfds, const struct timespec *__timeout, 10672 const sigset_t * __sigmask); 10673 extern int select(int __nfds, fd_set * __readfds, fd_set * __writefds, 10674 fd_set * __exceptfds, struct timeval *__timeout); 10675 __________________________________________________________ 10676 10677 14.4.80. sys/sem.h 10678 10679 #define SEM_UNDO 0x1000 10680 #define GETPID 11 10681 #define GETVAL 12 10682 #define GETALL 13 10683 #define GETNCNT 14 10684 #define GETZCNT 15 10685 #define SETVAL 16 10686 #define SETALL 17 10687 10688 struct sembuf { 10689 short sem_num; 10690 short sem_op; 10691 short sem_flg; 10692 }; 10693 extern int semctl(int __semid, int __semnum, int __cmd, ...); 10694 extern int semget(key_t __key, int __nsems, int __semflg); 10695 extern int semop(int __semid, struct sembuf *__sops, size_t __nsops); 10696 __________________________________________________________ 10697 10698 14.4.81. sys/sendfile.h 10699 10700 extern ssize_t sendfile(int __out_fd, int __in_fd, off_t * __offset, 10701 size_t __count); 10702 extern ssize_t sendfile64(int __out_fd, int __in_fd, off64_t * __offset, 10703 size_t __count); 10704 __________________________________________________________ 10705 10706 14.4.82. sys/shm.h 10707 10708 #define SHM_RDONLY 010000 10709 #define SHM_W 0200 10710 #define SHM_RND 020000 10711 #define SHM_R 0400 10712 #define SHM_REMAP 040000 10713 #define SHM_LOCK 11 10714 #define SHM_UNLOCK 12 10715 10716 extern int __getpagesize(void); 10717 extern void *shmat(int __shmid, const void *__shmaddr, int __shmflg); 10718 extern int shmctl(int __shmid, int __cmd, struct shmid_ds *__buf); 10719 extern int shmdt(const void *__shmaddr); 10720 extern int shmget(key_t __key, size_t __size, int __shmflg); 10721 __________________________________________________________ 10722 10723 14.4.83. sys/socket.h 10724 10725 #define CMSG_FIRSTHDR(msg) ((size_t) (msg)->msg_controllen >= sizeof(struct cmsghdr) ? (struct cmsghdr *)(msg)->msg_control : (struct cmsghdr *) NULL) 10726 #define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr))+(len)) 10727 #define SCM_RIGHTS 0x01 10728 #define SOL_SOCKET 1 10729 #define SOMAXCONN 128 10730 #define SOL_RAW 255 10731 #define CMSG_ALIGN(len) \ 10732 (((len)+sizeof(size_t)-1)&(size_t)~(sizeof(size_t)-1)) 10733 #define CMSG_DATA(cmsg) \ 10734 ((unsigned char *) (cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))) 10735 #define CMSG_SPACE(len) \ 10736 (CMSG_ALIGN(sizeof(struct cmsghdr))+CMSG_ALIGN(len)) 10737 #define CMSG_NXTHDR(mhdr,cmsg) \ 10738 (((cmsg) == NULL) ? CMSG_FIRSTHDR(mhdr) : \ 10739 (((u_char *)(cmsg) + CMSG_ALIGN((cmsg)->cmsg_len) \ 10740 + CMSG_ALIGN(sizeof(struct cmsghdr)) > \ 10741 (u_char *)((mhdr)->msg_control) + (mhdr)->msg_controllen) ? \ 10742 (struct cmsghdr *)NULL : \ 10743 (struct cmsghdr *)((u_char *)(cmsg) + CMSG_ALIGN((cmsg)->cmsg_len)))) 10744 10745 struct linger { 10746 int l_onoff; 10747 int l_linger; 10748 }; 10749 struct cmsghdr { 10750 size_t cmsg_len; 10751 int cmsg_level; 10752 int cmsg_type; 10753 }; 10754 struct iovec { 10755 void *iov_base; 10756 size_t iov_len; 10757 }; 10758 10759 typedef unsigned short sa_family_t; 10760 typedef unsigned int socklen_t; 10761 10762 struct sockaddr { 10763 sa_family_t sa_family; 10764 char sa_data[14]; 10765 }; 10766 struct sockaddr_storage { 10767 sa_family_t ss_family; 10768 __ss_aligntype __ss_align; 10769 char __ss_padding[(128 - (2 * sizeof(__ss_aligntype)))]; 10770 }; 10771 10772 struct msghdr { 10773 void *msg_name; 10774 int msg_namelen; 10775 struct iovec *msg_iov; 10776 size_t msg_iovlen; 10777 void *msg_control; 10778 size_t msg_controllen; 10779 unsigned int msg_flags; 10780 }; 10781 10782 #define AF_UNSPEC 0 10783 #define AF_UNIX 1 10784 #define AF_INET6 10 10785 #define AF_INET 2 10786 10787 #define PF_INET AF_INET 10788 #define PF_INET6 AF_INET6 10789 #define PF_UNIX AF_UNIX 10790 #define PF_UNSPEC AF_UNSPEC 10791 10792 #define SOCK_STREAM 1 10793 #define SOCK_PACKET 10 10794 #define SOCK_DGRAM 2 10795 #define SOCK_RAW 3 10796 #define SOCK_RDM 4 10797 #define SOCK_SEQPACKET 5 10798 10799 #define SO_DEBUG 1 10800 #define SO_OOBINLINE 10 10801 #define SO_NO_CHECK 11 10802 #define SO_PRIORITY 12 10803 #define SO_LINGER 13 10804 #define SO_BSDCOMPAT 14 10805 #define SO_REUSEADDR 2 10806 #define SO_TYPE 3 10807 #define SO_ACCEPTCONN 30 10808 #define SO_ERROR 4 10809 #define SO_DONTROUTE 5 10810 #define SO_BROADCAST 6 10811 #define SO_SNDBUF 7 10812 #define SO_RCVBUF 8 10813 #define SO_KEEPALIVE 9 10814 10815 #define SIOCGIFNAME 0x8910 10816 #define SIOCGIFCONF 0x8912 10817 #define SIOCGIFFLAGS 0x8913 10818 #define SIOCGIFADDR 0x8915 10819 #define SIOCGIFDSTADDR 0x8917 10820 #define SIOCGIFBRDADDR 0x8919 10821 #define SIOCGIFNETMASK 0x891b 10822 #define SIOCGIFMTU 0x8921 10823 #define SIOCGIFHWADDR 0x8927 10824 10825 #define SHUT_RD 0 10826 #define SHUT_WR 1 10827 #define SHUT_RDWR 2 10828 10829 #define MSG_WAITALL 0x100 10830 #define MSG_TRUNC 0x20 10831 #define MSG_NOSIGNAL 0x4000 10832 #define MSG_EOR 0x80 10833 #define MSG_OOB 1 10834 #define MSG_PEEK 2 10835 #define MSG_DONTROUTE 4 10836 #define MSG_CTRUNC 8 10837 10838 extern ssize_t __recv_chk(int, void *, size_t, size_t, int); 10839 extern ssize_t __recvfrom_chk(int, void *, size_t, size_t, int, 10840 struct sockaddr *, socklen_t *); 10841 extern int accept(int __fd, struct sockaddr *__addr, 10842 socklen_t * __addr_len); 10843 extern int bind(int __fd, const struct sockaddr *__addr, socklen_t __len); 10844 extern int connect(int __fd, const struct sockaddr *__addr, 10845 socklen_t __len); 10846 extern int getnameinfo(const struct sockaddr *__sa, socklen_t __salen, 10847 char *__host, socklen_t __hostlen, char *__serv, 10848 socklen_t __servlen, unsigned int __flags); 10849 extern int getpeername(int __fd, struct sockaddr *__addr, 10850 socklen_t * __len); 10851 extern int getsockname(int __fd, struct sockaddr *__addr, 10852 socklen_t * __len); 10853 extern int getsockopt(int __fd, int __level, int __optname, void *__optval, 10854 socklen_t * __optlen); 10855 extern int listen(int __fd, int __n); 10856 extern ssize_t recv(int __fd, void *__buf, size_t __n, int __flags); 10857 extern ssize_t recvfrom(int __fd, void *__buf, size_t __n, int __flags, 10858 struct sockaddr *__addr, socklen_t * __addr_len); 10859 extern ssize_t recvmsg(int __fd, struct msghdr *__message, int __flags); 10860 extern ssize_t send(int __fd, const void *__buf, size_t __n, int __flags); 10861 extern ssize_t sendmsg(int __fd, const struct msghdr *__message, 10862 int __flags); 10863 extern ssize_t sendto(int __fd, const void *__buf, size_t __n, int __flags, 10864 const struct sockaddr *__addr, socklen_t __addr_len); 10865 extern int setsockopt(int __fd, int __level, int __optname, 10866 const void *__optval, socklen_t __optlen); 10867 extern int shutdown(int __fd, int __how); 10868 extern int sockatmark(int __fd); 10869 extern int socket(int __domain, int __type, int __protocol); 10870 extern int socketpair(int __domain, int __type, int __protocol, 10871 int __fds[2]); 10872 __________________________________________________________ 10873 10874 14.4.84. sys/stat.h 10875 10876 #define S_ISBLK(m) (((m)&S_IFMT)==S_IFBLK) 10877 #define S_ISCHR(m) (((m)&S_IFMT)==S_IFCHR) 10878 #define S_ISDIR(m) (((m)&S_IFMT)==S_IFDIR) 10879 #define S_ISFIFO(m) (((m)&S_IFMT)==S_IFIFO) 10880 #define S_ISLNK(m) (((m)&S_IFMT)==S_IFLNK) 10881 #define S_ISREG(m) (((m)&S_IFMT)==S_IFREG) 10882 #define S_ISSOCK(m) (((m)&S_IFMT)==S_IFSOCK) 10883 #define UTIME_NOW ((1l << 30) - 1l) 10884 #define UTIME_OMIT ((1l << 30) - 2l) 10885 #define S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) 10886 #define S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) 10887 #define S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) 10888 #define S_IRWXU (S_IREAD|S_IWRITE|S_IEXEC) 10889 #define S_IROTH (S_IRGRP>>3) 10890 #define S_IRGRP (S_IRUSR>>3) 10891 #define S_IRWXO (S_IRWXG>>3) 10892 #define S_IRWXG (S_IRWXU>>3) 10893 #define S_IWOTH (S_IWGRP>>3) 10894 #define S_IWGRP (S_IWUSR>>3) 10895 #define S_IXOTH (S_IXGRP>>3) 10896 #define S_IXGRP (S_IXUSR>>3) 10897 #define S_ISVTX 01000 10898 #define S_IXUSR 0x0040 10899 #define S_IWUSR 0x0080 10900 #define S_IRUSR 0x0100 10901 #define S_ISGID 0x0400 10902 #define S_ISUID 0x0800 10903 #define S_IFIFO 0x1000 10904 #define S_IFCHR 0x2000 10905 #define S_IFDIR 0x4000 10906 #define S_IFBLK 0x6000 10907 #define S_IFREG 0x8000 10908 #define S_IFLNK 0xa000 10909 #define S_IFSOCK 0xc000 10910 #define S_IFMT 0xf000 10911 #define st_atime st_atim.tv_sec 10912 #define st_ctime st_ctim.tv_sec 10913 #define st_mtime st_mtim.tv_sec 10914 #define S_IREAD S_IRUSR 10915 #define S_IWRITE S_IWUSR 10916 #define S_IEXEC S_IXUSR 10917 10918 extern int __fxstat(int __ver, int __fildes, struct stat *__stat_buf); 10919 extern int __fxstat64(int __ver, int __fildes, struct stat64 *__stat_buf); 10920 extern int __fxstatat(int __ver, int __fildes, const char *__filename, 10921 struct stat *__stat_buf, int __flag); 10922 extern int __fxstatat64(int __ver, int __fildes, const char *__filename, 10923 struct stat64 *__stat_buf, int __flag); 10924 extern int __lxstat(int __ver, const char *__filename, 10925 struct stat *__stat_buf); 10926 extern int __lxstat64(int __ver, const char *__filename, 10927 struct stat64 *__stat_buf); 10928 extern int __xmknod(int __ver, const char *__path, mode_t __mode, 10929 dev_t * __dev); 10930 extern int __xmknodat(int __ver, int __fd, const char *__path, 10931 mode_t __mode, dev_t * __dev); 10932 extern int __xstat(int __ver, const char *__filename, 10933 struct stat *__stat_buf); 10934 extern int __xstat64(int __ver, const char *__filename, 10935 struct stat64 *__stat_buf); 10936 extern int chmod(const char *__file, mode_t __mode); 10937 extern int fchmod(int __fd, mode_t __mode); 10938 extern int fchmodat(int __fd, const char *__file, mode_t mode, int __flag); 10939 extern int fstat(int __fd, struct stat *__buf); 10940 extern int fstat64(int __fd, struct stat64 *__buf); 10941 extern int fstatat(int __fd, const char *__file, struct stat *__buf, 10942 int __flag); 10943 extern int fstatat64(int __fd, const char *__file, struct stat64 *__buf, 10944 int __flag); 10945 extern int futimens(int fd, const struct timespec times[2]); 10946 extern int lstat(const char *__file, struct stat *__buf); 10947 extern int lstat64(const char *__file, struct stat64 *__buf); 10948 extern int mkdir(const char *__path, mode_t __mode); 10949 extern int mkdirat(int __fd, const char *__path, mode_t __mode); 10950 extern int mkfifo(const char *__path, mode_t __mode); 10951 extern int mkfifoat(int __fd, const char *__path, mode_t __mode); 10952 extern int mknod(const char *__path, mode_t __mode, dev_t __dev); 10953 extern int mknodat(int __fd, const char *__path, mode_t __mode, 10954 dev_t __dev); 10955 extern int stat(const char *__file, struct stat *__buf); 10956 extern int stat64(const char *__file, struct stat64 *__buf); 10957 extern mode_t umask(mode_t __mask); 10958 extern int utimensat(int fd, const char *path, 10959 const struct timespec times[2], int flags); 10960 __________________________________________________________ 10961 10962 14.4.85. sys/statfs.h 10963 10964 #define NFS_SUPER_MAGIC 0x6969 10965 10966 extern int fstatfs(int __fildes, struct statfs *__buf); 10967 extern int fstatfs64(int __fildes, struct statfs64 *__buf); 10968 extern int statfs(const char *__file, struct statfs *__buf); 10969 extern int statfs64(const char *__file, struct statfs64 *__buf); 10970 __________________________________________________________ 10971 10972 14.4.86. sys/statvfs.h 10973 10974 extern int fstatvfs(int __fildes, struct statvfs *__buf); 10975 extern int fstatvfs64(int __fildes, struct statvfs64 *__buf); 10976 extern int statvfs(const char *__file, struct statvfs *__buf); 10977 extern int statvfs64(const char *__file, struct statvfs64 *__buf); 10978 __________________________________________________________ 10979 10980 14.4.87. sys/sysinfo.h 10981 10982 struct sysinfo { 10983 long int uptime; /* Seconds since boot */ 10984 unsigned long int loads[3]; /* 1, 5, and 15 minute load averages */ 10985 unsigned long int totalram; /* Total usable main memory size */ 10986 unsigned long int freeram; /* Available memory size */ 10987 unsigned long int sharedram; /* Amount of shared memory */ 10988 unsigned long int bufferram; /* Memory used by buffers */ 10989 unsigned long int totalswap; /* Total swap space size */ 10990 unsigned long int freeswap; /* Swap space still available */ 10991 unsigned short procs; /* Number of current processes */ 10992 unsigned short pad; /* Padding for m68k */ 10993 unsigned long int totalhigh; /* Total high memory size */ 10994 unsigned long int freehigh; /* Available high memory size */ 10995 unsigned int mem_unit; /* Memory unit size in bytes */ 10996 char _f[20 - 2 * sizeof(long) - sizeof(int)]; /* Padding for libc5 */ 10997 }; 10998 extern int sysinfo(struct sysinfo *info); 10999 __________________________________________________________ 11000 11001 14.4.88. sys/time.h 11002 11003 #define ITIMER_REAL 0 11004 #define ITIMER_VIRTUAL 1 11005 #define ITIMER_PROF 2 11006 11007 struct timezone { 11008 int tz_minuteswest; 11009 int tz_dsttime; 11010 }; 11011 11012 typedef int __itimer_which_t; 11013 11014 struct itimerval { 11015 struct timeval it_interval; 11016 struct timeval it_value; 11017 }; 11018 extern int adjtime(const struct timeval *__delta, 11019 struct timeval *__olddelta); 11020 extern int futimes(int fd, const struct timeval tv[2]); 11021 extern int getitimer(__itimer_which_t __which, struct itimerval *__value); 11022 extern int gettimeofday(struct timeval *__tv, struct timezone *__tz); 11023 extern int lutimes(const char *filename, const struct timeval tv[2]); 11024 extern int setitimer(__itimer_which_t __which, 11025 const struct itimerval *__new, 11026 struct itimerval *__old); 11027 extern int utimes(const char *__file, const struct timeval *__tvp); 11028 __________________________________________________________ 11029 11030 14.4.89. sys/timeb.h 11031 11032 struct timeb { 11033 time_t time; /* Seconds since epoch, as from time. */ 11034 unsigned short millitm; /* Additional milliseconds. */ 11035 short timezone; /* Minutes west of GMT. */ 11036 short dstflag; /* Nonzero if Daylight Savings Time used. */ 11037 }; 11038 extern int ftime(struct timeb *__timebuf); 11039 __________________________________________________________ 11040 11041 14.4.90. sys/times.h 11042 11043 struct tms { 11044 clock_t tms_utime; 11045 clock_t tms_stime; 11046 clock_t tms_cutime; 11047 clock_t tms_cstime; 11048 }; 11049 extern clock_t times(struct tms *__buffer); 11050 __________________________________________________________ 11051 11052 14.4.91. sys/types.h 11053 11054 #ifndef FALSE 11055 #define FALSE 0 11056 #endif 11057 #ifndef TRUE 11058 #define TRUE 1 11059 #endif 11060 11061 typedef unsigned char u_int8_t; 11062 typedef unsigned short u_int16_t; 11063 typedef unsigned int u_int32_t; 11064 typedef unsigned long long int u_int64_t; 11065 typedef unsigned int uid_t; 11066 typedef int pid_t; 11067 typedef long int off_t; 11068 typedef long long int off64_t; 11069 typedef int key_t; 11070 typedef long int suseconds_t; 11071 typedef unsigned int u_int; 11072 typedef struct { 11073 int __val[2]; 11074 } fsid_t; 11075 typedef unsigned int useconds_t; 11076 typedef long int blksize_t; 11077 typedef long int fd_mask; 11078 typedef void *timer_t; 11079 typedef int clockid_t; 11080 11081 typedef unsigned int id_t; 11082 11083 typedef unsigned long long int ino64_t; 11084 typedef long long int loff_t; 11085 typedef long int blkcnt_t; 11086 typedef unsigned long int fsblkcnt_t; 11087 typedef unsigned long int fsfilcnt_t; 11088 typedef long long int blkcnt64_t; 11089 typedef unsigned long long int fsblkcnt64_t; 11090 typedef unsigned long long int fsfilcnt64_t; 11091 typedef unsigned char u_char; 11092 typedef unsigned short u_short; 11093 typedef unsigned long int u_long; 11094 11095 typedef unsigned long int ino_t; 11096 typedef unsigned int gid_t; 11097 typedef unsigned long long int dev_t; 11098 typedef unsigned int mode_t; 11099 typedef unsigned long int nlink_t; 11100 typedef char *caddr_t; 11101 11102 typedef long int clock_t; 11103 typedef long int time_t; 11104 __________________________________________________________ 11105 11106 14.4.92. sys/uio.h 11107 11108 extern ssize_t readv(int __fd, const struct iovec *__iovec, int __count); 11109 extern ssize_t writev(int __fd, const struct iovec *__iovec, int __count); 11110 __________________________________________________________ 11111 11112 14.4.93. sys/un.h 11113 11114 struct sockaddr_un { 11115 sa_family_t sun_family; /* AF_UNIX */ 11116 char sun_path[108]; 11117 }; 11118 __________________________________________________________ 11119 11120 14.4.94. sys/utsname.h 11121 11122 #define SYS_NMLN 65 11123 11124 struct utsname { 11125 char sysname[65]; 11126 char nodename[65]; 11127 char release[65]; 11128 char version[65]; 11129 char machine[65]; 11130 char domainname[65]; 11131 }; 11132 extern int uname(struct utsname *__name); 11133 __________________________________________________________ 11134 11135 14.4.95. sys/wait.h 11136 11137 #define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status)) 11138 #define WIFSTOPPED(status) (((status) & 0xff) == 0x7f) 11139 #define WEXITSTATUS(status) (((status) & 0xff00) >> 8) 11140 #define WTERMSIG(status) ((status) & 0x7f) 11141 #define WCOREDUMP(status) ((status) & 0x80) 11142 #define WIFEXITED(status) (WTERMSIG(status) == 0) 11143 #define WNOHANG 0x00000001 11144 #define WUNTRACED 0x00000002 11145 #define WCOREFLAG 0x80 11146 #define WSTOPSIG(status) WEXITSTATUS(status) 11147 11148 typedef enum { 11149 P_ALL, 11150 P_PID, 11151 P_PGID 11152 } idtype_t; 11153 extern pid_t wait(int *__stat_loc); 11154 extern pid_t wait4(pid_t __pid, int *__stat_loc, int __options, 11155 struct rusage *__usage); 11156 extern int waitid(idtype_t __idtype, id_t __id, siginfo_t * __infop, 11157 int __options); 11158 extern pid_t waitpid(pid_t __pid, int *__stat_loc, int __options); 11159 __________________________________________________________ 11160 11161 14.4.96. sysexits.h 11162 11163 #define EX_OK 0 /* successful termination */ 11164 #define EX_USAGE 64 /* command line usage error */ 11165 #define EX__BASE 64 /* base value for error messages */ 11166 #define EX_DATAERR 65 /* data format error */ 11167 #define EX_NOINPUT 66 /* cannot open input */ 11168 #define EX_NOUSER 67 /* addressee unknown */ 11169 #define EX_NOHOST 68 /* host name unknown */ 11170 #define EX_UNAVAILABLE 69 /* service unavailable */ 11171 #define EX_SOFTWARE 70 /* internal software error */ 11172 #define EX_OSERR 71 /* system error (e.g., cannot fork) */ 11173 #define EX_OSFILE 72 /* critical OS file missing */ 11174 #define EX_CANTCREAT 73 /* cannot create (user) output file */ 11175 #define EX_IOERR 74 /* input/output error */ 11176 #define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ 11177 #define EX_PROTOCOL 76 /* remote error in protocol */ 11178 #define EX_NOPERM 77 /* permission denied */ 11179 #define EX_CONFIG 78 /* configuration error */ 11180 __________________________________________________________ 11181 11182 14.4.97. syslog.h 11183 11184 #define LOG_MAKEPRI(fac, pri) (((fac) << 3) | (pri)) 11185 #define LOG_PRI(p) ((p) & LOG_PRIMASK) /* extract priority */ 11186 #define LOG_EMERG 0 /* system is unusable */ 11187 #define LOG_PRIMASK 0x07 /* mask to extract priority part */ 11188 #define LOG_ALERT 1 /* action must be taken immediately */ 11189 #define LOG_CRIT 2 /* critical conditions */ 11190 #define LOG_ERR 3 /* error conditions */ 11191 #define LOG_WARNING 4 /* warning conditions */ 11192 #define LOG_NOTICE 5 /* normal but significant condition */ 11193 #define LOG_INFO 6 /* informational */ 11194 #define LOG_DEBUG 7 /* debug-level messages */ 11195 11196 #define LOG_FAC(p) (((p) & LOG_FACMASK) >> 3) /* facility of pri */ 11197 #define LOG_KERN (0<<3) /* kernel messages */ 11198 #define LOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */ 11199 #define LOG_FTP (11<<3) /* ftp daemon */ 11200 #define LOG_USER (1<<3) /* random user-level messages */ 11201 #define LOG_MAIL (2<<3) /* mail system */ 11202 #define LOG_DAEMON (3<<3) /* system daemons */ 11203 #define LOG_AUTH (4<<3) /* security/authorization messages */ 11204 #define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */ 11205 #define LOG_LPR (6<<3) /* line printer subsystem */ 11206 #define LOG_NEWS (7<<3) /* network news subsystem */ 11207 #define LOG_UUCP (8<<3) /* UUCP subsystem */ 11208 #define LOG_CRON (9<<3) /* clock daemon */ 11209 #define LOG_FACMASK 0x03f8 /* mask to extract facility part */ 11210 11211 #define LOG_LOCAL0 (16<<3) /* reserved for local use */ 11212 #define LOG_LOCAL1 (17<<3) /* reserved for local use */ 11213 #define LOG_LOCAL2 (18<<3) /* reserved for local use */ 11214 #define LOG_LOCAL3 (19<<3) /* reserved for local use */ 11215 #define LOG_LOCAL4 (20<<3) /* reserved for local use */ 11216 #define LOG_LOCAL5 (21<<3) /* reserved for local use */ 11217 #define LOG_LOCAL6 (22<<3) /* reserved for local use */ 11218 #define LOG_LOCAL7 (23<<3) /* reserved for local use */ 11219 11220 #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */ 11221 #define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */ 11222 11223 #define LOG_PID 0x01 /* log the pid with each message */ 11224 #define LOG_CONS 0x02 /* log on the console if errors in sending */ 11225 #define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */ 11226 #define LOG_NDELAY 0x08 /* don't delay open */ 11227 #define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */ 11228 #define LOG_PERROR 0x20 /* log to stderr as well */ 11229 11230 extern void __syslog_chk(int, int, const char *, ...); 11231 extern void __vsyslog_chk(int, int, const char *, va_list); 11232 extern void closelog(void); 11233 extern void openlog(const char *__ident, int __option, int __facility); 11234 extern int setlogmask(int __mask); 11235 extern void syslog(int __pri, const char *__fmt, ...); 11236 extern void vsyslog(int __pri, const char *__fmt, va_list __ap); 11237 __________________________________________________________ 11238 11239 14.4.98. tar.h 11240 11241 #define REGTYPE '0' 11242 #define LNKTYPE '1' 11243 #define SYMTYPE '2' 11244 #define CHRTYPE '3' 11245 #define BLKTYPE '4' 11246 #define DIRTYPE '5' 11247 #define FIFOTYPE '6' 11248 #define CONTTYPE '7' 11249 #define AREGTYPE '\0' 11250 #define TVERSION "00" 11251 #define TOEXEC 00001 11252 #define TOWRITE 00002 11253 #define TOREAD 00004 11254 #define TGEXEC 00010 11255 #define TGWRITE 00020 11256 #define TGREAD 00040 11257 #define TUEXEC 00100 11258 #define TUWRITE 00200 11259 #define TUREAD 00400 11260 #define TSVTX 01000 11261 #define TSGID 02000 11262 #define TSUID 04000 11263 #define TVERSLEN 2 11264 #define TMAGLEN 6 11265 #define TMAGIC "ustar" 11266 __________________________________________________________ 11267 11268 14.4.99. termios.h 11269 11270 #define TCIFLUSH 0 11271 #define TCOOFF 0 11272 #define TCSANOW 0 11273 #define BS0 0000000 11274 #define CR0 0000000 11275 #define FF0 0000000 11276 #define NL0 0000000 11277 #define TAB0 0000000 11278 #define VT0 0000000 11279 #define OPOST 0000001 11280 #define OCRNL 0000010 11281 #define ONOCR 0000020 11282 #define ONLRET 0000040 11283 #define OFILL 0000100 11284 #define OFDEL 0000200 11285 #define NL1 0000400 11286 #define TCOFLUSH 1 11287 #define TCOON 1 11288 #define TCSADRAIN 1 11289 #define TCIOFF 2 11290 #define TCIOFLUSH 2 11291 #define TCSAFLUSH 2 11292 #define TCION 3 11293 11294 typedef unsigned int speed_t; 11295 typedef unsigned char cc_t; 11296 typedef unsigned int tcflag_t; 11297 11298 #define NCCS 32 11299 11300 struct termios { 11301 tcflag_t c_iflag; /* input mode flags */ 11302 tcflag_t c_oflag; /* output mode flags */ 11303 tcflag_t c_cflag; /* control mode flags */ 11304 tcflag_t c_lflag; /* local mode flags */ 11305 cc_t c_line; /* line discipline */ 11306 cc_t c_cc[NCCS]; /* control characters */ 11307 speed_t c_ispeed; /* input speed */ 11308 speed_t c_ospeed; /* output speed */ 11309 }; 11310 11311 #define VINTR 0 11312 #define VQUIT 1 11313 #define VLNEXT 15 11314 #define VERASE 2 11315 #define VKILL 3 11316 #define VEOF 4 11317 11318 #define IGNBRK 0000001 11319 #define BRKINT 0000002 11320 #define IGNPAR 0000004 11321 #define PARMRK 0000010 11322 #define INPCK 0000020 11323 #define ISTRIP 0000040 11324 #define INLCR 0000100 11325 #define IGNCR 0000200 11326 #define ICRNL 0000400 11327 #define IXANY 0004000 11328 #define IMAXBEL 0020000 11329 11330 #define CS5 0000000 11331 11332 #define ECHO 0000010 11333 11334 #define B0 0000000 11335 #define B50 0000001 11336 #define B75 0000002 11337 #define B110 0000003 11338 #define B134 0000004 11339 #define B150 0000005 11340 #define B200 0000006 11341 #define B300 0000007 11342 #define B600 0000010 11343 #define B1200 0000011 11344 #define B1800 0000012 11345 #define B2400 0000013 11346 #define B4800 0000014 11347 #define B9600 0000015 11348 #define B19200 0000016 11349 #define B38400 0000017 11350 11351 extern speed_t cfgetispeed(const struct termios *__termios_p); 11352 extern speed_t cfgetospeed(const struct termios *__termios_p); 11353 extern void cfmakeraw(struct termios *__termios_p); 11354 extern int cfsetispeed(struct termios *__termios_p, speed_t __speed); 11355 extern int cfsetospeed(struct termios *__termios_p, speed_t __speed); 11356 extern int cfsetspeed(struct termios *__termios_p, speed_t __speed); 11357 extern int tcdrain(int __fd); 11358 extern int tcflow(int __fd, int __action); 11359 extern int tcflush(int __fd, int __queue_selector); 11360 extern int tcgetattr(int __fd, struct termios *__termios_p); 11361 extern pid_t tcgetsid(int __fd); 11362 extern int tcsendbreak(int __fd, int __duration); 11363 extern int tcsetattr(int __fd, int __optional_actions, 11364 const struct termios *__termios_p); 11365 __________________________________________________________ 11366 11367 14.4.100. time.h 11368 11369 #define CLK_TCK ((clock_t)sysconf(2)) 11370 #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) 11371 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) 11372 #define CLOCK_REALTIME 0 11373 #define CLOCK_MONOTONIC 1 11374 #define TIMER_ABSTIME 1 11375 #define CLOCKS_PER_SEC 1000000l 11376 #define CLOCK_PROCESS_CPUTIME_ID 2 11377 #define CLOCK_THREAD_CPUTIME_ID 3 11378 #define timeradd(a,b,result) \ 11379 do { \ 11380 (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ 11381 (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \ 11382 if ((result)->tv_usec >= 1000000) \ 11383 { \ 11384 ++(result)->tv_sec; \ 11385 (result)->tv_usec -= 1000000; \ 11386 } \ 11387 } while (0) 11388 #define timersub(a,b,result) \ 11389 do { \ 11390 (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ 11391 (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ 11392 if ((result)->tv_usec < 0) { \ 11393 --(result)->tv_sec; \ 11394 (result)->tv_usec += 1000000; \ 11395 } \ 11396 } while (0) 11397 #define timercmp(a,b,CMP) \ 11398 (((a)->tv_sec == (b)->tv_sec) ? \ 11399 ((a)->tv_usec CMP (b)->tv_usec) : \ 11400 ((a)->tv_sec CMP (b)->tv_sec)) 11401 11402 struct tm { 11403 int tm_sec; 11404 int tm_min; 11405 int tm_hour; 11406 int tm_mday; 11407 int tm_mon; 11408 int tm_year; 11409 int tm_wday; 11410 int tm_yday; 11411 int tm_isdst; 11412 long int tm_gmtoff; 11413 char *tm_zone; 11414 }; 11415 11416 struct timespec { 11417 time_t tv_sec; 11418 long int tv_nsec; 11419 }; 11420 11421 struct itimerspec { 11422 struct timespec it_interval; 11423 struct timespec it_value; 11424 }; 11425 extern int __daylight; 11426 extern long int __timezone; 11427 extern char *__tzname[]; 11428 extern char *asctime(const struct tm *__tp); 11429 extern char *asctime_r(const struct tm *__tp, char *__buf); 11430 extern clock_t clock(void); 11431 extern int clock_getcpuclockid(pid_t __pid, clockid_t * __clock_id); 11432 extern int clock_getres(clockid_t __clock_id, struct timespec *__res); 11433 extern int clock_gettime(clockid_t __clock_id, struct timespec *__tp); 11434 extern int clock_nanosleep(clockid_t __clock_id, int __flags, 11435 const struct timespec *__req, 11436 struct timespec *__rem); 11437 extern int clock_settime(clockid_t __clock_id, 11438 const struct timespec *__tp); 11439 extern char *ctime(const time_t * __timer); 11440 extern char *ctime_r(const time_t * __timer, char *__buf); 11441 extern int daylight; 11442 extern double difftime(time_t __time1, time_t __time0); 11443 extern struct tm *getdate(const char *__string); 11444 extern int getdate_err; 11445 extern struct tm *gmtime(const time_t * __timer); 11446 extern struct tm *gmtime_r(const time_t * __timer, struct tm *__tp); 11447 extern struct tm *localtime(const time_t * __timer); 11448 extern struct tm *localtime_r(const time_t * __timer, struct tm *__tp); 11449 extern time_t mktime(struct tm *__tp); 11450 extern int nanosleep(const struct timespec *__requested_time, 11451 struct timespec *__remaining); 11452 extern int stime(const time_t * __when); 11453 extern size_t strftime(char *__s, size_t __maxsize, const char *__format, 11454 const struct tm *__tp); 11455 extern size_t strftime_l(char *s, size_t maxsize, const char *format, 11456 const struct tm *timeptr, locale_t locale); 11457 extern char *strptime(const char *__s, const char *__fmt, struct tm *__tp); 11458 extern time_t time(time_t * __timer); 11459 extern int timer_create(clockid_t __clock_id, struct sigevent *__evp, 11460 timer_t * __timerid); 11461 extern int timer_delete(timer_t __timerid); 11462 extern int timer_getoverrun(timer_t __timerid); 11463 extern int timer_gettime(timer_t __timerid, struct itimerspec *__value); 11464 extern int timer_settime(timer_t __timerid, int __flags, 11465 const struct itimerspec *__value, 11466 struct itimerspec *__ovalue); 11467 extern long int timezone; 11468 extern char *tzname[]; 11469 extern void tzset(void); 11470 __________________________________________________________ 11471 11472 14.4.101. ucontext.h 11473 11474 extern int getcontext(ucontext_t * __ucp); 11475 extern void makecontext(ucontext_t * __ucp, void (*__func) (void), 11476 int __argc, ...); 11477 extern int setcontext(const struct ucontext *__ucp); 11478 extern int swapcontext(ucontext_t * __oucp, const struct ucontext *__ucp); 11479 __________________________________________________________ 11480 11481 14.4.102. ulimit.h 11482 11483 #define UL_GETFSIZE 1 11484 #define UL_SETFSIZE 2 11485 11486 extern long int ulimit(int __cmd, ...); 11487 __________________________________________________________ 11488 11489 14.4.103. unistd.h 11490 11491 #ifndef SEEK_SET 11492 #define SEEK_SET 0 11493 #endif 11494 #define STDIN_FILENO 0 11495 #ifndef SEEK_CUR 11496 #define SEEK_CUR 1 11497 #endif 11498 #define STDOUT_FILENO 1 11499 #ifndef SEEK_END 11500 #define SEEK_END 2 11501 #endif 11502 #define STDERR_FILENO 2 11503 11504 #define F_OK 0 11505 #define X_OK 1 11506 #define W_OK 2 11507 #define R_OK 4 11508 11509 #define _POSIX_VDISABLE '\0' 11510 #define _POSIX_ASYNC_IO 0 11511 #define _POSIX_CHOWN_RESTRICTED 1 11512 #define _POSIX_JOB_CONTROL 1 11513 #define _POSIX_NO_TRUNC 1 11514 #define _POSIX_SHELL 1 11515 #define _POSIX2_CHAR_TERM 200809L 11516 #define _POSIX2_C_BIND 200809L 11517 #define _POSIX2_LOCALEDEF 200809L 11518 #define _POSIX2_VERSION 200809L 11519 #define _POSIX_ADVISORY_INFO 200809L 11520 #define _POSIX_BARRIERS 200809L 11521 #define _POSIX_CLOCK_SELECTION 200809L 11522 #define _POSIX_FSYNC 200809L 11523 #define _POSIX_IPV6 200809L 11524 #define _POSIX_MAPPED_FILES 200809L 11525 #define _POSIX_MEMLOCK 200809L 11526 #define _POSIX_MEMLOCK_RANGE 200809L 11527 #define _POSIX_MEMORY_PROTECTION 200809L 11528 #define _POSIX_MESSAGE_PASSING 200809L 11529 #define _POSIX_PRIORITIZED_IO 200809L 11530 #define _POSIX_PRIORITY_SCHEDULING 200809L 11531 #define _POSIX_RAW_SOCKETS 200809L 11532 #define _POSIX_READER_WRITER_LOCKS 200809L 11533 #define _POSIX_REALTIME_SIGNALS 200809L 11534 #define _POSIX_SEMAPHORES 200809L 11535 #define _POSIX_SHARED_MEMORY_OBJECTS 200809L 11536 #define _POSIX_SPAWN 200809L 11537 #define _POSIX_SPIN_LOCKS 200809L 11538 #define _POSIX_SYNCHRONIZED_IO 200809L 11539 #define _POSIX_THREADS 200809L 11540 #define _POSIX_THREAD_ATTR_STACKADDR 200809L 11541 #define _POSIX_THREAD_ATTR_STACKSIZE 200809L 11542 #define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L 11543 #define _POSIX_THREAD_PRIO_INHERIT 200809L 11544 #define _POSIX_THREAD_PRIO_PROTECT 200809L 11545 #define _POSIX_THREAD_PROCESS_SHARED 200809L 11546 #define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L 11547 #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L 11548 #define _POSIX_TIMEOUTS 200809L 11549 #define _POSIX_TIMERS 200809L 11550 #define _POSIX_VERSION 200809L 11551 11552 #define _PC_LINK_MAX 0 11553 #define _PC_MAX_CANON 1 11554 #define _PC_ASYNC_IO 10 11555 #define _PC_PRIO_IO 11 11556 #define _PC_FILESIZEBITS 13 11557 #define _PC_REC_INCR_XFER_SIZE 14 11558 #define _PC_REC_MIN_XFER_SIZE 16 11559 #define _PC_REC_XFER_ALIGN 17 11560 #define _PC_ALLOC_SIZE_MIN 18 11561 #define _PC_MAX_INPUT 2 11562 #define _PC_2_SYMLINKS 20 11563 #define _PC_NAME_MAX 3 11564 #define _PC_PATH_MAX 4 11565 #define _PC_PIPE_BUF 5 11566 #define _PC_CHOWN_RESTRICTED 6 11567 #define _PC_NO_TRUNC 7 11568 #define _PC_VDISABLE 8 11569 #define _PC_SYNC_IO 9 11570 11571 #define _SC_ARG_MAX 0 11572 #define _SC_CHILD_MAX 1 11573 #define _SC_PRIORITY_SCHEDULING 10 11574 #define _SC_XOPEN_XPG4 100 11575 #define _SC_CHAR_BIT 101 11576 #define _SC_CHAR_MAX 102 11577 #define _SC_CHAR_MIN 103 11578 #define _SC_INT_MAX 104 11579 #define _SC_INT_MIN 105 11580 #define _SC_LONG_BIT 106 11581 #define _SC_WORD_BIT 107 11582 #define _SC_MB_LEN_MAX 108 11583 #define _SC_NZERO 109 11584 #define _SC_TIMERS 11 11585 #define _SC_SSIZE_MAX 110 11586 #define _SC_SCHAR_MAX 111 11587 #define _SC_SCHAR_MIN 112 11588 #define _SC_SHRT_MAX 113 11589 #define _SC_SHRT_MIN 114 11590 #define _SC_UCHAR_MAX 115 11591 #define _SC_UINT_MAX 116 11592 #define _SC_ULONG_MAX 117 11593 #define _SC_USHRT_MAX 118 11594 #define _SC_NL_ARGMAX 119 11595 #define _SC_ASYNCHRONOUS_IO 12 11596 #define _SC_NL_LANGMAX 120 11597 #define _SC_NL_MSGMAX 121 11598 #define _SC_NL_NMAX 122 11599 #define _SC_NL_SETMAX 123 11600 #define _SC_NL_TEXTMAX 124 11601 #define _SC_XBS5_ILP32_OFF32 125 11602 #define _SC_XBS5_ILP32_OFFBIG 126 11603 #define _SC_XBS5_LP64_OFF64 127 11604 #define _SC_XBS5_LPBIG_OFFBIG 128 11605 #define _SC_XOPEN_LEGACY 129 11606 #define _SC_PRIORITIZED_IO 13 11607 #define _SC_XOPEN_REALTIME 130 11608 #define _SC_XOPEN_REALTIME_THREADS 131 11609 #define _SC_ADVISORY_INFO 132 11610 #define _SC_BARRIERS 133 11611 #define _SC_BASE 134 11612 #define _SC_C_LANG_SUPPORT 135 11613 #define _SC_C_LANG_SUPPORT_R 136 11614 #define _SC_CLOCK_SELECTION 137 11615 #define _SC_CPUTIME 138 11616 #define _SC_THREAD_CPUTIME 139 11617 #define _SC_SYNCHRONIZED_IO 14 11618 #define _SC_DEVICE_IO 140 11619 #define _SC_DEVICE_SPECIFIC 141 11620 #define _SC_DEVICE_SPECIFIC_R 142 11621 #define _SC_FD_MGMT 143 11622 #define _SC_FIFO 144 11623 #define _SC_PIPE 145 11624 #define _SC_FILE_ATTRIBUTES 146 11625 #define _SC_FILE_LOCKING 147 11626 #define _SC_FILE_SYSTEM 148 11627 #define _SC_MONOTONIC_CLOCK 149 11628 #define _SC_FSYNC 15 11629 #define _SC_MULTI_PROCESS 150 11630 #define _SC_SINGLE_PROCESS 151 11631 #define _SC_NETWORKING 152 11632 #define _SC_READER_WRITER_LOCKS 153 11633 #define _SC_SPIN_LOCKS 154 11634 #define _SC_REGEXP 155 11635 #define _SC_REGEX_VERSION 156 11636 #define _SC_SHELL 157 11637 #define _SC_SIGNALS 158 11638 #define _SC_SPAWN 159 11639 #define _SC_MAPPED_FILES 16 11640 #define _SC_SPORADIC_SERVER 160 11641 #define _SC_THREAD_SPORADIC_SERVER 161 11642 #define _SC_SYSTEM_DATABASE 162 11643 #define _SC_SYSTEM_DATABASE_R 163 11644 #define _SC_TIMEOUTS 164 11645 #define _SC_TYPED_MEMORY_OBJECTS 165 11646 #define _SC_USER_GROUPS 166 11647 #define _SC_USER_GROUPS_R 167 11648 #define _SC_2_PBS 168 11649 #define _SC_2_PBS_ACCOUNTING 169 11650 #define _SC_MEMLOCK 17 11651 #define _SC_2_PBS_LOCATE 170 11652 #define _SC_2_PBS_MESSAGE 171 11653 #define _SC_2_PBS_TRACK 172 11654 #define _SC_SYMLOOP_MAX 173 11655 #define _SC_STREAMS 174 11656 #define _SC_2_PBS_CHECKPOINT 175 11657 #define _SC_V6_ILP32_OFF32 176 11658 #define _SC_V6_ILP32_OFFBIG 177 11659 #define _SC_V6_LP64_OFF64 178 11660 #define _SC_V6_LPBIG_OFFBIG 179 11661 #define _SC_MEMLOCK_RANGE 18 11662 #define _SC_HOST_NAME_MAX 180 11663 #define _SC_TRACE 181 11664 #define _SC_TRACE_EVENT_FILTER 182 11665 #define _SC_TRACE_INHERIT 183 11666 #define _SC_TRACE_LOG 184 11667 #define _SC_LEVEL1_ICACHE_SIZE 185 11668 #define _SC_LEVEL1_ICACHE_ASSOC 186 11669 #define _SC_LEVEL1_ICACHE_LINESIZE 187 11670 #define _SC_LEVEL1_DCACHE_SIZE 188 11671 #define _SC_LEVEL1_DCACHE_ASSOC 189 11672 #define _SC_MEMORY_PROTECTION 19 11673 #define _SC_LEVEL1_DCACHE_LINESIZE 190 11674 #define _SC_LEVEL2_CACHE_SIZE 191 11675 #define _SC_LEVEL2_CACHE_ASSOC 192 11676 #define _SC_LEVEL2_CACHE_LINESIZE 193 11677 #define _SC_LEVEL3_CACHE_SIZE 194 11678 #define _SC_LEVEL3_CACHE_ASSOC 195 11679 #define _SC_LEVEL3_CACHE_LINESIZE 196 11680 #define _SC_LEVEL4_CACHE_SIZE 197 11681 #define _SC_LEVEL4_CACHE_ASSOC 198 11682 #define _SC_LEVEL4_CACHE_LINESIZE 199 11683 #define _SC_CLK_TCK 2 11684 #define _SC_MESSAGE_PASSING 20 11685 #define _SC_SEMAPHORES 21 11686 #define _SC_SHARED_MEMORY_OBJECTS 22 11687 #define _SC_AIO_LISTIO_MAX 23 11688 #define _SC_IPV6 235 11689 #define _SC_RAW_SOCKETS 236 11690 #define _SC_V7_ILP32_OFF32 237 11691 #define _SC_V7_ILP32_OFFBIG 238 11692 #define _SC_V7_LP64_OFF64 239 11693 #define _SC_AIO_MAX 24 11694 #define _SC_V7_LPBIG_OFFBIG 240 11695 #define _SC_SS_REPL_MAX 241 11696 #define _SC_TRACE_EVENT_NAME_MAX 242 11697 #define _SC_TRACE_NAME_MAX 243 11698 #define _SC_TRACE_SYS_MAX 244 11699 #define _SC_TRACE_USER_EVENT_MAX 245 11700 #define _SC_XOPEN_STREAMS 246 11701 #define _SC_THREAD_ROBUST_PRIO_INHERIT 247 11702 #define _SC_THREAD_ROBUST_PRIO_PROTECT 248 11703 #define _SC_AIO_PRIO_DELTA_MAX 25 11704 #define _SC_DELAYTIMER_MAX 26 11705 #define _SC_MQ_OPEN_MAX 27 11706 #define _SC_MQ_PRIO_MAX 28 11707 #define _SC_VERSION 29 11708 #define _SC_NGROUPS_MAX 3 11709 #define _SC_PAGESIZE 30 11710 #define _SC_PAGE_SIZE 30 11711 #define _SC_RTSIG_MAX 31 11712 #define _SC_SEM_NSEMS_MAX 32 11713 #define _SC_SEM_VALUE_MAX 33 11714 #define _SC_SIGQUEUE_MAX 34 11715 #define _SC_TIMER_MAX 35 11716 #define _SC_BC_BASE_MAX 36 11717 #define _SC_BC_DIM_MAX 37 11718 #define _SC_BC_SCALE_MAX 38 11719 #define _SC_BC_STRING_MAX 39 11720 #define _SC_OPEN_MAX 4 11721 #define _SC_COLL_WEIGHTS_MAX 40 11722 #define _SC_EQUIV_CLASS_MAX 41 11723 #define _SC_EXPR_NEST_MAX 42 11724 #define _SC_LINE_MAX 43 11725 #define _SC_RE_DUP_MAX 44 11726 #define _SC_CHARCLASS_NAME_MAX 45 11727 #define _SC_2_VERSION 46 11728 #define _SC_2_C_BIND 47 11729 #define _SC_2_C_DEV 48 11730 #define _SC_2_FORT_DEV 49 11731 #define _SC_STREAM_MAX 5 11732 #define _SC_2_FORT_RUN 50 11733 #define _SC_2_SW_DEV 51 11734 #define _SC_2_LOCALEDEF 52 11735 #define _SC_PII 53 11736 #define _SC_PII_XTI 54 11737 #define _SC_PII_SOCKET 55 11738 #define _SC_PII_INTERNET 56 11739 #define _SC_PII_OSI 57 11740 #define _SC_POLL 58 11741 #define _SC_SELECT 59 11742 #define _SC_TZNAME_MAX 6 11743 #define _SC_IOV_MAX 60 11744 #define _SC_UIO_MAXIOV 60 11745 #define _SC_PII_INTERNET_STREAM 61 11746 #define _SC_PII_INTERNET_DGRAM 62 11747 #define _SC_PII_OSI_COTS 63 11748 #define _SC_PII_OSI_CLTS 64 11749 #define _SC_PII_OSI_M 65 11750 #define _SC_T_IOV_MAX 66 11751 #define _SC_THREADS 67 11752 #define _SC_THREAD_SAFE_FUNCTIONS 68 11753 #define _SC_GETGR_R_SIZE_MAX 69 11754 #define _SC_JOB_CONTROL 7 11755 #define _SC_GETPW_R_SIZE_MAX 70 11756 #define _SC_LOGIN_NAME_MAX 71 11757 #define _SC_TTY_NAME_MAX 72 11758 #define _SC_THREAD_DESTRUCTOR_ITERATIONS 73 11759 #define _SC_THREAD_KEYS_MAX 74 11760 #define _SC_THREAD_STACK_MIN 75 11761 #define _SC_THREAD_THREADS_MAX 76 11762 #define _SC_THREAD_ATTR_STACKADDR 77 11763 #define _SC_THREAD_ATTR_STACKSIZE 78 11764 #define _SC_THREAD_PRIORITY_SCHEDULING 79 11765 #define _SC_SAVED_IDS 8 11766 #define _SC_THREAD_PRIO_INHERIT 80 11767 #define _SC_THREAD_PRIO_PROTECT 81 11768 #define _SC_THREAD_PROCESS_SHARED 82 11769 #define _SC_NPROCESSORS_CONF 83 11770 #define _SC_NPROCESSORS_ONLN 84 11771 #define _SC_PHYS_PAGES 85 11772 #define _SC_AVPHYS_PAGES 86 11773 #define _SC_ATEXIT_MAX 87 11774 #define _SC_PASS_MAX 88 11775 #define _SC_XOPEN_VERSION 89 11776 #define _SC_REALTIME_SIGNALS 9 11777 #define _SC_XOPEN_XCU_VERSION 90 11778 #define _SC_XOPEN_UNIX 91 11779 #define _SC_XOPEN_CRYPT 92 11780 #define _SC_XOPEN_ENH_I18N 93 11781 #define _SC_XOPEN_SHM 94 11782 #define _SC_2_CHAR_TERM 95 11783 #define _SC_2_C_VERSION 96 11784 #define _SC_2_UPE 97 11785 #define _SC_XOPEN_XPG2 98 11786 #define _SC_XOPEN_XPG3 99 11787 11788 #define _CS_PATH 0 11789 #define _POSIX_REGEXP 1 11790 #define _CS_XBS5_ILP32_OFF32_CFLAGS 1100 11791 #define _CS_XBS5_ILP32_OFF32_LDFLAGS 1101 11792 #define _CS_XBS5_ILP32_OFF32_LIBS 1102 11793 #define _CS_XBS5_ILP32_OFF32_LINTFLAGS 1103 11794 #define _CS_XBS5_ILP32_OFFBIG_CFLAGS 1104 11795 #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS 1105 11796 #define _CS_XBS5_ILP32_OFFBIG_LIBS 1106 11797 #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 1107 11798 #define _CS_XBS5_LP64_OFF64_CFLAGS 1108 11799 #define _CS_XBS5_LP64_OFF64_LDFLAGS 1109 11800 #define _CS_XBS5_LP64_OFF64_LIBS 1110 11801 #define _CS_XBS5_LP64_OFF64_LINTFLAGS 1111 11802 #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS 1112 11803 #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS 1113 11804 #define _CS_XBS5_LPBIG_OFFBIG_LIBS 1114 11805 #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 1115 11806 #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 1116 11807 #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 1117 11808 #define _CS_POSIX_V6_ILP32_OFF32_LIBS 1118 11809 #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS 1119 11810 #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 1120 11811 #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 1121 11812 #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 1122 11813 #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS 1123 11814 #define _CS_POSIX_V6_LP64_OFF64_CFLAGS 1124 11815 #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 1125 11816 #define _CS_POSIX_V6_LP64_OFF64_LIBS 1126 11817 #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS 1127 11818 #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 1128 11819 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 1129 11820 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 1130 11821 #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS 1131 11822 #define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1132 11823 #define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 1133 11824 #define _CS_POSIX_V7_ILP32_OFF32_LIBS 1134 11825 #define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS 1135 11826 #define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 1136 11827 #define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 1137 11828 #define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 1138 11829 #define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS 1139 11830 #define _CS_POSIX_V7_LP64_OFF64_CFLAGS 1140 11831 #define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 1141 11832 #define _CS_POSIX_V7_LP64_OFF64_LIBS 1142 11833 #define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS 1143 11834 #define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 1144 11835 #define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 1145 11836 #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 1146 11837 #define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS 1147 11838 #define _CS_V6_ENV 1148 11839 #define _CS_V7_ENV 1149 11840 11841 #define _XOPEN_XPG4 1 11842 #define _XOPEN_VERSION 700 11843 11844 #define F_ULOCK 0 11845 #define F_LOCK 1 11846 #define F_TLOCK 2 11847 #define F_TEST 3 11848 11849 extern size_t __confstr_chk(int, char *, size_t, size_t); 11850 extern char **__environ; 11851 extern char *__getcwd_chk(char *, size_t, size_t); 11852 extern int __getgroups_chk(int, gid_t *, size_t); 11853 extern int __gethostname_chk(char *, size_t, size_t); 11854 extern int __getlogin_r_chk(char *, size_t, size_t); 11855 extern pid_t __getpgid(pid_t __pid); 11856 extern ssize_t __pread64_chk(int, void *, size_t, off64_t, size_t); 11857 extern ssize_t __pread_chk(int, void *, size_t, off_t, size_t); 11858 extern ssize_t __read_chk(int, void *, size_t, size_t); 11859 extern ssize_t __readlink_chk(const char *, char *, size_t, size_t); 11860 extern int __ttyname_r_chk(int, char *, size_t, size_t); 11861 extern char **_environ; 11862 extern void _exit(int __status); 11863 extern int access(const char *__name, int __type); 11864 extern int acct(const char *__name); 11865 extern unsigned int alarm(unsigned int __seconds); 11866 extern int brk(void *__addr); 11867 extern int chdir(const char *__path); 11868 extern int chown(const char *__file, uid_t __owner, gid_t __group); 11869 extern int chroot(const char *__path); 11870 extern int close(int __fd); 11871 extern size_t confstr(int __name, char *__buf, size_t __len); 11872 extern char *crypt(const char *__key, const char *__salt); 11873 extern char *ctermid(char *__s); 11874 extern char *cuserid(char *__s); 11875 extern int daemon(int __nochdir, int __noclose); 11876 extern int dup(int __fd); 11877 extern int dup2(int __fd, int __fd2); 11878 extern void encrypt(char *__block, int __edflag); 11879 extern int execl(const char *__path, const char *__arg, ...); 11880 extern int execle(const char *__path, const char *__arg, ...); 11881 extern int execlp(const char *__file, const char *__arg, ...); 11882 extern int execv(const char *__path, char *const __argv[]); 11883 extern int execve(const char *__path, char *const __argv[], 11884 char *const __envp[]); 11885 extern int execvp(const char *__file, char *const __argv[]); 11886 extern int faccessat(int __fd, const char *__file, int __type, int __flag); 11887 extern int fchdir(int __fd); 11888 extern int fchown(int __fd, uid_t __owner, gid_t __group); 11889 extern int fchownat(int __fd, const char *__file, uid_t __owner, 11890 gid_t __group, int __flag); 11891 extern int fdatasync(int __fildes); 11892 extern int fexecve(int __fd, char *const __argv[], char *const __envp[]); 11893 extern pid_t fork(void); 11894 extern long int fpathconf(int __fd, int __name); 11895 extern int fsync(int __fd); 11896 extern int ftruncate(int __fd, off_t __length); 11897 extern int ftruncate64(int __fd, off64_t __length); 11898 extern char *getcwd(char *__buf, size_t __size); 11899 extern int getdomainname(char *__name, size_t __len); 11900 extern int getdtablesize(void); 11901 extern gid_t getegid(void); 11902 extern uid_t geteuid(void); 11903 extern gid_t getgid(void); 11904 extern int getgroups(int __size, gid_t __list[]); 11905 extern long int gethostid(void); 11906 extern int gethostname(char *__name, size_t __len); 11907 extern char *getlogin(void); 11908 extern int getlogin_r(char *__name, size_t __name_len); 11909 extern int getopt(int ___argc, char *const ___argv[], 11910 const char *__shortopts); 11911 extern int getpagesize(void); 11912 extern pid_t getpgid(pid_t __pid); 11913 extern pid_t getpgrp(void); 11914 extern pid_t getpid(void); 11915 extern pid_t getppid(void); 11916 extern pid_t getsid(pid_t __pid); 11917 extern uid_t getuid(void); 11918 extern char *getwd(char *__buf); 11919 extern int isatty(int __fd); 11920 extern int lchown(const char *__file, uid_t __owner, gid_t __group); 11921 extern int link(const char *__from, const char *__to); 11922 extern int linkat(int __fromfd, const char *__from, int __tofd, 11923 const char *__to, int __flags); 11924 extern int lockf(int __fd, int __cmd, off_t __len); 11925 extern int lockf64(int __fd, int __cmd, off64_t __len); 11926 extern off_t lseek(int __fd, off_t __offset, int __whence); 11927 extern loff_t lseek64(int __fd, loff_t __offset, int __whence); 11928 extern int nice(int __inc); 11929 extern char *optarg; 11930 extern int opterr; 11931 extern int optind; 11932 extern int optopt; 11933 extern long int pathconf(const char *__path, int __name); 11934 extern int pause(void); 11935 extern int pipe(int __pipedes[2]); 11936 extern ssize_t pread(int __fd, void *__buf, size_t __nbytes, 11937 off_t __offset); 11938 extern ssize_t pread64(int __fd, void *__buf, size_t __nbytes, 11939 off64_t __offset); 11940 extern ssize_t pwrite(int __fd, const void *__buf, size_t __n, 11941 off_t __offset); 11942 extern ssize_t pwrite64(int __fd, const void *__buf, size_t __n, 11943 off64_t __offset); 11944 extern ssize_t read(int __fd, void *__buf, size_t __nbytes); 11945 extern ssize_t readlink(const char *__path, char *__buf, size_t __len); 11946 extern ssize_t readlinkat(int __fd, const char *__path, char *__buf, 11947 size_t __len); 11948 extern int rmdir(const char *__path); 11949 extern void *sbrk(intptr_t __delta); 11950 extern int setegid(gid_t __gid); 11951 extern int seteuid(uid_t __uid); 11952 extern int setgid(gid_t __gid); 11953 extern int sethostname(const char *__name, size_t __len); 11954 extern void setkey(const char *__key); 11955 extern int setpgid(pid_t __pid, pid_t __pgid); 11956 extern int setpgrp(void); 11957 extern int setregid(gid_t __rgid, gid_t __egid); 11958 extern int setreuid(uid_t __ruid, uid_t __euid); 11959 extern pid_t setsid(void); 11960 extern int setuid(uid_t __uid); 11961 extern unsigned int sleep(unsigned int __seconds); 11962 extern void swab(const void *__from, void *__to, ssize_t __n); 11963 extern int symlink(const char *__from, const char *__to); 11964 extern int symlinkat(const char *__from, int __tofd, const char *__to); 11965 extern void sync(void); 11966 extern long int sysconf(int __name); 11967 extern pid_t tcgetpgrp(int __fd); 11968 extern int tcsetpgrp(int __fd, pid_t __pgrp_id); 11969 extern int truncate(const char *__file, off_t __length); 11970 extern int truncate64(const char *__file, off64_t __length); 11971 extern char *ttyname(int __fd); 11972 extern int ttyname_r(int __fd, char *__buf, size_t __buflen); 11973 extern unsigned int ualarm(useconds_t __value, useconds_t __interval); 11974 extern int unlink(const char *__name); 11975 extern int unlinkat(int __fd, const char *__name, int __flag); 11976 extern int usleep(useconds_t __useconds); 11977 extern pid_t vfork(void); 11978 extern ssize_t write(int __fd, const void *__buf, size_t __n); 11979 __________________________________________________________ 11980 11981 14.4.104. utime.h 11982 11983 struct utimbuf { 11984 time_t actime; 11985 time_t modtime; 11986 }; 11987 extern int utime(const char *__file, const struct utimbuf *__file_times); 11988 __________________________________________________________ 11989 11990 14.4.105. utmp.h 11991 11992 #define UT_HOSTSIZE 256 11993 #define UT_LINESIZE 32 11994 #define UT_NAMESIZE 32 11995 #define ut_addr ut_addr_v6[0] 11996 #define ut_time ut_tv.tv_sec 11997 #define ut_name ut_user /* Backwards compatability */ 11998 11999 struct exit_status { 12000 short e_termination; /* Process termination status. */ 12001 short e_exit; /* Process exit status. */ 12002 }; 12003 12004 #define EMPTY 0 /* No valid user accounting information. */ 12005 #define RUN_LVL 1 /* The system's runlevel. */ 12006 #define BOOT_TIME 2 /* Time of system boot. */ 12007 #define NEW_TIME 3 /* Time after system clock changed. */ 12008 #define OLD_TIME 4 /* Time when system clock changed. */ 12009 #define INIT_PROCESS 5 /* Process spawned by the init process.*/ 12010 #define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ 12011 #define USER_PROCESS 7 /* Normal process. */ 12012 #define DEAD_PROCESS 8 /* Terminated process. */ 12013 #define ACCOUNTING 9 12014 12015 extern void endutent(void); 12016 extern struct utmp *getutent(void); 12017 extern int getutent_r(struct utmp *__buffer, struct utmp **__result); 12018 extern void login(const struct utmp *__entry); 12019 extern int login_tty(int __fd); 12020 extern int logout(const char *__ut_line); 12021 extern void logwtmp(const char *__ut_line, const char *__ut_name, 12022 const char *__ut_host); 12023 extern void setutent(void); 12024 extern int utmpname(const char *__file); 12025 __________________________________________________________ 12026 12027 14.4.106. utmpx.h 12028 12029 extern void endutxent(void); 12030 extern struct utmpx *getutxent(void); 12031 extern struct utmpx *getutxid(const struct utmpx *__id); 12032 extern struct utmpx *getutxline(const struct utmpx *__line); 12033 extern struct utmpx *pututxline(const struct utmpx *__utmpx); 12034 extern void setutxent(void); 12035 __________________________________________________________ 12036 12037 14.4.107. wchar.h 12038 12039 #define WEOF (0xffffffffu) 12040 #define WCHAR_MAX 0x7FFFFFFF 12041 #define WCHAR_MIN 0x80000000 12042 12043 typedef unsigned long int wctype_t; 12044 typedef const int32_t *wctrans_t; 12045 12046 extern wchar_t *__fgetws_chk(wchar_t *, size_t, int, FILE *); 12047 extern wchar_t *__fgetws_unlocked_chk(wchar_t *, size_t, int, FILE *); 12048 extern int __fwprintf_chk(FILE *, int, const wchar_t *, ...); 12049 extern size_t __mbsnrtowcs_chk(wchar_t *, const char **, size_t, size_t, 12050 mbstate_t *, size_t); 12051 extern size_t __mbsrtowcs_chk(wchar_t *, const char **, size_t, 12052 mbstate_t *, size_t); 12053 extern int __swprintf_chk(wchar_t *, size_t, int, size_t, const wchar_t*, 12054 ...); 12055 extern int __vfwprintf_chk(FILE *, int, const wchar_t *, va_list); 12056 extern int __vswprintf_chk(wchar_t *, size_t, int, size_t, const wchar_t *, 12057 va_list); 12058 extern int __vwprintf_chk(int, const wchar_t *, va_list); 12059 extern wchar_t *__wcpcpy_chk(wchar_t *, const wchar_t *, size_t); 12060 extern wchar_t *__wcpncpy_chk(wchar_t *, const wchar_t *, size_t, size_t); 12061 extern size_t __wcrtomb_chk(char *, wchar_t, mbstate_t *, size_t); 12062 extern wchar_t *__wcscat_chk(wchar_t *, const wchar_t *, size_t); 12063 extern wchar_t *__wcscpy_chk(wchar_t *, const wchar_t *, size_t); 12064 extern wchar_t *__wcsncat_chk(wchar_t *, const wchar_t *, size_t, size_t); 12065 extern wchar_t *__wcsncpy_chk(wchar_t *, const wchar_t *, size_t, size_t); 12066 extern size_t __wcsnrtombs_chk(char *, const wchar_t * *, size_t, size_t, 12067 mbstate_t *, size_t); 12068 extern size_t __wcsrtombs_chk(char *, const wchar_t * *, size_t, 12069 mbstate_t *, size_t); 12070 extern double __wcstod_internal(const wchar_t *, wchar_t * *, int); 12071 extern float __wcstof_internal(const wchar_t *, wchar_t * *, int); 12072 extern long int __wcstol_internal(const wchar_t *, wchar_t * *, int, int); 12073 extern long double __wcstold_internal(const wchar_t *, wchar_t * *, int); 12074 extern unsigned long int __wcstoul_internal(const wchar_t *, wchar_t * *, 12075 int, int); 12076 extern wchar_t *__wmemcpy_chk(wchar_t *, const wchar_t *, size_t, size_t); 12077 extern wchar_t *__wmemmove_chk(wchar_t *, const wchar_t *, size_t, size_t); 12078 extern wchar_t *__wmempcpy_chk(wchar_t *, const wchar_t *, size_t, size_t); 12079 extern wchar_t *__wmemset_chk(wchar_t *, wchar_t, size_t, size_t); 12080 extern int __wprintf_chk(int, const wchar_t *, ...); 12081 extern wint_t btowc(int __c); 12082 extern wint_t fgetwc(FILE * __stream); 12083 extern wint_t fgetwc_unlocked(FILE * __stream); 12084 extern wchar_t *fgetws(wchar_t * __ws, int __n, FILE * __stream); 12085 extern wchar_t *fgetws_unlocked(wchar_t * __ws, int __n, FILE * __stream); 12086 extern wint_t fputwc(wchar_t __wc, FILE * __stream); 12087 extern wint_t fputwc_unlocked(wchar_t __wc, FILE * __stream); 12088 extern int fputws(const wchar_t * __ws, FILE * __stream); 12089 extern int fputws_unlocked(const wchar_t * __ws, FILE * __stream); 12090 extern int fwide(FILE * __fp, int __mode); 12091 extern int fwprintf(FILE * __stream, const wchar_t * __format, ...); 12092 extern int fwscanf(FILE * __stream, const wchar_t * __format, ...); 12093 extern wint_t getwc(FILE * __stream); 12094 extern wint_t getwc_unlocked(FILE * __stream); 12095 extern wint_t getwchar(void); 12096 extern wint_t getwchar_unlocked(void); 12097 extern size_t mbrlen(const char *__s, size_t __n, mbstate_t * __ps); 12098 extern size_t mbrtowc(wchar_t * __pwc, const char *__s, size_t __n, 12099 mbstate_t * __p); 12100 extern int mbsinit(const mbstate_t * __ps); 12101 extern size_t mbsnrtowcs(wchar_t * __dst, const char **__src, size_t __nmc, 12102 size_t __len, mbstate_t * __ps); 12103 extern size_t mbsrtowcs(wchar_t * __dst, const char **__src, size_t __len, 12104 mbstate_t * __ps); 12105 extern FILE *open_wmemstream(wchar_t * *__bufloc, size_t * __sizeloc); 12106 extern wint_t putwc(wchar_t __wc, FILE * __stream); 12107 extern wint_t putwc_unlocked(wchar_t __wc, FILE * __stream); 12108 extern wint_t putwchar(wchar_t __wc); 12109 extern wint_t putwchar_unlocked(wchar_t __wc); 12110 extern int swprintf(wchar_t * __s, size_t __n, const wchar_t * __format, 12111 ...); 12112 extern int swscanf(const wchar_t * __s, const wchar_t * __format, ...); 12113 extern wint_t ungetwc(wint_t __wc, FILE * __stream); 12114 extern int vfwprintf(FILE * __s, const wchar_t * __format, va_list __arg); 12115 extern int vfwscanf(FILE * __s, const wchar_t * __format, va_list __arg); 12116 extern int vswprintf(wchar_t * __s, size_t __n, const wchar_t * __format, 12117 va_list __arg); 12118 extern int vswscanf(const wchar_t * __s, const wchar_t * __format, 12119 va_list __arg); 12120 extern int vwprintf(const wchar_t * __format, va_list __arg); 12121 extern int vwscanf(const wchar_t * __format, va_list __arg); 12122 extern wchar_t *wcpcpy(wchar_t * __dest, const wchar_t * __src); 12123 extern wchar_t *wcpncpy(wchar_t * __dest, const wchar_t * __src, 12124 size_t __n); 12125 extern size_t wcrtomb(char *__s, wchar_t __wc, mbstate_t * __ps); 12126 extern int wcscasecmp(const wchar_t * __s1, const wchar_t * __s2); 12127 extern int wcscasecmp_l(const wchar_t * ws1, const wchar_t * ws2, 12128 locale_t locale); 12129 extern wchar_t *wcscat(wchar_t * __dest, const wchar_t * __src); 12130 extern wchar_t *wcschr(const wchar_t * __wcs, wchar_t __wc); 12131 extern int wcscmp(const wchar_t * __s1, const wchar_t * __s2); 12132 extern int wcscoll(const wchar_t * __s1, const wchar_t * __s2); 12133 extern int wcscoll_l(const wchar_t * ws1, const wchar_t * ws2, 12134 locale_t locale); 12135 extern wchar_t *wcscpy(wchar_t * __dest, const wchar_t * __src); 12136 extern size_t wcscspn(const wchar_t * __wcs, const wchar_t * __reject); 12137 extern wchar_t *wcsdup(const wchar_t * __s); 12138 extern size_t wcsftime(wchar_t * __s, size_t __maxsize, 12139 const wchar_t * __format, const struct tm *__tp); 12140 extern size_t wcslen(const wchar_t * __s); 12141 extern int wcsncasecmp(const wchar_t * __s1, const wchar_t * __s2, 12142 size_t __n); 12143 extern int wcsncasecmp_l(const wchar_t * ws1, const wchar_t * ws2, 12144 size_t n, locale_t locale); 12145 extern wchar_t *wcsncat(wchar_t * __dest, const wchar_t * __src, 12146 size_t __n); 12147 extern int wcsncmp(const wchar_t * __s1, const wchar_t * __s2, size_t __n); 12148 extern wchar_t *wcsncpy(wchar_t * __dest, const wchar_t * __src, 12149 size_t __n); 12150 extern size_t wcsnlen(const wchar_t * __s, size_t __maxlen); 12151 extern size_t wcsnrtombs(char *__dst, const wchar_t * *__src, size_t __nwc, 12152 size_t __len, mbstate_t * __ps); 12153 extern wchar_t *wcspbrk(const wchar_t * __wcs, const wchar_t * __accept); 12154 extern wchar_t *wcsrchr(const wchar_t * __wcs, wchar_t __wc); 12155 extern size_t wcsrtombs(char *__dst, const wchar_t * *__src, size_t __len, 12156 mbstate_t * __ps); 12157 extern size_t wcsspn(const wchar_t * __wcs, const wchar_t * __accept); 12158 extern wchar_t *wcsstr(const wchar_t * __haystack, 12159 const wchar_t * __needle); 12160 extern double wcstod(const wchar_t * __nptr, wchar_t * *__endptr); 12161 extern float wcstof(const wchar_t * __nptr, wchar_t * *__endptr); 12162 extern wchar_t *wcstok(wchar_t * __s, const wchar_t * __delim, 12163 wchar_t * *__ptr); 12164 extern long int wcstol(const wchar_t * __nptr, wchar_t * *__endptr, 12165 int __base); 12166 extern long double wcstold(const wchar_t * __nptr, wchar_t * *__endptr); 12167 extern long long int wcstoll(const wchar_t * __nptr, wchar_t * *__endptr, 12168 int __base); 12169 extern long long int wcstoq(const wchar_t * __nptr, wchar_t * *__endptr, 12170 int __base); 12171 extern unsigned long int wcstoul(const wchar_t * __nptr, 12172 wchar_t * *__endptr, int __base); 12173 extern unsigned long long int wcstoull(const wchar_t * __nptr, 12174 wchar_t * *__endptr, int __base); 12175 extern unsigned long long int wcstouq(const wchar_t * __nptr, 12176 wchar_t * *__endptr, int __base); 12177 extern wchar_t *wcswcs(const wchar_t * __haystack, 12178 const wchar_t * __needle); 12179 extern int wcswidth(const wchar_t * __s, size_t __n); 12180 extern size_t wcsxfrm(wchar_t * __s1, const wchar_t * __s2, size_t __n); 12181 extern size_t wcsxfrm_l(const wchar_t * ws1, const wchar_t * ws2, size_t n, 12182 locale_t locale); 12183 extern int wctob(wint_t __c); 12184 extern int wcwidth(wchar_t __c); 12185 extern wchar_t *wmemchr(const wchar_t * __s, wchar_t __c, size_t __n); 12186 extern int wmemcmp(const wchar_t * __s1, const wchar_t * __s2, size_t __n); 12187 extern wchar_t *wmemcpy(wchar_t * __s1, const wchar_t * __s2, size_t __n); 12188 extern wchar_t *wmemmove(wchar_t * __s1, const wchar_t * __s2, size_t __n); 12189 extern wchar_t *wmemset(wchar_t * __s, wchar_t __c, size_t __n); 12190 extern int wprintf(const wchar_t * __format, ...); 12191 extern int wscanf(const wchar_t * __format, ...); 12192 __________________________________________________________ 12193 12194 14.4.108. wctype.h 12195 12196 extern int iswalnum(wint_t __wc); 12197 extern int iswalnum_l(wint_t wc, locale_t locale); 12198 extern int iswalpha(wint_t __wc); 12199 extern int iswalpha_l(wint_t wc, locale_t locale); 12200 extern int iswblank(wint_t __wc); 12201 extern int iswblank_l(wint_t wc, locale_t locale); 12202 extern int iswcntrl(wint_t __wc); 12203 extern int iswcntrl_l(wint_t wc, locale_t locale); 12204 extern int iswctype(wint_t __wc, wctype_t __desc); 12205 extern int iswctype_l(wint_t wc, locale_t locale); 12206 extern int iswdigit(wint_t __wc); 12207 extern int iswdigit_l(wint_t wc, locale_t locale); 12208 extern int iswgraph(wint_t __wc); 12209 extern int iswgraph_l(wint_t wc, locale_t locale); 12210 extern int iswlower(wint_t __wc); 12211 extern int iswlower_l(wint_t wc, locale_t locale); 12212 extern int iswprint(wint_t __wc); 12213 extern int iswprint_l(wint_t wc, locale_t locale); 12214 extern int iswpunct(wint_t __wc); 12215 extern int iswpunct_l(wint_t wc, locale_t locale); 12216 extern int iswspace(wint_t __wc); 12217 extern int iswspace_l(wint_t wc, locale_t locale); 12218 extern int iswupper(wint_t __wc); 12219 extern int iswupper_l(wint_t wc, locale_t locale); 12220 extern int iswxdigit(wint_t __wc); 12221 extern int iswxdigit_l(wint_t wc, locale_t locale); 12222 extern wint_t towctrans(wint_t __wc, wctrans_t __desc); 12223 extern wint_t towctrans_l(wint_t wc, wctrans_t desc, locale_t locale); 12224 extern wint_t towlower(wint_t __wc); 12225 extern wint_t towlower_l(wint_t wc, locale_t locale); 12226 extern wint_t towupper(wint_t __wc); 12227 extern wint_t towupper_l(wint_t wc, locale_t locale); 12228 extern wctrans_t wctrans(const char *__property); 12229 extern size_t wctrans_l(const char *charclass, locale_t locale); 12230 extern wctype_t wctype(const char *__property); 12231 extern size_t wctype_l(const char *property, locale_t locale); 12232 __________________________________________________________ 12233 12234 14.4.109. wordexp.h 12235 12236 enum { 12237 WRDE_DOOFFS = 1, 12238 WRDE_APPEND = 2, 12239 WRDE_NOCMD = 4, 12240 WRDE_REUSE = 8, 12241 WRDE_SHOWERR = 16, 12242 WRDE_UNDEF = 32 12243 }; 12244 12245 typedef struct { 12246 size_t we_wordc; 12247 char **we_wordv; 12248 size_t we_offs; 12249 } wordexp_t; 12250 12251 enum { 12252 WRDE_NOSYS = -1, 12253 WRDE_NOSPACE = 1, 12254 WRDE_BADCHAR = 2, 12255 WRDE_BADVAL = 3, 12256 WRDE_CMDSUB = 4, 12257 WRDE_SYNTAX = 5 12258 }; 12259 extern int wordexp(const char *__words, wordexp_t * __pwordexp, 12260 int __flags); 12261 extern void wordfree(wordexp_t * __wordexp); 12262 __________________________________________________________ 12263 12264 14.5. Interface Definitions for libc 12265 12266 Table of Contents 12267 _IO_feof -- alias for feof 12268 _IO_getc -- alias for getc 12269 _IO_putc -- alias for putc 12270 _IO_puts -- alias for puts 12271 __assert_fail -- abort the program after false assertion 12272 __chk_fail -- terminate a function in case of buffer overflow 12273 __confstr_chk -- get configuration dependent string variables, 12274 with buffer overflow checking 12275 12276 __ctype_b_loc -- accessor function for __ctype_b array for 12277 ctype functions 12278 12279 __ctype_get_mb_cur_max -- maximum length of a multibyte 12280 character in the current locale 12281 12282 __ctype_tolower_loc -- accessor function for __ctype_b_tolower 12283 array for ctype tolower() function 12284 12285 __ctype_toupper_loc -- accessor function for 12286 __ctype_b_toupper() array for ctype toupper() function 12287 12288 __cxa_atexit -- register a function to be called by exit or 12289 when a shared library is unloaded 12290 12291 __cxa_finalize -- call destructors of global (or local static) 12292 C++ objects and exit functions registered with atexit 12293 12294 __daylight -- external daylight savings time flag 12295 __environ -- alias for environ - user environment 12296 __errno_location -- address of errno variable 12297 __fgets_chk -- string input, with buffer overflow checking 12298 __fgets_unlocked_chk -- non-locking string input, with buffer 12299 overflow checking 12300 12301 __fgetws_chk -- read a wide-character string from a FILE 12302 stream, with buffer overflow checking 12303 12304 __fgetws_unlocked_chk -- read a wide-character string from a 12305 FILE stream in a non-locking manner, with stack checking 12306 12307 __fpending -- returns in bytes the amount of output pending on 12308 a stream 12309 12310 __fprintf_chk -- convert formatted output, with stack checking 12311 __fwprintf_chk -- convert formatted wide-character output, with 12312 stack checking 12313 12314 __fxstatat -- get file status relative to directory file 12315 descriptor 12316 12317 __fxstatat64, fstatat64 -- get file status relative to a 12318 directory file descriptor (Large File Support) 12319 12320 __getcwd_chk -- get current working directory, with buffer 12321 overflow checking 12322 12323 __getgroups_chk -- get list of supplementary group IDs, with 12324 buffer overflow checking 12325 12326 __gethostname_chk -- get host name, with buffer overflow 12327 checking 12328 12329 __getlogin_r_chk -- get user name, with buffer overflow 12330 checking (reentrant) 12331 12332 __getpagesize -- alias for getpagesize - get current page size 12333 __getpgid -- get the process group id 12334 __h_errno_location -- address of h_errno variable 12335 __isinf -- test for infinity 12336 __isinff -- test for infinity 12337 __isinfl -- test for infinity 12338 __isnan -- test for infinity 12339 __isnanf -- test for infinity 12340 __isnanl -- test for infinity 12341 __libc_current_sigrtmax -- return number of available real-time 12342 signal with lowest priority 12343 12344 __libc_current_sigrtmin -- return number of available real-time 12345 signal with highest priority 12346 12347 __libc_start_main -- initialization routine 12348 __mbsnrtowcs_chk -- convert a multibyte string to a 12349 wide-character string, with buffer overflow checking 12350 12351 __mbsrtowcs_chk -- convert a multibyte string to a 12352 wide-character string, with buffer overflow checking 12353 12354 __mbstowcs_chk -- convert a multibyte string to a 12355 wide-character string, with buffer overflow checking 12356 12357 __memcpy_chk -- copy memory area, with buffer overflow checking 12358 __memmove_chk -- copy memory area, with buffer overflow 12359 checking 12360 12361 __mempcpy -- copy given number of bytes of source to 12362 destination 12363 12364 __mempcpy_chk -- copy memory area, with buffer overflow 12365 checking 12366 12367 __memset_chk -- fill memory with a constant byte, using buffer 12368 overflow checking 12369 12370 __pread64_chk -- read from a file descriptor at a given offset, 12371 with buffer overflow checking 12372 12373 __pread_chk -- read from a file descriptor at a given offset, 12374 with buffer overflow checking 12375 12376 __printf_chk -- format and print data, with stack checking 12377 __rawmemchr -- scan memory 12378 __read_chk -- read from a file descriptor, with buffer overflow 12379 checking 12380 12381 __readlink_chk -- display value of a symbolic link, with buffer 12382 overflow checking 12383 12384 __realpath_chk -- return the canonicalized absolute pathname, 12385 with buffer overflow checking 12386 12387 __recv_chk -- receive a message from a socket, with buffer 12388 overflow checking 12389 12390 __recvfrom_chk -- receive a message from a socket, with buffer 12391 overflow checking 12392 12393 __register_atfork -- alias for register_atfork 12394 __sigsetjmp -- save stack context for non-local goto 12395 __snprintf_chk -- convert formatted output, with buffer 12396 overflow checking 12397 12398 __sprintf_chk -- convert formatted output, with stack checking 12399 __stack_chk_fail -- terminate a function in case of stack 12400 overflow 12401 12402 __stpcpy -- alias for stpcpy 12403 __stpcpy_chk -- copy a string returning a pointer to its end, 12404 with buffer overflow checking 12405 12406 __stpncpy_chk -- copy a fixed-size string, returning a pointer 12407 to its end, with buffer overflow checking 12408 12409 __strcat_chk -- concatenate two strings, with buffer overflow 12410 checking 12411 12412 __strcpy_chk -- copy a string, with buffer overflow checking 12413 __strdup -- alias for strdup 12414 __strncat_chk -- concatenate two strings, with buffer overflow 12415 checking 12416 12417 __strncpy_chk -- copy a string, with buffer overflow checking 12418 __strtod_internal -- underlying function for strtod 12419 __strtof_internal -- underlying function for strtof 12420 __strtok_r -- alias for strtok_r 12421 __strtol_internal -- alias for strtol 12422 __strtold_internal -- underlying function for strtold 12423 __strtoll_internal -- underlying function for strtoll 12424 __strtoul_internal -- underlying function for strtoul 12425 __strtoull_internal -- underlying function for strtoull 12426 __swprintf_chk -- convert formatted wide-character output, with 12427 stack checking 12428 12429 __sysconf -- get configuration information at runtime 12430 __syslog_chk -- send messages to the system logger, with stack 12431 checking 12432 12433 __sysv_signal -- signal handling 12434 __timezone -- external variable containing timezone 12435 __ttyname_r_chk -- return name of a terminal, with buffer 12436 overflow checking (reentrant) 12437 12438 __tzname -- external variable containing the timezone names 12439 __vfprintf_chk -- convert formatted output, with stack checking 12440 __vfwprintf_chk -- convert formatted wide-character output, 12441 with stack checking 12442 12443 __vprintf_chk -- convert formatted output, with stack checking 12444 __vsnprintf_chk -- convert formatted output, with stack 12445 checking 12446 12447 __vsprintf_chk -- convert formatted output, with stack checking 12448 __vswprintf_chk -- convert formatted wide-character output, 12449 with stack checking 12450 12451 __vsyslog_chk -- send messages to the system logger, with stack 12452 checking 12453 12454 __vwprintf_chk -- convert formatted wide-character output, with 12455 stack checking 12456 12457 __wcpcpy_chk -- copy a wide-character string, returning a 12458 pointer to its end, with buffer overflow checking 12459 12460 __wcpncpy_chk -- copy a fixed-size string of wide characters, 12461 returning a pointer to its end, with buffer overflow 12462 checking 12463 12464 __wcrtomb_chk -- convert a wide character to a multibyte 12465 sequence, with buffer overflow checking 12466 12467 __wcscat_chk -- concatenate two wide-character strings, with 12468 buffer overflow checking 12469 12470 __wcscpy_chk -- copy a wide-character string, with buffer 12471 overflow checking 12472 12473 __wcsncat_chk -- concatenate two wide-character strings, with 12474 buffer overflow checking 12475 12476 __wcsncpy_chk -- copy a fixed-size string of wide characters, 12477 with buffer overflow checking 12478 12479 __wcsnrtombs_chk -- convert a wide-character string to a 12480 multibyte string, with buffer overflow checking 12481 12482 __wcsrtombs_chk -- convert a wide-character string to a 12483 multibyte string, with buffer overflow checking 12484 12485 __wcstod_internal -- underlying function for wcstod 12486 __wcstof_internal -- underlying function for wcstof 12487 __wcstol_internal -- underlying function for wcstol 12488 __wcstold_internal -- underlying function for wcstold 12489 __wcstombs_chk -- convert a wide-character string to a 12490 multibyte string, with buffer overflow checking 12491 12492 __wcstoul_internal -- underlying function for wcstoul 12493 __wctomb_chk -- convert a wide character to a multibyte 12494 sequence, with buffer overflow checking 12495 12496 __wmemcpy_chk -- copy an array of wide-characters, with buffer 12497 overflow checking 12498 12499 __wmemmove_chk -- copy an array of wide-characters, with buffer 12500 overflow checking 12501 12502 __wmempcpy_chk -- copy memory area, with buffer overflow 12503 checking 12504 12505 __wmemset_chk -- fill an array of wide-characters with a 12506 constant wide character, with buffer overflow checking 12507 12508 __wprintf_chk -- convert formatted wide-character output, with 12509 stack checking 12510 12511 __xmknod -- make a special file 12512 __xmknodat -- make a special file relative to a directory file 12513 descriptor 12514 12515 __xpg_basename -- return the last component of a file name 12516 __xpg_sigpause -- remove a signal from the signal mask and 12517 suspend the thread 12518 12519 __xpg_strerror_r -- return string describing error number 12520 __xstat -- get File Status 12521 __xstat64 -- get File Status 12522 _environ -- alias for environ - user environment 12523 _nl_msg_cat_cntr -- new catalog load counter 12524 _sys_errlist -- array containing the "C" locale strings used by 12525 strerror() 12526 12527 _sys_siglist -- array containing the names of the signal names 12528 acct -- switch process accounting on or off 12529 adjtime -- correct the time to allow synchronization of the 12530 system clock 12531 12532 alphasort64 -- Comparison function for directory scanning 12533 (Large File Support) 12534 12535 argz_add, argz_add_sep, argz_append, argz_count, argz_create, 12536 argz_create_sep, argz_delete, argz_extract, argz_insert, 12537 argz_next, argz_replace, argz_stringify -- Operate on 12538 argz vectors 12539 12540 asprintf -- write formatted output to a dynamically allocated 12541 string 12542 12543 backtrace, backtrace_symbols, backtrace_symbols_fd -- runtime 12544 stack back tracing 12545 12546 basename -- return the last component of a file name 12547 bind_textdomain_codeset -- specify encoding for message 12548 retrieval 12549 12550 bindresvport -- bind socket to privileged IP port 12551 bindtextdomain -- specify the location of a message catalog 12552 cfmakeraw -- get and set terminal attributes 12553 cfsetspeed -- set terminal input and output data rate 12554 clearerr_unlocked -- non-thread-safe clearerr 12555 daemon -- run in the background 12556 dcgettext -- perform domain and category specific lookup in 12557 message catalog 12558 12559 dcngettext -- perform domain and category specific lookup in 12560 message catalog with plural 12561 12562 dgettext -- perform lookup in message catalog for the current 12563 LC_MESSAGES locale 12564 12565 dl_iterate_phdr -- iterate over a program's loaded shared 12566 objects 12567 12568 dngettext -- perform lookup in message catalog for the current 12569 locale 12570 12571 drand48_r -- reentrantly generate pseudorandom numbers in a 12572 uniform distribution 12573 12574 endutent -- access utmp file entries 12575 envz_add, envz_entry, envz_get, envz_merge, envz_remove, 12576 envz_strip -- Operate on environment vectors 12577 12578 epoll_create -- open an epoll file descriptor 12579 epoll_ctl -- control an epoll file descriptor 12580 epoll_wait -- wait for I/O events on an epoll file descriptor 12581 erand48_r -- reentrantly generate pseudorandom numbers in a 12582 uniform distribution 12583 12584 err -- display formatted error messages 12585 error -- print error message 12586 errx -- display formatted error message and exit 12587 fcntl -- file control 12588 feof_unlocked -- non-thread-safe feof 12589 ferror_unlocked -- non-thread-safe ferror 12590 fflush_unlocked -- non thread safe fflush 12591 fgetc_unlocked -- non-thread-safe fgetc 12592 fgets_unlocked -- non-thread-safe fgets 12593 fgetwc_unlocked -- non thread safe fgetwc 12594 fgetws_unlocked -- non-thread-safe fgetws 12595 fileno_unlocked -- non-thread-safe fileno 12596 flock -- apply or remove an advisory lock on an open file 12597 fnmatch -- match a filename or a pathname 12598 fputc_unlocked -- non-thread-safe fputc 12599 fputs_unlocked -- non-thread-safe fputs 12600 fputwc_unlocked -- non-thread-safe fputwc 12601 fputws_unlocked -- non-thread-safe fputws 12602 fread_unlocked -- non-thread-safe fread 12603 fscanf -- convert formatted input 12604 fstatfs -- (deprecated) 12605 fstatfs64 -- (deprecated) 12606 futimes -- set file access and modification times 12607 fwrite_unlocked -- non-thread-safe fwrite 12608 fwscanf -- convert formatted input 12609 getcwd -- get the pathname of the current working directory 12610 getdomainname -- get NIS domain name (DEPRECATED). 12611 getdtablesize -- get file descriptor table size (DEPRECATED) 12612 getgrent_r -- reentrantly get entry in group file 12613 getgrouplist -- get groups a user belongs to 12614 gethostbyaddr_r -- find network host database entry matching 12615 host name (DEPRECATED) 12616 12617 gethostbyname2 -- find network host database entry matching 12618 host name (DEPRECATED) 12619 12620 gethostbyname2_r -- find network host database entry matching 12621 host name (DEPRECATED) 12622 12623 gethostbyname_r -- find network host database entry matching 12624 host name (DEPRECATED) 12625 12626 getifaddrs -- get interface addresses 12627 getloadavg -- get system load averages 12628 getopt -- parse command line options 12629 getopt_long -- parse command line options 12630 getopt_long_only -- parse command line options 12631 getpagesize -- get memory page size (DEPRECATED) 12632 getprotobyname_r -- retrieve information from the network 12633 protocol database by protocol name, reentrantly 12634 12635 getprotobynumber_r -- retrieve information from the network 12636 protocol database by protocol number, reentrantly 12637 12638 getprotoent_r -- read the next entry of the protocol database, 12639 reentrantly 12640 12641 getpwent_r -- reentrantly get entry in passwd file 12642 getrlimit, setrlimit -- get resource consumption limits 12643 getservbyname_r -- retrieve information from the network 12644 services database by service name, reentrantly 12645 12646 getservbyport_r -- retrieve information from the network 12647 services database by service port, reentrantly 12648 12649 getservent_r -- read the next entry of the network services 12650 database, reentrantly 12651 12652 getsockopt -- get socket options 12653 gettext -- search message catalogs for a string 12654 getutent -- access user accounting database entries 12655 getutent_r -- access user accounting database entries 12656 getwc_unlocked -- non-thread-safe getwc 12657 getwchar_unlocked -- non-thread-safe getwchar 12658 glob64 -- find pathnames matching a pattern (Large File 12659 Support) 12660 12661 globfree64 -- free memory from glob64() (Large File Support) 12662 gnu_get_libc_version, gnu_get_libc_release -- get 12663 glibc-specific version and release 12664 12665 hcreate_r -- allocate space for a hash search table, 12666 reentrantly 12667 12668 hdestroy_r -- dispose of a hash search table, reentrantly 12669 hsearch_r -- search a hash table, reentrantly 12670 inet_aton -- Internet address manipulation routine 12671 initgroups -- initialize the supplementary group access list 12672 initstate_r -- reentrantly initialize a state array for random 12673 number generator functions 12674 12675 inotify_add_watch -- add a watch to a watch list 12676 inotify_init -- instantiate inotify 12677 inotify_rm_watch -- remove a watch from an inotify watch list 12678 ioctl -- control device 12679 sockio -- socket ioctl commands 12680 ttyio -- tty ioctl commands 12681 jrand48_r -- reentrantly generate pseudorandom numbers in a 12682 uniform distribution 12683 12684 kill -- send a signal 12685 lcong48_r -- reentrantly generate pseudorandom numbers in a 12686 uniform distribution 12687 12688 link -- create a link to a file 12689 lrand48_r -- reentrantly generate pseudorandom numbers in a 12690 uniform distribution 12691 12692 memmem -- locate bytes 12693 memrchr -- scan memory for a character 12694 mkstemp64 -- create a unique temporary file (Large File 12695 Support) 12696 12697 mrand48_r -- reentrantly generate pseudorandom numbers in a 12698 uniform distribution 12699 12700 mremap -- remap a virtual memory address 12701 ngettext -- search message catalogs for plural string 12702 nrand48_r -- reentrantly generate pseudorandom numbers in a 12703 uniform distribution 12704 12705 openat64 -- open a file relative to a directory file descriptor 12706 (Large File Support) 12707 12708 pmap_getport -- find the port number assigned to a service 12709 registered with a portmapper. 12710 12711 pmap_set -- establishes mapping to machine's RPC Bind service. 12712 pmap_unset -- destroys RPC Binding 12713 posix_fadvise64 -- File advisory information (Large File 12714 Support) 12715 12716 posix_fallocate64 -- file space control (Large File Support) 12717 pread64 -- read from a file (Large File Support) 12718 ptrace -- process trace 12719 putwc_unlocked -- non-thread-safe putwc 12720 putwchar_unlocked -- non-thread-safe putwchar 12721 pwrite64 -- write on a file (Large File Support) 12722 random_r -- reentrantly generate pseudorandom numbers in a 12723 uniform distribution 12724 12725 readdir64_r -- read a directory (Large File Support) 12726 regexec -- regular expression matching 12727 scandir64 -- scan a directory (Large File Support) 12728 scanf -- convert formatted input 12729 sched_getaffinity -- retrieve the affinity mask of a process 12730 sched_setaffinity -- set the CPU affinity mask for a process 12731 sched_setscheduler -- set scheduling policy and parameters 12732 seed48_r -- reentrantly generate pseudorandom numbers in a 12733 uniform distribution 12734 12735 sendfile -- transfer data between two file descriptors 12736 sendfile64 -- transfer data between two file descriptors (Large 12737 File Support) 12738 12739 setbuffer -- stream buffering operation 12740 setgroups -- set list of supplementary group IDs 12741 sethostname -- set host name 12742 setsockopt -- set socket options 12743 setstate_r -- reentrantly change the state array used by random 12744 number generator functions 12745 12746 setutent -- access user accounting database entries 12747 sigandset -- build a new signal set by combining the two input 12748 sets using logical AND 12749 12750 sigisemptyset -- check for empty signal set 12751 sigorset -- build a new signal set by combining the two input 12752 sets using logical OR 12753 12754 sigpause -- remove a signal from the signal mask and suspend 12755 the thread (deprecated) 12756 12757 sigreturn -- return from signal handler and cleanup stack frame 12758 srand48_r -- reentrantly generate pseudorandom numbers in a 12759 uniform distribution 12760 12761 srandom_r -- reentrantly set the seed for a new sequence of 12762 pseudorandom numbers 12763 12764 sscanf -- convert formatted input 12765 statfs -- (deprecated) 12766 statfs64 -- (deprecated) 12767 stime -- set time 12768 strcasestr -- locate a substring ignoring case 12769 strerror_r -- return string describing error number 12770 strptime -- parse a time string 12771 strsep -- extract token from string 12772 strtoq -- convert string value to a long or quad_t integer 12773 strtouq -- convert a string to an unsigned long long 12774 svc_register -- register Remote Procedure Call interface 12775 svc_run -- waits for RPC requests to arrive and calls service 12776 procedure 12777 12778 svc_sendreply -- called by RPC service's dispatch routine 12779 svctcp_create -- create a TCP/IP-based RPC service transport 12780 svcudp_create -- create a UDP-based RPC service transport 12781 swscanf -- convert formatted input 12782 sysconf -- Get configuration information at runtime 12783 sysinfo -- return system information 12784 system -- execute a shell command 12785 textdomain -- set the current default message domain 12786 unlink -- remove a directory entry 12787 utmpname -- set user accounting database 12788 vasprintf -- write formatted output to a dynamically allocated 12789 string 12790 12791 verrx -- display formatted error message and exit 12792 vfscanf -- convert formatted input 12793 vfwscanf -- convert formatted input 12794 vscanf -- convert formatted input 12795 vsscanf -- convert formatted input 12796 vswscanf -- convert formatted input 12797 vsyslog -- log to system log 12798 vwscanf -- convert formatted input 12799 wait4 -- wait for process termination, BSD style 12800 warn -- formatted error messages 12801 warnx -- formatted error messages 12802 wcstoq -- convert wide string to long long int representation 12803 wcstouq -- convert wide string to unsigned long long int 12804 representation 12805 12806 wscanf -- convert formatted input 12807 xdr_u_int -- library routines for external data representation 12808 xdrstdio_create -- library routines for external data 12809 representation 12810 12811 The interfaces defined on the following pages are included in 12812 libc and are defined by this specification. Unless otherwise 12813 noted, these interfaces shall be included in the source 12814 standard. 12815 12816 Other interfaces listed in Section 14.3 shall behave as 12817 described in the referenced base document. 12818 12819 _IO_feof 12820 12821 Name 12822 12823 _IO_feof -- alias for feof 12824 12825 Synopsis 12826 12827 int _IO_feof(_IO_FILE * __fp); 12828 12829 Description 12830 12831 _IO_feof() tests the end-of-file indicator for the stream 12832 pointed to by __fp, returning a non-zero value if it is set. 12833 12834 _IO_feof() is not in the source standard; it is only in the 12835 binary standard. 12836 12837 _IO_getc 12838 12839 Name 12840 12841 _IO_getc -- alias for getc 12842 12843 Synopsis 12844 12845 int _IO_getc(_IO_FILE * __fp); 12846 12847 Description 12848 12849 _IO_getc() reads the next character from __fp and returns it as 12850 an unsigned char cast to an int, or EOF on end-of-file or 12851 error. 12852 12853 _IO_getc() is not in the source standard; it is only in the 12854 binary standard. 12855 12856 _IO_putc 12857 12858 Name 12859 12860 _IO_putc -- alias for putc 12861 12862 Synopsis 12863 12864 int _IO_putc(int __c, _IO_FILE * __fp); 12865 12866 Description 12867 12868 _IO_putc() writes the character __c, cast to an unsigned char, 12869 to __fp. 12870 12871 _IO_putc() is not in the source standard; it is only in the 12872 binary standard. 12873 12874 _IO_puts 12875 12876 Name 12877 12878 _IO_puts -- alias for puts 12879 12880 Synopsis 12881 12882 int _IO_puts(const char * __c); 12883 12884 Description 12885 12886 _IO_puts() writes the string __s and a trailing newline to 12887 stdout. 12888 12889 _IO_puts() is not in the source standard; it is only in the 12890 binary standard. 12891 12892 __assert_fail 12893 12894 Name 12895 12896 __assert_fail -- abort the program after false assertion 12897 12898 Synopsis 12899 12900 void __assert_fail(const char * assertion, const char * file, 12901 unsigned int line, const char * function); 12902 12903 Description 12904 12905 The __assert_fail() function is used to implement the assert() 12906 interface of POSIX 1003.1-2008 (ISO/IEC 9945-2009). The 12907 __assert_fail() function shall print the given file filename, 12908 line line number, function function name and a message on the 12909 standard error stream in an unspecified format, and abort 12910 program execution via the abort() function. For example: 12911 12912 a.c:10: foobar: Assertion a == b failed. 12913 12914 If function is NULL, __assert_fail() shall omit information 12915 about the function. 12916 12917 assertion, file, and line shall be non-NULL. 12918 12919 The __assert_fail() function is not in the source standard; it 12920 is only in the binary standard. The assert() interface is not 12921 in the binary standard; it is only in the source standard. The 12922 assert() may be implemented as a macro. 12923 12924 __chk_fail 12925 12926 Name 12927 12928 __chk_fail -- terminate a function in case of buffer overflow 12929 12930 Synopsis 12931 12932 void __chk_fail(void); 12933 12934 Description 12935 12936 The interface __chk_fail() shall abort the function that called 12937 it with a message that a buffer overflow has been detected. The 12938 program that called the function shall then exit. 12939 12940 The __chk_fail() function is not in the source standard; it is 12941 only in the binary standard. 12942 12943 Application Usage (informative) 12944 12945 The interface __chk_fail() does not check for a buffer overflow 12946 itself. It merely reports one when invoked. 12947 12948 __confstr_chk 12949 12950 Name 12951 12952 __confstr_chk -- get configuration dependent string variables, 12953 with buffer overflow checking 12954 12955 Synopsis 12956 12957 #include 12958 12959 size_t __confstr_chk(int name, char * buf, size_t len, size_t 12960 buflen); 12961 12962 Description 12963 12964 The interface __confstr_chk() shall function in the same way as 12965 the interface confstr(), except that __confstr_chk() shall 12966 check for buffer overflow before computing a result. If an 12967 overflow is anticipated, the function shall abort and the 12968 program calling it shall exit. 12969 12970 The parameter buflen specifies the size of the buffer buf. If 12971 len exceeds buflen, the function shall abort, and the program 12972 calling it shall exit. 12973 12974 The __confstr_chk() function is not in the source standard; it 12975 is only in the binary standard. 12976 12977 __ctype_b_loc 12978 12979 Name 12980 12981 __ctype_b_loc -- accessor function for __ctype_b array for 12982 ctype functions 12983 12984 Synopsis 12985 12986 #include 12987 12988 const unsigned short * * __ctype_b_loc (void); 12989 12990 Description 12991 12992 The __ctype_b_loc() function shall return a pointer into an 12993 array of characters in the current locale that contains 12994 characteristics for each character in the current character 12995 set. The array shall contain a total of 384 characters, and can 12996 be indexed with any signed or unsigned char (i.e. with an index 12997 value between -128 and 255). If the application is 12998 multithreaded, the array shall be local to the current thread. 12999 13000 This interface is not in the source standard; it is only in the 13001 binary standard. 13002 13003 Return Value 13004 13005 The __ctype_b_loc() function shall return a pointer to the 13006 array of characters to be used for the ctype() family of 13007 functions (see ). 13008 13009 __ctype_get_mb_cur_max 13010 13011 Name 13012 13013 __ctype_get_mb_cur_max -- maximum length of a multibyte 13014 character in the current locale 13015 13016 Synopsis 13017 13018 size_t __ctype_get_mb_cur_max(void); 13019 13020 Description 13021 13022 __ctype_get_mb_cur_max() returns the maximum length of a 13023 multibyte character in the current locale. 13024 13025 __ctype_get_mb_cur_max() is not in the source standard; it is 13026 only in the binary standard. 13027 13028 __ctype_tolower_loc 13029 13030 Name 13031 13032 __ctype_tolower_loc -- accessor function for __ctype_b_tolower 13033 array for ctype tolower() function 13034 13035 Synopsis 13036 13037 #include 13038 13039 int32_t * * __ctype_tolower_loc(void); 13040 13041 Description 13042 13043 The __ctype_tolower_loc() function shall return a pointer into 13044 an array of characters in the current locale that contains 13045 lower case equivalents for each character in the current 13046 character set. The array shall contain a total of 384 13047 characters, and can be indexed with any signed or unsigned char 13048 (i.e. with an index value between -128 and 255). If the 13049 application is multithreaded, the array shall be local to the 13050 current thread. 13051 13052 This interface is not in the source standard; it is only in the 13053 binary standard. 13054 13055 Return Value 13056 13057 The __ctype_tolower_loc() function shall return a pointer to 13058 the array of characters to be used for the ctype() family of 13059 functions (see ). 13060 13061 __ctype_toupper_loc 13062 13063 Name 13064 13065 __ctype_toupper_loc -- accessor function for 13066 __ctype_b_toupper() array for ctype toupper() function 13067 13068 Synopsis 13069 13070 #include 13071 13072 int32_t * * __ctype_toupper_loc(void); 13073 13074 Description 13075 13076 The __ctype_toupper_loc() function shall return a pointer into 13077 an array of characters in the current locale that contains 13078 upper case equivalents for each character in the current 13079 character set. The array shall contain a total of 384 13080 characters, and can be indexed with any signed or unsigned char 13081 (i.e. with an index value between -128 and 255). If the 13082 application is multithreaded, the array shall be local to the 13083 current thread. 13084 13085 This interface is not in the source standard; it is only in the 13086 binary standard. 13087 13088 Return Value 13089 13090 The __ctype_toupper_loc() function shall return a pointer to 13091 the array of characters to be used for the ctype() family of 13092 functions (see ). 13093 13094 __cxa_atexit 13095 13096 Name 13097 13098 __cxa_atexit -- register a function to be called by exit or 13099 when a shared library is unloaded 13100 13101 Synopsis 13102 13103 int __cxa_atexit(void (*func) (void *), void * arg, void * 13104 dso_handle); 13105 13106 Description 13107 13108 As described in the Itanium(TM) C++ ABI, __cxa_atexit() 13109 registers a destructor function to be called by exit() or when 13110 a shared library is unloaded. When a shared library is 13111 unloaded, any destructor function associated with that shared 13112 library, identified by dso_handle, shall be called with the 13113 single argument arg, and then that function shall be removed, 13114 or marked as complete, from the list of functions to run at 13115 exit(). On a call to exit(), any remaining functions registered 13116 shall be called with the single argument arg. Destructor 13117 functions shall always be called in the reverse order to their 13118 registration (i.e. the most recently registered function shall 13119 be called first), 13120 13121 The __cxa_atexit() function is used to implement atexit(), as 13122 described in POSIX 1003.1-2008 (ISO/IEC 9945-2009). Calling 13123 atexit(func) from the statically linked part of an application 13124 shall be equivalent to __cxa_atexit(func, NULL, NULL). 13125 13126 __cxa_atexit() is not in the source standard; it is only in the 13127 binary standard. 13128 13129 Note: atexit() is not in the binary standard; it is only in 13130 the source standard. 13131 13132 __cxa_finalize 13133 13134 Name 13135 13136 __cxa_finalize -- call destructors of global (or local static) 13137 C++ objects and exit functions registered with atexit 13138 13139 Synopsis 13140 13141 void __cxa_finalize(void * d); 13142 13143 Description 13144 13145 As described in the Itanium® C++ ABI, the C runtime library 13146 shall maintain a list of termination function entries 13147 containing the following information: 13148 13149 * A pointer to a termination function. 13150 * An operand to be passed to the function. 13151 * A handle identifying the home shared library of the entry. 13152 13153 The list is populated by entries of two kinds: 13154 13155 * Destructors of global (or local static) C++ objects that 13156 require destruction on exit. 13157 * Functions registered by the user with atexit(). 13158 13159 In the former case an entry consists of a pointer to the 13160 destructor, a pointer to the corresponding object and a handle 13161 for the home shared library of the object. In the latter case 13162 the pointer to the function is the pointer passed to atexit(), 13163 while the other pointers are NULL. 13164 13165 When __cxa_finalize(d) is called, it shall walk the termination 13166 function list, calling each in turn if d matches the handle of 13167 the termination function entry. If d is NULL, it shall call all 13168 the termination funtions. Multiple calls to __cxa_finalize 13169 shall not result in calling termination function entries 13170 multiple times; the implementation may either remove entries or 13171 mark them finished. The termination functions shall always be 13172 called in the reverse order of their registration (i.e. the 13173 most recently registered function shall be called first). 13174 13175 An application shall not call __cxa_finalize() directly. The 13176 implementation shall arrange for__cxa_finalize() to be called 13177 during early shared library unload (e.g. dlclose()) with a 13178 handle to the shared library. When the main program calls exit, 13179 the implementation shall cause any remaining 13180 __cxa_atexit-registered functions to be called, either by 13181 calling __cxa_finalize(NULL), or by walking the registration 13182 list itself. 13183 13184 __cxa_finalize() is not in the source standard; it is only in 13185 the binary standard. 13186 13187 __daylight 13188 13189 Name 13190 13191 __daylight -- external daylight savings time flag 13192 13193 Synopsis 13194 13195 int __daylight; 13196 13197 Description 13198 13199 The external variable __daylight shall implement the daylight 13200 savings time flag daylight as specified in POSIX 1003.1-2008 13201 (ISO/IEC 9945-2009). __daylight has the same specification as 13202 daylight. 13203 13204 __environ 13205 13206 Name 13207 13208 __environ -- alias for environ - user environment 13209 13210 Synopsis 13211 13212 extern char **__environ; 13213 13214 Description 13215 13216 The external variable __environ shall implement the environment 13217 variable environ as specified in POSIX 1003.1-2008 (ISO/IEC 13218 9945-2009). __environ has the same specification as environ. 13219 13220 __errno_location 13221 13222 Name 13223 13224 __errno_location -- address of errno variable 13225 13226 Synopsis 13227 13228 int * __errno_location(void); 13229 13230 Description 13231 13232 The __errno_location() function shall return the address of the 13233 errno variable for the current thread. 13234 13235 __errno_location() is not in the source standard; it is only in 13236 the binary standard. 13237 13238 __fgets_chk 13239 13240 Name 13241 13242 __fgets_chk -- string input, with buffer overflow checking 13243 13244 Synopsis 13245 13246 #include 13247 13248 char * __fgets_chk(char * s, size_t size, int strsize, FILE * 13249 stream); 13250 13251 Description 13252 13253 The interface __fgets_chk() shall function in the same way as 13254 the interface fgets(), except that __fgets_chk() shall check 13255 for buffer overflow before computing a result. If an overflow 13256 is anticipated, the function shall abort and the program 13257 calling it shall exit. 13258 13259 The parameter strsize specifies the size of the object pointed 13260 to by stream. 13261 13262 The __fgets_chk() function is not in the source standard; it is 13263 only in the binary standard. 13264 13265 __fgets_unlocked_chk 13266 13267 Name 13268 13269 __fgets_unlocked_chk -- non-locking string input, with buffer 13270 overflow checking 13271 13272 Synopsis 13273 13274 #include 13275 13276 char * __fgets_unlocked_chk(char * s, size_t size, int strsize, 13277 FILE * stream); 13278 13279 Description 13280 13281 The interface __fgets_unlocked_chk() shall function in the same 13282 way as the interface fgets_unlocked(), except that 13283 __fgets_unlocked_chk() shall check for buffer overflow before 13284 computing a result. If an overflow is anticipated, the function 13285 shall abort and the program calling it shall exit. 13286 13287 The parameter strsize specifies the size of the object pointed 13288 to by stream. 13289 13290 The __fgets_unlocked_chk() function is not in the source 13291 standard; it is only in the binary standard. 13292 13293 __fgetws_chk 13294 13295 Name 13296 13297 __fgetws_chk -- read a wide-character string from a FILE 13298 stream, with buffer overflow checking 13299 13300 Synopsis 13301 13302 #include 13303 13304 wchar_t * __fgetws_chk(wchar_t * ws, size_t size, int strsize, 13305 FILE * stream); 13306 13307 Description 13308 13309 The interface __fgetws_chk() shall function in the same way as 13310 the interface fgetws(), except that __fgetws_chk() shall check 13311 for buffer overflow before computing a result. If an overflow 13312 is anticipated, the function shall abort and the program 13313 calling it shall exit. 13314 13315 The parameter strsize specifies the size of the object pointed 13316 to by stream. 13317 13318 The __fgetws_chk() function is not in the source standard; it 13319 is only in the binary standard. 13320 13321 __fgetws_unlocked_chk 13322 13323 Name 13324 13325 __fgetws_unlocked_chk -- read a wide-character string from a 13326 FILE stream in a non-locking manner, with stack checking 13327 13328 Synopsis 13329 13330 #include 13331 13332 wchar_t * __fgetws_unlocked_chk(wchar_t * ws, size_t strsize, 13333 int n, FILE * stream); 13334 13335 Description 13336 13337 The interface __fgetws_unlocked_chk() shall function in the 13338 same way as the interface fgetws_unlocked(), except that 13339 __fgetws_unlocked_chk() shall check for stack overflow before 13340 computing a result. If an overflow is anticipated, the function 13341 shall abort and the program calling it shall exit. 13342 13343 The parameter strsize specifies the size of the object pointed 13344 to by stream. 13345 13346 The __fgetws_unlocked_chk() function is not in the source 13347 standard; it is only in the binary standard. 13348 13349 __fpending 13350 13351 Name 13352 13353 __fpending -- returns in bytes the amount of output pending on 13354 a stream 13355 13356 Synopsis 13357 13358 size_t __fpending(FILE * stream); 13359 13360 Description 13361 13362 __fpending() returns the amount of output in bytes pending on a 13363 stream. 13364 13365 __fpending() is not in the source standard; it is only in the 13366 binary standard. 13367 13368 __fprintf_chk 13369 13370 Name 13371 13372 __fprintf_chk -- convert formatted output, with stack checking 13373 13374 Synopsis 13375 13376 #include 13377 13378 int __fprintf_chk(FILE * stream, int flag, const char * 13379 format); 13380 13381 Description 13382 13383 The interface __fprintf_chk() shall function in the same way as 13384 the interface fprintf(), except that __fprintf_chk() shall 13385 check for stack overflow before computing a result, depending 13386 on the value of the flag parameter. If an overflow is 13387 anticipated, the function shall abort and the program calling 13388 it shall exit. 13389 13390 In general, the higher the value of flag, the more security 13391 measures this interface shall take in the form of checking the 13392 stack, parameter values, and so on. 13393 13394 The __fprintf_chk() function is not in the source standard; it 13395 is only in the binary standard. 13396 13397 __fwprintf_chk 13398 13399 Name 13400 13401 __fwprintf_chk -- convert formatted wide-character output, with 13402 stack checking 13403 13404 Synopsis 13405 13406 #include 13407 13408 int __fwprintf_chk(FILE * stream, int flag, const wchar_t * 13409 format); 13410 13411 Description 13412 13413 The interface __fwprintf_chk() shall function in the same way 13414 as the interface fwprintf(), except that __fwprintf_chk() shall 13415 check for stack overflow before computing a result, depending 13416 on the value of the flag parameter. If an overflow is 13417 anticipated, the function shall abort and the program calling 13418 it shall exit. 13419 13420 In general, the higher the value of flag, the more security 13421 measures this interface shall take in the form of checking the 13422 stack, parameter values, and so on. 13423 13424 The __fwprintf_chk() function is not in the source standard; it 13425 is only in the binary standard. 13426 13427 __fxstatat 13428 13429 Name 13430 13431 __fxstatat -- get file status relative to directory file 13432 descriptor 13433 13434 Synopsis 13435 13436 #include 13437 #include 13438 13439 int __fxstatat(int ver, int dirfd, const char * path, struct 13440 stat * stat_buf, int flags); 13441 13442 Description 13443 13444 The __fxstatat() function shall implement the fstatat() 13445 function. The behavior of __fxstatat() for values of ver other 13446 than _STAT_VER is undefined. See Data Definitions in the 13447 architecture specific part of this specification for the 13448 correct value of _STAT_VER. 13449 13450 __fxstatat(_STAT_VER, dirfd, stat_buf, flags) shall behave as 13451 fstatat(dirfd, stat_buf, flags) as specified by POSIX 13452 1003.1-2008 (ISO/IEC 9945-2009). 13453 13454 __fxstatat() is not in the source standard; it is only in the 13455 binary standard. 13456 13457 Note: The fstatat() function is not in the binary standard; 13458 it is only in the source standard. 13459 13460 __fxstatat64, fstatat64 13461 13462 Name 13463 13464 __fxstatat64, fstatat64 -- get file status relative to a 13465 directory file descriptor (Large File Support) 13466 13467 Synopsis 13468 13469 #include 13470 #include 13471 13472 int __fxstatat64(int ver, int dirfd, const char * path, struct 13473 stat64 * stat_buf, int flags); 13474 13475 int fstatat64(int dirfd, const char * file, struct stat64 * 13476 buf, int flag); 13477 13478 Description 13479 13480 fstatat64() is a large-file version of the fstatat() function 13481 as defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). It differs 13482 from fstatat() only in that the buf parameter refers to a 13483 large-file version of the stat structure. 13484 13485 The __fxstatat64() function shall implement the fstatat64() 13486 function. The behavior of __fxstatat64() for values of ver 13487 other than _STAT_VER is undefined. See Data Definitions in the 13488 architecture specific part of this specification for the 13489 correct value of _STAT_VER. 13490 13491 __fxstatat64(_STAT_VER, dirfd, stat_buf, flags) shall behave as 13492 fstatat64(dirfd, stat_buf, flags) 13493 13494 __fxstatat64() is not in the source standard; it is only in the 13495 binary standard. 13496 13497 Note: The fstatat64() function is not in the binary 13498 standard; it is only in the source standard. 13499 13500 __getcwd_chk 13501 13502 Name 13503 13504 __getcwd_chk -- get current working directory, with buffer 13505 overflow checking 13506 13507 Synopsis 13508 13509 #include 13510 13511 char * __getcwd_chk(char * buf, size_t len, size_t buflen); 13512 13513 Description 13514 13515 The interface __getcwd_chk() shall function in the same way as 13516 the interface getcwd(), except that __getcwd_chk() shall check 13517 for buffer overflow before computing a result. If an overflow 13518 is anticipated, the function shall abort and the program 13519 calling it shall exit. 13520 13521 The parameter buflen specifies the size of the buffer buf. If 13522 len exceeds buflen, the function shall abort, and the program 13523 calling it shall exit. 13524 13525 The __getcwd_chk() function is not in the source standard; it 13526 is only in the binary standard. 13527 13528 __getgroups_chk 13529 13530 Name 13531 13532 __getgroups_chk -- get list of supplementary group IDs, with 13533 buffer overflow checking 13534 13535 Synopsis 13536 13537 #include 13538 13539 int __getgroups_chk(int size, gid_t * list, size_t listlen); 13540 13541 Description 13542 13543 The interface __getgroups_chk() shall function in the same way 13544 as the interface getgroups(), except that __getgroups_chk() 13545 shall check for buffer overflow before computing a result. If 13546 an overflow is anticipated, the function shall abort and the 13547 program calling it shall exit. 13548 13549 The parameter listlen specifies the size in bytes of the object 13550 list. 13551 13552 The __getgroups_chk() function is not in the source standard; 13553 it is only in the binary standard. 13554 13555 __gethostname_chk 13556 13557 Name 13558 13559 __gethostname_chk -- get host name, with buffer overflow 13560 checking 13561 13562 Synopsis 13563 13564 #include 13565 13566 int __gethostname_chk(char * buf, size_t buflen, size_t 13567 maxlen); 13568 13569 Description 13570 13571 The interface __gethostname_chk() shall function in the same 13572 way as the interface gethostname(), except that 13573 __gethostname_chk() shall check for buffer overflow before 13574 computing a result. If an overflow is anticipated, the function 13575 shall abort and the program calling it shall exit. 13576 13577 The parameter buflen specifies the size of the buffer buf. If 13578 buflen exceeds maxlen, the function shall abort, and the 13579 program calling it shall exit. 13580 13581 The __gethostname_chk() function is not in the source standard; 13582 it is only in the binary standard. 13583 13584 __getlogin_r_chk 13585 13586 Name 13587 13588 __getlogin_r_chk -- get user name, with buffer overflow 13589 checking (reentrant) 13590 13591 Synopsis 13592 13593 #include 13594 13595 int __getlogin_r_chk(char * buf, size_t buflen, size_t maxlen); 13596 13597 Description 13598 13599 The interface __getlogin_r_chk() shall function in the same way 13600 as the interface getlogin_r(), except that __getlogin_r_chk() 13601 shall check for buffer overflow before computing a result. If 13602 an overflow is anticipated, the function shall abort and the 13603 program calling it shall exit. 13604 13605 The parameter buflen specifies the size of the buffer buf. If 13606 buflen exceeds maxlen, the function shall abort, and the 13607 program calling it shall exit. 13608 13609 The __getlogin_r_chk() function is not in the source standard; 13610 it is only in the binary standard. 13611 13612 __getpagesize 13613 13614 Name 13615 13616 __getpagesize -- alias for getpagesize - get current page size 13617 13618 Synopsis 13619 13620 int __getpagesize(void); 13621 13622 Description 13623 13624 __getpagesize() is an alias for getpagesize() - get current 13625 page size. 13626 13627 __getpagesize() has the same specification as getpagesize(). 13628 13629 __getpagesize() is not in the source standard; it is only in 13630 the binary standard. 13631 13632 __getpgid 13633 13634 Name 13635 13636 __getpgid -- get the process group id 13637 13638 Synopsis 13639 13640 pid_t __getpgid(pid_t pid); 13641 13642 Description 13643 13644 __getpgid() has the same specification as getpgid(). 13645 13646 __getpgid() is not in the source standard; it is only in the 13647 binary standard. 13648 13649 __h_errno_location 13650 13651 Name 13652 13653 __h_errno_location -- address of h_errno variable 13654 13655 Synopsis 13656 13657 int * __h_errno_location(void); 13658 13659 Description 13660 13661 __h_errno_location() returns the address of the h_errno 13662 variable, where h_errno is as specified in POSIX 1003.1-2008 13663 (ISO/IEC 9945-2009). 13664 13665 __h_errno_location() is not in the source standard; it is only 13666 in the binary standard. Note that h_errno itself is only in the 13667 source standard; it is not in the binary standard. 13668 13669 __isinf 13670 13671 Name 13672 13673 __isinf -- test for infinity 13674 13675 Synopsis 13676 13677 int __isinf(double arg); 13678 13679 Description 13680 13681 __isinf() has the same specification as isinf() in POSIX 13682 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 13683 for __isinf() is known to be double. 13684 13685 __isinf() is not in the source standard; it is only in the 13686 binary standard. 13687 13688 __isinff 13689 13690 Name 13691 13692 __isinff -- test for infinity 13693 13694 Synopsis 13695 13696 int __isinff(float arg); 13697 13698 Description 13699 13700 __isinff() has the same specification as isinf() in POSIX 13701 1003.1-2008 (ISO/IEC 9945-2009) except that the argument type 13702 for __isinff() is known to be float. 13703 13704 __isinff() is not in the source standard; it is only in the 13705 binary standard. 13706 13707 __isinfl 13708 13709 Name 13710 13711 __isinfl -- test for infinity 13712 13713 Synopsis 13714 13715 int __isinfl(long double arg); 13716 13717 Description 13718 13719 __isinfl() has the same specification as isinf() in the POSIX 13720 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 13721 for __isinfl() is known to be long double. 13722 13723 __isinfl() is not in the source standard; it is only in the 13724 binary standard. 13725 13726 __isnan 13727 13728 Name 13729 13730 __isnan -- test for infinity 13731 13732 Synopsis 13733 13734 int __isnan(double arg); 13735 13736 Description 13737 13738 __isnan() has the same specification as isnan() in POSIX 13739 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 13740 for __isnan() is known to be double. 13741 13742 __isnan() is not in the source standard; it is only in the 13743 binary standard. 13744 13745 __isnanf 13746 13747 Name 13748 13749 __isnanf -- test for infinity 13750 13751 Synopsis 13752 13753 int __isnanf(float arg); 13754 13755 Description 13756 13757 __isnanf() has the same specification as isnan() in POSIX 13758 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 13759 for __isnanf() is known to be float. 13760 13761 __isnanf() is not in the source standard; it is only in the 13762 binary standard. 13763 13764 __isnanl 13765 13766 Name 13767 13768 __isnanl -- test for infinity 13769 13770 Synopsis 13771 13772 int __isnanl(long double arg); 13773 13774 Description 13775 13776 __isnanl() has the same specification as isnan() in POSIX 13777 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 13778 for __isnanl() is known to be long double. 13779 13780 __isnanl() is not in the source standard; it is only in the 13781 binary standard. 13782 13783 __libc_current_sigrtmax 13784 13785 Name 13786 13787 __libc_current_sigrtmax -- return number of available real-time 13788 signal with lowest priority 13789 13790 Synopsis 13791 13792 int __libc_current_sigrtmax(void); 13793 13794 Description 13795 13796 __libc_current_sigrtmax() returns the number of an available 13797 real-time signal with the lowest priority. 13798 13799 __libc_current_sigrtmax() is not in the source standard; it is 13800 only in the binary standard. 13801 13802 __libc_current_sigrtmin 13803 13804 Name 13805 13806 __libc_current_sigrtmin -- return number of available real-time 13807 signal with highest priority 13808 13809 Synopsis 13810 13811 int __libc_current_sigrtmin(void); 13812 13813 Description 13814 13815 __libc_current_sigrtmin() returns the number of an available 13816 real-time signal with the highest priority. 13817 13818 __libc_current_sigrtmin() is not in the source standard; it is 13819 only in the binary standard. 13820 13821 __libc_start_main 13822 13823 Name 13824 13825 __libc_start_main -- initialization routine 13826 13827 Synopsis 13828 13829 int __libc_start_main(int (*main) (int, char **, char **), int 13830 argc, char ** ubp_av, void (*init) (void), void (*fini) (void), 13831 void (*rtld_fini) (void), void (*stack_end)); 13832 13833 Description 13834 13835 The __libc_start_main() function shall perform any necessary 13836 initialization of the execution environment, call the main 13837 function with appropriate arguments, and handle the return from 13838 main(). If the main() function returns, the return value shall 13839 be passed to the exit() function. 13840 13841 Note: While this specification is intended to be 13842 implementation independent, process and library 13843 initialization may include: 13844 13845 * performing any necessary security checks if the effective 13846 user ID is not the same as the real user ID. 13847 * initialize the threading subsystem. 13848 * registering the rtld_fini to release resources when this 13849 dynamic shared object exits (or is unloaded). 13850 * registering the fini handler to run at program exit. 13851 * calling the initializer function (*init)(). 13852 * calling main() with appropriate arguments. 13853 * calling exit() with the return value from main(). 13854 13855 This list is an example only. 13856 13857 __libc_start_main() is not in the source standard; it is only 13858 in the binary standard. 13859 13860 See Also 13861 13862 The section on Process Initialization in each of the 13863 architecture specific parts of the LSB Core Specification. 13864 13865 __mbsnrtowcs_chk 13866 13867 Name 13868 13869 __mbsnrtowcs_chk -- convert a multibyte string to a 13870 wide-character string, with buffer overflow checking 13871 13872 Synopsis 13873 13874 #include 13875 13876 size_t __mbsnrtowcs_chk(wchar_t * dest, const char * * src, 13877 size_t nmc, size_t len, mbstate_t * ps, size_t destlen); 13878 13879 Description 13880 13881 The interface __mbsnrtowcs_chk() shall function in the same way 13882 as the interface mbsnrtowcs(), except that __mbsnrtowcs_chk() 13883 shall check for buffer overflow before computing a result. If 13884 an overflow is anticipated, the function shall abort and the 13885 program calling it shall exit. 13886 13887 The parameter destlen specifies the size of the object dest. If 13888 len exceeds destlen, the function shall abort, and the program 13889 calling it shall exit. 13890 13891 The __mbsnrtowcs_chk() function is not in the source standard; 13892 it is only in the binary standard. 13893 13894 __mbsrtowcs_chk 13895 13896 Name 13897 13898 __mbsrtowcs_chk -- convert a multibyte string to a 13899 wide-character string, with buffer overflow checking 13900 13901 Synopsis 13902 13903 #include 13904 13905 size_t __mbsrtowcs_chk(wchar_t * dest, const char * * src, 13906 size_t len, mbstate_t * ps, size_t destlen); 13907 13908 Description 13909 13910 The interface __mbsrtowcs_chk() shall function in the same way 13911 as the interface mbsrtowcs(), except that __mbsrtowcs_chk() 13912 shall check for buffer overflow before computing a result. If 13913 an overflow is anticipated, the function shall abort and the 13914 program calling it shall exit. 13915 13916 The parameter destlen specifies the size of the object dest. If 13917 len exceeds destlen, the function shall abort, and the program 13918 calling it shall exit. 13919 13920 The __mbsrtowcs_chk() function is not in the source standard; 13921 it is only in the binary standard. 13922 13923 __mbstowcs_chk 13924 13925 Name 13926 13927 __mbstowcs_chk -- convert a multibyte string to a 13928 wide-character string, with buffer overflow checking 13929 13930 Synopsis 13931 13932 #include 13933 13934 size_t __mbstowcs_chk(wchar_t * dest, const char * src, size_t 13935 len, size_t destlen); 13936 13937 Description 13938 13939 The interface __mbstowcs_chk() shall function in the same way 13940 as the interface mbstowcs(), except that __mbstowcs_chk() shall 13941 check for buffer overflow before computing a result. If an 13942 overflow is anticipated, the function shall abort and the 13943 program calling it shall exit. 13944 13945 The parameter destlen specifies the size of the object dest. If 13946 len exceeds destlen, the function shall abort, and the program 13947 calling it shall exit. 13948 13949 The __mbstowcs_chk() function is not in the source standard; it 13950 is only in the binary standard. 13951 13952 __memcpy_chk 13953 13954 Name 13955 13956 __memcpy_chk -- copy memory area, with buffer overflow checking 13957 13958 Synopsis 13959 13960 #include 13961 13962 void * __memcpy_chk(void * dest, const void * src, size_t len, 13963 size_t destlen); 13964 13965 Description 13966 13967 The interface __memcpy_chk() shall function in the same way as 13968 the interface memcpy(), except that __memcpy_chk() shall check 13969 for buffer overflow before computing a result. If an overflow 13970 is anticipated, the function shall abort and the program 13971 calling it shall exit. 13972 13973 The parameter destlen specifies the size of the object dest. If 13974 len exceeds destlen, the function shall abort, and the program 13975 calling it shall exit. 13976 13977 The __memcpy_chk() function is not in the source standard; it 13978 is only in the binary standard. 13979 13980 __memmove_chk 13981 13982 Name 13983 13984 __memmove_chk -- copy memory area, with buffer overflow 13985 checking 13986 13987 Synopsis 13988 13989 #include 13990 13991 void * __memmove_chk(void * dest, const void * src, size_t len, 13992 size_t destlen); 13993 13994 Description 13995 13996 The interface __memmove_chk() shall function in the same way as 13997 the interface memmove(), except that __memmove_chk() shall 13998 check for buffer overflow before computing a result. If an 13999 overflow is anticipated, the function shall abort and the 14000 program calling it shall exit. 14001 14002 The parameter destlen specifies the size of the object dest. If 14003 len exceeds destlen, the function shall abort, and the program 14004 calling it shall exit. 14005 14006 The __memmove_chk() function is not in the source standard; it 14007 is only in the binary standard. 14008 14009 __mempcpy 14010 14011 Name 14012 14013 __mempcpy -- copy given number of bytes of source to 14014 destination 14015 14016 Synopsis 14017 14018 #include 14019 14020 void * __mempcpy(void * restrict dest, const void * restrict 14021 src, size_t n); 14022 14023 Description 14024 14025 __mempcpy() copies n bytes of src to dest, returning a pointer 14026 to the byte after the last written byte. 14027 14028 If copying takes place between objects that overlap, the 14029 behavior is undefined. 14030 14031 If either dest or src is a null pointer, the behavior is 14032 undefined. 14033 14034 If n is 0 and the other parameters are valid, the return value 14035 is dest. 14036 14037 __mempcpy() is not in the source standard; it is only in the 14038 binary standard. 14039 14040 __mempcpy_chk 14041 14042 Name 14043 14044 __mempcpy_chk -- copy memory area, with buffer overflow 14045 checking 14046 14047 Synopsis 14048 14049 #include 14050 14051 void * __mempcpy_chk(void * dest, const void * src, size_t len, 14052 size_t destlen); 14053 14054 Description 14055 14056 The interface __mempcpy_chk() shall function in the same way as 14057 the interface mempcpy(), except that __mempcpy_chk() shall 14058 check for buffer overflow before computing a result. If an 14059 overflow is anticipated, the function shall abort and the 14060 program calling it shall exit. 14061 14062 The parameter destlen specifies the size of the object dest. If 14063 len exceeds destlen, the function shall abort, and the program 14064 calling it shall exit. 14065 14066 The __mempcpy_chk() function is not in the source standard; it 14067 is only in the binary standard. 14068 14069 __memset_chk 14070 14071 Name 14072 14073 __memset_chk -- fill memory with a constant byte, using buffer 14074 overflow checking 14075 14076 Synopsis 14077 14078 #include 14079 14080 void * __memset_chk(void * dest, int c, size_t len, size_t 14081 destlen); 14082 14083 Description 14084 14085 The interface __memset_chk() shall function in the same way as 14086 the interface memset(), except that __memset_chk() shall check 14087 for buffer overflow before computing a result. If an overflow 14088 is anticipated, the function shall abort and the program 14089 calling it shall exit. 14090 14091 The parameter destlen specifies the size of the object dest. If 14092 len exceeds destlen, the function shall abort, and the program 14093 calling it shall exit. 14094 14095 The __memset_chk() function is not in the source standard; it 14096 is only in the binary standard. 14097 14098 __pread64_chk 14099 14100 Name 14101 14102 __pread64_chk -- read from a file descriptor at a given offset, 14103 with buffer overflow checking 14104 14105 Synopsis 14106 14107 #include 14108 14109 ssize_t __pread64_chk(int fd, void * buf, size_t nbytes, 14110 off64_t offset, size_t buflen); 14111 14112 Description 14113 14114 The interface __pread64_chk() shall function in the same way as 14115 the interface pread64(), except that __pread64_chk() shall 14116 check for buffer overflow before computing a result. If an 14117 overflow is anticipated, the function shall abort and the 14118 program calling it shall exit. 14119 14120 The parameter buflen specifies the size of the buffer buf. If 14121 nbytes exceeds buflen, the function shall abort, and the 14122 program calling it shall exit. 14123 14124 The __pread64_chk() function is not in the source standard; it 14125 is only in the binary standard. 14126 14127 __pread_chk 14128 14129 Name 14130 14131 __pread_chk -- read from a file descriptor at a given offset, 14132 with buffer overflow checking 14133 14134 Synopsis 14135 14136 #include 14137 14138 ssize_t __pread_chk(int fd, void * buf, size_t nbytes, off_t 14139 offset, size_t buflen); 14140 14141 Description 14142 14143 The interface __pread_chk() shall function in the same way as 14144 the interface pread(), except that __pread_chk() shall check 14145 for buffer overflow before computing a result. If an overflow 14146 is anticipated, the function shall abort and the program 14147 calling it shall exit. 14148 14149 The parameter buflen specifies the size of the buffer buf. If 14150 nbytes exceeds buflen, the function shall abort, and the 14151 program calling it shall exit. 14152 14153 The __pread_chk() function is not in the source standard; it is 14154 only in the binary standard. 14155 14156 __printf_chk 14157 14158 Name 14159 14160 __printf_chk -- format and print data, with stack checking 14161 14162 Synopsis 14163 14164 #include 14165 14166 int __printf_chk(int flag, const char * format); 14167 14168 Description 14169 14170 The interface __printf_chk() shall function in the same way as 14171 the interface printf(), except that __printf_chk() shall check 14172 for stack overflow before computing a result, depending on the 14173 value of the flag parameter. If an overflow is anticipated, the 14174 function shall abort and the program calling it shall exit. 14175 14176 In general, the higher the value of flag, the more security 14177 measures this interface shall take in the form of checking the 14178 stack, parameter values, and so on. 14179 14180 The __printf_chk() function is not in the source standard; it 14181 is only in the binary standard. 14182 14183 __rawmemchr 14184 14185 Name 14186 14187 __rawmemchr -- scan memory 14188 14189 Synopsis 14190 14191 #include 14192 14193 void * __rawmemchr(const void * s, int c); 14194 14195 Description 14196 14197 The __rawmemchr() function shall locate the first occurrence of 14198 c (converted to an unsigned char) in the object pointed to by 14199 s. If the byte does not occur in the object, then the behavior 14200 is undefined. 14201 14202 __rawmemchr() is a weak alias for rawmemchr(). It is similar to 14203 memchr(), but it has no length limit. 14204 14205 __rawmemchr() is not in the source standard; it is only in the 14206 binary standard. 14207 14208 Return Value 14209 14210 The __rawmemchr() function shall return a pointer to the 14211 located byte. 14212 14213 __read_chk 14214 14215 Name 14216 14217 __read_chk -- read from a file descriptor, with buffer overflow 14218 checking 14219 14220 Synopsis 14221 14222 #include 14223 14224 ssize_t __read_chk(int fd, void * buf, size_t nbytes, size_t 14225 buflen); 14226 14227 Description 14228 14229 The interface __read_chk() shall function in the same way as 14230 the interface read(), except that __read_chk() shall check for 14231 buffer overflow before computing a result. If an overflow is 14232 anticipated, the function shall abort and the program calling 14233 it shall exit. 14234 14235 The parameter buflen specifies the size of the buffer buf. If 14236 nbytes exceeds buflen, the function shall abort, and the 14237 program calling it shall exit. 14238 14239 The __read_chk() function is not in the source standard; it is 14240 only in the binary standard. 14241 14242 __readlink_chk 14243 14244 Name 14245 14246 __readlink_chk -- display value of a symbolic link, with buffer 14247 overflow checking 14248 14249 Synopsis 14250 14251 #include 14252 14253 ssize_t __readlink_chk(const char * path, char * buf, size_t 14254 len, size_t buflen); 14255 14256 Description 14257 14258 The interface __readlink_chk() shall function in the same way 14259 as the interface readlink(), except that __readlink_chk() shall 14260 check for buffer overflow before computing a result. If an 14261 overflow is anticipated, the function shall abort and the 14262 program calling it shall exit. 14263 14264 The parameter buflen specifies the size of the buffer buf. If 14265 len exceeds buflen, the function shall abort, and the program 14266 calling it shall exit. 14267 14268 The __readlink_chk() function is not in the source standard; it 14269 is only in the binary standard. 14270 14271 __realpath_chk 14272 14273 Name 14274 14275 __realpath_chk -- return the canonicalized absolute pathname, 14276 with buffer overflow checking 14277 14278 Synopsis 14279 14280 #include 14281 14282 char * __realpath_chk(const char * path, char * resolved_path, 14283 size_t resolved_len); 14284 14285 Description 14286 14287 The interface __realpath_chk() shall function in the same way 14288 as the interface realpath(), except that __realpath_chk() shall 14289 check for buffer overflow before computing a result. If an 14290 overflow is anticipated, the function shall abort and the 14291 program calling it shall exit. 14292 14293 The parameter resolved_len specifies the size of the string 14294 resolved_path. If resolved_len is less than PATH_MAX, then the 14295 function shall abort, and the program calling it shall exit. 14296 14297 The __realpath_chk() function is not in the source standard; it 14298 is only in the binary standard. 14299 14300 __recv_chk 14301 14302 Name 14303 14304 __recv_chk -- receive a message from a socket, with buffer 14305 overflow checking 14306 14307 Synopsis 14308 14309 #include 14310 14311 ssize_t __recv_chk(int fd, void * buf, size_t len, size_t 14312 buflen, int flag); 14313 14314 Description 14315 14316 The interface __recv_chk() shall function in the same way as 14317 the interface recv(), except that __recv_chk() shall check for 14318 buffer overflow before computing a result, depending on the 14319 value of the flag parameter. If an overflow is anticipated, the 14320 function shall abort and the program calling it shall exit. 14321 14322 In general, the higher the value of flag, the more security 14323 measures this interface shall take in the form of checking the 14324 buffer, parameter values, and so on. 14325 14326 The parameter buflen specifies the size of the buffer buf. If 14327 len exceeds buflen, the function shall abort, and the program 14328 calling it shall exit. 14329 14330 The __recv_chk() function is not in the source standard; it is 14331 only in the binary standard. 14332 14333 __recvfrom_chk 14334 14335 Name 14336 14337 __recvfrom_chk -- receive a message from a socket, with buffer 14338 overflow checking 14339 14340 Synopsis 14341 14342 #include 14343 14344 ssize_t __recvfrom_chk(int fd, void * buf, size_t len, size_t 14345 buflen, int flag, struct sockaddr * from, socklen_t * fromlen); 14346 14347 Description 14348 14349 The interface __recvfrom_chk() shall function in the same way 14350 as the interface recvfrom(), except that __recvfrom_chk() shall 14351 check for buffer overflow before computing a result, depending 14352 on the value of the flag parameter. If an overflow is 14353 anticipated, the function shall abort and the program calling 14354 it shall exit. 14355 14356 In general, the higher the value of flag, the more security 14357 measures this interface shall take in the form of checking the 14358 buffer, parameter values, and so on. 14359 14360 The parameter buflen specifies the size of the buffer buf. If 14361 len exceeds buflen, the function shall abort, and the program 14362 calling it shall exit. 14363 14364 The __recvfrom_chk() function is not in the source standard; it 14365 is only in the binary standard. 14366 14367 __register_atfork 14368 14369 Name 14370 14371 __register_atfork -- alias for register_atfork 14372 14373 Synopsis 14374 14375 int __register_atfork(void (*prepare) (void), void (*parent) 14376 (void), void (*child) (void), void *__dso_handle); 14377 14378 Description 14379 14380 __register_atfork() implements pthread_atfork() as specified in 14381 POSIX 1003.1-2008 (ISO/IEC 9945-2009). The additional parameter 14382 __dso_handle allows a shared object to pass in it's handle so 14383 that functions registered by __register_atfork() can be 14384 unregistered by the runtime when the shared object is unloaded. 14385 14386 __sigsetjmp 14387 14388 Name 14389 14390 __sigsetjmp -- save stack context for non-local goto 14391 14392 Synopsis 14393 14394 int __sigsetjmp(jmp_buf env, int savemask); 14395 14396 Description 14397 14398 __sigsetjmp() has the same behavior as sigsetjmp() as specified 14399 by POSIX 1003.1-2008 (ISO/IEC 9945-2009). 14400 14401 __sigsetjmp() is not in the source standard; it is only in the 14402 binary standard. 14403 14404 __snprintf_chk 14405 14406 Name 14407 14408 __snprintf_chk -- convert formatted output, with buffer 14409 overflow checking 14410 14411 Synopsis 14412 14413 #include 14414 14415 int __snprintf_chk(char * str, size_t maxlen, int flag, size_t 14416 strlen, const char * format); 14417 14418 Description 14419 14420 The interface __snprintf_chk() shall function in the same way 14421 as the interface snprintf(), except that __snprintf_chk() shall 14422 check for buffer overflow before computing a result, depending 14423 on the value of the flag parameter. If an overflow is 14424 anticipated, the function shall abort and the program calling 14425 it shall exit. 14426 14427 In general, the higher the value of flag, the more security 14428 measures this interface shall take in the form of checking the 14429 buffer, parameter values, and so on. 14430 14431 The parameter strlen specifies the size of the buffer str. If 14432 strlen is less than maxlen, the function shall abort, and the 14433 program calling it shall exit. 14434 14435 The __snprintf_chk() function is not in the source standard; it 14436 is only in the binary standard. 14437 14438 __sprintf_chk 14439 14440 Name 14441 14442 __sprintf_chk -- convert formatted output, with stack checking 14443 14444 Synopsis 14445 14446 #include 14447 14448 int __sprintf_chk(char * str, int flag, size_t strlen, const 14449 char * format); 14450 14451 Description 14452 14453 The interface __sprintf_chk() shall function in the same way as 14454 the interface sprintf(), except that __sprintf_chk() shall 14455 check for stack overflow before computing a result, depending 14456 on the value of the flag parameter. If an overflow is 14457 anticipated, the function shall abort and the program calling 14458 it shall exit. 14459 14460 In general, the higher the value of flag, the more security 14461 measures this interface shall take in the form of checking the 14462 stack, parameter values, and so on. 14463 14464 The parameter strlen specifies the size of the string str. If 14465 strlen is zero, the function shall abort, and the program 14466 calling it shall exit. 14467 14468 The __sprintf_chk() function is not in the source standard; it 14469 is only in the binary standard. 14470 14471 __stack_chk_fail 14472 14473 Name 14474 14475 __stack_chk_fail -- terminate a function in case of stack 14476 overflow 14477 14478 Synopsis 14479 14480 void __stack_chk_fail(void); 14481 14482 Description 14483 14484 The interface __stack_chk_fail() shall abort the function that 14485 called it with a message that a stack overflow has been 14486 detected. The program that called the function shall then exit. 14487 14488 The __stack_chk_fail() function is not in the source standard; 14489 it is only in the binary standard. 14490 14491 Application Usage (informative) 14492 14493 The interface __stack_chk_fail() does not check for a stack 14494 overflow itself. It merely reports one when invoked. 14495 14496 __stpcpy 14497 14498 Name 14499 14500 __stpcpy -- alias for stpcpy 14501 14502 Synopsis 14503 14504 #include 14505 14506 char * __stpcpy(char * dest, const char * src); 14507 14508 Description 14509 14510 The __stpcpy() function has the same specification as the 14511 stpcpy(). 14512 14513 __stpcpy() is not in the source standard; it is only in the 14514 binary standard. 14515 14516 __stpcpy_chk 14517 14518 Name 14519 14520 __stpcpy_chk -- copy a string returning a pointer to its end, 14521 with buffer overflow checking 14522 14523 Synopsis 14524 14525 #include 14526 14527 char * __stpcpy_chk(char * dest, const char * src, size_t 14528 destlen); 14529 14530 Description 14531 14532 The interface __stpcpy_chk() shall function in the same way as 14533 the interface stpcpy(), except that __stpcpy_chk() shall check 14534 for buffer overflow before computing a result. If an overflow 14535 is anticipated, the function shall abort and the program 14536 calling it shall exit. 14537 14538 The parameter destlen specifies the size of the object pointed 14539 to by dest. 14540 14541 The __stpcpy_chk() function is not in the source standard; it 14542 is only in the binary standard. 14543 14544 __stpncpy_chk 14545 14546 Name 14547 14548 __stpncpy_chk -- copy a fixed-size string, returning a pointer 14549 to its end, with buffer overflow checking 14550 14551 Synopsis 14552 14553 #include 14554 14555 char * __stpncpy_chk(char * dest, const char * src, size_t n, 14556 size_t destlen); 14557 14558 Description 14559 14560 The interface __stpncpy_chk() shall function in the same way as 14561 the interface stpncpy(), except that __stpncpy_chk() shall 14562 check for buffer overflow before computing a result. If an 14563 overflow is anticipated, the function shall abort and the 14564 program calling it shall exit. 14565 14566 The parameter destlen specifies the size of the object pointed 14567 to by dest. If n exceeds destlen, the function shall abort, and 14568 the program calling it shall exit. 14569 14570 The __stpncpy_chk() function is not in the source standard; it 14571 is only in the binary standard. 14572 14573 __strcat_chk 14574 14575 Name 14576 14577 __strcat_chk -- concatenate two strings, with buffer overflow 14578 checking 14579 14580 Synopsis 14581 14582 #include 14583 14584 char * __strcat_chk(char * dest, const char * src, size_t 14585 destlen); 14586 14587 Description 14588 14589 The interface __strcat_chk() shall function in the same way as 14590 the interface strcat(), except that __strcat_chk() shall check 14591 for buffer overflow before computing a result. If an overflow 14592 is anticipated, the function shall abort and the program 14593 calling it shall exit. 14594 14595 The parameter destlen specifies the size of the object pointed 14596 to by dest. 14597 14598 The __strcat_chk() function is not in the source standard; it 14599 is only in the binary standard. 14600 14601 __strcpy_chk 14602 14603 Name 14604 14605 __strcpy_chk -- copy a string, with buffer overflow checking 14606 14607 Synopsis 14608 14609 #include 14610 14611 char * __strcpy_chk(char * dest, const char * src, size_t 14612 destlen); 14613 14614 Description 14615 14616 The interface __strcpy_chk() shall function in the same way as 14617 the interface strcpy(), except that __strcpy_chk() shall check 14618 for buffer overflow before computing a result. If an overflow 14619 is anticipated, the function shall abort and the program 14620 calling it shall exit. 14621 14622 The parameter destlen specifies the size of the object pointed 14623 to by dest. 14624 14625 The __strcpy_chk() function is not in the source standard; it 14626 is only in the binary standard. 14627 14628 __strdup 14629 14630 Name 14631 14632 __strdup -- alias for strdup 14633 14634 Synopsis 14635 14636 char * __strdup(const char * string); 14637 14638 Description 14639 14640 __strdup() has the same specification as strdup(). 14641 14642 __strdup() is not in the source standard; it is only in the 14643 binary standard. 14644 14645 __strncat_chk 14646 14647 Name 14648 14649 __strncat_chk -- concatenate two strings, with buffer overflow 14650 checking 14651 14652 Synopsis 14653 14654 #include 14655 14656 char * __strncat_chk(char * s1, const char * s2, size_t n, 14657 size_t s1len); 14658 14659 Description 14660 14661 The interface __strncat_chk() shall function in the same way as 14662 the interface strncat(), except that __strncat_chk() shall 14663 check for buffer overflow before computing a result. If an 14664 overflow is anticipated, the function shall abort and the 14665 program calling it shall exit. 14666 14667 The parameter s1len specifies the size of the object pointed to 14668 by s1. 14669 14670 The __strncat_chk() function is not in the source standard; it 14671 is only in the binary standard. 14672 14673 __strncpy_chk 14674 14675 Name 14676 14677 __strncpy_chk -- copy a string, with buffer overflow checking 14678 14679 Synopsis 14680 14681 #include 14682 14683 char * __strncpy_chk(char * s1, const char * s2, size_t n, 14684 size_t s1len); 14685 14686 Description 14687 14688 The interface __strncpy_chk() shall function in the same way as 14689 the interface strncpy(), except that __strncpy_chk() shall 14690 check for buffer overflow before computing a result. If an 14691 overflow is anticipated, the function shall abort and the 14692 program calling it shall exit. 14693 14694 The parameter s1len specifies the size of the object pointed to 14695 by s1. 14696 14697 The __strncpy_chk() function is not in the source standard; it 14698 is only in the binary standard. 14699 14700 __strtod_internal 14701 14702 Name 14703 14704 __strtod_internal -- underlying function for strtod 14705 14706 Synopsis 14707 14708 double __strtod_internal(const char * __nptr, char * * 14709 __endptr, int __group); 14710 14711 Description 14712 14713 __group shall be 0 or the behavior of __strtod_internal() is 14714 undefined. 14715 14716 __strtod_internal(__nptr, __endptr, 0)() has the same 14717 specification as strtod(__nptr, __endptr)(). 14718 14719 __strtod_internal() is not in the source standard; it is only 14720 in the binary standard. 14721 14722 __strtof_internal 14723 14724 Name 14725 14726 __strtof_internal -- underlying function for strtof 14727 14728 Synopsis 14729 14730 float __strtof_internal(const char * __nptr, char * * __endptr, 14731 int __group); 14732 14733 Description 14734 14735 __group shall be 0 or the behavior of __strtof_internal() is 14736 undefined. 14737 14738 __strtof_internal(__nptr, __endptr, 0)() has the same 14739 specification as strtof(__nptr, __endptr)(). 14740 14741 __strtof_internal() is not in the source standard; it is only 14742 in the binary standard. 14743 14744 __strtok_r 14745 14746 Name 14747 14748 __strtok_r -- alias for strtok_r 14749 14750 Synopsis 14751 14752 char * __strtok_r(char * restrict s, const char * restrict 14753 delim, char * * restrict save_ptr); 14754 14755 Description 14756 14757 __strtok_r() has the same specification as strtok_r(). 14758 14759 __strtok_r() is not in the source standard; it is only in the 14760 binary standard. 14761 14762 __strtol_internal 14763 14764 Name 14765 14766 __strtol_internal -- alias for strtol 14767 14768 Synopsis 14769 14770 long int __strtol_internal(const char * __nptr, char * * 14771 __endptr, int __base, int __group); 14772 14773 Description 14774 14775 __group shall be 0 or the behavior of __strtol_internal() is 14776 undefined. 14777 14778 __strtol_internal(__nptr, __endptr, __base, 0) has the same 14779 specification as strtol(__nptr, __endptr, __base). 14780 14781 __strtol_internal() is not in the source standard; it is only 14782 in the binary standard. 14783 14784 __strtold_internal 14785 14786 Name 14787 14788 __strtold_internal -- underlying function for strtold 14789 14790 Synopsis 14791 14792 long double __strtold_internal(const char * __nptr, char * * 14793 __endptr, int __group); 14794 14795 Description 14796 14797 __group shall be 0 or the behavior of __strtold_internal() is 14798 undefined. 14799 14800 __strtold_internal(__nptr, __endptr, 0) has the same 14801 specification as strtold(__nptr, __endptr). 14802 14803 __strtold_internal() is not in the source standard; it is only 14804 in the binary standard. 14805 14806 __strtoll_internal 14807 14808 Name 14809 14810 __strtoll_internal -- underlying function for strtoll 14811 14812 Synopsis 14813 14814 long long __strtoll_internal(const char * __nptr, char * * 14815 __endptr, int __base, int __group); 14816 14817 Description 14818 14819 __group shall be 0 or the behavior of __strtoll_internal() is 14820 undefined. 14821 14822 __strtoll_internal(__nptr, __endptr, __base, 0) has the same 14823 specification as strtoll(__nptr, __endptr, __base). 14824 14825 __strtoll_internal() is not in the source standard; it is only 14826 in the binary standard. 14827 14828 __strtoul_internal 14829 14830 Name 14831 14832 __strtoul_internal -- underlying function for strtoul 14833 14834 Synopsis 14835 14836 unsigned long int __strtoul_internal(const char * __nptr, char 14837 * * __endptr, int __base, int __group); 14838 14839 Description 14840 14841 __group shall be 0 or the behavior of __strtoul_internal() is 14842 undefined. 14843 14844 __strtoul_internal(__nptr, __endptr, __base, 0) has the same 14845 specification as strtoul(__nptr, __endptr, __base). 14846 14847 __strtoul_internal() is not in the source standard; it is only 14848 in the binary standard. 14849 14850 __strtoull_internal 14851 14852 Name 14853 14854 __strtoull_internal -- underlying function for strtoull 14855 14856 Synopsis 14857 14858 unsigned long long __strtoull_internal(const char * __nptr, 14859 char * * __endptr, int __base, int __group); 14860 14861 Description 14862 14863 __group shall be 0 or the behavior of __strtoull_internal() is 14864 undefined. 14865 14866 __strtoull_internal(__nptr, __endptr, __base, 0) has the same 14867 specification as strtoull(__nptr, __endptr, __base). 14868 14869 __strtoull_internal() is not in the source standard; it is only 14870 in the binary standard. 14871 14872 __swprintf_chk 14873 14874 Name 14875 14876 __swprintf_chk -- convert formatted wide-character output, with 14877 stack checking 14878 14879 Synopsis 14880 14881 #include 14882 14883 int __swprintf_chk(wchar_t * s, size_t n, int flag, size_t 14884 slen, const wchar_t * format); 14885 14886 Description 14887 14888 The interface __swprintf_chk() shall function in the same way 14889 as the interface swprintf(), except that __swprintf_chk() shall 14890 check for stack overflow before computing a result, depending 14891 on the value of the flag parameter. If an overflow is 14892 anticipated, the function shall abort and the program calling 14893 it shall exit. 14894 14895 In general, the higher the value of flag, the more security 14896 measures this interface shall take in the form of checking the 14897 stack, parameter values, and so on. 14898 14899 The parameter slen specifies the size of the object pointed to 14900 by s. If slen is less than maxlen, the function shall abort and 14901 the program calling it shall exit. 14902 14903 In general, the higher the value of flag, the more security 14904 measures this interface shall take in the form of checking the 14905 stack, parameter values, and so on. 14906 14907 The __swprintf_chk() function is not in the source standard; it 14908 is only in the binary standard. 14909 14910 __sysconf 14911 14912 Name 14913 14914 __sysconf -- get configuration information at runtime 14915 14916 Synopsis 14917 14918 #include 14919 14920 long __sysconf(int name); 14921 14922 Description 14923 14924 __sysconf() gets configuration information at runtime. 14925 14926 __sysconf() is weak alias to sysconf(). 14927 14928 __sysconf() has the same specification as sysconf(). 14929 14930 __sysconf() is not in the source standard; it is only in the 14931 binary standard. 14932 14933 __syslog_chk 14934 14935 Name 14936 14937 __syslog_chk -- send messages to the system logger, with stack 14938 checking 14939 14940 Synopsis 14941 14942 #include 14943 14944 void __syslog_chk(int priority, int flag, const char * format); 14945 14946 Description 14947 14948 The interface __syslog_chk() shall function in the same way as 14949 the interface syslog(), except that __syslog_chk() shall check 14950 for stack overflow before computing a result, depending on the 14951 value of the flag parameter. If an overflow is anticipated, the 14952 function shall abort and the program calling it shall exit. 14953 14954 In general, the higher the value of flag, the more security 14955 measures this interface shall take in the form of checking the 14956 stack, parameter values, and so on. 14957 14958 The __syslog_chk() function is not in the source standard; it 14959 is only in the binary standard. 14960 14961 __sysv_signal 14962 14963 Name 14964 14965 __sysv_signal -- signal handling 14966 14967 Synopsis 14968 14969 __sighandler_t __sysv_signal(int sig, __sighandler_t handler); 14970 14971 Description 14972 14973 __sysv_signal() has the same behavior as signal() as specified 14974 by POSIX 1003.1-2008 (ISO/IEC 9945-2009). 14975 14976 __sysv_signal() is not in the source standard; it is only in 14977 the binary standard. 14978 14979 __timezone 14980 14981 Name 14982 14983 __timezone -- external variable containing timezone 14984 14985 Synopsis 14986 14987 long int __timezone; 14988 14989 Description 14990 14991 The external variable __timezone shall implement the timezone 14992 variable timezone as specified in POSIX 1003.1-2008 (ISO/IEC 14993 9945-2009). __timezone has the same specification as timezone. 14994 14995 __ttyname_r_chk 14996 14997 Name 14998 14999 __ttyname_r_chk -- return name of a terminal, with buffer 15000 overflow checking (reentrant) 15001 15002 Synopsis 15003 15004 #include 15005 15006 int __ttyname_r_chk(int fd, char * buf, size_t buflen, size_t 15007 nreal); 15008 15009 Description 15010 15011 The interface __ttyname_r_chk() shall function in the same way 15012 as the interface ttyname_r(), except that __ttyname_r_chk() 15013 shall check for buffer overflow before computing a result. If 15014 an overflow is anticipated, the function shall abort and the 15015 program calling it shall exit. 15016 15017 The parameter buflen specifies the size of the object pointed 15018 to by buf. If buflen exceeds nreal, the function shall abort 15019 and the program calling it shall exit. 15020 15021 The __ttyname_r_chk() function is not in the source standard; 15022 it is only in the binary standard. 15023 15024 __tzname 15025 15026 Name 15027 15028 __tzname -- external variable containing the timezone names 15029 15030 Synopsis 15031 15032 char * __tzname[2]; 15033 15034 Description 15035 15036 The external variable __tzname shall implement the timezone 15037 name variable tzname as specified in POSIX 1003.1-2008 (ISO/IEC 15038 9945-2009) function tzset(). __tzname has the same 15039 specification as tzname. 15040 15041 __vfprintf_chk 15042 15043 Name 15044 15045 __vfprintf_chk -- convert formatted output, with stack checking 15046 15047 Synopsis 15048 15049 #include 15050 15051 int __vfprintf_chk(FILE * fp, int flag, const char * format, 15052 va_list ap); 15053 15054 Description 15055 15056 The interface __vfprintf_chk() shall function in the same way 15057 as the interface vfprintf(), except that __vfprintf_chk() shall 15058 check for stack overflow before computing a result, depending 15059 on the value of the flag parameter. If an overflow is 15060 anticipated, the function shall abort and the program calling 15061 it shall exit. 15062 15063 In general, the higher the value of flag, the more security 15064 measures this interface shall take in the form of checking the 15065 stack, parameter values, and so on. 15066 15067 The __vfprintf_chk() function is not in the source standard; it 15068 is only in the binary standard. 15069 15070 __vfwprintf_chk 15071 15072 Name 15073 15074 __vfwprintf_chk -- convert formatted wide-character output, 15075 with stack checking 15076 15077 Synopsis 15078 15079 #include 15080 15081 int __vfwprintf_chk(FILE * fp, int flag, const wchar_t * 15082 format, va_list ap); 15083 15084 Description 15085 15086 The interface __vfwprintf_chk() shall function in the same way 15087 as the interface vfwprintf(), except that __vfwprintf_chk() 15088 shall check for stack overflow before computing a result, 15089 depending on the value of the flag parameter. If an overflow is 15090 anticipated, the function shall abort and the program calling 15091 it shall exit. 15092 15093 In general, the higher the value of flag, the more security 15094 measures this interface shall take in the form of checking the 15095 stack, parameter values, and so on. 15096 15097 The __vfwprintf_chk() function is not in the source standard; 15098 it is only in the binary standard. 15099 15100 __vprintf_chk 15101 15102 Name 15103 15104 __vprintf_chk -- convert formatted output, with stack checking 15105 15106 Synopsis 15107 15108 #include 15109 15110 int __vprintf_chk(int flag, const char * format, va_list ap); 15111 15112 Description 15113 15114 The interface __vprintf_chk() shall function in the same way as 15115 the interface vprintf(), except that __vprintf_chk() shall 15116 check for stack overflow before computing a result, depending 15117 on the value of the flag parameter. If an overflow is 15118 anticipated, the function shall abort and the program calling 15119 it shall exit. 15120 15121 In general, the higher the value of flag, the more security 15122 measures this interface shall take in the form of checking the 15123 stack, parameter values, and so on. 15124 15125 The __vprintf_chk() function is not in the source standard; it 15126 is only in the binary standard. 15127 15128 __vsnprintf_chk 15129 15130 Name 15131 15132 __vsnprintf_chk -- convert formatted output, with stack 15133 checking 15134 15135 Synopsis 15136 15137 #include 15138 15139 int __vsnprintf_chk(char * s, size_t maxlen, int flag, size_t 15140 slen, const char * format, va_list args); 15141 15142 Description 15143 15144 The interface __vsnprintf_chk() shall function in the same way 15145 as the interface vsnprintf(), except that __vsnprintf_chk() 15146 shall check for stack overflow before computing a result, 15147 depending on the value of the flag parameter. If an overflow is 15148 anticipated, the function shall abort and the program calling 15149 it shall exit. 15150 15151 In general, the higher the value of flag, the more security 15152 measures this interface shall take in the form of checking the 15153 stack, parameter values, and so on. 15154 15155 The parameter slen specifies the size of the object pointed to 15156 by s. If slen is less than maxlen, the function shall abort and 15157 the program calling it shall exit. 15158 15159 In general, the higher the value of flag, the more security 15160 measures this interface shall take in the form of checking the 15161 stack, parameter values, and so on. 15162 15163 The __vsnprintf_chk() function is not in the source standard; 15164 it is only in the binary standard. 15165 15166 __vsprintf_chk 15167 15168 Name 15169 15170 __vsprintf_chk -- convert formatted output, with stack checking 15171 15172 Synopsis 15173 15174 #include 15175 15176 int __vsprintf_chk(char * s, int flag, size_t slen, const char 15177 * format, va_list args); 15178 15179 Description 15180 15181 The interface __vsprintf_chk() shall function in the same way 15182 as the interface vsprintf(), except that __vsprintf_chk() shall 15183 check for stack overflow before computing a result, depending 15184 on the value of the flag parameter. If an overflow is 15185 anticipated, the function shall abort and the program calling 15186 it shall exit. 15187 15188 In general, the higher the value of flag, the more security 15189 measures this interface shall take in the form of checking the 15190 stack, parameter values, and so on. 15191 15192 The parameter slen specifies the size of the object pointed to 15193 by s. If its value is zero, the function shall abort and the 15194 program calling it shall exit. 15195 15196 The __vsprintf_chk() function is not in the source standard; it 15197 is only in the binary standard. 15198 15199 __vswprintf_chk 15200 15201 Name 15202 15203 __vswprintf_chk -- convert formatted wide-character output, 15204 with stack checking 15205 15206 Synopsis 15207 15208 #include 15209 15210 int __vswprintf_chk(wchar_t * s, size_t maxlen, int flag, 15211 size_t slen, const wchar_t * format, va_list args); 15212 15213 Description 15214 15215 The interface __vswprintf_chk() shall function in the same way 15216 as the interface vswprintf(), except that __vswprintf_chk() 15217 shall check for stack overflow before computing a result, 15218 depending on the value of the flag parameter. If an overflow is 15219 anticipated, the function shall abort and the program calling 15220 it shall exit. 15221 15222 In general, the higher the value of flag, the more security 15223 measures this interface shall take in the form of checking the 15224 stack, parameter values, and so on. 15225 15226 The parameter slen specifies the size of the object pointed to 15227 by s. If slen is less than maxlen, the function shall abort and 15228 the program calling it shall exit. 15229 15230 The __vswprintf_chk() function is not in the source standard; 15231 it is only in the binary standard. 15232 15233 __vsyslog_chk 15234 15235 Name 15236 15237 __vsyslog_chk -- send messages to the system logger, with stack 15238 checking 15239 15240 Synopsis 15241 15242 #include 15243 15244 void __vsyslog_chk(int priority, int flag, const char * format, 15245 va_list ap); 15246 15247 Description 15248 15249 The interface __vsyslog_chk() shall function in the same way as 15250 the interface vsyslog(), except that __vsyslog_chk() shall 15251 check for stack overflow before computing a result, depending 15252 on the value of the flag parameter. If an overflow is 15253 anticipated, the function shall abort and the program calling 15254 it shall exit. 15255 15256 In general, the higher the value of flag, the more security 15257 measures this interface shall take in the form of checking the 15258 stack, parameter values, and so on. 15259 15260 The __vsyslog_chk() function is not in the source standard; it 15261 is only in the binary standard. 15262 15263 __vwprintf_chk 15264 15265 Name 15266 15267 __vwprintf_chk -- convert formatted wide-character output, with 15268 stack checking 15269 15270 Synopsis 15271 15272 #include 15273 15274 int __vwprintf_chk(int flag, const wchar_t * format, va_list 15275 ap); 15276 15277 Description 15278 15279 The interface __vwprintf_chk() shall function in the same way 15280 as the interface vwprintf(), except that __vwprintf_chk() shall 15281 check for stack overflow before computing a result, depending 15282 on the value of the flag parameter. If an overflow is 15283 anticipated, the function shall abort and the program calling 15284 it shall exit. 15285 15286 In general, the higher the value of flag, the more security 15287 measures this interface shall take in the form of checking the 15288 stack, parameter values, and so on. 15289 15290 The __vwprintf_chk() function is not in the source standard; it 15291 is only in the binary standard. 15292 15293 __wcpcpy_chk 15294 15295 Name 15296 15297 __wcpcpy_chk -- copy a wide-character string, returning a 15298 pointer to its end, with buffer overflow checking 15299 15300 Synopsis 15301 15302 #include 15303 15304 wchar_t * __wcpcpy_chk(wchar_t * dest, const wchar_t * src, 15305 size_t destlen); 15306 15307 Description 15308 15309 The interface __wcpcpy_chk() shall function in the same way as 15310 the interface wcpcpy(), except that __wcpcpy_chk() shall check 15311 for buffer overflow before computing a result. If an overflow 15312 is anticipated, the function shall abort and the program 15313 calling it shall exit. 15314 15315 The parameter destlen specifies the size of the object pointed 15316 to by dest. 15317 15318 The __wcpcpy_chk() function is not in the source standard; it 15319 is only in the binary standard. 15320 15321 __wcpncpy_chk 15322 15323 Name 15324 15325 __wcpncpy_chk -- copy a fixed-size string of wide characters, 15326 returning a pointer to its end, with buffer overflow checking 15327 15328 Synopsis 15329 15330 #include 15331 15332 wchar_t * __wcpncpy_chk(wchar_t * dest, const wchar_t * src, 15333 size_t n, size_t destlen); 15334 15335 Description 15336 15337 The interface __wcpncpy_chk() shall function in the same way as 15338 the interface wcpncpy(), except that __wcpncpy_chk() shall 15339 check for buffer overflow before computing a result. If an 15340 overflow is anticipated, the function shall abort and the 15341 program calling it shall exit. 15342 15343 The parameter destlen specifies the size of the object pointed 15344 to by dest. If n exceeds destlen, the function shall abort and 15345 the program calling it shall exit. 15346 15347 The __wcpncpy_chk() function is not in the source standard; it 15348 is only in the binary standard. 15349 15350 __wcrtomb_chk 15351 15352 Name 15353 15354 __wcrtomb_chk -- convert a wide character to a multibyte 15355 sequence, with buffer overflow checking 15356 15357 Synopsis 15358 15359 #include 15360 15361 size_t __wcrtomb_chk(char * s, wchar_t wchar, mbstate_t * ps, 15362 size_t buflen); 15363 15364 Description 15365 15366 The interface __wcrtomb_chk() shall function in the same way as 15367 the interface wcrtomb(), except that __wcrtomb_chk() shall 15368 check for buffer overflow before computing a result. If an 15369 overflow is anticipated, the function shall abort and the 15370 program calling it shall exit. 15371 15372 The parameter buflen specifies the size of the object pointed 15373 to by s. If it is less than MB_CUR_MAX, then the function shall 15374 abort and the program calling it shall exit. 15375 15376 The __wcrtomb_chk() function is not in the source standard; it 15377 is only in the binary standard. 15378 15379 __wcscat_chk 15380 15381 Name 15382 15383 __wcscat_chk -- concatenate two wide-character strings, with 15384 buffer overflow checking 15385 15386 Synopsis 15387 15388 #include 15389 15390 wchar_t * __wcscat_chk(wchar_t * dest, const wchar_t * src, 15391 size_t destlen); 15392 15393 Description 15394 15395 The interface __wcscat_chk() shall function in the same way as 15396 the interface wcscat(), except that __wcscat_chk() shall check 15397 for buffer overflow before computing a result. If an overflow 15398 is anticipated, the function shall abort and the program 15399 calling it shall exit. 15400 15401 The parameter destlen specifies the size of the object pointed 15402 to by dest. 15403 15404 The __wcscat_chk() function is not in the source standard; it 15405 is only in the binary standard. 15406 15407 __wcscpy_chk 15408 15409 Name 15410 15411 __wcscpy_chk -- copy a wide-character string, with buffer 15412 overflow checking 15413 15414 Synopsis 15415 15416 #include 15417 15418 wchar_t * __wcscpy_chk(wchar_t * dest, const wchar_t * src, 15419 size_t n); 15420 15421 Description 15422 15423 The interface __wcscpy_chk() shall function in the same way as 15424 the interface wcscpy(), except that __wcscpy_chk() shall check 15425 for buffer overflow before computing a result. If an overflow 15426 is anticipated, the function shall abort and the program 15427 calling it shall exit. 15428 15429 The __wcscpy_chk() function is not in the source standard; it 15430 is only in the binary standard. 15431 15432 __wcsncat_chk 15433 15434 Name 15435 15436 __wcsncat_chk -- concatenate two wide-character strings, with 15437 buffer overflow checking 15438 15439 Synopsis 15440 15441 #include 15442 15443 wchar_t * __wcsncat_chk(wchar_t * dest, const wchar_t * src, 15444 size_t n, size_t destlen); 15445 15446 Description 15447 15448 The interface __wcsncat_chk() shall function in the same way as 15449 the interface wcsncat(), except that __wcsncat_chk() shall 15450 check for buffer overflow before computing a result. If an 15451 overflow is anticipated, the function shall abort and the 15452 program calling it shall exit. 15453 15454 The parameter destlen specifies the size of the object pointed 15455 to by dest. 15456 15457 The __wcsncat_chk() function is not in the source standard; it 15458 is only in the binary standard. 15459 15460 __wcsncpy_chk 15461 15462 Name 15463 15464 __wcsncpy_chk -- copy a fixed-size string of wide characters, 15465 with buffer overflow checking 15466 15467 Synopsis 15468 15469 #include 15470 15471 wchar_t * __wcsncpy_chk(wchar_t * dest, const wchar_t * src, 15472 size_t n, size_t destlen); 15473 15474 Description 15475 15476 The interface __wcsncpy_chk() shall function in the same way as 15477 the interface wcsncpy(), except that __wcsncpy_chk() shall 15478 check for buffer overflow before computing a result. If an 15479 overflow is anticipated, the function shall abort and the 15480 program calling it shall exit. 15481 15482 The parameter destlen specifies the size of the object pointed 15483 to by dest. If len exceeds destlen, the function shall abort 15484 and the program calling it shall exit. 15485 15486 The __wcsncpy_chk() function is not in the source standard; it 15487 is only in the binary standard. 15488 15489 __wcsnrtombs_chk 15490 15491 Name 15492 15493 __wcsnrtombs_chk -- convert a wide-character string to a 15494 multibyte string, with buffer overflow checking 15495 15496 Synopsis 15497 15498 #include 15499 15500 size_t __wcsnrtombs_chk(char * dest, const wchar_t * * src, 15501 size_t nwc, size_t len, mbstate_t * ps, size_t destlen); 15502 15503 Description 15504 15505 The interface __wcsnrtombs_chk() shall function in the same way 15506 as the interface wcsnrtombs(), except that __wcsnrtombs_chk() 15507 shall check for buffer overflow before computing a result. If 15508 an overflow is anticipated, the function shall abort and the 15509 program calling it shall exit. 15510 15511 The parameter destlen specifies the size of the object pointed 15512 to by dest. If len exceeds destlen, the function shall abort 15513 and the program calling it shall exit. 15514 15515 The __wcsnrtombs_chk() function is not in the source standard; 15516 it is only in the binary standard. 15517 15518 __wcsrtombs_chk 15519 15520 Name 15521 15522 __wcsrtombs_chk -- convert a wide-character string to a 15523 multibyte string, with buffer overflow checking 15524 15525 Synopsis 15526 15527 #include 15528 15529 size_t __wcsrtombs_chk(char * dest, const wchar_t * * src, 15530 size_t len, mbstate_t * ps, size_t destlen); 15531 15532 Description 15533 15534 The interface __wcsrtombs_chk() shall function in the same way 15535 as the interface wcsrtombs(), except that __wcsrtombs_chk() 15536 shall check for buffer overflow before computing a result. If 15537 an overflow is anticipated, the function shall abort and the 15538 program calling it shall exit. 15539 15540 The parameter destlen specifies the size of the object pointed 15541 to by dest. If len exceeds destlen, the function shall abort 15542 and the program calling it shall exit. 15543 15544 The __wcsrtombs_chk() function is not in the source standard; 15545 it is only in the binary standard. 15546 15547 __wcstod_internal 15548 15549 Name 15550 15551 __wcstod_internal -- underlying function for wcstod 15552 15553 Synopsis 15554 15555 double __wcstod_internal(const wchar_t * nptr, wchar_t * * 15556 endptr, int group); 15557 15558 Description 15559 15560 group shall be 0 or the behavior of __wcstod_internal() is 15561 undefined. 15562 15563 __wcstod_internal(nptr, endptr, 0) shall behave as wcstod(nptr, 15564 endptr) as specified by POSIX 1003.1-2008 (ISO/IEC 9945-2009). 15565 15566 __wcstod_internal() is not in the source standard; it is only 15567 in the binary standard. 15568 15569 __wcstof_internal 15570 15571 Name 15572 15573 __wcstof_internal -- underlying function for wcstof 15574 15575 Synopsis 15576 15577 float __wcstof_internal(const wchar_t * nptr, wchar_t * * 15578 endptr, int group); 15579 15580 Description 15581 15582 group shall be 0 or the behavior of __wcstof_internal() is 15583 undefined. 15584 15585 __wcstof_internal(nptr, endptr, 0) shall behave as wcstof(nptr, 15586 endptr) as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 15587 15588 __wcstof_internal() is not in the source standard; it is only 15589 in the binary standard. 15590 15591 __wcstol_internal 15592 15593 Name 15594 15595 __wcstol_internal -- underlying function for wcstol 15596 15597 Synopsis 15598 15599 long __wcstol_internal(const wchar_t * nptr, wchar_t * * 15600 endptr, int base, int group); 15601 15602 Description 15603 15604 group shall be 0 or the behavior of __wcstol_internal() is 15605 undefined. 15606 15607 __wcstol_internal(nptr, endptr, base, 0) shall behave as 15608 wcstol(nptr, endptr, base) as specified by POSIX 1003.1-2008 15609 (ISO/IEC 9945-2009). 15610 15611 __wcstol_internal() is not in the source standard; it is only 15612 in the binary standard. 15613 15614 __wcstold_internal 15615 15616 Name 15617 15618 __wcstold_internal -- underlying function for wcstold 15619 15620 Synopsis 15621 15622 long double __wcstold_internal(const wchar_t * nptr, wchar_t * 15623 * endptr, int group); 15624 15625 Description 15626 15627 group shall be 0 or the behavior of __wcstold_internal() is 15628 undefined. 15629 15630 __wcstold_internal(nptr, endptr, 0) shall behave as 15631 wcstold(nptr, endptr) as specified by POSIX 1003.1-2008 15632 (ISO/IEC 9945-2009). 15633 15634 __wcstold_internal() is not in the source standard; it is only 15635 in the binary standard. 15636 15637 __wcstombs_chk 15638 15639 Name 15640 15641 __wcstombs_chk -- convert a wide-character string to a 15642 multibyte string, with buffer overflow checking 15643 15644 Synopsis 15645 15646 #include 15647 15648 size_t __wcstombs_chk(char * dest, const wchar_t * src, size_t 15649 len, size_t destlen); 15650 15651 Description 15652 15653 The interface __wcstombs_chk() shall function in the same way 15654 as the interface wcstombs(), except that __wcstombs_chk() shall 15655 check for buffer overflow before computing a result. If an 15656 overflow is anticipated, the function shall abort and the 15657 program calling it shall exit. 15658 15659 The parameter destlen specifies the size of the object pointed 15660 to by dest. If len exceeds destlen, the function shall abort 15661 and the program calling it shall exit. 15662 15663 The __wcstombs_chk() function is not in the source standard; it 15664 is only in the binary standard. 15665 15666 __wcstoul_internal 15667 15668 Name 15669 15670 __wcstoul_internal -- underlying function for wcstoul 15671 15672 Synopsis 15673 15674 unsigned long __wcstoul_internal(const wchar_t * restrict nptr, 15675 wchar_t * * restrict endptr, int base, int group); 15676 15677 Description 15678 15679 group shall be 0 or the behavior of __wcstoul_internal() is 15680 undefined. 15681 15682 __wcstoul_internal(nptr, endptr, base, 0)() shall behave as 15683 wcstoul(nptr, endptr, base)() as specified by POSIX 1003.1-2008 15684 (ISO/IEC 9945-2009). 15685 15686 __wcstoul_internal() is not in the source standard; it is only 15687 in the binary standard. 15688 15689 __wctomb_chk 15690 15691 Name 15692 15693 __wctomb_chk -- convert a wide character to a multibyte 15694 sequence, with buffer overflow checking 15695 15696 Synopsis 15697 15698 #include 15699 15700 int __wctomb_chk(char * s, wchar_t wchar, size_t buflen); 15701 15702 Description 15703 15704 The interface __wctomb_chk() shall function in the same way as 15705 the interface wctomb(), except that __wctomb_chk() shall check 15706 for buffer overflow before computing a result. If an overflow 15707 is anticipated, the function shall abort and the program 15708 calling it shall exit. 15709 15710 The parameter buflen specifies the size of the object pointed 15711 to by s. If it is less than MB_CUR_MAX, then the function shall 15712 abort and the program calling it shall exit. 15713 15714 The __wctomb_chk() function is not in the source standard; it 15715 is only in the binary standard. 15716 15717 __wmemcpy_chk 15718 15719 Name 15720 15721 __wmemcpy_chk -- copy an array of wide-characters, with buffer 15722 overflow checking 15723 15724 Synopsis 15725 15726 #include 15727 15728 wchar_t * __wmemcpy_chk(wchar_t * s1, const wchar_t * s2, 15729 size_t n, size_t ns1); 15730 15731 Description 15732 15733 The interface __wmemcpy_chk() shall function in the same way as 15734 the interface wmemcpy(), except that __wmemcpy_chk() shall 15735 check for buffer overflow before computing a result. If an 15736 overflow is anticipated, the function shall abort and the 15737 program calling it shall exit. 15738 15739 The parameter ns1 specifies the size of the object pointed to 15740 by s1. If n exceeds ns1, the function shall abort and the 15741 program calling it shall exit. 15742 15743 The __wmemcpy_chk() function is not in the source standard; it 15744 is only in the binary standard. 15745 15746 __wmemmove_chk 15747 15748 Name 15749 15750 __wmemmove_chk -- copy an array of wide-characters, with buffer 15751 overflow checking 15752 15753 Synopsis 15754 15755 #include 15756 15757 wchar_t * __wmemmove_chk(wchar_t * s1, const wchar_t * s2, 15758 size_t n, size_t ns1); 15759 15760 Description 15761 15762 The interface __wmemmove_chk() shall function in the same way 15763 as the interface wmemmove(), except that __wmemmove_chk() shall 15764 check for buffer overflow before computing a result. If an 15765 overflow is anticipated, the function shall abort and the 15766 program calling it shall exit. 15767 15768 The parameter ns1 specifies the size of the object pointed to 15769 by s1. If n exceeds ns1, the function shall abort and the 15770 program calling it shall exit. 15771 15772 The __wmemmove_chk() function is not in the source standard; it 15773 is only in the binary standard. 15774 15775 __wmempcpy_chk 15776 15777 Name 15778 15779 __wmempcpy_chk -- copy memory area, with buffer overflow 15780 checking 15781 15782 Synopsis 15783 15784 #include 15785 15786 wchar_t * __wmempcpy_chk(wchar_t * s1, const wchar_t * s2, 15787 size_t n, size_t ns1); 15788 15789 Description 15790 15791 The interface __wmempcpy_chk() shall function in the same way 15792 as the interface wmempcpy(), except that __wmempcpy_chk() shall 15793 check for buffer overflow before computing a result. If an 15794 overflow is anticipated, the function shall abort and the 15795 program calling it shall exit. 15796 15797 The parameter ns1 specifies the size of the object pointed to 15798 by s1. If n exceeds ns1, the function shall abort and the 15799 program calling it shall exit. 15800 15801 The __wmempcpy_chk() function is not in the source standard; it 15802 is only in the binary standard. 15803 15804 __wmemset_chk 15805 15806 Name 15807 15808 __wmemset_chk -- fill an array of wide-characters with a 15809 constant wide character, with buffer overflow checking 15810 15811 Synopsis 15812 15813 #include 15814 15815 wchar_t * __wmemset_chk(wchar_t * s, wchar_t c, size_t n, 15816 size_t destlen); 15817 15818 Description 15819 15820 The interface __wmemset_chk() shall function in the same way as 15821 the interface wmemset(), except that __wmemset_chk() shall 15822 check for buffer overflow before computing a result. If an 15823 overflow is anticipated, the function shall abort and the 15824 program calling it shall exit. 15825 15826 The parameter destlen specifies the size of the object pointed 15827 to by s. If n exceeds destlen, the function shall abort and the 15828 program calling it shall exit. 15829 15830 The __wmemset_chk() function is not in the source standard; it 15831 is only in the binary standard. 15832 15833 __wprintf_chk 15834 15835 Name 15836 15837 __wprintf_chk -- convert formatted wide-character output, with 15838 stack checking 15839 15840 Synopsis 15841 15842 #include 15843 15844 int __wprintf_chk(int flag, const wchar_t * format); 15845 15846 Description 15847 15848 The interface __wprintf_chk() shall function in the same way as 15849 the interface wprintf(), except that __wprintf_chk() shall 15850 check for stack overflow before computing a result, depending 15851 on the value of the flag parameter. If an overflow is 15852 anticipated, the function shall abort and the program calling 15853 it shall exit. 15854 15855 In general, the higher the value of flag, the more security 15856 measures this interface shall take in the form of checking the 15857 stack, parameter values, and so on. 15858 15859 The __wprintf_chk() function is not in the source standard; it 15860 is only in the binary standard. 15861 15862 __xmknod 15863 15864 Name 15865 15866 __xmknod -- make a special file 15867 15868 Synopsis 15869 15870 #include 15871 15872 int __xmknod(int ver, const char * path, mode_t mode, dev_t * 15873 dev); 15874 15875 Description 15876 15877 The __xmknod() function shall implement the mknod() interface. 15878 The behavior of __xmknod() for values of ver other than 15879 _MKNOD_VER is undefined. See Data Definitions in the 15880 architecture specific part of this specification for the 15881 correct value of _MKNOD_VER. 15882 15883 __xmknod(_MKNOD_VER, path, mode, dev) shall behave as 15884 mknod(path, mode, dev) as specified by POSIX 1003.1-2008 15885 (ISO/IEC 9945-2009). 15886 15887 The __xmknod() function is not in the source standard; it is 15888 only in the binary standard. 15889 15890 Note: The mknod() function is not in the binary standard; it 15891 is only in the source standard. 15892 15893 __xmknodat 15894 15895 Name 15896 15897 __xmknodat -- make a special file relative to a directory file 15898 descriptor 15899 15900 Synopsis 15901 15902 #include 15903 15904 int __xmknodat(int ver, int dirfd, const char * path, mode_t 15905 path, dev_t * dev); 15906 15907 Description 15908 15909 The __xmknodat() function shall implement the mknodat() 15910 function. The behavior of __xmknodat() for values of ver other 15911 than _MKNOD_VER is undefined. See Data Definitions in the 15912 architecture specific part of this specification for the 15913 correct value of _MKNOD_VER. 15914 15915 __xmknodat(_MKNOD_VER, dirfd, path, mode, dev) shall behave as 15916 mknodat(dirfd, path, mode, dev) as specified by POSIX 15917 1003.1-2008 (ISO/IEC 9945-2009). 15918 15919 The __xmknodat() function is not in the source standard; it is 15920 only in the binary standard. 15921 15922 Note: The mknodat() function is not in the binary standard; 15923 it is only in the source standard. 15924 15925 __xpg_basename 15926 15927 Name 15928 15929 __xpg_basename -- return the last component of a file name 15930 15931 Synopsis 15932 15933 #include 15934 15935 char * __xpg_basename(const char * path); 15936 15937 Description 15938 15939 The __xpg_basename() function shall return a pointer to the 15940 final component of the pathname named by path, as described in 15941 POSIX 1003.1-2008 (ISO/IEC 9945-2009) basename(). 15942 15943 This function is not in the source standard, it is only in the 15944 binary standard. 15945 15946 Return Value 15947 15948 See POSIX 1003.1-2008 (ISO/IEC 9945-2009). 15949 15950 __xpg_sigpause 15951 15952 Name 15953 15954 __xpg_sigpause -- remove a signal from the signal mask and 15955 suspend the thread 15956 15957 Synopsis 15958 15959 #include 15960 15961 int __xpg_sigpause(int sig); 15962 15963 Description 15964 15965 The __xpg_sigpause() function shall implement the sigpause() 15966 described in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 15967 15968 This function is not in the source standard, it is only in the 15969 binary standard. 15970 15971 Return Value 15972 15973 See POSIX 1003.1-2008 (ISO/IEC 9945-2009). 15974 15975 __xpg_strerror_r 15976 15977 Name 15978 15979 __xpg_strerror_r -- return string describing error number 15980 15981 Synopsis 15982 15983 #include 15984 15985 int __xpg_strerror_r(int errnum, char * buf, size_t buflen); 15986 15987 Description 15988 15989 The __xpg_strerror_r() function shall map the error number in 15990 errnum to a locale-dependent error message string and shall 15991 return the string in the buffer pointed to by strerrbuf, with 15992 length buflen, as described in POSIX 1003.1-2008 (ISO/IEC 15993 9945-2009) strerror_r(). 15994 15995 This function is not in the source standard, it is only in the 15996 binary standard. 15997 15998 Return Value 15999 16000 See POSIX 1003.1-2008 (ISO/IEC 9945-2009). 16001 16002 __xstat 16003 16004 Name 16005 16006 __xstat -- get File Status 16007 16008 Synopsis 16009 16010 #include 16011 #include 16012 16013 int __xstat(int ver, const char * path, struct stat * 16014 stat_buf); 16015 16016 int __lxstat(int ver, const char * path, struct stat * 16017 stat_buf); 16018 16019 int __fxstat(int ver, int fildes, struct stat * stat_buf); 16020 16021 Description 16022 16023 The functions __xstat(), __lxstat(), and __fxstat() shall 16024 implement the functions stat(), lstat(), and fstat() 16025 respectively. 16026 16027 The behavior of these functions for values of ver other than 16028 _STAT_VER is undefined. See Data Definitions in the 16029 architecture specific part of this specification for the 16030 correct value of _STAT_VER. 16031 16032 __xstat(_STAT_VER, path, stat_buf) shall implement stat(path, 16033 stat_buf) as specified by POSIX 1003.1-2008 (ISO/IEC 16034 9945-2009). 16035 16036 __lxstat(_STAT_VER, path, stat_buf) shall implement lstat(path, 16037 stat_buf) as specified by POSIX 1003.1-2008 (ISO/IEC 16038 9945-2009). 16039 16040 __fxstat(_STAT_VER, fildes, stat_buf) shall implement 16041 fstat(fildes, stat_buf) as specified by POSIX 1003.1-2008 16042 (ISO/IEC 9945-2009). 16043 16044 __xstat(), __lxstat(), and __fxstat() are not in the source 16045 standard; they are only in the binary standard. 16046 16047 stat(), lstat(), and fstat() are not in the binary standard; 16048 they are only in the source standard. 16049 16050 __xstat64 16051 16052 Name 16053 16054 __xstat64 -- get File Status 16055 16056 Synopsis 16057 16058 #define _LARGEFILE_SOURCE 1 16059 #include 16060 #include 16061 16062 int __xstat64(int ver, const char * path, struct stat64 * 16063 stat_buf); 16064 16065 int __lxstat64(int ver, const char * path, struct stat64 * 16066 stat_buf); 16067 16068 int __fxstat64(int ver, int fildes, struct stat64 * stat_buf); 16069 16070 Description 16071 16072 The functions __xstat64(), __lxstat64(), and __fxstat64() shall 16073 implement the functions stat64(), lstat64(), and fstat64() 16074 respectively. 16075 16076 The behavior of these functions for values of ver other than 16077 _STAT_VER is undefined. See Data Definitions in the 16078 architecture specific part of this specification for the 16079 correct value of _STAT_VER. 16080 16081 __xstat64(_STAT_VER, path, stat_buf) shall behave as 16082 stat64(path, stat_buf) as specified by Large File Support. 16083 16084 __lxstat64(_STAT_VER, path, stat_buf) shall behave as 16085 lstat64(path, stat_buf) as specified by Large File Support. 16086 16087 __fxstat64(_STAT_VER, fildes, stat_buf) shall behave as 16088 fstat64(fildes, stat_buf) as specified by Large File Support. 16089 16090 __xstat64(), __lxstat64(), and __fxstat64() are not in the 16091 source standard; they are only in the binary standard. 16092 16093 stat64(), lstat64(), and fstat64() are not in the binary 16094 standard; they are only in the source standard. 16095 16096 _environ 16097 16098 Name 16099 16100 _environ -- alias for environ - user environment 16101 16102 Synopsis 16103 16104 extern char * *_environ; 16105 16106 Description 16107 16108 _environ is an alias for environ - user environment. 16109 16110 _nl_msg_cat_cntr 16111 16112 Name 16113 16114 _nl_msg_cat_cntr -- new catalog load counter 16115 16116 Synopsis 16117 16118 #include 16119 16120 extern int _nl_msg_cat_cntr; 16121 16122 Description 16123 16124 The global variable _nl_msg_cat_cntr is incremented each time a 16125 new catalog is loaded. This variable is only in the binary 16126 standard; it is not in the source standard. 16127 16128 _sys_errlist 16129 16130 Name 16131 16132 _sys_errlist -- array containing the "C" locale strings used by 16133 strerror() 16134 16135 Synopsis 16136 16137 #include 16138 16139 extern const char *const _sys_errlist[]; 16140 16141 Description 16142 16143 _sys_errlist is an array containing the "C" locale strings used 16144 by strerror(). This normally should not be used directly. 16145 strerror() provides all of the needed functionality. 16146 16147 _sys_siglist 16148 16149 Name 16150 16151 _sys_siglist -- array containing the names of the signal names 16152 16153 Synopsis 16154 16155 #include 16156 16157 extern const char *const _sys_siglist[NSIG]; 16158 16159 Description 16160 16161 _sys_siglist is an array containing signal description strings 16162 ordered by signal number. 16163 16164 The _sys_siglist array is only in the binary standard; it is 16165 not in the source standard. Applications wishing to access 16166 signal descriptions should use the strsignal() function. 16167 16168 acct 16169 16170 Name 16171 16172 acct -- switch process accounting on or off 16173 16174 Synopsis 16175 16176 #include 16177 16178 int acct(const char * filename); 16179 16180 Description 16181 16182 When filename is the name of an existing file, acct() turns 16183 accounting on and appends a record to filename for each 16184 terminating process. When filename is NULL, acct() turns 16185 accounting off. 16186 16187 Return Value 16188 16189 On success, 0 is returned. On error, -1 is returned and the 16190 global variable errno is set appropriately. 16191 16192 Errors 16193 16194 ENOSYS 16195 16196 BSD process accounting has not been enabled when the operating 16197 system kernel was compiled. The kernel configuration parameter 16198 controlling this feature is CONFIG_BSD_PROCESS_ACCT. 16199 ENOMEM 16200 16201 Out of memory. 16202 EPERM 16203 16204 The calling process has no permission to enable process 16205 accounting. 16206 EACCES 16207 16208 filename is not a regular file. 16209 EIO 16210 16211 Error writing to the filename. 16212 EUSERS 16213 16214 There are no more free file structures or we run out of memory. 16215 16216 adjtime 16217 16218 Name 16219 16220 adjtime -- correct the time to allow synchronization of the 16221 system clock 16222 16223 Synopsis 16224 16225 #include 16226 16227 int adjtime(const struct timeval * delta, struct timeval * 16228 olddelta); 16229 16230 Description 16231 16232 adjtime() makes small adjustments to the system time as 16233 returned by gettimeofday()(2), advancing or retarding it by the 16234 time specified by the timeval delta. If delta is negative, the 16235 clock is slowed down by incrementing it more slowly than normal 16236 until the correction is complete. If delta is positive, a 16237 larger increment than normal is used. The skew used to perform 16238 the correction is generally a fraction of one percent. Thus, 16239 the time is always a monotonically increasing function. A time 16240 correction from an earlier call to adjtime() may not be 16241 finished when adjtime() is called again. If olddelta is 16242 non-NULL, the structure pointed to will contain, upon return, 16243 the number of microseconds still to be corrected from the 16244 earlier call. 16245 16246 adjtime() may be used by time servers that synchronize the 16247 clocks of computers in a local area network. Such time servers 16248 would slow down the clocks of some machines and speed up the 16249 clocks of others to bring them to the average network time. 16250 16251 Appropriate privilege is required to adjust the system time. 16252 16253 Return Value 16254 16255 On success, 0 is returned. On error, -1 is returned and the 16256 global variable errno is set appropriately. 16257 16258 Errors 16259 16260 EFAULT 16261 16262 An argument points outside the process's allocated address 16263 space. 16264 EPERM 16265 16266 The process does not have appropriate privilege. 16267 16268 alphasort64 16269 16270 Name 16271 16272 alphasort64 -- Comparison function for directory scanning 16273 (Large File Support) 16274 16275 Synopsis 16276 16277 #include 16278 16279 int alphasort64(const struct dirent64 ** d1, const struct 16280 dirent64 ** d2); 16281 16282 Description 16283 16284 alpahsort64() is a large-file version of the alphasort() 16285 function as defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 16286 If differs only in that the d1 and d2 parameters are of type 16287 dirent64 instead of type dirent. 16288 16289 argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify 16290 16291 Name 16292 16293 argz_add, argz_add_sep, argz_append, argz_count, argz_create, 16294 argz_create_sep, argz_delete, argz_extract, argz_insert, 16295 argz_next, argz_replace, argz_stringify -- Operate on argz 16296 vectors 16297 16298 Synopsis 16299 16300 #include 16301 16302 error_t argz_add(char ** argz, size_t * argz_len, const char * 16303 str); 16304 16305 error_t argz_add_sep(char ** argz, size_t * argz_len, const 16306 char * str, int sep); 16307 16308 error_t argz_append(char ** argz, size_t * argz_len, const char 16309 * buf, size_t buf_len); 16310 16311 size_t argz_count(const char * argz, size_t * argz_len); 16312 16313 error_t argz_create(char * const argv, char ** argz, size_t * 16314 argz_len); 16315 16316 error_t argz_create_sep(const char * str, int sep, char ** 16317 argz, size_t * argz_len); 16318 16319 void argz_delete(char ** argz, size_t * argz_len, char * 16320 entry); 16321 16322 void argz_extract(const char * argz, size_t argz_len, char ** 16323 argv); 16324 16325 error_t argz_insert(char ** argz_insert, size_t * argz_len, 16326 char * before, const char * entry); 16327 16328 char argz_next(const char * argz, size_t argz_len, const char * 16329 entry); 16330 16331 error_t argz_replace(char ** argz, size_t * argz_len, const 16332 char * str, const char * with, unsigned int * replace_count); 16333 16334 void argz_stringify(char * argz, size_t argz_len, int sep); 16335 16336 Description 16337 16338 The argz functions operate on argz vectors, which are typically 16339 used to more easily manipulate program arguments, of the form 16340 described in ISO C (1999) in section 5.1.2.2.1, Program 16341 Startup. While an argv is an array of character pointers to 16342 strings, an argz vector is a set of strings, separated by null 16343 characters, in contiguous memory; the vector is described by a 16344 pointer to the first element and a size. There is no limitation 16345 that the argz must be made up of program arguments. 16346 16347 The argz functions which change argz vectors expect them to use 16348 memory allocated using malloc(), and will themselves use 16349 malloc() or realloc(). 16350 16351 The argz_create() function converts an argv vector identified 16352 by argv to an argz vector with the same elements, identified by 16353 argz and argz_len. 16354 16355 The argz_create_sep() function converts the string identified 16356 by str, spliting into a separate string at each occurence of 16357 sep, to an argz vector identified by argz and argz_len. 16358 16359 The argz_add() function adds the string identified by str to 16360 the vector identified by argz and argz_len, updating argz and 16361 argz_len. 16362 16363 The argz_add_sep() function adds the string identified by str, 16364 spliting into a separate string at each occurence of sep, to 16365 the vector identified by argz, updating argz and argz_len. 16366 16367 The argz_append() function appends the argz vector identified 16368 by buf and buf_len to the argz vector identified by argz and 16369 argz_len, thus updating argz and argz_len. 16370 16371 The argz_count() function returns the number of strings in the 16372 argz vector identified by argz and argz_len. 16373 16374 The argz_delete() function removes the string identified by 16375 entry from the the argz vector identified by argz, argz_len, 16376 updating argz and argz_len. 16377 16378 The argz_extract() function performs the inverse of 16379 argz_create(). It converts an argz vector identified by argz 16380 and argz_len to an argv vector identified by argv with the same 16381 elements. 16382 16383 The argz_insert() function inserts the string identified by 16384 entry at position before to the the argz vector identified by 16385 argz and argz_len, updating argz and argz_len. 16386 16387 The argz_next() function returns the entry following the entry 16388 identfied by entry in the argz vector identified by argz and 16389 argz_len. If entry is NULL the first entry is returned. This 16390 function can be used to step through an argz vector by 16391 obtaining the first entry by passing NULL, then passing the 16392 just obtained value to the next call, and so on. NULL is 16393 returned if there is no following entry. 16394 16395 The argz_replace() function replaces each occurrence of str in 16396 the argz vector identified by argz and argz_len with with, 16397 updating argz and argz_len. The counter pointed to by 16398 replace_count will be incremented by the number of replacements 16399 unless NULL is passed for replace_count. 16400 16401 The argz_stringify() function performs the inverse of 16402 argz_create_sep(). It converts the argz vector identified by 16403 argz and argz_len into a regular string, with the strings in 16404 the original vector separated by sep in the converted string. 16405 The conversion is done in place, so in effect each null byte in 16406 argz but the last one is replaced by sep. 16407 16408 Return Value 16409 16410 All of the argz functions that perform memory allocation return 16411 an error_t type. These functions return 0 on success; if memory 16412 allocation fails, they return ENOMEM. 16413 16414 argz_count() returns a count of substrings in the argz vector 16415 as a size_t type. 16416 16417 argz_next() returns a pointer to a substring in an argz vector, 16418 or NULL. 16419 16420 See Also 16421 16422 envz_add, envz_entry, envz_get, envz_merge, envz_remove, 16423 envz_strip 16424 16425 asprintf 16426 16427 Name 16428 16429 asprintf -- write formatted output to a dynamically allocated 16430 string 16431 16432 Synopsis 16433 16434 #include 16435 16436 int asprintf(char ** restrict ptr, const char * restrict 16437 format, ...); 16438 16439 Description 16440 16441 The asprintf() function shall behave as sprintf(), except that 16442 the output string shall be dynamically allocated space of 16443 sufficient length to hold the resulting string. The address of 16444 this dynamically allocated string shall be stored in the 16445 location referenced by ptr. 16446 16447 Return Value 16448 16449 Refer to fprintf(). 16450 16451 Errors 16452 16453 Refer to fprintf(). 16454 16455 backtrace, backtrace_symbols, backtrace_symbols_fd 16456 16457 Name 16458 16459 backtrace, backtrace_symbols, backtrace_symbols_fd -- runtime 16460 stack back tracing 16461 16462 Synopsis 16463 16464 #include 16465 16466 int backtrace(void **array, int size); 16467 16468 char **backtrace_symbols(void *const *array, int size); 16469 16470 void backtrace_symbols_fd(void *const *array, int size, int 16471 fd); 16472 16473 Description 16474 16475 backtrace() obtains a backtrace for the current thread as a 16476 list of pointers filled in to array. The size parameter 16477 describes the number of elements that will fit into array, 16478 backtrace() will truncate the list if necessary. A backtrace is 16479 a list of currently active function calls in a thread; each 16480 function call allocates a new stack frame and backtrace() 16481 obtains the return address from each stack frame. 16482 16483 backtrace_symbols() translates the information obtained from 16484 backtrace() into an array of strings. array is a pointer to an 16485 array of addresses as obtained from backtrace(). size is the 16486 number of entries in array, and should be the return value of 16487 the call to backtrace(). The strings contain the function name 16488 if it can be determined, a hedxadecimal offset into the 16489 function, and the actual return address in hexadecimal. Note 16490 that the pointer returned by backtrace_symbols() is obtained by 16491 an internal call to malloc() and should be freed when no longer 16492 needed. 16493 16494 backtrace_symbols_fd() performs the same transformation as 16495 backtrace_symbols() given the same argument pair array, size, 16496 but writes the strings to the file descriptor contained in fd. 16497 This avoids the allocation of string space. 16498 16499 Return Value 16500 16501 backtrace() returns the number of entries placed into array, no 16502 more than size. If the value is less than size, the full 16503 backtrace was returned; else it may have been truncated. 16504 16505 On success, backtrace_symbols() returns a pointer to an array 16506 of strings, which will have size entries. On error, NULL is 16507 returned. 16508 16509 Errors 16510 16511 No errors are defined for these functions. If 16512 backtrace_symbols_fd() fails, it will be due to a failure in 16513 the call to malloc(), and errno will be set accordingly. 16514 16515 Notes 16516 16517 The ability to obtain useful backtrace information, in 16518 particular function names, is dependent on a number of factors 16519 at the time of program construction, such as compiler 16520 optimization options. Even if the program itself is constructed 16521 so as to make symbols visible, the call trace may descend into 16522 system libraries which have not been so constructed. 16523 16524 Inlined functions do not have stack frames, and functions 16525 declared as static are not exposed and so will not be available 16526 in the backtrace. 16527 16528 See Also 16529 16530 malloc() 16531 16532 basename 16533 16534 Name 16535 16536 basename -- return the last component of a file name 16537 16538 Synopsis 16539 16540 #include 16541 16542 char * basename(const char * path); 16543 16544 Description 16545 16546 In the source standard, basename() is implemented as a macro 16547 causing it to behave as described in POSIX 1003.1-2008 (ISO/IEC 16548 9945-2009), and is equivalent to the function __xpg_basename(). 16549 If the macro is undefined, basename() from the binary standard 16550 is used, with differences as described here: 16551 16552 The string identified by path shall not be modified. 16553 16554 If path is "/", or ends with a trailing '/' character, the 16555 basename() function shall return a pointer to an empty string. 16556 16557 Return Value 16558 16559 On success, the basename() function shall return a pointer to 16560 the final component of path. Otherwise, it shall return a null 16561 pointer. 16562 16563 See Also 16564 16565 __xpg_basename() 16566 16567 bind_textdomain_codeset 16568 16569 Name 16570 16571 bind_textdomain_codeset -- specify encoding for message 16572 retrieval 16573 16574 Synopsis 16575 16576 #include 16577 16578 char * bind_textdomain_codeset (const char * domainname , const 16579 char * codeset ); 16580 16581 Description 16582 16583 The bind_textdomain_codeset() function can be used to specify 16584 the output codeset for message catalogs for domain domainname. 16585 The codeset argument shall be a valid codeset name which can be 16586 used tor the iconv_open function, or a null pointer. If the 16587 codeset argument is the null pointer, then function returns the 16588 currently selected codeset for the domain with the name 16589 domainname. It shall return a null pointer if no codeset has 16590 yet been selected. 16591 16592 Each successive call to bind_textdomain_codeset() function 16593 overrrides the settings made by the preceding call with the 16594 same domainname. 16595 16596 The bind_textdomain_codeset() function shall return a pointer 16597 to a string containing the name of the selected codeset. The 16598 string shall be allocated internally in the function and shall 16599 not be changed or freed by the user. 16600 16601 Parameters 16602 16603 domainname 16604 16605 The domainname argument is applied to the currently active 16606 LC_MESSAGE locale. It is equivalent in syntax and meaning to 16607 the domainname argument to textdomain, except that the 16608 selection of the domain is valid only for the duration of the 16609 call. 16610 codeset 16611 16612 The name of the output codeset for the selected domain, or NULL 16613 to select the current codeset. 16614 16615 If domainname is the null pointer, or is an empty string, 16616 bind_textdomain_codeset() shall fail, but need not set errno. 16617 16618 Return Value 16619 16620 Returns the currently selected codeset name. It returns a null 16621 pointer if no codeset has yet been selected. 16622 16623 Errors 16624 16625 ENOMEM 16626 16627 Insufficient memory available to allocate return value. 16628 16629 See Also 16630 16631 gettext, dgettext, ngettext, dngettext, dcgettext, dcngettext, 16632 textdomain, bindtextdomain 16633 16634 bindresvport 16635 16636 Name 16637 16638 bindresvport -- bind socket to privileged IP port 16639 16640 Synopsis 16641 16642 #include 16643 #include 16644 16645 int bindresvport(int sd, struct sockaddr_in * sin); 16646 16647 Description 16648 16649 If the process has appropriate privilege, the bindresvport() 16650 function shall bind a socket to an anonymous privileged IP 16651 port, that is, arbitrarily selected from the range 512 through 16652 1023. 16653 16654 If the bind is successful and sin is not NULL, and the port 16655 number bound to is returned in the sin_port member of sin. Any 16656 caller-supplied value of sin_port is ignored. 16657 16658 If sin is NULL, the address family is taken to be AF_INET and 16659 an available privileged port is bound to. Since there is no 16660 sockaddr_in structure, the port number chosen cannot be 16661 returned. The getsockname() may be used to query for this 16662 information. 16663 16664 Return Value 16665 16666 On success, 0 is returned. On error, -1 is returned and errno 16667 is set to indicate the error. 16668 16669 Errors 16670 16671 bindresvport() may fail in the same way as bind() in POSIX 16672 1003.1-2008 (ISO/IEC 9945-2009). The following additional or 16673 differing failures may occur: 16674 16675 EADDRINUSE 16676 16677 All privileged ports are in use. 16678 EAFNOSUPPORT 16679 16680 The specified address is not a valid address for the address 16681 family of the specified socket, or the address family is not 16682 supported. 16683 EPFNOSUPPORT 16684 16685 The same meaning as EAFNOSUPPORT. Some older implementations 16686 may return this error instead. 16687 16688 Note: At this time, only AF_INET is supported. Applications 16689 should be prepared for either the EAFNOSUPPORT or 16690 EPFNOSUPPORT error to be indicated. 16691 16692 bindtextdomain 16693 16694 Name 16695 16696 bindtextdomain -- specify the location of a message catalog 16697 16698 Synopsis 16699 16700 #include 16701 16702 char * bindtextdomain(const char * domainname, const char * 16703 dirname); 16704 16705 Description 16706 16707 The bindtextdomain() shall set the the base directory of the 16708 hierarchy containing message catalogs for a given message 16709 domain. 16710 16711 The bindtextdomain() function specifies that the domainname 16712 message catalog can be found in the dirname directory 16713 hierarchy, rather than in the system default locale data base. 16714 16715 If dirname is not NULL, the base directory for message catalogs 16716 belonging to domain domainname shall be set to dirname. If 16717 dirname is NULL, the base directory for message catalogs shall 16718 not be altered. 16719 16720 The function shall make copies of the argument strings as 16721 needed. 16722 16723 dirname can be an absolute or relative pathname. 16724 16725 Note: Applications that wish to use chdir() should always 16726 use absolute pathnames to avoid misadvertently selecting the 16727 wrong or non-existant directory. 16728 16729 If domainname is the null pointer, or is an empty string, 16730 bindtextdomain() shall fail, but need not set errno. 16731 16732 The bindtextdomain() function shall return a pointer to a 16733 string containing the name of the selected directory. The 16734 string shall be allocated internally in the function and shall 16735 not be changed or freed by the user. 16736 16737 Return Value 16738 16739 On success, bindtextdomain() shall return a pointer to a string 16740 containing the directory pathname currently bound to the 16741 domain. On failure, a NULL pointer is returned, and the global 16742 variable errno may be set to indicate the error. 16743 16744 Errors 16745 16746 ENOMEM 16747 16748 Insufficient memory was available. 16749 16750 See Also 16751 16752 gettext, dgettext, ngettext, dngettext, dcgettext, dcngettext, 16753 textdomain, bind_textdomain_codeset 16754 16755 cfmakeraw 16756 16757 Name 16758 16759 cfmakeraw -- get and set terminal attributes 16760 16761 Synopsis 16762 16763 #include 16764 16765 void cfmakeraw(struct termios * termios_p); 16766 16767 Description 16768 16769 The cfmakeraw() function shall set the attributes of the 16770 termios structure referenced by termios_p as follows: 16771 termios_p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP 16772 |INLCR|IGNCR|ICRNL|IXON); 16773 16774 termios_p->c_oflag &= ~OPOST; 16775 16776 termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); 16777 16778 termios_p->c_cflag &= ~(CSIZE|PARENB); 16779 16780 termios_p->c_cflag |= CS8; 16781 16782 termios_p shall point to a termios structure that contains the 16783 following members: 16784 tcflag_t c_iflag; /* input modes */ 16785 tcflag_t c_oflag; /* output modes */ 16786 tcflag_t c_cflag; /* control modes */ 16787 tcflag_t c_lflag; /* local modes */ 16788 cc_t c_cc[NCCS]; /* control chars */ 16789 16790 cfsetspeed 16791 16792 Name 16793 16794 cfsetspeed -- set terminal input and output data rate 16795 16796 Synopsis 16797 16798 #include 16799 16800 int cfsetspeed(struct termios *t, speed_t speed); 16801 16802 Description 16803 16804 The cfsetspeed() function shall set the input and output speeds 16805 in t to the value specified by speed. The effects of the 16806 function on the terminal as described below do not become 16807 effective, nor are all errors detected, until the tcsetattr() 16808 function is called. Certain values for baud rates set in 16809 termios and passed to tcsetattr() have special meanings. 16810 16811 Return Value 16812 16813 On success, 0 is returned. On error, -1 is returned and the 16814 global variable errno is set appropriately. 16815 16816 Errors 16817 16818 EINVAL 16819 16820 Invalid speed argument 16821 16822 clearerr_unlocked 16823 16824 Name 16825 16826 clearerr_unlocked -- non-thread-safe clearerr 16827 16828 Description 16829 16830 clearerr_unlocked() is the same as clearerr(), except that it 16831 need not be thread-safe. That is, it may only be invoked in the 16832 ways which are legal for getc_unlocked(). 16833 16834 daemon 16835 16836 Name 16837 16838 daemon -- run in the background 16839 16840 Synopsis 16841 16842 #include 16843 16844 int daemon(int nochdir, int noclose); 16845 16846 Description 16847 16848 The daemon() function shall create a new process, detached from 16849 the controlling terminal. If successful, the calling process 16850 shall exit and the new process shall continue to execute the 16851 application in the background. If nochdir evaluates to true, 16852 the current directory shall not be changed. Otherwise, daemon() 16853 shall change the current working directory to the root (`/'). 16854 If noclose evaluates to true the standard input, standard 16855 output, and standard error file descriptors shall not be 16856 altered. Otherwise, daemon() shall close the standard input, 16857 standard output and standard error file descriptors and reopen 16858 them attached to /dev/null. 16859 16860 Return Value 16861 16862 On error, -1 is returned, and the global variable errno is set 16863 to any of the errors specified for the library functions fork() 16864 and setsid(). 16865 16866 dcgettext 16867 16868 Name 16869 16870 dcgettext -- perform domain and category specific lookup in 16871 message catalog 16872 16873 Synopsis 16874 16875 #include 16876 #include 16877 16878 char * dcgettext(const char * domainname, const char * msgid, 16879 int category); 16880 16881 Description 16882 16883 The dcgettext() function is a domain specified version of 16884 gettext(). 16885 16886 The dcgettext() function shall lookup the translation in the 16887 current locale of the message identified by msgid in the domain 16888 specified by domainname and in the locale category specified by 16889 category. If domainname is NULL, the current default domain 16890 shall be used. The msgid argument shall be a NULL-terminated 16891 string to be matched in the catalogue. category shall specify 16892 the locale category to be used for retrieving message strings. 16893 The category parameter shall be one of LC_CTYPE, LC_COLLATE, 16894 LC_MESSAGES, LC_MONETARY, LC_NUMERIC, or LC_TIME. The default 16895 domain shall not be changed by a call to dcgettext(). 16896 16897 Return Value 16898 16899 If a translation was found in one of the specified catalogs, it 16900 shall be converted to the current locale's codeset and 16901 returned. The resulting NULL-terminated string shall be 16902 allocated by the dcgettext function, and must not be modified 16903 or freed. If no translation was found, or category was invalid, 16904 msgid shall be returned. 16905 16906 Errors 16907 16908 dcgettext() shall not modify the errno global variable. 16909 16910 See Also 16911 16912 gettext, dgettext, ngettext, dngettext, dcngettext, textdomain, 16913 bindtextdomain, bind_textdomain_codeset 16914 16915 dcngettext 16916 16917 Name 16918 16919 dcngettext -- perform domain and category specific lookup in 16920 message catalog with plural 16921 16922 Synopsis 16923 16924 #include 16925 #include 16926 16927 char * dcngettext(const char * domainname, const char * msgid1, 16928 const char * msgid2, unsigned long int n, int category); 16929 16930 Description 16931 16932 The dcngettext() function is a domain specific version of 16933 gettext, capable of returning either a singular or plural form 16934 of the message. The dcngettext() function shall lookup the 16935 translation in the current locale of the message identified by 16936 msgid1 in the domain specified by domainname and in the locale 16937 category specified by category. If domainname is NULL, the 16938 current default domain shall be used. The msgid1 argument shall 16939 be a NULL-terminated string to be matched in the catalogue. 16940 category shall specify the locale category to be used for 16941 retrieving message strings. The category parameter shall be one 16942 of LC_CTYPE, LC_COLLATE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, 16943 or LC_TIME. The default domain shall not be changed by a call 16944 to dcngettext(). If n is 1 then the singular version of the 16945 message is returned, otherwise one of the plural forms is 16946 returned, depending on the value of n and the current locale 16947 settings. 16948 16949 Return Value 16950 16951 If a translation corresponding to the value of n was found in 16952 one of the specified catalogs for msgid1, it shall be converted 16953 to the current locale's codeset and returned. The resulting 16954 NULL-terminated string shall be allocated by the dcngettext() 16955 function, and must not be modified or freed. If no translation 16956 was found, or category was invalid, msgid1 shall be returned if 16957 n has the value 1, otherwise msgid2 shall be returned. 16958 16959 Errors 16960 16961 dcngettext() shall not modify the errno global variable. 16962 16963 See Also 16964 16965 gettext, dgettext, ngettext, dngettext, dcgettext, textdomain, 16966 bindtextdomain, bind_textdomain_codeset 16967 16968 dgettext 16969 16970 Name 16971 16972 dgettext -- perform lookup in message catalog for the current 16973 LC_MESSAGES locale 16974 16975 Synopsis 16976 16977 #include 16978 16979 char * dgettext(const char * domainname, const char * msgid); 16980 16981 Description 16982 16983 dgettext() is a domain specified version of gettext(). 16984 16985 The dgettext() function shall search the currently selected 16986 message catalogs in the domain domainname for a string 16987 identified by the string msgid. If a string is located, that 16988 string shall be returned. The domain specified by domainname 16989 applies to the currently active LC_MESSAGE locale. The default 16990 domain shall not be changed by a call to dgettext(). 16991 16992 Note: The usage of domainanme is equivalent in syntax and 16993 meaning to the textdomain() function's application of 16994 domainname, except that the selection of the domain in 16995 dgettext() is valid only for the duration of the call. 16996 16997 The dgettext() function is equivalent to dcgettext(domainname, 16998 msgid, LC_MESSAGES). 16999 17000 Return Value 17001 17002 On success of a msgid query, the translated NULL-terminated 17003 string is returned. On error, the original msgid is returned. 17004 The length of the string returned is undetermined until 17005 dgettext() is called. 17006 17007 Errors 17008 17009 dgettext() shall not modify the errno global variable. 17010 17011 See Also 17012 17013 gettext, dgettext, ngettext, dngettext, dcgettext, dcngettext, 17014 textdomain, bindtextdomain, bind_textdomain_codeset 17015 17016 dl_iterate_phdr 17017 17018 Name 17019 17020 dl_iterate_phdr -- iterate over a program's loaded shared 17021 objects 17022 17023 Synopsis 17024 17025 #include 17026 17027 int dl_iterate_phdr(int(*callback) (struct dl_phdr_info *, 17028 size_t, void *), void *data); 17029 17030 Description 17031 17032 dl_iterate_phdr() allows a program to iterate over the shared 17033 objects it has loaded. The function described by the callback 17034 parameter is called once for each loaded shared object, 17035 allowing an action to be taken for each one. callback is called 17036 with three arguments which are filled in by the implementation: 17037 a pointer to a structure of type dl_phdr_info containing 17038 information about the shared object; an integer size of the 17039 structure; and a copy of the data argument to 17040 dl_iterate_phdr(). If callback returns a non-zero value, 17041 dl_iterate_phdr() will stop processing, even if there are 17042 unprocessed shared objects. The order of processing is 17043 unspecified. 17044 17045 The dl_phdr_info structure has the following members (note that 17046 on 64-bit architectures the types here shown as Elf32_type will 17047 instead be Elf64_type): 17048 17049 Elf32_Addr dlpi_addr; 17050 const char *dlpi_name; 17051 const Elf32_Phdr *dlpi_phdr; 17052 Elf32_Half dlpi_phnum; 17053 unsigned long long int dlpi_adds; 17054 unsigned long long int dlpi_subs; 17055 size_t dlpi_tls_modid; 17056 void *dlpi_tls_data; 17057 17058 dlpi_addr contains the base address of the shared object. 17059 17060 dlpi_name is a null-terminated string giving the pathname from 17061 which the shared object was loaded. 17062 17063 dlpi_phdr is a pointer to an array of program headers for this 17064 shared object, while dlpi_phnum is the number of entries in 17065 this array. 17066 17067 dlpi_adds and dlpi_subs are incremented when shared objects are 17068 added or removed, respectively. 17069 17070 dlpi_tls_modid contains the module ID used in TLS relocations, 17071 if there is a PT_TLS segment. Otherwise the value shall be 17072 zero. 17073 17074 dlpi_tls_data contains the address of the calling thread's 17075 instance of this module's PT_TLS segment, if there is one and 17076 it has been allocated in the calling thread. Otherwise the 17077 value shall be a null pointer. 17078 17079 Some implementations may not provide all fields in 17080 dl_phdr_info, although the first four are always mandatory. 17081 Applications are advised to have the callback function check 17082 the size parameter before examining the later members. 17083 17084 Return Value 17085 17086 The dl_iterate_phdr() function returns whatever value was 17087 returned by the last call to callback. This will be zero if 17088 processing completed normally, since processing does not 17089 continue unless the callback function returns zero. 17090 17091 Errors 17092 17093 No errors are defined by dl_iterate_phdr(); as noted the 17094 callback function must use a zero return to indicate success 17095 but may assign any meaning it wishes to non-zero returns. 17096 17097 dngettext 17098 17099 Name 17100 17101 dngettext -- perform lookup in message catalog for the current 17102 locale 17103 17104 Synopsis 17105 17106 #include 17107 17108 char * dngettext(const char * domainname, const char * msgid1, 17109 const char * msgid2, unsigned long int n); 17110 17111 Description 17112 17113 dngettext() shall be equivalent to a call to 17114 dcngettext(domainname, msgid1, msgid2, n, LC_MESSAGES) 17115 17116 See dcngettext() for more information. 17117 17118 See Also 17119 17120 gettext, dgettext, ngettext, dcgettext, dcngettext, textdomain, 17121 bindtextdomain, bind_textdomain_codeset 17122 17123 drand48_r 17124 17125 Name 17126 17127 drand48_r -- reentrantly generate pseudorandom numbers in a 17128 uniform distribution 17129 17130 Synopsis 17131 17132 #include 17133 17134 int drand48_r(struct drand48_data * buffer, double * result); 17135 17136 Description 17137 17138 The interface drand48_r() shall function in the same way as the 17139 interface drand48(), except that drand48_r() shall use the data 17140 in buffer instead of the global random number generator state. 17141 17142 Before it is used, buffer must be initialized, for example, by 17143 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 17144 it with zeroes. 17145 17146 endutent 17147 17148 Name 17149 17150 endutent -- access utmp file entries 17151 17152 Synopsis 17153 17154 #include 17155 17156 void endutent(void); 17157 17158 Description 17159 17160 endutent() closes the utmp file. It should be called when the 17161 user code is done accessing the file with the other functions. 17162 17163 envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip 17164 17165 Name 17166 17167 envz_add, envz_entry, envz_get, envz_merge, envz_remove, 17168 envz_strip -- Operate on environment vectors 17169 17170 Synopsis 17171 17172 #include 17173 17174 error_t envz_add(char ** envz, size_t * envz_len, const char * 17175 name, const char * value); 17176 17177 char envz_entry(const char * envz, size_t envz_len, const char 17178 * name); 17179 17180 char envz_get(const char * envz, size_t envz_len, const char * 17181 name); 17182 17183 error_t envz_merge(char ** envz, size_t * envz_len, const char 17184 * envz2, size_t envz2_len, int override); 17185 17186 void envz_remove(char ** envz, size_t * envz_len, const char * 17187 name); 17188 17189 void envz_strip(char ** envz, size_t * envz_len); 17190 17191 Description 17192 17193 The envz functions operate on envz vectors, which are typically 17194 used to manipulate program environment variables. 17195 17196 An envz vector is identical in makeup to an argz vector (see 17197 argz_add, argz_add_sep, argz_append, argz_count, argz_create, 17198 argz_create_sep, argz_delete, argz_extract, argz_insert, 17199 argz_next, argz_replace, argz_stringify) but has the constraint 17200 that each element is a name, value pair separated by an = 17201 character. Only the first = character in an element has special 17202 meaning, any subsequent instances are part of the value string. 17203 If no = character is present in an element, the value is taken 17204 to be NULL. If an element has an empty value (an = character is 17205 present), the value will return the empty string "" when 17206 queried. 17207 17208 Since an envz vector is an argz vector, the argz functions can 17209 be used where it makes sense. For example, converting from a 17210 program's environment variables (as described in Chapter 8 of 17211 the XBD volume of POSIX 1003.1-2008 (ISO/IEC 9945-2009)) to an 17212 envz vector is done with argz_create(). 17213 17214 The envz_add() function adds a string constructed from name and 17215 value in the form "name=value" to the envz vector identified by 17216 envz and envz_len, updating envz and envz_len. If value is NULL 17217 it adds a string of the form "name". If an entry with the same 17218 name already exists, it is replaced.. 17219 17220 The envz_entry() function searches for name in the envz vector 17221 identified by envz and envz_len, returning the full entry if 17222 found, or NULL if not. 17223 17224 The envz_get() function searches for name in the envz vector 17225 identified by envz and envz_len, returning the value part of 17226 the entry if found, or NULL if not. Note the value may be also 17227 NULL. 17228 17229 The envz_merge() function adds each entry from the envz vector 17230 identified by envz2 and envz2_len to the envz vector identified 17231 by envz and envz_len, updating envz and envz_len. The behavior 17232 is as if envz_add() were called for each entry in envz2. If 17233 override is true, then values from envz2 will replace those 17234 with the same name in envz. 17235 17236 The envz_remove() function removes the entry for name from the 17237 envz vector identified by envz and envz_len if it exists, 17238 updating envz and envz_len. 17239 17240 The envz_strip() function removes all entries with value NULL. 17241 17242 Return Value 17243 17244 The envz functions that perform memory allocation (envz_add() 17245 and envz_merge()) return an error_t type. These functions 17246 return 0 on success; if memory allocation fails, they return 17247 ENOMEM. 17248 17249 envz_entry() and envz_get() return a pointer to a substring in 17250 an envz vector, or NULL. 17251 17252 See Also 17253 17254 argz_add, argz_add_sep, argz_append, argz_count, argz_create, 17255 argz_create_sep, argz_delete, argz_extract, argz_insert, 17256 argz_next, argz_replace, argz_stringify 17257 17258 epoll_create 17259 17260 Name 17261 17262 epoll_create -- open an epoll file descriptor 17263 17264 Synopsis 17265 17266 #include 17267 17268 int epoll_create(int size); 17269 17270 Description 17271 17272 The epoll API, which consists of the interfaces epoll_create(), 17273 epoll_ctl(), and epoll_wait(), shall support all file 17274 descriptors compatible with poll(). These interfaces shall be 17275 usable in either level-triggered or edge-triggered mode. In 17276 level-triggered mode, epoll has similar semantics to poll(), 17277 and can be used as a faster replacement for it. In 17278 edge-triggered mode, epoll shall only report events for a file 17279 descriptor when changes occur on it. 17280 17281 The epoll_create() interface shall open an epoll file 17282 descriptor by allocating an event backing store of 17283 approximately size size. The size parameter is a hint to the 17284 kernel about how large the event storage should be, not a 17285 rigidly-defined maximum size. 17286 17287 Return Value 17288 17289 On success, epoll_create() shall return the file descriptor, a 17290 non-negative integer that shall be used for subsequent epoll 17291 calls. It should be closed with the close() function. 17292 17293 On failure, epoll_create() shall return -1 and set errno as 17294 follows. 17295 17296 Errors 17297 17298 EINVAL 17299 17300 The size parameter is not positive. 17301 ENFILE 17302 17303 The maximum number of open files has been reached by the 17304 system. 17305 ENOMEM 17306 17307 Not enough memory to create the kernel object. 17308 17309 See Also 17310 17311 close(), epoll_ctl(), epoll_wait(), poll(). 17312 17313 epoll_ctl 17314 17315 Name 17316 17317 epoll_ctl -- control an epoll file descriptor 17318 17319 Synopsis 17320 17321 #include 17322 17323 int epoll_ctl(int epfd, int op, int fd, struct epoll_event * 17324 event); 17325 17326 Description 17327 17328 The interface epoll_ctl() shall control an epoll file 17329 descriptor. 17330 17331 The parameter epfd shall specify the epoll file descriptor to 17332 control. 17333 17334 The parameter op shall specify the operation to perform on the 17335 specified target file descriptor. 17336 17337 The parameter fd shall specify the target file descriptor on 17338 which to perform the specified operation. 17339 17340 The parameter event shall specify the object associated with 17341 the target file descriptor. The events member of the event 17342 parameter is a bit set composed of the event types listed 17343 below. 17344 17345 Event types 17346 17347 EPOLLERR 17348 17349 An error condition occurred on the target file descriptor. It 17350 shall not be necessary to set this event in events; this 17351 interface shall always wait for it. 17352 EPOLLET 17353 17354 This event shall set edge-triggered behavior for the target 17355 file descriptor. The default epoll behavior shall be 17356 level-triggered. 17357 EPOLLHUP 17358 17359 A hang up occurred on the target file descriptor. It shall not 17360 be necessary to set this event in events; this interface shall 17361 always wait for it. 17362 EPOLLIN 17363 17364 The file is accessible to read() operations. 17365 EPOLLONESHOT 17366 17367 This event shall set one-shot behavior for the target file 17368 descriptor. After epoll_wait() retrieves an event, the file 17369 descriptor shall be disabled and epoll shall not report any 17370 other events. To reenable the file descriptor with a new event 17371 mask, the user should invoke epoll_ctl() with EPOLL_CTL_MOD in 17372 the op parameter. 17373 EPOLLOUT 17374 17375 The file is accessible to write() operations. 17376 EPOLLPRI 17377 17378 Urgent data exists for read() operations. 17379 EPOLLRDHUP 17380 17381 A stream socket peer closed the connection, or else the peer 17382 shut down the writing half of the connection. 17383 17384 Values of the op parameter 17385 17386 EPOLL_CTL_ADD 17387 17388 Associate event with the file described by fd, and add fd to 17389 the epoll descriptor epfd. 17390 EPOLL_CTL_DEL 17391 17392 Remove fd from epfd, and ignore event, which can be NULL. 17393 EPOLL_CTL_MOD 17394 17395 Change the event event associated with fd. 17396 17397 Return Value 17398 17399 On success, epoll_ctl() shall return 0. 17400 17401 On failure, epoll_ctl() shall return -1 and set errno as 17402 follows. 17403 17404 Errors 17405 17406 EBADF 17407 17408 The parameter epfd or the parameter fd is an invalid file 17409 descriptor. 17410 EEXIST 17411 17412 The parameter op was EPOLL_CTL_ADD, but the file descriptor fd 17413 is already in epfd. 17414 EINVAL 17415 17416 The parameter epfd is invalid, or it is the same as fd, or the 17417 operation specified by the parameter op is unsupported. 17418 ENOENT 17419 17420 The parameter op was EPOLL_CTL_MOD or EPOLL_CTL_DEL, but the 17421 file descriptor fd is not in epfd. 17422 ENOMEM 17423 17424 Not enough memory for the operation specified by the parameter 17425 op. 17426 EPERM 17427 17428 The file specified by fd does not support epoll. 17429 17430 See Also 17431 17432 close(), epoll_create(), epoll_wait(), poll(). 17433 17434 epoll_wait 17435 17436 Name 17437 17438 epoll_wait -- wait for I/O events on an epoll file descriptor 17439 17440 Synopsis 17441 17442 #include 17443 17444 int epoll_wait(int epfd, struct epoll_event * events, int 17445 maxevents, int timeout); 17446 17447 Description 17448 17449 The interface epoll_wait() shall wait for events on the epoll 17450 file descriptor specified by the parameter epfd. 17451 17452 Upon success, the output parameter events shall refer to an 17453 area of memory containing epoll_event structures available to 17454 the caller. The data members of these structures shall contain 17455 the data set by the user with the interface epoll_ctl(). The 17456 events members shall contain the event bit field that was 17457 returned. 17458 17459 The parameter maxevents shall specify the maximum number of 17460 events that epoll_wait() may return in the output parameter 17461 events. The value of this parameter should be greater than 0. 17462 17463 The parameter timeout shall specify the maximum number of 17464 milliseconds that epoll_wait() shall wait for events. If the 17465 value of this parameter is 0, then epoll_wait() shall return 17466 immediately, even if no events are available, in which case the 17467 return code shall be 0. If the value of timeout is -1, then 17468 epoll_wait() shall block until either a requested event occurs 17469 or the call is interrupted. 17470 17471 Return Value 17472 17473 On success, epoll_wait() shall return the number of file 17474 descriptors that are ready for the I/O that was requested, or 17475 else 0 if no descriptors became ready during timeout. 17476 17477 On failure, epoll_wait() shall return -1 and set errno as 17478 follows. 17479 17480 Errors 17481 17482 EBADF 17483 17484 The parameter epfd is not a valid file descriptor. 17485 EFAULT 17486 17487 The area of memory referenced by the parameter events cannot be 17488 accessed with write permissions. 17489 EINTR 17490 17491 The call was interrupted by a signal handler before the timeout 17492 expired or any requested event took place. 17493 EINVAL 17494 17495 The parameter epfd is not a valid epoll file descriptor, or 17496 else the parameter maxevents is less than or equal to 0. 17497 17498 See Also 17499 17500 close(), epoll_ctl(), epoll_create(), poll(). 17501 17502 erand48_r 17503 17504 Name 17505 17506 erand48_r -- reentrantly generate pseudorandom numbers in a 17507 uniform distribution 17508 17509 Synopsis 17510 17511 #include 17512 17513 int erand48_r(unsigned short[3] xsubi, struct drand48_data * 17514 buffer, double * result); 17515 17516 Description 17517 17518 The interface erand48_r() shall function in the same way as the 17519 interface erand48(), except that erand48_r() shall use the data 17520 in buffer instead of the global random number generator state. 17521 17522 Before it is used, buffer must be initialized, for example, by 17523 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 17524 it with zeroes. 17525 17526 err 17527 17528 Name 17529 17530 err -- display formatted error messages 17531 17532 Synopsis 17533 17534 #include 17535 17536 void err (int eval , const char * fmt , ...); 17537 17538 Description 17539 17540 The err() function shall display a formatted error message on 17541 the standard error stream. First, err() shall write the last 17542 component of the program name, a colon character, and a space 17543 character. If fmt is non-NULL, it shall be used as a format 17544 string for the printf() family of functions, and err() shall 17545 write the formatted message, a colon character, and a space. 17546 Finally, the error message string affiliated with the current 17547 value of the global variable errno shall be written, followed 17548 by a newline character. 17549 17550 The err() function shall not return, the program shall 17551 terminate with the exit value of eval. 17552 17553 See Also 17554 17555 error(), errx() 17556 17557 Return Value 17558 17559 None. 17560 17561 Errors 17562 17563 None. 17564 17565 error 17566 17567 Name 17568 17569 error -- print error message 17570 17571 Synopsis 17572 17573 #include 17574 17575 void error (int status , int errnum , const char * format , 17576 ...); 17577 17578 Description 17579 17580 error() shall print a message to standard error. 17581 17582 error() shall build the message from the following elements in 17583 their specified order: 17584 17585 1. the program name. If the application has provided a 17586 function named error_print_progname(), error() shall call 17587 this to supply the program name; otherwise, error() uses 17588 the content of the global variable program_name. 17589 2. the colon and space characters, then the result of using 17590 the printf-style format and the optional arguments. 17591 3. if errnum is nonzero, error() shall add the colon and space 17592 characters, then the result of strerror(errnum). 17593 4. a newline. 17594 17595 If status is nonzero, error() shall call exit(status). 17596 17597 See Also 17598 17599 err(), errx() 17600 17601 errx 17602 17603 Name 17604 17605 errx -- display formatted error message and exit 17606 17607 Synopsis 17608 17609 #include 17610 17611 void errx (int eval , const char * fmt , ...); 17612 17613 Description 17614 17615 The errx() function shall display a formatted error message on 17616 the standard error stream. The last component of the program 17617 name, a colon character, and a space shall be output. If fmt is 17618 non-NULL, it shall be used as the format string for the 17619 printf() family of functions, and the formatted error message, 17620 a colon character, and a space shall be output. The output 17621 shall be followed by a newline character. 17622 17623 errx() does not return, but shall exit with the value of eval. 17624 17625 Return Value 17626 17627 None. 17628 17629 Errors 17630 17631 None. 17632 17633 See Also 17634 17635 error(), err() 17636 17637 fcntl 17638 17639 Name 17640 17641 fcntl -- file control 17642 17643 Description 17644 17645 fcntl() is as specified in POSIX 1003.1-2008 (ISO/IEC 17646 9945-2009), but with differences as listed below. 17647 17648 Implementation may set O_LARGEFILE 17649 17650 According to POSIX 1003.1-2008 (ISO/IEC 9945-2009), only an 17651 application sets fcntl() flags, for example O_LARGEFILE. 17652 However, this specification also allows an implementation to 17653 set the O_LARGEFILE flag in the case where the programming 17654 environment is one of _POSIX_V6_ILP32_OFFBIG, 17655 _POSIX_V6_LP64_OFF64, _POSIX_V6_LPBIG_OFFBIG. See getconf and 17656 c99 in POSIX 1003.1-2008 (ISO/IEC 9945-2009) for a description 17657 of these environments. Thus, calling fcntl() with the F_GETFL 17658 command may return O_LARGEFILE as well as flags explicitly set 17659 by the application in the case that both the implementation and 17660 the application support an off_t of at least 64 bits. 17661 17662 Additional flags 17663 17664 In addition to the available values for cmd, as documented in 17665 POSIX 1003.1-2008 (ISO/IEC 9945-2009), this specification 17666 permits the following constants. 17667 17668 F_GETSIG shall get the number of the signal to be sent when 17669 input or output can occur. If the value is 0, then SIGIO shall 17670 be sent. Otherwise, the value retrieved shall be the signal 17671 sent, and the signal handler can discover more information when 17672 installed with the SA_SIGINFO flag. 17673 17674 F_SETSIG shall set the number of the signal to be sent when 17675 input or output can occur. If the value is 0, then SIGIO shall 17676 be sent. Otherwise, the value set shall be the signal to be 17677 sent, and the signal handler can discover more information when 17678 installed with the SA_SIGINFO flag. 17679 17680 F_GETLK64 is analogous to the F_GETLK constant in POSIX 17681 1003.1-2008 (ISO/IEC 9945-2009), but shall provide a 64-bit 17682 interface on non-64-bit architectures. It is identical to 17683 F_GETLK on a 64-bit machine, but is provided in 64-bit 17684 environments for source code consistency among architectures. 17685 17686 F_SETLK64 is analogous to the F_SETLK constant in POSIX 17687 1003.1-2008 (ISO/IEC 9945-2009), but shall provide a 64-bit 17688 interface on non-64-bit architectures. It is identical to 17689 F_SETLK on a 64-bit machine, but is provided in 64-bit 17690 environments for source code consistency among architectures. 17691 17692 F_SETLKW64 is analogous to the F_SETLKW constant in POSIX 17693 1003.1-2008 (ISO/IEC 9945-2009), but provides a 64-bit 17694 interface on non-64-bit architectures. It is identical to 17695 F_SETLKW on a 64-bit machine, but is provided in 64-bit 17696 environments for source code consistency among architectures. 17697 17698 feof_unlocked 17699 17700 Name 17701 17702 feof_unlocked -- non-thread-safe feof 17703 17704 Description 17705 17706 feof_unlocked() is the same as feof(), except that it need not 17707 be thread-safe. That is, it may only be invoked in the ways 17708 which are legal for getc_unlocked(). 17709 17710 ferror_unlocked 17711 17712 Name 17713 17714 ferror_unlocked -- non-thread-safe ferror 17715 17716 Description 17717 17718 ferror_unlocked() is the same as ferror(), except that it need 17719 not be thread-safe. That is, it may only be invoked in the ways 17720 which are legal for getc_unlocked(). 17721 17722 fflush_unlocked 17723 17724 Name 17725 17726 fflush_unlocked -- non thread safe fflush 17727 17728 Description 17729 17730 fflush_unlocked() is the same as fflush() except that it need 17731 not be thread safe. That is, it may only be invoked in the ways 17732 which are legal for getc_unlocked(). 17733 17734 fgetc_unlocked 17735 17736 Name 17737 17738 fgetc_unlocked -- non-thread-safe fgetc 17739 17740 Description 17741 17742 fgetc_unlocked() is the same as fgetc(), except that it need 17743 not be thread-safe. That is, it may only be invoked in the ways 17744 which are legal for getc_unlocked(). 17745 17746 fgets_unlocked 17747 17748 Name 17749 17750 fgets_unlocked -- non-thread-safe fgets 17751 17752 Description 17753 17754 fgets_unlocked() is the same as fgets(), except that it need 17755 not be thread-safe. That is, it may only be invoked in the ways 17756 which are legal for getc_unlocked(). 17757 17758 fgetwc_unlocked 17759 17760 Name 17761 17762 fgetwc_unlocked -- non thread safe fgetwc 17763 17764 Description 17765 17766 fgetwc_unlocked() is the same as fgetwc() except that it need 17767 not be thread safe. That is, it may only be invoked in the ways 17768 which are legal for getc_unlocked(). 17769 17770 fgetws_unlocked 17771 17772 Name 17773 17774 fgetws_unlocked -- non-thread-safe fgetws 17775 17776 Description 17777 17778 fgetws_unlocked() is the same as fgetws(), except that it need 17779 not be thread-safe. That is, it may only be invoked in the ways 17780 which are legal for getc_unlocked(). 17781 17782 fileno_unlocked 17783 17784 Name 17785 17786 fileno_unlocked -- non-thread-safe fileno 17787 17788 Description 17789 17790 fileno_unlocked() is the same as fileno(), except that it need 17791 not be thread-safe. That is, it may only be invoked in the ways 17792 which are legal for getc_unlocked(). 17793 17794 flock 17795 17796 Name 17797 17798 flock -- apply or remove an advisory lock on an open file 17799 17800 Synopsis 17801 17802 int flock(int fd, int operation); 17803 17804 Description 17805 17806 flock() applies or removes an advisory lock on the open file 17807 fd. Valid operation types are: 17808 17809 LOCK_SH 17810 17811 Shared lock. More than one process may hold a shared lock for a 17812 given file at a given time. 17813 LOCK_EX 17814 17815 Exclusive lock. Only one process may hold an exclusive lock for 17816 a given file at a given time. 17817 LOCK_UN 17818 17819 Unlock. 17820 LOCK_NB 17821 17822 Don't block when locking. May be specified (by oring) along 17823 with one of the other operations. 17824 17825 A single file may not simultaneously have both shared and 17826 exclusive locks. 17827 17828 Return Value 17829 17830 On success, 0 is returned. On error, -1 is returned and the 17831 global variable errno is set appropriately. 17832 17833 Errors 17834 17835 EWOULDBLOCK 17836 17837 The file is locked and the LOCK_NB flag was selected. 17838 EBADF 17839 17840 fd is not a not an open file descriptor. 17841 EINTR 17842 17843 While waiting to acquire a lock, the call was interrupted by 17844 delivery of a signal caught by a handler. 17845 EINVAL 17846 17847 The operation is invalid. 17848 ENOLCK 17849 17850 The implementation ran out of memory for allocating lock 17851 records. 17852 17853 fnmatch 17854 17855 Name 17856 17857 fnmatch -- match a filename or a pathname 17858 17859 Description 17860 17861 fnmatch() is as specified in POSIX 1003.1-2008 (ISO/IEC 17862 9945-2009), but with differences as listed below. 17863 17864 Additional flags 17865 17866 In addition to the available values that can be used to form 17867 flags, as documented in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 17868 this specification permits the following constants. 17869 17870 FNM_CASEFOLD 17871 17872 If this flag is set, the pattern is matched case-insensitively. 17873 FNM_FILE_NAME 17874 17875 A synonym for FNM_PATHNAME constant specified in POSIX 17876 1003.1-2008 (ISO/IEC 9945-2009). 17877 17878 fputc_unlocked 17879 17880 Name 17881 17882 fputc_unlocked -- non-thread-safe fputc 17883 17884 Description 17885 17886 fputc_unlocked() is the same as fputc(), except that it need 17887 not be thread-safe. That is, it may only be invoked in the ways 17888 which are legal for getc_unlocked(). 17889 17890 fputs_unlocked 17891 17892 Name 17893 17894 fputs_unlocked -- non-thread-safe fputs 17895 17896 Description 17897 17898 fputs_unlocked() is the same as fputs(), except that it need 17899 not be thread-safe. That is, it may only be invoked in the ways 17900 which are legal for getc_unlocked(). 17901 17902 fputwc_unlocked 17903 17904 Name 17905 17906 fputwc_unlocked -- non-thread-safe fputwc 17907 17908 Description 17909 17910 fputwc_unlocked() is the same as fputwc(), except that it need 17911 not be thread-safe. That is, it may only be invoked in the ways 17912 which are legal for getc_unlocked(). 17913 17914 fputws_unlocked 17915 17916 Name 17917 17918 fputws_unlocked -- non-thread-safe fputws 17919 17920 Description 17921 17922 fputws_unlocked() is the same as fputws(), except that it need 17923 not be thread-safe. That is, it may only be invoked in the ways 17924 which are legal for getc_unlocked(). 17925 17926 fread_unlocked 17927 17928 Name 17929 17930 fread_unlocked -- non-thread-safe fread 17931 17932 Description 17933 17934 fread_unlocked() is the same as fread(), except that it need 17935 not be thread-safe. That is, it may only be invoked in the ways 17936 which are legal for getc_unlocked(). 17937 17938 fscanf 17939 17940 Name 17941 17942 fscanf -- convert formatted input 17943 17944 Description 17945 17946 The scanf() family of functions shall behave as described in 17947 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 17948 17949 Differences 17950 17951 The %s, %S and %[ conversion specifiers shall accept an option 17952 length modifier a, which shall cause a memory buffer to be 17953 allocated to hold the string converted. In such a case, the 17954 argument corresponding to the conversion specifier should be a 17955 reference to a pointer value that will receive a pointer to the 17956 allocated buffer. If there is insufficient memory to allocate a 17957 buffer, the function may set errno to ENOMEM and a conversion 17958 error results. 17959 17960 Note: This directly conflicts with the ISO C (1999) usage of 17961 %a as a conversion specifier for hexadecimal float values. 17962 While this conversion specifier should be supported, a 17963 format specifier such as "%aseconds" will have a different 17964 meaning on an LSB conforming system. 17965 17966 fstatfs 17967 17968 Name 17969 17970 fstatfs -- (deprecated) 17971 17972 Synopsis 17973 17974 #include 17975 17976 int fstatfs(int fd, struct statfs * buf); 17977 17978 Description 17979 17980 The fstatfs() function returns information about a mounted file 17981 system. The file system is identified by fd, a file descriptor 17982 of an open file within the mounted filesystem. The results are 17983 placed in the structure pointed to by buf. 17984 17985 Fields that are undefined for a particular file system shall be 17986 set to 0. 17987 17988 Note: Application developers should use the fstatvfs() 17989 function to obtain general file system information. 17990 Applications should only use the fstatfs() function if they 17991 must determine the file system type, which need not be 17992 provided by fstatvfs(). 17993 17994 Return Value 17995 17996 On success, the fstatfs() function shall return 0 and set the 17997 fields of the structure idenfitied by buf accordingly. On 17998 error, the fstatfs() function shall return -1 and set errno 17999 accordingly. 18000 18001 Errors 18002 18003 EBADF 18004 18005 fd is not a valid open file descriptor. 18006 EFAULT 18007 18008 buf points to an invalid address. 18009 EIO 18010 18011 An I/O error occurred while reading from or writing to the file 18012 system. 18013 ENOSYS 18014 18015 The filesystem fd is open on does not support statfs(). 18016 18017 fstatfs64 18018 18019 Name 18020 18021 fstatfs64 -- (deprecated) 18022 18023 Synopsis 18024 18025 #include 18026 18027 int fstatfs64(int fd, struct statfs64 * buf); 18028 18029 Description 18030 18031 The fstatfs64() function returns information about a mounted 18032 file system. The file system is identified by fd, a file 18033 descriptor of an open file within the mounted filesystem. The 18034 results are placed in the structure pointed to by buf. 18035 18036 Fields that are undefined for a particular file system shall be 18037 set to 0. 18038 18039 fstatfs64() is a large-file version of the fstatfs() function. 18040 18041 Note: Application developers should use the fstatvfs64() 18042 function to obtain general file system information. 18043 Applications should only use the fstatfs64() function if 18044 they must determine the file system type, which need not be 18045 provided by fstatvfs64(). 18046 18047 Return Value 18048 18049 On success, the fstatfs64() function shall return 0 and set the 18050 fields of the structure idenfitied by buf accordingly. On 18051 error, the fstatfs64() function shall return -1 and set errno 18052 accordingly. 18053 18054 Errors 18055 18056 See fstatfs(). 18057 18058 futimes 18059 18060 Name 18061 18062 futimes, lutimes -- set file access and modification times 18063 18064 Synopsis 18065 18066 #include 18067 18068 int futimes(int fd, const struct timeval tv[2]); 18069 18070 int lutimes(const char * filename, const struct timeval tv[2]); 18071 18072 Description 18073 18074 The futimes() and lutimes() functions shall set the access and 18075 modification times of a file to the values of the tv argument, 18076 which is an array of two timeval structures. The behavior is as 18077 for utimes() in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 18078 18079 The futimes() function shall change the times of of the open 18080 file described by file descriptor fd. 18081 18082 The lutimes() function shall change the times of of the file 18083 pointed to by the filename argument, except that if filename 18084 refers to a symbolic link, then the link is not followed and 18085 the times of the symbolic link are changed. This is similar to 18086 supplying AT_SYMLINK_NOFOLLOW in the flag argument to the 18087 utimensat() function. 18088 18089 Errors 18090 18091 As for utimes(), but in addition: 18092 18093 ENOSYS 18094 18095 Ths implementation does not support this function (for 18096 lutimes()). 18097 18098 The implementation could not access a resource needed to 18099 complete the function (for futimes()). 18100 18101 See Also 18102 18103 utimes(), utime(), utimensat(). 18104 18105 fwrite_unlocked 18106 18107 Name 18108 18109 fwrite_unlocked -- non-thread-safe fwrite 18110 18111 Description 18112 18113 fwrite_unlocked() is the same as fwrite(), except that it need 18114 not be thread-safe. That is, it may only be invoked in the ways 18115 which are legal for getc_unlocked(). 18116 18117 fwscanf 18118 18119 Name 18120 18121 fwscanf -- convert formatted input 18122 18123 Description 18124 18125 The scanf() family of functions shall behave as described in 18126 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 18127 18128 Differences 18129 18130 The %s, %S and %[ conversion specifiers shall accept an option 18131 length modifier a, which shall cause a memory buffer to be 18132 allocated to hold the string converted. In such a case, the 18133 argument corresponding to the conversion specifier should be a 18134 reference to a pointer value that will receive a pointer to the 18135 allocated buffer. If there is insufficient memory to allocate a 18136 buffer, the function may set errno to ENOMEM and a conversion 18137 error results. 18138 18139 Note: This directly conflicts with the ISO C (1999) usage of 18140 %a as a conversion specifier for hexadecimal float values. 18141 While this conversion specifier should be supported, a 18142 format specifier such as "%aseconds" will have a different 18143 meaning on an LSB conforming system. 18144 18145 getcwd 18146 18147 Name 18148 18149 getcwd -- get the pathname of the current working directory 18150 18151 Synopsis 18152 18153 #include 18154 18155 char * getcwd(char * buf, size_t size); 18156 18157 Description 18158 18159 The getcwd() functions shall behave as described in POSIX 18160 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 18161 18162 Differences 18163 18164 If buf is NULL, memory is allocated for buf. If size is 0, the 18165 allocation size will be the size of the pathname +1, else the 18166 requested size is allocated. 18167 18168 Changed or Added Errors 18169 18170 EINVAL 18171 18172 The size argument is 0 and buf is not a null pointer. 18173 ENOENT 18174 18175 The current working directory has been unlinked. 18176 18177 getdomainname 18178 18179 Name 18180 18181 getdomainname -- get NIS domain name (DEPRECATED). 18182 18183 Synopsis 18184 18185 #include 18186 18187 int getdomainname (char * name , size_t namelen ); 18188 18189 Description 18190 18191 If the Network Information System (NIS) is in use, 18192 getdomainname() shall copy the NIS domain name to the supplied 18193 buffer identified by name, with maximum length namelen. If the 18194 NIS domain name is not currently set, getdomainname() shall 18195 copy the string "(none)" to the name. If namelen is less than 18196 the length of the string to be copied, getdomainname() shall 18197 either truncate the string to namelen characters and place it 18198 in name (without a terminating null character), or shall fail 18199 with EINVAL. 18200 18201 Note: The NIS domain name is not the same as the domain 18202 portion of a fully qualified domain name (for example, in 18203 DNS). 18204 18205 The LSB does not include other NIS functions, nor does it 18206 specify how NIS may affect other database functions. No 18207 conforming application can make use of this information 18208 beyond noting whether or not the domain name has been set. 18209 If the name is set to a value other than the string 18210 "(none)", the application should not imply that NIS is in 18211 use. Similarly, if it is set to "(none)", the application 18212 should not assume that NIS is not in use, although NIS 18213 functionality may be restricted in this case. 18214 18215 Return Value 18216 18217 On success, getdomainname() shall return 0. Otherwise, it shall 18218 return -1 and set errno to indicate the error. 18219 18220 Errors 18221 18222 EINVAL 18223 18224 name is a null pointer. 18225 EINVAL 18226 18227 The buffer identified by name and namelen is of insufficient 18228 size to store the NIS domain name string, and the 18229 implementation considers this an error. 18230 18231 Future Directions 18232 18233 The LSB does not include other NIS interfaces, and a future 18234 version of this specification may remove this interface. 18235 Application developers should avoid using this interface where 18236 possible. 18237 18238 getdtablesize 18239 18240 Name 18241 18242 getdtablesize -- get file descriptor table size (DEPRECATED) 18243 18244 Synopsis 18245 18246 #include 18247 18248 int getdtablesize (void ); 18249 18250 Description 18251 18252 The function getdtablesize() returns the number of files a 18253 process can have open. 18254 18255 Note: The getdtablesize() function is deprecated. Portable 18256 applications should call sysconf() with the _SC_OPEN_MAX 18257 option instead. 18258 18259 Return Value 18260 18261 The getdtablesize() function returns the current soft limit as 18262 if obtained by a call to sysconf() with the _SC_OPEN_MAX 18263 option. 18264 18265 Errors 18266 18267 No errors are defined. 18268 18269 getgrent_r 18270 18271 Name 18272 18273 getgrent_r -- reentrantly get entry in group file 18274 18275 Synopsis 18276 18277 #include 18278 18279 int getgrent_r(struct group * gbuf, char * buf, size_t buflen, 18280 struct group * * gbufp); 18281 18282 Description 18283 18284 The reentrant interface getgrent_r() shall function in the same 18285 way as the interface getgrent(), except that getgrent_r() shall 18286 return the group name, group password, and group members in 18287 buffers provided by the caller, rather than as a pointer to 18288 static storage. 18289 18290 The parameter gbuf contains the struct group that was read from 18291 the stream, if any. 18292 18293 The parameter buf contains additional strings, if any. 18294 18295 The parameter buflen specifies the size of buf. 18296 18297 The parameter *gbufp returns a pointer to the struct group in 18298 *gbuf. 18299 18300 Return Value 18301 18302 On success, getgrent_r() shall return 0, and *gbufp shall 18303 contain a pointer to the result. 18304 18305 On failure, *gbufp shall contain NULL, and getgrent_r() shall 18306 return an error as follows. 18307 18308 Errors 18309 18310 ENOENT 18311 18312 No more group entries. 18313 ERANGE 18314 18315 Not enough buffer space. Specify a larger buffer and try again. 18316 18317 getgrouplist 18318 18319 Name 18320 18321 getgrouplist -- get groups a user belongs to 18322 18323 Synopsis 18324 18325 #include 18326 18327 int getgrouplist(const char * user, gid_t group, gid_t * 18328 groups, int * ngroups); 18329 18330 Description 18331 18332 The getgrouplist() function shall fill in the array groups with 18333 the supplementary groups for the user specified by user. On 18334 entry, ngroups shall refer to an integer containing the maximum 18335 number of elements in the groups array. The group group shall 18336 also be included in the values returned in groups. It is 18337 expected that group would be specified as the user's primary 18338 group from the password file (obtainable via getpwnam() or a 18339 similar function). 18340 18341 Return Value 18342 18343 If on entry the value referenced by ngroups was greater than or 18344 equal to the number of supplementary group identifiers to be 18345 copied to the array identified by groups, getgrouplist() shall 18346 return the number of group identifiers actually copied, and 18347 shall set the value referenced by ngroups to this value. 18348 18349 If on entry the value referenced by ngroups was less than the 18350 number of supplementary group identifiers, getgrouplist() shall 18351 return -1. The initial ngroups entries in groups shall be 18352 overwritten. 18353 18354 If the number of groups exceeds the input ngroups value, then 18355 as well as returning -1, ngroups shall be set to the number of 18356 groups that would have been placed in groups if it had been 18357 large enough. 18358 18359 Note: In such a case, the caller can use the information 18360 returned to make a further getgrouplist() call with a 18361 correctly sized groups array. 18362 18363 If user does not refer to a valid user on the system, then the 18364 behavior of this function is undefined. 18365 18366 Errors 18367 18368 None defined. 18369 18370 See Also 18371 18372 getgroups() 18373 18374 gethostbyaddr_r 18375 18376 Name 18377 18378 gethostbyaddr_r -- find network host database entry matching 18379 host name (DEPRECATED) 18380 18381 Synopsis 18382 18383 #include 18384 18385 int gethostbyaddr_r(const void * restrict addr, socklen_t len, 18386 int type, struct hostent * restrict result_buf, char * restrict 18387 buf, size_t buflen, struct hostent * * restrict result, int * 18388 h_errnop); 18389 18390 Description 18391 18392 Note: The gethostbyaddr_r() function is deprecated; 18393 applications should use getaddrinfo() instead. 18394 18395 gethostbyaddr_r() is a reentrant version of gethostbyaddr() 18396 that searches the network host database for a host address 18397 match. 18398 18399 The gethostbyaddr_r() function shall search the network host 18400 database for an entry of address family type with the host with 18401 address addr. The len argument contains the length of the 18402 address referenced by addr. 18403 18404 If type is AF_INET, the addr argument shall be an in_addr 18405 structure. If type is AF_INET6, the addr argument shall be an 18406 in6_addr structure. If type is any other value, the behavior is 18407 unspecified. 18408 18409 The application must provide a buffer for the gethostbyaddr_r() 18410 to use during the lookup process. The buffer is referenced by 18411 buf, and is of size buflen. If the buffer is not of sufficient 18412 size, gethostbyaddr_r() may fail and return ERANGE. If a 18413 matching entry is found in the database, gethostbyaddr_r() 18414 shall copy the relevant information to the application supplied 18415 hostent structure referenced by result_buf, and return a 18416 pointer to this structure in *result. If no matching entry is 18417 found, *result shall be set to a null pointer. Additional error 18418 information shall be set in the variable referenced by 18419 h_errnop. 18420 18421 Return Value 18422 18423 On success, the gethostbyaddr_r() function shall return zero. 18424 If the return value was ERANGE, the size of the buffer buf, 18425 indicated by buflen, was too small. If the gethostbyaddr_r() 18426 function returns returns any other value, then the variable 18427 referenced by h_errnop shall be set to indicate the cause as 18428 for gethostbyaddr(). 18429 18430 gethostbyname2 18431 18432 Name 18433 18434 gethostbyname2 -- find network host database entry matching 18435 host name (DEPRECATED) 18436 18437 Synopsis 18438 18439 int gethostbyname2(const char * restrict name, int af); 18440 18441 Description 18442 18443 Note: The gethostbyname2() function is deprecated; 18444 applications should use getaddrinfo() instead. 18445 18446 The gethostbyname2() function shall search the network host 18447 database for an entry with name name. This function is similar 18448 to the gethostbyname() function but additionally allows the 18449 search to be restricted to a particular address family 18450 specified by af. 18451 18452 Return Value 18453 18454 On success, the gethostbyname2() function shall return a 18455 pointer to a hostent structure if the requested entry was 18456 found, and a null pointer otherwise. 18457 18458 On unsuccessful completion, gethostbyname2() shall set h_errno 18459 as for gethostbyname() in POSIX 1003.1-2008 (ISO/IEC 18460 9945-2009). 18461 18462 Errors 18463 18464 The gethostbyname2() shall set h_errno as for gethostbyname() 18465 in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 18466 18467 gethostbyname2_r 18468 18469 Name 18470 18471 gethostbyname2_r -- find network host database entry matching 18472 host name (DEPRECATED) 18473 18474 Synopsis 18475 18476 int gethostbyname2_r(const char * restrict name, int af, struct 18477 hostent * restrict result_buf, char * restrict buf, size_t 18478 buflen, struct hostent ** restrict result, int * restrict 18479 h_errnop); 18480 18481 Description 18482 18483 Note: The gethostbyname2_r() function is deprecated; 18484 applications should use getaddrinfo() instead. 18485 18486 The gethostbyname2_r() function shall search the network host 18487 database for an entry with name name. gethostbyname2_r() is a 18488 reentrant version of gethostbyname2(). These functions are 18489 similar to the gethostbyname() and gethostbyname_r() functions 18490 but additionally allow the search to be restricted to a 18491 particular address family specified by af. 18492 18493 The application must provide a buffer for the 18494 gethostbyname2_r() function to use during the lookup process. 18495 The buffer is referenced by buf, and is of size buflen. If the 18496 buffer is not of sufficient size, gethostbyname_r() may fail 18497 and return ERANGE. If a matching entry is found in the 18498 database, gethostbyname_r() shall copy the relevant information 18499 to the application-supplied hostent structure referenced by 18500 result_buf, and return a pointer to this structure in *result. 18501 If no matching entry is found, *result shall be set to a null 18502 pointer. Additional error information shall be set in the 18503 variable referenced by h_errnop. 18504 18505 Return Value 18506 18507 On success, the gethostbyname2_r() function shall return zero. 18508 If the return value was ERANGE, the size of the buffer buf, 18509 indicated by buflen, was too small. If the gethostbyname2_r() 18510 function returns returns any other value, then the variable 18511 referenced by h_errnop shall be set to indicate the cause as 18512 for gethostbyname_r(). 18513 18514 gethostbyname_r 18515 18516 Name 18517 18518 gethostbyname_r -- find network host database entry matching 18519 host name (DEPRECATED) 18520 18521 Synopsis 18522 18523 int gethostbyname_r(const char * restrict name, struct hostent 18524 * restrict result_buf, char * restrict buf, size_t buflen, 18525 struct hostent ** restrict result, int * restrict h_errnop); 18526 18527 Description 18528 18529 Note: The gethostbyname_r() function is deprecated; 18530 applications should use getaddrinfo() instead. 18531 18532 gethostbyname_r() is a reentrant version of gethostbyname() 18533 that searches the network host database for a host name match. 18534 18535 The gethostbyname_r() function shall search the network host 18536 database for an entry with name name. 18537 18538 The application must provide a buffer for the gethostbyname_r() 18539 to use during the lookup process. The buffer is referenced by 18540 buf, and is of size buflen. If the buffer is not of sufficient 18541 size, gethostbyname_r() may fail and return ERANGE. If a 18542 matching entry is found in the database, gethostbyname_r() 18543 shall copy the relevant information to the application supplied 18544 hostent structure referenced by result_buf, and return a 18545 pointer to this structure in *result. If no matching entry is 18546 found, *result shall be set to a null pointer. Additional error 18547 information shall be set in the variable referenced by 18548 h_errnop. 18549 18550 Return Value 18551 18552 On success, the gethostbyname_r() function shall return zero. 18553 If the return value was ERANGE, the size of the buffer buf, 18554 indicated by buflen, was too small. If the gethostbyname_r() 18555 function returns returns any other value, then the variable 18556 referenced by h_errnop shall be set to indicate the cause as 18557 for gethostbyname(). 18558 18559 getifaddrs 18560 18561 Name 18562 18563 getifaddrs, freeifaddrs -- get interface addresses 18564 18565 Synopsis 18566 18567 #include 18568 18569 int getifaddrs(struct ifaddrs ** ifap); 18570 18571 void freeifaddrs(struct ifaddrs * ifa); 18572 18573 Description 18574 18575 The getifaddrs() function creates a linked list of structures 18576 describing the network interfaces of the local system. The 18577 address of the first item is stored in memory pointed to by 18578 ifap. The data returned is dynamically allocated, and should be 18579 freed using freeifaddrs(). 18580 18581 The list consists of structures of type ifaddrs (see Data 18582 Definitions above). 18583 18584 Return Value 18585 18586 On success, getifaddrs() returns zero; on error, -1 is 18587 returned, and errno is set appropriately. 18588 18589 Errors 18590 18591 getifaddrs() may fail and set errno for any of the errors 18592 specified for socket(), bind(), getsockname(), recvmsg(), 18593 sendto(), malloc(), or realloc(). 18594 18595 See Also 18596 18597 bind(), getsockname(), socket(). 18598 18599 getloadavg 18600 18601 Name 18602 18603 getloadavg -- get system load averages 18604 18605 Synopsis 18606 18607 #include 18608 18609 int getloadavg(double loadavg[], int nelem); 18610 18611 Description 18612 18613 getloadavg() returns the number of processes in the system run 18614 queue averaged over various periods of time. Up to nelem 18615 samples are retrieved and assigned to successive elements of 18616 loadavg[]. The system imposes a maximum of 3 samples, 18617 representing averages over the last 1, 5, and 15 minutes, 18618 respectively. 18619 18620 Return Value 18621 18622 If the load average could not be obtained, -1 is returned. 18623 Otherwise, the number of samples actually retrieved is 18624 returned. 18625 18626 getopt 18627 18628 Name 18629 18630 getopt -- parse command line options 18631 18632 Synopsis 18633 18634 #include 18635 18636 int getopt(int argc, char * const argv[], const char * 18637 optstring); 18638 18639 extern char *optarg; 18640 extern int optind, opterr, optopt; 18641 18642 Description 18643 18644 The getopt() function shall parse command line arguments as 18645 described in POSIX 1003.1-2008 (ISO/IEC 9945-2009), with the 18646 following exceptions, where LSB and POSIX specifications vary. 18647 LSB systems shall implement the modified behaviors described 18648 below. 18649 18650 Argument Ordering 18651 18652 The getopt() function can process command line arguments 18653 referenced by argv in one of three ways: 18654 18655 PERMUTE 18656 18657 the order of arguments in argv is altered so that all options 18658 (and their arguments) are moved in front of all of the 18659 operands. This is the default behavior. 18660 18661 Note: This behavior has undefined results if argv is not 18662 modifiable. This is to support historic behavior predating 18663 the use of const and ISO C (1999). The function prototype 18664 was aligned with POSIX 1003.1-2008 (ISO/IEC 9945-2009) 18665 despite the fact that it modifies argv, and the library 18666 maintainers are unwilling to change this. 18667 18668 REQUIRE_ORDER 18669 18670 The arguments in argv are processed in exactly the order given, 18671 and option processing stops when the first non-option argument 18672 is reached, or when the element of argv is "--". This ordering 18673 can be enforced either by setting the environment variable 18674 POSIXLY_CORRECT, or by setting the first character of optstring 18675 to '+'. 18676 RETURN_IN_ORDER 18677 18678 The order of arguments is not altered, and all arguments are 18679 processed. Non-option arguments (operands) are handled as if 18680 they were the argument to an option with the value 1 ('\001'). 18681 This ordering is selected by setting the first character of 18682 optstring to '-'; 18683 18684 Option Characteristics 18685 18686 LSB specifies that: 18687 18688 * an element of argv that starts with "-" (and is not exactly 18689 "-" or "--") is an option element. 18690 * characters of an option element, aside from the initial 18691 "-", are option characters. 18692 18693 POSIX specifies that: 18694 18695 * applications using getopt() shall obey the following syntax 18696 guidelines: 18697 + option name is a single alphanumeric character from 18698 the portable character set 18699 + option is preceded by the '-' delimiter character 18700 + options without option-arguments should be accepted 18701 when grouped behind one '-' delimiter 18702 + each option and option-argument is a separate argument 18703 + option-arguments are not optional 18704 + all options should precede operands on the command 18705 line 18706 + the argument "--" is accepted as a delimiter 18707 indicating the end of options and the consideration of 18708 subsequent arguments, if any, as operands 18709 * historical implementations of getopt() support other 18710 characters as options as an allowed extension, but 18711 applications that use extensions are not maximally 18712 portable. 18713 * support for multi-byte option characters is only possible 18714 when such characters can be represented as type int. 18715 * applications that call any utility with a first operand 18716 starting with '-' should usually specify "--" to mark the 18717 end of the options. Standard utilities that do not support 18718 this guideline indicate that fact in the OPTIONS section of 18719 the utility description. 18720 18721 Extensions 18722 18723 LSB specifies that: 18724 18725 * if a character is followed by two colons, the option takes 18726 an optional argument; if there is text in the current argv 18727 element, it is returned in optarg, otherwise optarg is set 18728 to 0. 18729 * if optstring contains W followed by a semi-colon (;), then 18730 -W foo is treated as the long option --foo. 18731 18732 Note: See getopt_long() for a description of long options. 18733 * The first character of optstring shall modify the behavior 18734 of getopt() as follows: 18735 + if the first character is '+', then REQUIRE_ORDER 18736 processing shall be in effect (see above) 18737 + if the first character is '-', then RETURN_IN_ORDER 18738 processing shall be in effect (see above) 18739 + if the first character is ':', then getopt() shall 18740 return ':' instead of '?' to indicate a missing option 18741 argument, and shall not print any diagnostic message 18742 to stderr. 18743 18744 POSIX specifies that: 18745 18746 * the -W option is reserved for implementation extensions. 18747 18748 Return Values 18749 18750 LSB specifies the following additional getopt() return values: 18751 18752 * '\001' is returned if RETURN_IN_ORDER argument ordering is 18753 in effect, and the next argument is an operand, not an 18754 option. The argument is available in optarg. 18755 18756 Any other return value has the same meaning as for POSIX. 18757 18758 POSIX specifies the following getopt() return values: 18759 18760 * the next option character is returned, if found 18761 successfully. 18762 * ':' is returned if a parameter is missing for one of the 18763 options and the first character of optstring is ':'. 18764 * '?' is returned if an unknown option character not in 18765 optstring is encountered, or if getopt() detects a missing 18766 argument and the first character of optstring is not ':'. 18767 * -1 is returned for the end of the option list. 18768 18769 Environment Variables 18770 18771 LSB specifies that: 18772 18773 * if the variable POSIXLY_CORRECT is set, option processing 18774 stops as soon as a non-option argument is encountered. 18775 * the variable _[PID]_GNU_nonoption_argv_flags_ (where [PID] 18776 is the process ID for the current process), contains a 18777 space separated list of arguments that should not be 18778 treated as arguments even though they appear to be so. 18779 18780 Rationale: This was used by bash 2.0 to communicate to GNU 18781 libc which arguments resulted from wildcard expansion and so 18782 should not be considered as options. This behavior was 18783 removed in bash version 2.01, but the support remains in GNU 18784 libc. 18785 This behavior is DEPRECATED in this version of the LSB; 18786 future revisions of this specification may not include this 18787 requirement. 18788 18789 getopt_long 18790 18791 Name 18792 18793 getopt_long -- parse command line options 18794 18795 Synopsis 18796 18797 #define _GNU_SOURCE 18798 #include 18799 18800 int getopt_long(int argc, char * const argv[], const char * 18801 opstring, const struct option * longopts, int * longindex); 18802 18803 Description 18804 18805 getopt_long() works like getopt() except that it also accepts 18806 long options, started out by two dashes. Long option names may 18807 be abbreviated if the abbreviation is unique or is an exact 18808 match for some defined option. A long option may take a 18809 parameter, of the form --arg=param or --arg param. 18810 18811 longopts is a pointer to the first element of an array of 18812 struct option declared in getopt.h as: 18813 struct option { 18814 const char *name; 18815 int has_arg; 18816 int *flag; 18817 int val; 18818 }; 18819 18820 The fields in this structure have the following meaning: 18821 18822 name 18823 18824 The name of the long option. 18825 has_arg 18826 18827 One of: 18828 18829 no_argument (or 0) if the option does not take an argument, 18830 required_argument (or 1) if the option requires an argument, or 18831 optional_argument (or 2) if the option takes an optional 18832 argument. 18833 18834 flag 18835 18836 specifies how results are returned for a long option. If flag 18837 is NULL, then getopt_long() shall return val. (For example, the 18838 calling program may set val to the equivalent short option 18839 character.) Otherwise, getopt_long() returns 0, and flag shall 18840 point to a variable which shall be set to val if the option is 18841 found, but left unchanged if the option is not found. 18842 val 18843 18844 The value to return, or to load into the variable pointed to by 18845 flag. 18846 18847 If longindex is not NULL, it points to a variable which is set 18848 to the index of the long option relative to longopts. 18849 18850 Return Value 18851 18852 getopt_long() returns the option character if a short option 18853 was found successfully, or ":" if there was a missing parameter 18854 for one of the options, or "?" for an unknown option character, 18855 or -1 for the end of the option list. 18856 18857 For a long option, getopt_long() returns val if flag is NULL, 18858 and 0 otherwise. Error and -1 returns are the same as for 18859 getopt(), plus "?" for an ambiguous match or an extraneous 18860 parameter. 18861 18862 getopt_long_only 18863 18864 Name 18865 18866 getopt_long_only -- parse command line options 18867 18868 Synopsis 18869 18870 #define _GNU_SOURCE 18871 #include 18872 18873 int getopt_long_only(int argc, char * const argv[], const char 18874 * optstring, const struct option * longopts, int * longindex); 18875 18876 Description 18877 18878 getopt_long_only() is like getopt_long(), but "-" as well as 18879 "--" can indicate a long option. If an option that starts with 18880 "-" (not "--") doesn't match a long option, but does match a 18881 short option, it is parsed as a short option instead. 18882 18883 Note: The getopt_long_only() function is intended only for 18884 supporting certain programs whose command line syntax was 18885 designed before the Utility Syntax Guidelines of POSIX 18886 1003.1-2008 (ISO/IEC 9945-2009) were developed. New programs 18887 should generally call getopt_long() instead, which provides 18888 the --option syntax for long options, which is preferred by 18889 GNU and consistent with POSIX 1003.1-2008 (ISO/IEC 18890 9945-2009). 18891 18892 Return Value 18893 18894 getopt_long_only() returns the option character if the option 18895 was found successfully, or ":" if there was a missing parameter 18896 for one of the options, or "?" for an unknown option character, 18897 or -1 for the end of the option list. 18898 18899 getopt_long_only() also returns the option character when a 18900 short option is recognized. For a long option, they return val 18901 if flag is NULL, and 0 otherwise. Error and -1 returns are the 18902 same as for getopt(), plus "?" for an ambiguous match or an 18903 extraneous parameter. 18904 18905 getpagesize 18906 18907 Name 18908 18909 getpagesize -- get memory page size (DEPRECATED) 18910 18911 Synopsis 18912 18913 #include 18914 18915 int getpagesize (void ); 18916 18917 Description 18918 18919 The function getpagesize() returns the number of bytes in a 18920 meory page. 18921 18922 Note: The getpagesize() function is deprecated. Portable 18923 applications should use sysconf(_SC_PAGE_SIZE) instead. 18924 18925 Return Value 18926 18927 The getpagesize() function returns the current page size. 18928 18929 Errors 18930 18931 No errors are defined. 18932 18933 getprotobyname_r 18934 18935 Name 18936 18937 getprotobyname_r -- retrieve information from the network 18938 protocol database by protocol name, reentrantly 18939 18940 Synopsis 18941 18942 #include 18943 18944 int getprotobyname_r(const char * name, struct protoent * 18945 result_buf, char * buf, size_t buflen, struct protoent * * 18946 result); 18947 18948 Description 18949 18950 The getprotobyname_r() function is a reentrant version of the 18951 getprotobyname() function. 18952 18953 The getprotobyname_r() function shall search the network 18954 protocol database for an entry with the name name. 18955 18956 If a matching entry is found in the database, this function 18957 shall copy the relevant information to the application-supplied 18958 protoent structure referenced by result_buf, and return a 18959 pointer to this structure in *result. If no matching entry is 18960 found, *result shall be set to a null pointer. 18961 18962 The array buf shall contain the string fields referenced by the 18963 protoent structure that was returned. The parameter buflen 18964 shall specify the array's size. 1024 bytes should be enough for 18965 most uses. 18966 18967 Return Value 18968 18969 On success, the getprotobyname_r() function shall return 0. If 18970 the return value was ERANGE, the size of the buffer buf, 18971 indicated by buflen, was too small. 18972 18973 getprotobynumber_r 18974 18975 Name 18976 18977 getprotobynumber_r -- retrieve information from the network 18978 protocol database by protocol number, reentrantly 18979 18980 Synopsis 18981 18982 #include 18983 18984 int getprotobynumber_r(int proto, struct protoent * result_buf, 18985 char * buf, size_t buflen, struct protoent * * result); 18986 18987 Description 18988 18989 The getprotobynumber_r() function is a reentrant version of the 18990 getprotobynumber() function. 18991 18992 The getprotobynumber_r() function shall search the network 18993 protocol database for an entry with protocol number proto. 18994 18995 If a matching entry is found in the database, this function 18996 shall copy the relevant information to the application-supplied 18997 protoent structure referenced by result_buf, and return a 18998 pointer to this structure in *result. If no matching entry is 18999 found, *result shall be set to a null pointer. 19000 19001 The array buf shall contain the string fields referenced by the 19002 protoent structure that was returned. The parameter buflen 19003 shall specify the array's size. 1024 bytes should be enough for 19004 most uses. 19005 19006 Return Value 19007 19008 On success, the getprotobynumber_r() function shall return 0. 19009 If the return value was ERANGE, the size of the buffer buf, 19010 indicated by buflen, was too small. 19011 19012 getprotoent_r 19013 19014 Name 19015 19016 getprotoent_r -- read the next entry of the protocol database, 19017 reentrantly 19018 19019 Synopsis 19020 19021 #include 19022 19023 int getprotoent_r(struct protoent * result_buf, char * buf, 19024 size_t buflen, struct protoent * * result); 19025 19026 Description 19027 19028 The getprotoent_r() function is a reentrant version of the 19029 getprotoent() function. 19030 19031 The getprotoent_r() function shall search the network protocol 19032 database for the next entry. 19033 19034 If the next entry is found in the database, this function shall 19035 copy the relevant information to the application-supplied 19036 protoent structure referenced by result_buf, and return a 19037 pointer to this structure in *result. If no next entry is 19038 found, *result shall be set to a null pointer. 19039 19040 The array buf shall contain the string fields referenced by the 19041 protoent structure that was returned. The parameter buflen 19042 shall specify the array's size. 1024 bytes should be enough for 19043 most uses. 19044 19045 Return Value 19046 19047 On success, the getprotoent_r() function shall return zero. 19048 19049 If the return value was ENOENT, there were no more entries in 19050 the database. 19051 19052 If the return value was ERANGE, the size of the buffer buf, 19053 indicated by buflen, was too small. 19054 19055 getpwent_r 19056 19057 Name 19058 19059 getpwent_r -- reentrantly get entry in passwd file 19060 19061 Synopsis 19062 19063 #include 19064 19065 int getpwent_r(struct passwd * pwbuf, char * buf, size_t 19066 buflen, struct passwd * * pwbufp); 19067 19068 Description 19069 19070 The reentrant interface getpwent_r() shall function in the same 19071 way as the interface getpwent(), except that getpwent_r() shall 19072 return the user name, user password, GECOS field, home 19073 directory, and shell program in buffers provided by the caller, 19074 rather than as a pointer to static storage. 19075 19076 The parameter pwbuf contains the struct passwd that was read 19077 from the stream, if any. 19078 19079 The parameter buf contains additional strings, if any. 19080 19081 The parameter buflen specifies the size of buf. 19082 19083 The parameter *pwbufp returns a pointer to the struct passwd in 19084 *pwbuf. 19085 19086 Return Value 19087 19088 On success, getpwent_r() shall return 0, and *pwbufp shall 19089 contain a pointer to the result. 19090 19091 On failure, *pwbufp shall contain NULL, and getpwent_r() shall 19092 return an error as follows. 19093 19094 Errors 19095 19096 ENOENT 19097 19098 No more password entries. 19099 ERANGE 19100 19101 Not enough buffer space. Specify a larger buffer and try again. 19102 19103 getrlimit, setrlimit 19104 19105 Name 19106 19107 getrlimit, setrlimit -- get resource consumption limits 19108 19109 Synopsis 19110 19111 #include 19112 19113 int getrlimit(__rlimit_resource_t __resource, struct rlimit * 19114 __rlimits); 19115 19116 int setrlimit(__rlimit_resource_t __resource, const struct 19117 rlimit * __rlimits); 19118 19119 Description 19120 19121 getrlimit() and setrlimit() are as specified in POSIX 19122 1003.1-2008 (ISO/IEC 9945-2009), but with differences as listed 19123 below. 19124 19125 Extra Resources 19126 19127 These additional resources extend the list in POSIX 1003.1-2008 19128 (ISO/IEC 9945-2009). 19129 19130 RLIMIT_NPROC 19131 19132 The maximum number of processes (or, more precisely on Linux, 19133 threads) that can be created for the real user ID of the 19134 calling process. Upon encountering this limit, fork() shall 19135 fail with the error EAGAIN. 19136 RLIMIT_MEMLOCK 19137 19138 The maximum number of bytes of memory that may be locked into 19139 RAM. In effect this limit is rounded down to the nearest 19140 multiple of the system page size. This limit affects mlock() 19141 and mlockall(), the mmap() MAP_LOCKED operation and the 19142 shmctl() SHM_LOCK operation. The shmctl() SHM_LOCK locks are 19143 accounted for separately from the per-process memory locks 19144 established by mlock(), mlockall(), and mmap() MAP_LOCKED. In 19145 the former case, the limit sets a maximum on the total bytes in 19146 shared memory segments (see shmget()) that may be locked by the 19147 real user ID of the calling process. A process can lock bytes 19148 up to this limit in each of these two categories. 19149 RLIMIT_LOCKS 19150 19151 A limit on the combined number of flock() locks and fcntl() 19152 leases that this process may establish. This limit is obsolete 19153 and should not be used; support depends heavily on the version 19154 of the operating system kernel. 19155 RLIMIT_RSS 19156 19157 Specifies the limit (in pages) of the process's resident set. 19158 This limit is obsolete and should not be used; support depends 19159 heavily on the version of the operating system kernel. It 19160 affects only calls to madvise() specifying MADV_WILLNEED. 19161 RLIMIT_SIGPENDING 19162 19163 Specifies the limit on the number of signals that may be queued 19164 for the real user ID of the calling process. Both standard and 19165 real-time signals are counted for the purpose of checking this 19166 limit. However, the limit is enforced only for sigqueue(); it 19167 is always possible to use kill() to queue one instance of any 19168 of the signals that are not already queued to the process. 19169 RLIMIT_MSGQUEUE 19170 19171 Specifies the limit on the number of bytes that can be 19172 allocated for POSIX message queues for the real user ID of the 19173 calling process. This limit is enforced for mq_open(). Each 19174 message queue that the user creates counts (until it is 19175 removed) against this limit according to the formula: 19176 bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) + 19177 attr.mq_maxmsg * attr.mq_msgsize 19178 19179 where attr is the mq_attr structure specified as the fourth 19180 argument to mq_open(3). 19181 19182 The first addend in the formula, which includes sizeof(struct 19183 msg_msg *) (4 bytes on Linux/i386), ensures that the user 19184 cannot create an unlimited number of zero-length messages (such 19185 messages nevertheless each consume some system memory for 19186 bookkeeping overhead). 19187 RLIMIT_NICE 19188 19189 Specifies a ceiling to which the process's nice value can be 19190 raised using setpriority() or nice(). The actual ceiling for 19191 the nice value is calculated as 20 minus the value of rlim_cur. 19192 RLIMIT_RTPRIO 19193 19194 Specifies a ceiling on the real-time priority that may be set 19195 for this process using sched_setscheduler(2) and 19196 sched_setparam(2). 19197 RLIMIT_RTTIME 19198 19199 Specifies a limit (in microseconds) on the amount of CPU time 19200 that a process scheduled under a real-time scheduling policy 19201 may consume without making a blocking system call. For the 19202 purpose of this limit, each time a process makes a blocking 19203 system call, the count of its consumed CPU time is reset to 19204 zero. The CPU time count is not reset if the process continues 19205 trying to use the CPU but is preempted, its time slice expires, 19206 or it calls sched_yield(). 19207 19208 Upon reaching the soft limit, the process is sent a SIGXCPU 19209 signal. If the process catches or ignores this signal and 19210 continues consuming CPU time, then SIGXCPU will be generated 19211 once each second until the hard limit is reached, at which 19212 point the process is sent a SIGKILL signal. 19213 19214 The intended use of this limit is to stop a runaway real-time 19215 process from locking up the system. 19216 19217 Extra Errors 19218 19219 These additional error codes extend the list in POSIX 19220 1003.1-2008 (ISO/IEC 9945-2009). 19221 19222 EFAULT 19223 19224 A pointer argument points to a location outside the accessible 19225 address space. 19226 19227 getservbyname_r 19228 19229 Name 19230 19231 getservbyname_r -- retrieve information from the network 19232 services database by service name, reentrantly 19233 19234 Synopsis 19235 19236 #include 19237 19238 int getservbyname_r(const char * name, const char * proto, 19239 struct servent * result_buf, char * buf, size_t buflen, struct 19240 servent * * result); 19241 19242 Description 19243 19244 The getservbyname_r() function is a reentrant version of the 19245 getservbyname() function. 19246 19247 The getservbyname_r() function shall search the network 19248 services database for an entry with the name name. The proto 19249 parameter shall restrict the search to entries with the 19250 specified protocol. If proto is NULL, getservbyname_r() may 19251 return entries with any protocol. 19252 19253 If a matching entry is found in the database, this function 19254 shall copy the relevant information to the application-supplied 19255 servent structure referenced by result_buf, and return a 19256 pointer to this structure in *result. If no matching entry is 19257 found, *result shall be set to a null pointer. 19258 19259 The array buf shall contain the string fields referenced by the 19260 servent structure that was returned. The parameter buflen shall 19261 specify the array's size. 1024 bytes should be enough for most 19262 uses. 19263 19264 Return Value 19265 19266 On success, the getservbyname_r() function shall return zero. 19267 If the return value was ERANGE, the size of the buffer buf, 19268 indicated by buflen, was too small. 19269 19270 getservbyport_r 19271 19272 Name 19273 19274 getservbyport_r -- retrieve information from the network 19275 services database by service port, reentrantly 19276 19277 Synopsis 19278 19279 #include 19280 19281 int getservbyport_r(int port, const char * proto, struct 19282 servent * result_buf, char * buf, size_t buflen, struct servent 19283 * * result); 19284 19285 Description 19286 19287 The getservbyport_r() function is a reentrant version of the 19288 getservbyport() function. 19289 19290 The getservbyport_r() function shall search the network 19291 services database for an entry with the port port. The proto 19292 parameter shall restrict the search to entries with the 19293 specified protocol. If proto is NULL, getservbyport_r() may 19294 return entries with any protocol. 19295 19296 If a matching entry is found in the database, this function 19297 shall copy the relevant information to the application-supplied 19298 servent structure referenced by result_buf, and return a 19299 pointer to this structure in *result. If no matching entry is 19300 found, *result shall be set to a null pointer. 19301 19302 The array buf shall contain the string fields referenced by the 19303 servent structure that was returned. The parameter buflen shall 19304 specify the array's size. 1024 bytes should be enough for most 19305 uses. 19306 19307 Return Value 19308 19309 On success, the getservbyport_r() function shall return zero. 19310 If the return value was ERANGE, the size of the buffer buf, 19311 indicated by buflen, was too small. 19312 19313 getservent_r 19314 19315 Name 19316 19317 getservent_r -- read the next entry of the network services 19318 database, reentrantly 19319 19320 Synopsis 19321 19322 #include 19323 19324 int getservent_r(struct servent * result_buf, char * buf, 19325 size_t buflen, struct servent * * result); 19326 19327 Description 19328 19329 The getservent_r() function is a reentrant version of the 19330 getservent() function. 19331 19332 The getservent_r() function shall search the network services 19333 database for the next entry. 19334 19335 If the next entry is found in the database, this function shall 19336 copy the relevant information to the application-supplied 19337 servent structure referenced by result_buf, and return a 19338 pointer to this structure in *result. If no next entry is 19339 found, *result shall be set to a null pointer. 19340 19341 The array buf shall contain the string fields referenced by the 19342 servent structure that was returned. The parameter buflen shall 19343 specify the array's size. 1024 bytes should be enough for most 19344 uses. 19345 19346 Return Value 19347 19348 On success, the getservent_r() function shall return 0. 19349 19350 If the return value was ENOENT, there were no more entries in 19351 the database. 19352 19353 If the return value was ERANGE, the size of the buffer buf, 19354 indicated by buflen, was too small. 19355 19356 getsockopt 19357 19358 Name 19359 19360 getsockopt -- get socket options 19361 19362 Synopsis 19363 19364 #include 19365 #include 19366 19367 int getsockopt(int socket, int level, int option_name, void * 19368 restrict option_value, socklen_t * restrict option_len); 19369 19370 Description 19371 19372 The getsockopt() function shall behave as specified in POSIX 19373 1003.1-2008 (ISO/IEC 9945-2009), with the following extensions. 19374 19375 IP Protocol Level Options 19376 19377 If the level parameter is IPPROTO_IP, the following values 19378 shall be supported for option_name (see RFC 791:Internet 19379 Protocol for further details): 19380 19381 IP_OPTIONS 19382 19383 Get the Internet Protocol options sent with every packet from 19384 this socket. The option_value shall point to a memory buffer in 19385 which the options shall be placed; on entry option_len shall 19386 point to an integer value indicating the maximum size of the 19387 memory buffer, in bytes. On successful return, the value 19388 referenced by option_len shall be updated to the size of data 19389 copied to the buffer. For IPv4, the maximum length of options 19390 is 40 bytes. 19391 IP_TTL 19392 19393 Get the current unicast Internet Protocol Time To Live value 19394 used when sending packets with this socket. The option_value 19395 shall point to a buffer large enough to hold the time to live 19396 value (at least 1 byte), and option_len shall point to an 19397 integer value holding the maximum size of that buffer. On 19398 successful return, the value referenced by option_len shall be 19399 updated to contain the number of bytes copied into the buffer, 19400 which shall be no larger than the initial value, and 19401 option_value shall point to an integer containing the time to 19402 live value. 19403 IP_TOS 19404 19405 Get the Internet Protocol type of service indicator used when 19406 sending packets with this socket. The option_value shall point 19407 to a buffer large enough to hold the type of service indicator 19408 (at least 1 byte), and option_len shall point to an integer 19409 value holding the maximum size of that buffer. On successful 19410 return, the value referenced by option_len shall be updated to 19411 contain the number of bytes copied into the buffer, which shall 19412 be no larger than the initial value, and option_value shall 19413 point to an integer containing the time to live value. 19414 19415 gettext 19416 19417 Name 19418 19419 gettext -- search message catalogs for a string 19420 19421 Synopsis 19422 19423 #include 19424 19425 char * gettext(const char * msgid); 19426 19427 Description 19428 19429 The gettext() function shall search the currently selected 19430 message catalogs for a string identified by the string msgid. 19431 If a string is located, that string shall be returned. 19432 19433 The gettext() function is equivalent to dcgettext(NULL, msgid, 19434 LC_MESSAGES). 19435 19436 Return Value 19437 19438 If a string is found in the currently selected message catalogs 19439 for msgid, then a pointer to that string shall be returned. 19440 Otherwise, a pointer to msgid shall be returned. 19441 19442 Applications shall not modify the string returned by gettext(). 19443 19444 Errors 19445 19446 None. 19447 19448 The gettext() function shall not modify errno. 19449 19450 See Also 19451 19452 dgettext, ngettext, dngettext, dcgettext, dcngettext, 19453 textdomain, bindtextdomain, bind_textdomain_codeset 19454 19455 getutent 19456 19457 Name 19458 19459 getutent -- access user accounting database entries 19460 19461 Synopsis 19462 19463 #include 19464 19465 struct utmp *getutent(void); 19466 19467 Description 19468 19469 The getutent() function shall read the next entry from the user 19470 accounting database. 19471 19472 Return Value 19473 19474 Upon successful completion, getutent() shall return a pointer 19475 to a utmp structure containing a copy of the requested entry in 19476 the user accounting database. Otherwise, a null pointer shall 19477 be returned. The return value may point to a static area which 19478 is overwritten by a subsequent call to getutent(). 19479 19480 Errors 19481 19482 None defined. 19483 19484 getutent_r 19485 19486 Name 19487 19488 getutent_r -- access user accounting database entries 19489 19490 Synopsis 19491 19492 int getutent_r(struct utmp * buffer, struct utmp ** result); 19493 19494 Description 19495 19496 The getutent_r() function is a reentrant version of the 19497 getutent() function. On entry, buffer should point to a user 19498 supplied buffer to which the next entry in the database will be 19499 copied, and result should point to a location where the result 19500 will be stored. 19501 19502 Return Value 19503 19504 On success, getutent_r() shall return 0 and set the location 19505 referenced by result to a pointer to buffer. Otherwise, 19506 getutent_r() shall return -1 and set the location referenced by 19507 result to NULL. 19508 19509 getwc_unlocked 19510 19511 Name 19512 19513 getwc_unlocked -- non-thread-safe getwc 19514 19515 Description 19516 19517 getwc_unlocked() is the same as getwc(), except that it need 19518 not be thread-safe. That is, it may only be invoked in the ways 19519 which are legal for getc_unlocked(). 19520 19521 getwchar_unlocked 19522 19523 Name 19524 19525 getwchar_unlocked -- non-thread-safe getwchar 19526 19527 Description 19528 19529 getwchar_unlocked() is the same as getwchar(), except that it 19530 need not be thread-safe. That is, it may only be invoked in the 19531 ways which are legal for getc_unlocked(). 19532 19533 glob64 19534 19535 Name 19536 19537 glob64 -- find pathnames matching a pattern (Large File 19538 Support) 19539 19540 Synopsis 19541 19542 #include 19543 19544 int glob64(const char * pattern, int flags, int (*errfunc) 19545 (const char *, int), glob64_t * pglob); 19546 19547 Description 19548 19549 glob64() is a large-file version of the glob() function defined 19550 in POSIX 1003.1-2008 (ISO/IEC 9945-2009). It shall search for 19551 pathnames matching pattern according to the rules used by the 19552 shell, /bin/sh. No tilde expansion or parameter substitution is 19553 done; see wordexp(). 19554 19555 The results of a glob64() call are stored in the structure 19556 pointed to by pglob, which is a glob64_t declared in glob.h 19557 with the following members: 19558 typedef struct 19559 { 19560 size_t gl_pathc; 19561 char **gl_pathv; 19562 size_t gl_offs; 19563 int gl_flags; 19564 void (*gl_closedir) (void *); 19565 struct dirent64 *(*gl_readdir64) (void *); 19566 void *(*gl_opendir) (const char *); 19567 int (*gl_lstat) (const char *, struct stat *); 19568 int (*gl_stat) (const char *, struct stat *); 19569 } 19570 glob64_t; 19571 19572 Structure members with the same name as corresponding members 19573 of a glob_t as defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009) 19574 shall have the same purpose. 19575 19576 Other members are defined as follows: 19577 19578 gl_flags 19579 19580 reserved for internal use 19581 gl_closedir 19582 19583 pointer to a function capable of closing a directory opened by 19584 gl_opendir 19585 gl_readdir64 19586 19587 pointer to a function capable of reading entries in a large 19588 directory 19589 gl_opendir 19590 19591 pointer to a function capable of opening a large directory 19592 gl_stat 19593 19594 pointer to a function capable of returning file status for a 19595 large file 19596 gl_lstat 19597 19598 pointer to a function capable of returning file status 19599 information for a large file or symbolic link 19600 19601 A large file or large directory is one with a size which cannot 19602 be represented by a variable of type off_t. 19603 19604 Return Value 19605 19606 On success, 0 is returned. Other possible returns are: 19607 19608 GLOB_NOSPACE 19609 19610 out of memory 19611 GLOB_ABORTED 19612 19613 read error 19614 GLOB_NOMATCH 19615 19616 no match found 19617 19618 globfree64 19619 19620 Name 19621 19622 globfree64 -- free memory from glob64() (Large File Support) 19623 19624 Synopsis 19625 19626 #include 19627 19628 void globfree64(glob64_t * pglob); 19629 19630 Description 19631 19632 globfree64() frees the dynamically allocated storage from an 19633 earlier call to glob64(). 19634 19635 globfree64() is a large-file version of the globfree() function 19636 defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 19637 19638 gnu_get_libc_version, gnu_get_libc_release 19639 19640 Name 19641 19642 gnu_get_libc_version, gnu_get_libc_release -- get 19643 glibc-specific version and release 19644 19645 Synopsis 19646 19647 #include 19648 19649 const char * gnu_get_libc_version(void); 19650 19651 const char * gnu_get_libc_release(void); 19652 19653 Description 19654 19655 gnu_get_libc_version() returns a string that identifies the 19656 version of the C library running the program making the call. 19657 19658 gnu_get_libc_release() returns a string indicates the release 19659 status of the C library running the program making the call. 19660 This will be a string such as "stable". 19661 19662 Return Value 19663 19664 The functions return strings. The contents of these strings are 19665 unspecified. 19666 19667 Errors 19668 19669 No errors are defined. 19670 19671 Notes 19672 19673 These functions are specific to GNU libc (glibc). This 19674 specification does not require the implementation of libc to be 19675 glibc, although it requires these functions. 19676 19677 The string returned by gnu_get_libc_version() will be a dotted 19678 version string, which may have meaning to developers otherwise 19679 familiar with glibc. These functions have been requested to aid 19680 in portability of software which also runs in non-LSB contexts, 19681 but decisions based on the return value should be tempered by 19682 an understanding of what the behavioral requirements of this 19683 specification are. That is, it may or may not be useful to 19684 discover that a running system, for example, has version 19685 "2.10.1" if that implies different behavior than described by 19686 this specification. 19687 19688 hcreate_r 19689 19690 Name 19691 19692 hcreate_r -- allocate space for a hash search table, 19693 reentrantly 19694 19695 Synopsis 19696 19697 #include 19698 19699 int hcreate_r(size_t nel, struct hsearch_data * htab); 19700 19701 Description 19702 19703 The hcreate_r() function is a reentrant version of the 19704 hcreate() function. 19705 19706 hcreate_r() shall initialize the object referenced by htab with 19707 a hash table containing at least nel elements. Unlike its 19708 non-reentrant equivalent, hcreate(), the hcreate_r() function 19709 may work with more than one hash table. 19710 19711 The memory for the htab object may be dynamically allocated. It 19712 must be initialized with 0 before hcreate_r() is called. 19713 19714 Return Value 19715 19716 On success, hcreate_r() shall return a non-zero value. 19717 19718 On failure, hcreate_r() shall return 0. This usually happens 19719 because not enough memory was available. 19720 19721 hdestroy_r 19722 19723 Name 19724 19725 hdestroy_r -- dispose of a hash search table, reentrantly 19726 19727 Synopsis 19728 19729 #include 19730 19731 void hdestroy_r(struct hsearch_data * htab); 19732 19733 Description 19734 19735 The hdestroy_r() function is a reentrant version of the 19736 hdestroy() function. 19737 19738 hdestroy_r() frees the resources allocated by hcreate_r() for 19739 the object htab. 19740 19741 hsearch_r 19742 19743 Name 19744 19745 hsearch_r -- search a hash table, reentrantly 19746 19747 Synopsis 19748 19749 #include 19750 19751 int hsearch_r(ENTRY item, ACTION action, ENTRY * * retval, 19752 struct hsearch_data * htab); 19753 19754 Description 19755 19756 The hsearch_r() is a reentrant version of the hsearch() 19757 function, but instead of operating on a single global hash 19758 table, hsearch_r() operates on the table described by the 19759 object that htab references. This object can be initialized 19760 with the function hcreate_r(). 19761 19762 Unlike the hsearch() function, hsearch_r() returns a pointer to 19763 the found entry in the variable referred to by retval, rather 19764 than directly. 19765 19766 Return Value 19767 19768 On success, hsearch_r() shall return a non-zero value. 19769 19770 On failure, hsearch_r() shall return 0 and set errno to an 19771 appropriate value. 19772 19773 Errors 19774 19775 ENOMEM 19776 19777 action was set to ENTER, but the table was full. 19778 ESRCH 19779 19780 action was set to FIND, but no matching element was found in 19781 the table. 19782 19783 inet_aton 19784 19785 Name 19786 19787 inet_aton -- Internet address manipulation routine 19788 19789 Synopsis 19790 19791 #include 19792 #include 19793 #include 19794 19795 int anet_iton(const char * cp, struct in_addr * inp); 19796 19797 Description 19798 19799 inet_aton() converts the Internet host address cp from the 19800 standard IPv4 numbers-and-dots notation into binary data and 19801 stores it in the structure that inp points to. 19802 19803 inet_aton() returns a nonzero value if the address is valid, 0 19804 if not. 19805 19806 Note: Note that on some LSB architectures, the host byte 19807 order is Least Significant Byte first, whereas the network 19808 byte order, as used on the Internet, is Most Significant 19809 Byte first. 19810 19811 initgroups 19812 19813 Name 19814 19815 initgroups -- initialize the supplementary group access list 19816 19817 Synopsis 19818 19819 #include 19820 #include 19821 19822 int initgroups(const char * user, gid_t group); 19823 19824 Description 19825 19826 If the process has appropriate privilege, the initgroups() 19827 function shall initialize the Supplementary Group IDs for the 19828 current process by reading the group database and using all 19829 groups of which user is a member. The additional group group is 19830 also added to the list. 19831 19832 Return Value 19833 19834 On success, 0 is returned. On error, -1 is returned and the 19835 global variable errno is set appropriately. 19836 19837 Errors 19838 19839 EPERM 19840 19841 The calling process does not have sufficient privileges. 19842 ENOMEM 19843 19844 Insufficient memory to allocate group information structure. 19845 19846 See Also 19847 19848 setgroups() 19849 19850 initstate_r 19851 19852 Name 19853 19854 initstate_r -- reentrantly initialize a state array for random 19855 number generator functions 19856 19857 Synopsis 19858 19859 #include 19860 19861 int initstate_r(unsigned int seed, char * statebuf, size_t 19862 statelen, struct random_data * buffer); 19863 19864 Description 19865 19866 The interface initstate_r() shall function in the same way as 19867 the interface initstate(), except that initstate_r() shall use 19868 the data in buffer instead of the global random number 19869 generator state. 19870 19871 inotify_add_watch 19872 19873 Name 19874 19875 inotify_add_watch -- add a watch to a watch list 19876 19877 Synopsis 19878 19879 #include 19880 19881 int inotify_add_watch(int fd, const char * path, uint32_t 19882 mask); 19883 19884 Description 19885 19886 inotify_add_watch() shall add a watch to, or modify an existing 19887 watch on, the watch list of the inotify instance specified by 19888 the file descriptor fd, for the file specified by path, to 19889 monitor the events specified by the bitmask mask. The caller 19890 must have read access to the file. 19891 19892 Return Value 19893 19894 On success, inotify_add_watch() shall return the unique, 19895 non-negative watch descriptor associated with the file path and 19896 the inotify instance specified by the file descriptor fd. 19897 19898 If path was already on the watch list, then inotify_add_watch() 19899 shall return the existing watch descriptor. 19900 19901 If path was not already on the watch list, then 19902 inotify_add_watch() shall allocate a new watch descriptor. 19903 19904 inotify_add_watch() shall not work recursively. Monitoring 19905 subdirectories of path shall require adding watches to them. 19906 19907 On failure, inotify_add_watch() shall return -1 and set errno 19908 to an appropriate value. 19909 19910 Errors 19911 19912 EACCESS 19913 19914 The caller does not have read access to path. 19915 EBADF 19916 19917 The file descriptor fd is invalid. 19918 EFAULT 19919 19920 path is outside of the address space accessible by the process. 19921 EINVAL 19922 19923 mask contains no legal events, or fd is not a valid inotify 19924 file descriptor. 19925 ENOMEM 19926 19927 There is not enough kernel memory available. 19928 ENOSPC 19929 19930 The maximum number of watches has been created for this user, 19931 or the kernel cannot allocate a resource. 19932 19933 Application Usage 19934 19935 Reading 19936 19937 The function read() can be used to determine which inotify 19938 events have occurred. A blocking file descriptor will make 19939 read() block until at least one event has occurred. 19940 19941 If successful, read() will return at least one of the following 19942 inotify_event structures in a buffer: 19943 19944 struct inotify_event { 19945 int wd; 19946 uint32_t mask; 19947 uint32_t cookie; 19948 uint32_t len; 19949 char path[]; 19950 }; 19951 19952 wd is a watch descriptor that specifies the watch associated 19953 with the event. It is obtained from a previous invocation of 19954 inotify_add_watch(). 19955 19956 mask is a bit mask describing inotify events. See the section 19957 on masks below. 19958 19959 cookie is an integer associating related inotify events. The 19960 integer value is unique, and currently only enables the 19961 application to associate IN_MOVE_FROM and IN_MOVE_TO rename 19962 events. 19963 19964 len is a count of the bytes in path, including null bytes. This 19965 means that the total length of an inotify_event structure is 19966 19967 sizeof(inotify_event)+len 19968 19969 path is only returned when an event occurs for a file within a 19970 watched directory. This string is null-terminated, and it may 19971 contain more null bytes so that future reads will be aligned 19972 properly on an address boundary. 19973 19974 In kernels before 2.6.21, read() returns 0 when the buffer 19975 given to it is too small to return data about the next event. 19976 In subsequent kernels, it fails with the error EINVAL. 19977 19978 For a given file descriptor, the inotify events are returned in 19979 an ordered queue. Events on a file descriptor will always be 19980 returned in the correct order of occurrence. If two or more 19981 inotify events for a given file descriptor have identical 19982 values for all fields, then only one inotify_event will be 19983 returned to represent all of them. 19984 19985 The number of bytes that can be read from an inotify file 19986 descriptor can be determined by making a FIONREAD ioctl() call. 19987 19988 Masks 19989 19990 The mask argument of inotify_add_watch() and the mask field of 19991 the inotify_event structure are bit masks that specify inotify 19992 events. The bits in the list below can be set in the mask 19993 argument of inotify_add_watch() and returned in the mask field 19994 of inotify_event. 19995 19996 IN_ACCESS 19997 19998 File was read. 19999 IN_ALL_EVENTS 20000 20001 Bit mask of all events in this list. 20002 IN_ATTRIB 20003 20004 File's metadata changed (including timestamps and permissions). 20005 IN_CLOSE 20006 20007 Same as 20008 20009 IN_CLOSE_WRITE | IN_CLOSE_NOWRITE 20010 20011 IN_CLOSE_WRITE 20012 20013 File that was opened for writing was closed. 20014 IN_CLOSE_NOWRITE 20015 20016 File that was not opened for writing was closed. 20017 IN_CREATE 20018 20019 File or directory was created in a watched directory. 20020 IN_DELETE 20021 20022 File or directory was deleted in a watched directory. 20023 IN_DELETE_SELF 20024 20025 Watched file or directory was deleted. 20026 IN_MODIFY 20027 20028 File was changed. 20029 IN_MOVE 20030 20031 Same as 20032 20033 IN_MOVED_FROM | IN_MOVED_TO 20034 20035 IN_MOVE_SELF 20036 20037 Watched file or directory was moved 20038 IN_MOVED_FROM 20039 20040 File was moved out of watched directory. 20041 IN_MOVED_TO 20042 20043 File was moved into watched directory. 20044 IN_OPEN 20045 20046 File was opened. 20047 20048 All of the events above, except for IN_DELETE_SELF and 20049 IN_MOVE_SELF, cause the name field of the inotify_event 20050 structure to contain the name of the file or directory being 20051 monitored. 20052 20053 The following bit is valid for inotify_add_watch() only. 20054 20055 IN_ONESHOT 20056 20057 Monitor path for an event, and then remove it from the watch 20058 list. 20059 20060 The following bits are valid for the inotify_event structure 20061 only. 20062 20063 IN_IGNORED 20064 20065 Watch was removed, either explicitly (via inotify_rm_watch()) 20066 or implicitly (file deletion or file system unmounting). 20067 IN_ISDIR 20068 20069 Object being watched is a directory. 20070 IN_Q_OVERFLOW 20071 20072 The event queue overflowed (wd is set to -1). 20073 IN_UNMOUNT 20074 20075 File system of object being watched was unmounted. 20076 20077 Notes 20078 20079 It is possible to monitor file descriptors with the functions 20080 epoll(), poll(), and select(). 20081 20082 When all of the file descriptors that point to an inotify 20083 instance have been closed, the instance and its associated 20084 resources and watches are freed by the kernel. 20085 20086 See Also 20087 20088 inotify_init(), inotify_rm_watch() 20089 20090 inotify_init 20091 20092 Name 20093 20094 inotify_init -- instantiate inotify 20095 20096 Synopsis 20097 20098 #include 20099 20100 int inotify_init(void); 20101 20102 Description 20103 20104 inotify_init() shall create one instance of inotify. 20105 20106 Return Value 20107 20108 On success, inotify_init() shall return a file descriptor 20109 pointing to the new inotify instance. 20110 20111 On failure, inotify_init() shall return -1 and set errno to an 20112 appropriate value. 20113 20114 Errors 20115 20116 EMFILE 20117 20118 The maximum number of inotify instances has been created for 20119 this user. 20120 ENFILE 20121 20122 The maximum number of file descriptors has been created on the 20123 system. 20124 ENOMEM 20125 20126 There is not enough kernel memory available. 20127 20128 See Also 20129 20130 inotify_add_watch(), inotify_rm_watch() 20131 20132 inotify_rm_watch 20133 20134 Name 20135 20136 inotify_rm_watch -- remove a watch from an inotify watch list 20137 20138 Synopsis 20139 20140 #include 20141 20142 int inotify_rm_watch(int fd, int wd); 20143 20144 Description 20145 20146 inotify_rm_watch() shall remove the watch associated with the 20147 watch descriptor wd from the watch list of the inotify instance 20148 associated with the file descriptor fd. 20149 20150 If a watch is removed, its watch descriptor shall generate the 20151 IN_IGNORED event. 20152 20153 Return Value 20154 20155 On success, inotify_rm_watch() shall return 0. 20156 20157 On failure, inotify_rm_watch() shall return -1 and set errno to 20158 an appropriate value. 20159 20160 Errors 20161 20162 EBADF 20163 20164 The file descriptor fd is invalid. 20165 EINVAL 20166 20167 wd is invalid, or fd is not a valid inotify file descriptor. 20168 20169 See Also 20170 20171 inotify_add_watch(), inotify_init() 20172 20173 ioctl 20174 20175 Name 20176 20177 ioctl -- control device 20178 20179 Synopsis 20180 20181 #include 20182 20183 int ioctl (int fildes , int request , ...); 20184 20185 Description 20186 20187 The ioctl() function shall manipulate the underlying device 20188 parameters of special files. fildes shall be an open file 20189 descriptor referring to a special file. The ioctl() function 20190 shall take three parameters; the type and value of the third 20191 parameter is dependent on the device and request. 20192 20193 Conforming LSB applications shall not call ioctl() except in 20194 situations explicitly stated in this specification. 20195 20196 Return Value 20197 20198 On success, 0 is returned. An ioctl() may use the return value 20199 as an output parameter and return a non-negative value on 20200 success. On error, -1 is returned and the global variable errno 20201 is set appropriately. 20202 20203 Errors 20204 20205 EBADF 20206 20207 fildes is not a valid descriptor. 20208 EFAULT 20209 20210 The third parameter references an inaccessible memory area. 20211 ENOTTY 20212 20213 fildes is not associated with a character special device. 20214 ENOTTY 20215 20216 The specified request does not apply to the kind of object that 20217 fildes references. 20218 EINVAL 20219 20220 request or the third parameter is not valid. 20221 20222 Relationship to POSIX (Informative) 20223 20224 It should be noted that POSIX 1003.1-2008 (ISO/IEC 9945-2009) 20225 contains an interface named ioctl(). The LSB only defines 20226 behavior when fildes refers to a socket (see sockio) or 20227 terminal device (see ttyio), while POSIX 1003.1-2008 (ISO/IEC 20228 9945-2009) only defines behavior when fildes refers to a 20229 STREAMS device. An implementation may support both behaviors; 20230 the LSB does not require any STREAMS support. 20231 20232 sockio 20233 20234 Name 20235 20236 sockio -- socket ioctl commands 20237 20238 Synopsis 20239 20240 #include 20241 #include 20242 #include 20243 #include 20244 20245 int ioctl(int sockfd, int request, void * argp); 20246 20247 Description 20248 20249 Socket ioctl() commands are a subset of the ioctl() calls, 20250 which can perform a variety of functions on sockets. sockfd 20251 shall be an open file descriptor referring to a socket (see the 20252 socket() or accept() functions). 20253 20254 Socket ioctl() commands apply to the underlying network 20255 interfaces, and affect the entire system, not just the file 20256 descriptor used to issue the ioctl(). 20257 20258 The following values for request are accepted: 20259 20260 SIOCGIFCONF (Deprecated) 20261 Get the interface configuration list for the system. 20262 20263 Note: The SIOCGIFCONF interface is superceded by the 20264 if_nameindex() family of functions (see POSIX 1003.1-2008 20265 (ISO/IEC 9945-2009)). A future version of this specification 20266 may withdraw this value for request. 20267 20268 argp shall point to a ifconf structure, as described in 20269 . Before calling, the caller shall set the 20270 ifc_ifcu.ifcu_req field to point to an array of ifreq 20271 structures, and set ifc_len to the size in bytes of this 20272 allocated array. Upon return, ifc_len will contain the 20273 size in bytes of the array which was actually used. If 20274 it is the same as the length upon calling, the caller 20275 should assume that the array was too small and try again 20276 with a larger array. 20277 20278 On success, SIOCGIFCONF shall return a nonnegative 20279 value. 20280 20281 Rationale: Historical UNIX systems disagree on the meaning 20282 of the return value. 20283 20284 SIOCGIFFLAGS 20285 Get the interface flags for the indicated interface. 20286 argp shall point to a ifreq structure. Before calling, 20287 the caller should fill in the ifr_name field with the 20288 interface name, and upon return, the ifr_ifru.ifru_flags 20289 field is set with the interface flags. 20290 20291 SIOCGIFADDR 20292 Get the interface address for the given interface. argp 20293 shall point to a ifreq structure. Before calling, the 20294 caller should fill in the ifr_name field with the 20295 interface name, and upon return, the ifr_ifru.ifru_addr 20296 field is set with the interface address. 20297 20298 SIOCGIFBRDADDR 20299 Get the interface broadcast address for the given 20300 interface. argp shall point to a ifreq structure. Before 20301 calling, the caller should fill in the ifr_name field 20302 with the interface name, and upon return, the 20303 ifr_ifru.ifru_broadcast field is set with the interface 20304 broadcast address. 20305 20306 SIOCGIFDSTADDR 20307 Get the point-to-point address for the given interface. 20308 argp shall point to a ifreq structure. Before calling, 20309 the caller should fill in the ifr_name field with the 20310 interface name, and upon return, the ifr_dstaddr field 20311 is set with the point-to-point address. 20312 20313 SIOCGIFNAME 20314 Get the name of an interface. argp shall point to a 20315 ifreq structure. Before calling, the caller should fill 20316 in the ifr_ifindex field with the number (index) of the 20317 interface, and upon return, the ifr_name field is set 20318 with the interface name. 20319 20320 SIOCGIFNETMASK 20321 Get the network mask for the given interface. argp shall 20322 point to a ifreq structure. Before calling, the caller 20323 should fill in the ifr_name field with the interface 20324 name, and upon return, the ifr_ifru.ifru_netmask field 20325 is set with the network mask. 20326 20327 SIOCGIFMTU 20328 Get the Maximum Transmission Unit (MTU) size for the 20329 given interface. argp shall point to a ifreq structure. 20330 Before calling, the caller should fill in the ifr_name 20331 field with the interface name, and upon return, the 20332 ifr_ifru.ifru_mtu field is set with the MTU. Note: The 20333 range of valid values for MTU varies for an interface 20334 depending on the interface type. 20335 20336 FIONREAD 20337 Get the amount of queued unread data in the receive 20338 buffer. argp shall point to an integer where the result 20339 is to be placed. 20340 20341 Note: Some implementations may also support the use of 20342 FIONREAD on other types of file descriptor. However, the LSB 20343 only specifies its behavior for a socket related file 20344 descriptor. 20345 20346 Return Value 20347 20348 On success, if request is SIOCGIFCONF, a non-negative integer 20349 shall be returned. If request is not SIOCGIFCONF, on success 0 20350 is returned. On error, -1 is returned and the global variable 20351 errno is set appropriately. 20352 20353 Errors 20354 20355 EBADF 20356 20357 sockfd is not a valid descriptor. 20358 EFAULT 20359 20360 argp references an inaccessible memory area. 20361 ENOTTY 20362 20363 The specified request does not apply to the kind of object that 20364 the descriptor sockfd references. 20365 EINVAL 20366 20367 Either request or argp is invalid. 20368 ENOTCONN 20369 20370 The operation is only defined on a connected socket, but the 20371 socket wasn't connected. 20372 20373 ttyio 20374 20375 Name 20376 20377 ttyio -- tty ioctl commands 20378 20379 Synopsis 20380 20381 #include 20382 #include 20383 20384 int ioctl(int fd, unsigned long request, int * argp); 20385 20386 Description 20387 20388 Tty ioctl commands are a subset of the ioctl() calls, which can 20389 perform a variety of functions on tty devices. fd shall be an 20390 open file descriptor referring to a terminal device. 20391 20392 The following ioctl()s are provided: 20393 20394 TIOCGWINSZ 20395 20396 Get the size attributes of the terminal or pseudo-terminal 20397 identified by fd. On entry, argp shall reference a winsize 20398 structure. On return, the structure will have ws_row set to the 20399 number of rows of text (i.e. lines of text) that can be viewed 20400 on the device, and ws_col set to the number of columns (i.e. 20401 text width). 20402 20403 Note: The number of columns stored in ws_col assumes that 20404 the terminal device is using a mono-spaced font. 20405 20406 TIOCSWINSZ 20407 20408 Sets the size attributes of the terminal or pseudo-terminal 20409 identified by fd. On entry, argp shall reference a winsize 20410 structure. The value of the winsize structure's element ws_row 20411 shall be the number of rows of text (i.e. lines of text) that 20412 can be viewed on the device, and the element ws_col shall be 20413 the number of columns (i.e. text width). Note that this call 20414 merely sets the size attributes for the kernel driver, not the 20415 window size itself, and is intended to be used to update the 20416 kernel driver when the window size is changed. 20417 20418 Return Value 20419 20420 On success, 0 is returned. On error, -1 is returned and the 20421 global variable errno is set appropriately. 20422 20423 Errors 20424 20425 EBADF 20426 20427 fd is not a valid descriptor. 20428 EFAULT 20429 20430 argp references an inaccessible memory area. 20431 EINVAL 20432 20433 request and argp are not valid. 20434 20435 jrand48_r 20436 20437 Name 20438 20439 jrand48_r -- reentrantly generate pseudorandom numbers in a 20440 uniform distribution 20441 20442 Synopsis 20443 20444 #include 20445 20446 int jrand48_r(unsigned short[3] xsubi, struct drand48_data * 20447 buffer, long int * result); 20448 20449 Description 20450 20451 The interface jrand48_r() shall function in the same way as the 20452 interface jrand48(), except that jrand48_r() shall use the data 20453 in buffer instead of the global random number generator state. 20454 20455 Before it is used, buffer must be initialized, for example, by 20456 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 20457 it with zeroes. 20458 20459 kill 20460 20461 Name 20462 20463 kill -- send a signal 20464 20465 Synopsis 20466 20467 #include 20468 20469 int kill(pid_t pid, int sig); 20470 20471 Description 20472 20473 kill() is as specified in the POSIX 1003.1-2008 (ISO/IEC 20474 9945-2009), but with differences as listed below. 20475 20476 Process ID -1 doesn't affect calling process 20477 20478 If pid is specified as -1, sig shall not be sent to the calling 20479 process. Other than this, the rules in the POSIX 1003.1-2008 20480 (ISO/IEC 9945-2009) apply. 20481 20482 Rationale: This was a deliberate Linus decision after an 20483 unpopular experiment in including the calling process in the 20484 2.5.1 kernel. See "What does it mean to signal everybody?", 20485 Linux Weekly News, 20 December 2001, 20486 http://lwn.net/2001/1220/kernel.php3 20487 20488 lcong48_r 20489 20490 Name 20491 20492 lcong48_r -- reentrantly generate pseudorandom numbers in a 20493 uniform distribution 20494 20495 Synopsis 20496 20497 #include 20498 20499 int lcong48_r(unsigned short[7] param, struct drand48_data * 20500 buffer); 20501 20502 Description 20503 20504 The interface lcong48_r() shall function in the same way as the 20505 interface lcong48(), except that lcong48_r() shall use the data 20506 in buffer instead of the global random number generator state. 20507 20508 link 20509 20510 Name 20511 20512 link -- create a link to a file 20513 20514 Synopsis 20515 20516 #include 20517 20518 int link(const char * path1, const char * path2); 20519 20520 Description 20521 20522 The link() function shall behave as specified in POSIX 20523 1003.1-2008 (ISO/IEC 9945-2009), except with differences as 20524 listed below. 20525 20526 Need Not Follow Symlinks 20527 20528 POSIX 1003.1-2008 (ISO/IEC 9945-2009) specifies that pathname 20529 resolution shall follow symbolic links during pathname 20530 resolution unless the function is required to act on the 20531 symbolic link itself, or certain arguments direct that the 20532 function act on the symbolic link itself. The link() function 20533 in POSIX 1003.1-2008 (ISO/IEC 9945-2009) contains no such 20534 requirement to operate on a symbolic link. However, a 20535 conforming LSB implementation need not follow a symbolic link 20536 for the path1 argument. 20537 20538 lrand48_r 20539 20540 Name 20541 20542 lrand48_r -- reentrantly generate pseudorandom numbers in a 20543 uniform distribution 20544 20545 Synopsis 20546 20547 #include 20548 20549 int lrand48_r(struct drand48_data * buffer, long int * result); 20550 20551 Description 20552 20553 The interface lrand48_r() shall function in the same way as the 20554 interface lrand48(), except that lrand48_r() shall use the data 20555 in buffer instead of the global random number generator state. 20556 20557 Before it is used, buffer must be initialized, for example, by 20558 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 20559 it with zeroes. 20560 20561 memmem 20562 20563 Name 20564 20565 memmem -- locate bytes 20566 20567 Synopsis 20568 20569 #define _GNU_SOURCE 20570 #include 20571 20572 void * memmem(const void * haystack, size_t haystacklen, const 20573 void * needle, size_t needlelen); 20574 20575 Description 20576 20577 memmem() finds the start of the first occurrence of the byte 20578 array referenced by needle of length needlelen in the memory 20579 area haystack of length haystacklen. 20580 20581 Return Value 20582 20583 If needle is found, memmem() returns a pointer to it. If 20584 needlelen is 0, memmem returns haystack. If needle is not found 20585 in haystack, memmem() returns NULL. 20586 20587 Notes 20588 20589 Earlier versions of the C library (prior to glibc 2.1) 20590 contained a memmem() with various problems, and application 20591 developers should treat this function with care. 20592 20593 memrchr 20594 20595 Name 20596 20597 memrchr -- scan memory for a character 20598 20599 Synopsis 20600 20601 #include 20602 20603 void * memrchr(const void * s, int c, size_t n); 20604 20605 Description 20606 20607 The memrchr() function shall locate the last occurence of c 20608 (converted to an unsigned char) in the initial n bytes (each 20609 interpreted as an unsigned char) of the object pointed to by s. 20610 20611 Return Value 20612 20613 The memrchr() shall return a pointer to the located byte, or a 20614 null pointer if the byte does not occur in the object. 20615 20616 Errors 20617 20618 No errors are defined. 20619 20620 See Also 20621 20622 memchr() 20623 20624 mkstemp64 20625 20626 Name 20627 20628 mkstemp64 -- create a unique temporary file (Large File 20629 Support) 20630 20631 Synopsis 20632 20633 #include 20634 #include 20635 20636 int mkstemp64(char * template); 20637 20638 Description 20639 20640 mkstemp64() shall generates a unique temporary file name from 20641 template. The last six characters of template shall be XXXXXX 20642 and these are replaced with a string that makes the file name 20643 unique; the file is then created and an open file descriptor 20644 returned as described for mkstemp(). 20645 20646 mkstemp64() is a large-file version of the mkstemp() function 20647 as defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). The only 20648 difference is that the temporary file is opened with open64() 20649 instead of with open(). 20650 20651 Return Value 20652 20653 On success, mkstemp64() returns the file descriptor of the 20654 temporary file. Otherwise mkstemp64() shall return -1 and set 20655 errno to indicate the error. 20656 20657 Errors 20658 20659 See mkstemp() for possible error values. 20660 20661 mrand48_r 20662 20663 Name 20664 20665 mrand48_r -- reentrantly generate pseudorandom numbers in a 20666 uniform distribution 20667 20668 Synopsis 20669 20670 #include 20671 20672 int mrand48_r(struct drand48_data * buffer, long int * result); 20673 20674 Description 20675 20676 The interface mrand48_r() shall function in the same way as the 20677 interface mrand48(), except that mrand48_r() shall use the data 20678 in buffer instead of the global random number generator state. 20679 20680 Before it is used, buffer must be initialized, for example, by 20681 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 20682 it with zeroes. 20683 20684 mremap 20685 20686 Name 20687 20688 mremap -- remap a virtual memory address 20689 20690 Synopsis 20691 20692 #include 20693 20694 void * mremap(void * old_address, size_t old_size, size_t 20695 new_size, int flags); 20696 20697 Description 20698 20699 The mremap() function expands (or shrinks) an existing memory 20700 mapping, potentially moving it at the same time, depending on 20701 the flags argument and the available virtual address space. 20702 20703 old_address is the old address of the virtual memory block to 20704 be resized. Note that old_address must be page aligned. 20705 old_size is the old size of the virtual memory block. new_size 20706 is the requested size of the virtual memory block after the 20707 resize. 20708 20709 In Linux the memory is divided into pages. A user process has 20710 (one or) several linear virtual memory segments. Each virtual 20711 memory segment has one or more mappings to real memory pages 20712 (in the page table). Each virtual memory segment has its own 20713 protection (access rights), which may cause a segmentation 20714 violation if the memory is accessed incorrectly (e.g., writing 20715 to a read-only segment). Accessing virtual memory outside of 20716 the segments will also cause a segmentation violation. 20717 20718 mremap() uses the Linux page table scheme. mremap() changes the 20719 mapping between virtual addresses and memory pages. This can be 20720 used to implement a very efficient form of realloc(). 20721 20722 The flags bit-mask argument may be 0, or include the following 20723 flag: 20724 20725 MREMAP_MAYMOVE 20726 20727 By default, if there is not sufficient space to expand a 20728 mapping at its current location, then mremap() fails. If this 20729 flag is specified, then the kernel is permitted to relocate the 20730 mapping to a new virtual address, if necessary. If the mapping 20731 is relocated, then absolute pointers into the old mapping 20732 location become invalid (offsets relative to the starting 20733 address of the mapping should be employed). 20734 MREMAP_FIXED 20735 20736 This flag serves a similar purpose to the MAP_FIXED flag of 20737 mmap(). If this flag is specified, then mremap()accepts a fifth 20738 argument, void *new_address, which specifies a pagealigned 20739 address to which the mapping must be moved. Any previous 20740 mapping at the address range specified by new_address and 20741 new_size is unmapped. If MREMAP_FIXED is specified, then 20742 MREMAP_MAYMOVE must also be specified. 20743 20744 If the memory segment specified by old_address and old_size is 20745 locked (using mlock() or similar), then this lock is maintained 20746 when the segment is resized and/or relocated. As a consequence, 20747 the amount of memory locked by the process may change. 20748 20749 Return Value 20750 20751 The mremap() function returns a pointer to the new virtual 20752 memory area on success. On error, the value MAP_FAILED is 20753 returned, and errno is set appropriately. 20754 20755 Errors 20756 20757 EAGAIN 20758 20759 The caller tried to expand a memory segment that is locked, but 20760 this was not possible without exceeding the RLIMIT_MEMLOCK 20761 resource limit. 20762 EFAULT 20763 20764 "Segmentation fault." Some address in the range old_address to 20765 old_address+old_size is an invalid virtual memory address for 20766 this process. You can also get EFAULT even if there exist 20767 mappings that cover the whole address space requested, but 20768 those mappings are of different types. 20769 EINVAL 20770 20771 An invalid argument was given. Possible causes are: old_address 20772 was not page aligned; a value other than MREMAP_MAYMOVE or 20773 MREMAP_FIXED was specified in flags; new_size was zero; 20774 new_size or new_address was invalid; or the new address range 20775 specified by new_address and new_size overlapped the old 20776 address range specified by old_address and old_size; or 20777 MREMAP_FIXED was specified without also specifying 20778 MREMAP_MAYMOVE. 20779 ENOMEM 20780 20781 The memory area cannot be expanded at the current virtual 20782 address, and the MREMAP_MAYMOVE flag is not set in flags, or, 20783 there is not enough (virtual) memory available. 20784 20785 ngettext 20786 20787 Name 20788 20789 ngettext -- search message catalogs for plural string 20790 20791 Synopsis 20792 20793 #include 20794 20795 char * ngettext(const char * msgid1, const char * msgid2, 20796 unsigned long int n); 20797 20798 Description 20799 20800 The ngettext() function shall search the currently selected 20801 message catalogs for a string matching the singular string 20802 msgid1. If a string is located, and if n is 1, that string 20803 shall be returned. If n is not 1, a pluralized version 20804 (dependent on n) of the string shall be returned. 20805 20806 The ngettext() function is equivalent to dcngettext(NULL, 20807 msgid1, msgid2, n, LC_MESSAGES)(). 20808 20809 Return Value 20810 20811 If a string is found in the currently selected message catalogs 20812 for msgid1, then if n is 1 a pointer to the located string 20813 shall be returned. If n is not 1, a pointer to an appropriately 20814 pluralized version of the string shall be returned. If no 20815 message could be found in the currently selected mesage 20816 catalogs, then if n is 1, a pointer to msgid1 shall be 20817 returned, otherwise a pointer to msgid2 shall be returned. 20818 20819 Applications shall not modify the string returned by 20820 ngettext(). 20821 20822 Errors 20823 20824 None. 20825 20826 The ngettext() function shall not modify errno. 20827 20828 See Also 20829 20830 gettext, dgettext, ngettext, dngettext, dcgettext, dcngettext, 20831 textdomain, bindtextdomain, bind_textdomain_codeset 20832 20833 nrand48_r 20834 20835 Name 20836 20837 nrand48_r -- reentrantly generate pseudorandom numbers in a 20838 uniform distribution 20839 20840 Synopsis 20841 20842 #include 20843 20844 int nrand48_r(unsigned short[3] xsubi, struct drand48_data * 20845 buffer, long int * result); 20846 20847 Description 20848 20849 The interface nrand48_r() shall function in the same way as the 20850 interface nrand48(), except that nrand48_r() shall use the data 20851 in buffer instead of the global random number generator state. 20852 20853 Before it is used, buffer must be initialized, for example, by 20854 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 20855 it with zeroes. 20856 20857 openat64 20858 20859 Name 20860 20861 openat64 -- open a file relative to a directory file descriptor 20862 (Large File Support) 20863 20864 Synopsis 20865 20866 #include 20867 20868 int openat64(int fd, const char * path, int oflag, ...); 20869 20870 Description 20871 20872 openat64() shall establish a connection between a file and a 20873 file descriptor. It shall be identical open64() except in the 20874 case where path specifies a relative path. In this case, the 20875 file to be opened shall be determined relative to the directory 20876 associated with the file descriptor fd instead of the current 20877 working directory. 20878 20879 openat64() is a large-file version of the openat() function as 20880 defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). It differs 20881 from openat() in the same way that open64() differs from 20882 open(), that the open is done in large-file mode. 20883 20884 Return Value 20885 20886 On success, openat64() returns a new file descriptor. Otherwise 20887 openat64() shall return -1 and set errno to indicate the error. 20888 20889 Errors 20890 20891 See openat() for possible error values. 20892 20893 pmap_getport 20894 20895 Name 20896 20897 pmap_getport -- find the port number assigned to a service 20898 registered with a portmapper. 20899 20900 Synopsis 20901 20902 #include 20903 20904 u_short * pmap_getport(struct sockaddr_in * address, const 20905 u_long program, const u_long * version, u_int protocol); 20906 20907 Description 20908 20909 The pmap_getport() function shall return the port number 20910 assigned to a service registered with a RPC Binding service 20911 running on a given target system, using the protocol described 20912 in RFC 1833: Binding Protocols for ONC RPC Version 2. The 20913 pmap_getport() function shall be called given the RPC program 20914 number program, the program version version, and transport 20915 protocol protocol. Conforming implementations shall support 20916 both IPPROTO_UDP and IPPROTO_TCP protocols. On entry, address 20917 shall specify the address of the system on which the portmapper 20918 to be contacted resides. The value of address->sin_port shall 20919 be ignored, and the standard value for the portmapper port 20920 shall always be used. 20921 20922 Note: Security and network restrictions may prevent a 20923 conforming application from contacting a remote RPC Binding 20924 Service. 20925 20926 Return Value 20927 20928 On success, the pmap_getport() function shall return the port 20929 number in host byte order of the RPC application registered 20930 with the remote portmapper. On failure, if either the program 20931 was not registered or the remote portmapper service could not 20932 be reached, the pmap_getport() function shall return 0. If the 20933 remote portmap service could not be reached, the status is left 20934 in the global variable rpc_createerr. 20935 20936 pmap_set 20937 20938 Name 20939 20940 pmap_set -- establishes mapping to machine's RPC Bind service. 20941 20942 Synopsis 20943 20944 #include 20945 20946 bool_t pmap_set(const u_long program, const u_long version, int 20947 protocol, u_short port); 20948 20949 Description 20950 20951 pmap_set() establishes a mapping between the triple 20952 [program,version,protocol] and port on the machine's RPC Bind 20953 service. The value of protocol is most likely IPPROTO_UDP or 20954 IPPROTO_TCP. Automatically done by svc_register(). 20955 20956 Return Value 20957 20958 pmap_set() returns non-zero if it suceeds, 0 otherwise. 20959 20960 pmap_unset 20961 20962 Name 20963 20964 pmap_unset -- destroys RPC Binding 20965 20966 Synopsis 20967 20968 #include 20969 20970 bool_t pmap_unset(u_long prognum, u_long versnum); 20971 20972 Description 20973 20974 As a user interface to the RPC Bind service, pmap_unset() 20975 destroys all mapping between the triple [prognum,versnum, *] 20976 and ports on the machine's RPC Bind service. 20977 20978 Return Value 20979 20980 pmap_unset() returns non-zero if it succeeds, zero otherwise. 20981 20982 posix_fadvise64 20983 20984 Name 20985 20986 posix_fadvise64 -- File advisory information (Large File 20987 Support) 20988 20989 Synopsis 20990 20991 #include 20992 20993 int posix_fadvise64(int fd, off64_t offset, off64_t len, int 20994 advice); 20995 20996 Description 20997 20998 The posix_fadvise64() function is a large-file version of the 20999 posix_fadvise() function defined in POSIX 1003.1-2008 (ISO/IEC 21000 9945-2009). It shall advise the implementation on the expected 21001 behavior of the application with respect to the data in the 21002 file associated with the open file descriptor, fd, starting at 21003 offset and continuing for len bytes. The specified range need 21004 not currently exist in the file. If len is zero, all data 21005 following offset is specified. The implementation may use this 21006 information to optimize handling of the specified data. The 21007 posix_fadvise() function shall have no effect on the semantics 21008 of other operations on the specified data, although it may 21009 affect the performance of other operations. 21010 21011 The advice to be applied to the data is specified by the advice 21012 parameter, as specified in posix_fadvise(). 21013 21014 Return Value 21015 21016 On success, posix_fadvise64() shall return 0. Otherwise an 21017 error number shall be returned to indicate the error. See 21018 posix_fadvise() for possible error values. 21019 21020 posix_fallocate64 21021 21022 Name 21023 21024 posix_fallocate64 -- file space control (Large File Support) 21025 21026 Synopsis 21027 21028 #include 21029 21030 int posix_fallocate64(int fd, off64_t offset, off64_t len); 21031 21032 Description 21033 21034 The posix_fallocate64() function is a large file version of 21035 posix_fallocate(). It shall behave as posix_fallocate() in 21036 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that the offset 21037 and len arguments are off64_t objects rather than off_t. 21038 21039 Return Value 21040 21041 See posix_fallocate(). 21042 21043 Errors 21044 21045 See posix_fallocate(). 21046 21047 pread64 21048 21049 Name 21050 21051 pread64 -- read from a file (Large File Support) 21052 21053 Synopsis 21054 21055 #include 21056 21057 ssize_t pread64(int fd, void * buf, size_t count, off64_t 21058 offset); 21059 21060 Description 21061 21062 pread64() shall read count bytes into buf from the file 21063 associated with the open file descriptor fd, at the position 21064 specified by offset, without changing the file position. 21065 21066 pread64() is a large-file version of the pread() function as 21067 defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). It differs 21068 from pread() in that the offset parameter is an off64_t instead 21069 of an off_t 21070 21071 Return Value 21072 21073 On success, pread64() shall return the number of bytes actually 21074 read. Otherwise pread64() shall return -1 and set errno to 21075 indicate the error. 21076 21077 Errors 21078 21079 See pread() for possible error values. 21080 21081 ptrace 21082 21083 Name 21084 21085 ptrace -- process trace 21086 21087 Synopsis 21088 21089 #include 21090 21091 long ptrace(enum __ptrace_request request, pid_t pid, void * 21092 addr, void * data); 21093 21094 Description 21095 21096 The ptrace() system call shall enable a process to observe and 21097 control the execution of another process, as well as examine 21098 and change certain attributes of that process. 21099 21100 This function operates via requests, which act on the traced 21101 process using the other parameters in ways unique to each 21102 request type. The tracing process must initiate tracing, either 21103 via the PTRACE_TRACEME or PTRACE_ATTACH requests, before other 21104 requests may be performed. Except for PTRACE_TRACEME and 21105 PTRACE_KILL, all requests must be performed on a traced process 21106 that has been stopped. 21107 21108 All signals, except one, delivered to the traced process cause 21109 it to stop, irrespective of its registered signal handling, and 21110 cause an event to be delivered to the tracing process which can 21111 be detected using the wait(2) system call. The exception is the 21112 SIGKILL signal, which is delivered immediately and performs its 21113 usual specified behavior. 21114 21115 The following requests are defined: 21116 21117 PTRACE_TRACEME 21118 This request initates a trace from the perspective of 21119 the traced process, indicating that the parent of the 21120 current process shall be the tracing process. When this 21121 is called, a subsequent call to execve(2) shall cause 21122 the tracing process to receive a SIGTRAP signal, and 21123 shall stop the current process. This is the only request 21124 a traced process may perform, and a tracing process may 21125 not perform this request. The other parameters are 21126 ignored. 21127 21128 PTRACE_ATTACH 21129 This request initates a trace from the perspective of 21130 the tracing process on the process specified by pid. 21131 After this call succeeds, the traced process will appear 21132 to be a child of the tracing process, although the 21133 original parent will still be returned to the traced 21134 process via getppid(2). The traced process will receive 21135 a SIGSTOP signal; the tracing process should use wait(2) 21136 to ensure that the traced process has stopped. A tracing 21137 process is only guaranteed to be able to trace its child 21138 processes; the tracing of other processes may not be 21139 allowed by the system, and the process with process ID 1 21140 may not be traced under any circumstances. The addr and 21141 data parameters are ignored. 21142 21143 PTRACE_CONT 21144 This request restarts a traced process, given in pid, 21145 which has been stopped. The data parameter may point to 21146 a signal ID to deliver to the traced process; if it is 21147 zero or SIGSTOP, no signal is delivered to the child. 21148 The addr is ignored. 21149 21150 PTRACE_DETACH 21151 This request performs the same function, in the same 21152 way, as PTRACE_CONT, except that the tracing 21153 relationship between the tracing and traced processes is 21154 also undone. If the trace was initiated using 21155 PTRACE_ATTACH, the original parent-child relationships 21156 that existed beforehand are restored. 21157 21158 PTRACE_KILL 21159 This request causes a SIGKILL signal to be sent to the 21160 traced process specified in pid. The addr and data 21161 parameters are ignored. 21162 21163 PTRACE_PEEKTEXT 21164 This request reads a word at the location addr of the 21165 traced process pid, and returns it to the caller. The 21166 data parameter is ignored. 21167 21168 PTRACE_PEEKDATA 21169 This request performs identically to the PTRACE_PEEKTEXT 21170 request. 21171 21172 PTRACE_PEEKUSER 21173 This request reads a word at offset addr in the USER 21174 area of the traced process pid. The offset must be 21175 word-aligned. The data parameter is ignored. 21176 21177 PTRACE_POKETEXT 21178 This request writes the word pointed at by data to the 21179 location addr of the traced process pid. 21180 21181 PTRACE_POKEDATA 21182 This request performs identically to the PTRACE_POKETEXT 21183 request. 21184 21185 PTRACE_POKEUSER 21186 This request writes the word pointed at by data to 21187 offset addr in the USER area of the traced process pid. 21188 The offset must be word-aligned. Implementations may 21189 choose to disallow some modifications to the USER area. 21190 21191 PTRACE_GETREGS 21192 This request copies the general purpose registers from 21193 the traced process pid to the tracing process at 21194 location data. This parameter may not be available on 21195 all architectures. The addr parameter is ignored. 21196 21197 PTRACE_GETFPREGS 21198 This request copies the floating point registers from 21199 the traced process pid to the tracing process at 21200 location data. This parameter may not be available on 21201 all architectures. The addr parameter is ignored. 21202 21203 PTRACE_SETREGS 21204 This request writes the general purpose registers to the 21205 traced process pid from the tracing process at location 21206 data. This parameter may not be available on all 21207 architectures. Implementations may choose to disallow 21208 some register modifications. The addr parameter is 21209 ignored. 21210 21211 PTRACE_SETFPREGS 21212 This request writes the floating point registers to the 21213 traced process pid from the tracing process at location 21214 data. This parameter may not be available on all 21215 architectures. Implementations may choose to disallow 21216 some register modifications. The addr parameter is 21217 ignored. 21218 21219 PTRACE_GETSIGINFO 21220 This request writes information about the signal which 21221 caused the traced process pid to stop to the tracing 21222 process at location data, as a siginfo_t. The addr 21223 parameter is ignored. 21224 21225 PTRACE_SETSIGINFO 21226 This request writes signal information to the traced 21227 process pid from a siginfo_t structure pointed at by 21228 data, such that it will be used as the signal 21229 information by the traced process when it is resumed. 21230 The addr parameter is ignored. 21231 21232 PTRACE_GETEVENTMSG 21233 This request stores information about the most recent 21234 ptrace event for the traced process pid in the unsigned 21235 long pointed at by data. For PTRACE_EVENT_EXIT, this is 21236 the exit status of the traced process. For 21237 PTRACE_EVENT_FORK, PTRACE_EVENT_VFORK, or 21238 PTRACE_EVENT_CLONE, this is the PID of the newly created 21239 process. The addr parameter is ignored. 21240 21241 PTRACE_SYSCALL 21242 This request performs the same function, in the same 21243 way, as PTRACE_CONT, but with the additional step of 21244 causing the traced process to stop at the next entry to 21245 or exit from a system call. The usual events that would 21246 also cause the traced process to stop continue to do so. 21247 21248 PTRACE_SINGLESTEP 21249 This request performs the same function, in the same 21250 way, as PTRACE_CONT, but with the additional step of 21251 causing the traced process to stop after execution of a 21252 single instruction. The usual events that would also 21253 cause the traced process to stop continue to do so. 21254 21255 PTRACE_SYSEMU 21256 This request performs the same function, in the same 21257 way, as PTRACE_CONT, but with the additional step of 21258 causing the traced process to stop on entry to the next 21259 syscall, which will then not be executed. 21260 21261 PTRACE_SYSEMU_SINGLESTEP 21262 This request performs the same function, in the same 21263 way, as PTRACE_CONT, but with the additional step of 21264 causing the traced process to stop on entry to the next 21265 syscall, which will then not be executed. If the next 21266 instruction is not itself a syscall, the traced process 21267 will stop after a single instruction is executed. 21268 21269 PTRACE_SETOPTIONS 21270 This request sets ptrace() options for the traced 21271 process pid from the location pointed to by data. The 21272 addr is ignored. This location is interpreted as a 21273 bitmask of options, as defined by the following flags: 21274 21275 PTRACE_O_TRACESYSGOOD 21276 This option, when set, causes syscall traps to set 21277 bit 7 in the signal number. 21278 21279 PTRACE_O_TRACEFORK 21280 This option, when set, causes the traced process 21281 to stop when it calls fork(2). The original traced 21282 process will stop with SIGTRAP | PTRACE_EVENT_FORK 21283 << 8, and the new process will be stopped with 21284 SIGSTOP. The new process will also be traced by 21285 the tracing process, as if the tracing process had 21286 sent the PTRACE_ATTACH request for that process. 21287 The PID of the new process may be retrieved with 21288 the PTRACE_GETEVENTMSG request. 21289 21290 PTRACE_O_TRACEVFORK 21291 This option, when set, causes the traced process 21292 to stop when it calls vfork(2). The original 21293 traced process will stop with SIGTRAP | 21294 PTRACE_EVENT_VFORK << 8, and the new process will 21295 be stopped with SIGSTOP. The new process will also 21296 be traced by the tracing process, as if the 21297 tracing process had sent the PTRACE_ATTACH request 21298 for that process. The PID of the new process may 21299 be retrieved with the PTRACE_GETEVENTMSG request. 21300 21301 PTRACE_O_TRACECLONE 21302 This option, when set, causes the traced process 21303 to stop when it calls clone(2). The original 21304 traced process will stop with SIGTRAP | 21305 PTRACE_EVENT_CLONE << 8, and the new process will 21306 be stopped with SIGSTOP. The new process will also 21307 be traced by the tracing process, as if the 21308 tracing process had sent the PTRACE_ATTACH request 21309 for that process. The PID of the new process may 21310 be retrieved with the PTRACE_GETEVENTMSG request. 21311 Under certain circumstances, clone(2) calls by the 21312 traced process will generate events and 21313 information consistent with the 21314 PTRACE_O_TRACEVFORK or PTRACE_O_TRACEFORK options 21315 above. 21316 21317 PTRACE_O_TRACEEXEC 21318 This option, when set, causes the traced process 21319 to stop when it calls execve(2). The traced 21320 process will stop with SIGTRAP | PTRACE_EVENT_EXEC 21321 << 8. 21322 21323 PTRACE_O_TRACEVFORKDONE 21324 This option, when set, causes the traced process 21325 to stop at the completion of its next vfork(2) 21326 call. The traced process will stop with SIGTRAP | 21327 PTRACE_EVENT_EXEC << 8. 21328 21329 PTRACE_O_TRACEEXIT 21330 This option, when set, causes the traced process 21331 to stop upon exit. The traced process will stop 21332 with SIGTRAP | PTRACE_EVENT_EXIT << 8, and its 21333 exit status can be retrieved with the 21334 PTRACE_GETEVENTMSG request. The stop is guaranteed 21335 to be early in the process exit process, meaning 21336 that information such as register status at exit 21337 is preserved. Upon continuing, the traced process 21338 will immediately exit. 21339 21340 Return Value 21341 21342 On success, ptrace() shall return the requested data for 21343 PTRACE_PEEK requests, or zero for all other requests. On error, 21344 all requests return -1, with errno set to an appropriate value. 21345 Note that -1 may be a valid return value for PTRACE_PEEK 21346 requests; the application is responsible for distinguishing 21347 between an error condition and a valid return value in that 21348 case. 21349 21350 Errors 21351 21352 On error, ptrace() shall set errno to one of the regular error 21353 values below: 21354 21355 EBUSY 21356 21357 An error occurred while allocating or freeing a debug register. 21358 EFAULT 21359 21360 The request attempted to read from or write to an invalid area 21361 in the memory space of the tracing or traced process. 21362 EIO 21363 21364 The request was invalid, or it attempted to read from or write 21365 to an invalid area in the memory space of the tracing or traced 21366 process, or it violated a word-alignment boundary, or an 21367 invalid signal was given to continue the traced process. 21368 EINVAL 21369 21370 An attempt was made to set an invalid option. 21371 EPERM 21372 21373 The request to trace a process was denied by the system. 21374 ESRCH 21375 21376 The process requested does not exist, is not being traced by 21377 the current process, or is not stopped. 21378 21379 putwc_unlocked 21380 21381 Name 21382 21383 putwc_unlocked -- non-thread-safe putwc 21384 21385 Description 21386 21387 putwc_unlocked() is the same as putwc(), except that it need 21388 not be thread-safe. That is, it may only be invoked in the ways 21389 which are legal for getc_unlocked(). 21390 21391 putwchar_unlocked 21392 21393 Name 21394 21395 putwchar_unlocked -- non-thread-safe putwchar 21396 21397 Description 21398 21399 putwchar_unlocked() is the same as putwchar(), except that it 21400 need not be thread-safe. That is, it may only be invoked in the 21401 ways which are legal for getc_unlocked(). 21402 21403 pwrite64 21404 21405 Name 21406 21407 pwrite64 -- write on a file (Large File Support) 21408 21409 Synopsis 21410 21411 #include 21412 21413 ssize_t pwrite64(int fd, const void * buf, size_t count, 21414 off64_t offset); 21415 21416 Description 21417 21418 pwrite64() shall write count bytes from buf to the file 21419 associated with the open file descriptor fd, at the position 21420 specified by offset, without changing the file position. 21421 21422 pwrite64() is a large-file version of the pwrite() function as 21423 defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). It differs 21424 from pwrite() in that the offset parameter is an off64_t 21425 instead of an off_t 21426 21427 Return Value 21428 21429 On success, pwrite64() shall return the number of bytes 21430 actually written. Otherwise pwrite() shall return -1 and set 21431 errno to indicate the error. 21432 21433 Errors 21434 21435 See pwrite() for possible error values. 21436 21437 random_r 21438 21439 Name 21440 21441 random_r -- reentrantly generate pseudorandom numbers in a 21442 uniform distribution 21443 21444 Synopsis 21445 21446 #include 21447 21448 int random_r(struct random_data * buffer, int32_t * result); 21449 21450 Description 21451 21452 The interface random_r() shall function in the same way as the 21453 interface random(), except that random_r() shall use the data 21454 in buffer instead of the global random number generator state. 21455 21456 Before it is used, buffer must be initialized, for example, by 21457 calling lcong48_r(), seed48_r(), or srand48_r(), or by filling 21458 it with zeroes. 21459 21460 readdir64_r 21461 21462 Name 21463 21464 readdir64_r -- read a directory (Large File Support) 21465 21466 Synopsis 21467 21468 #include 21469 21470 int readdir64_r(DIR * dirp, struct dirent64 * entry, struct 21471 dirent64 * * result); 21472 21473 Description 21474 21475 The readdir64_r() function is a large file version of 21476 readdir_r(). It shall behave as readdir_r() in POSIX 21477 1003.1-2008 (ISO/IEC 9945-2009), except that the entry and 21478 result arguments are dirent64 structures rather than dirent. 21479 21480 Return Value 21481 21482 See readdir_r(). 21483 21484 Errors 21485 21486 See readdir_r(). 21487 21488 regexec 21489 21490 Name 21491 21492 regexec -- regular expression matching 21493 21494 Description 21495 21496 The regexec() function shall behave as specified in POSIX 21497 1003.1-2008 (ISO/IEC 9945-2009), except with differences as 21498 listed below. 21499 21500 Differences 21501 21502 Certain aspects of regular expression matching are optional; 21503 see Regular Expressions. 21504 21505 scandir64 21506 21507 Name 21508 21509 scandir64 -- scan a directory (Large File Support) 21510 21511 Synopsis 21512 21513 #include 21514 21515 int scandir64(const char * dir, const struct dirent64 ** 21516 namelist, int (*sel) (const struct dirent64 *), int (*compar) 21517 (const struct dirent64 **, const struct dirent64 **)); 21518 21519 Description 21520 21521 scandir64() is a large-file version of the scandir() function 21522 as defined in POSIX 1003.1-2008 (ISO/IEC 9945-2009). If differs 21523 only in that the namelist and the paramters to the selection 21524 function sel and comparison function compar are of type 21525 dirent64 instead of type dirent. 21526 21527 scanf 21528 21529 Name 21530 21531 scanf -- convert formatted input 21532 21533 Description 21534 21535 The scanf() family of functions shall behave as described in 21536 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 21537 21538 Differences 21539 21540 The %s, %S and %[ conversion specifiers shall accept an option 21541 length modifier a, which shall cause a memory buffer to be 21542 allocated to hold the string converted. In such a case, the 21543 argument corresponding to the conversion specifier should be a 21544 reference to a pointer value that will receive a pointer to the 21545 allocated buffer. If there is insufficient memory to allocate a 21546 buffer, the function may set errno to ENOMEM and a conversion 21547 error results. 21548 21549 Note: This directly conflicts with the ISO C (1999) usage of 21550 %a as a conversion specifier for hexadecimal float values. 21551 While this conversion specifier should be supported, a 21552 format specifier such as "%aseconds" will have a different 21553 meaning on an LSB conforming system. 21554 21555 sched_getaffinity 21556 21557 Name 21558 21559 sched_getaffinity -- retrieve the affinity mask of a process 21560 21561 Synopsis 21562 21563 #include 21564 21565 int sched_getaffinity(pid_t pid, unsigned int cpusetsize, 21566 cpu_set_t * mask); 21567 21568 Description 21569 21570 sched_getaffinity() shall retrieve the affinity mask of a 21571 process. 21572 21573 The parameter pid specifies the ID for the process. If pid is 21574 0, then the calling process is specified instead. 21575 21576 The parameter cpusetsize specifies the length of the data 21577 pointed to by mask, in bytes. Normally, this parameter is 21578 specified as sizeof(cpu_set_t). 21579 21580 Return Value 21581 21582 On success, sched_getaffinity() shall return 0, and the 21583 structure pointed to by mask shall contain the affinity mask of 21584 the specified process. 21585 21586 On failure, sched_getaffinity() shall return -1 and set errno 21587 as follows. 21588 21589 Errors 21590 21591 EFAULT 21592 21593 Bad address. 21594 EINVAL 21595 21596 mask does not specify any processors that exist in the system, 21597 or cpusetsize is smaller than the kernel's affinity mask. 21598 ESRCH 21599 21600 The specified process could not be found. 21601 21602 See Also 21603 21604 sched_setscheduler(), sched_setaffinity(). 21605 21606 sched_setaffinity 21607 21608 Name 21609 21610 sched_setaffinity -- set the CPU affinity mask for a process 21611 21612 Synopsis 21613 21614 #include 21615 21616 int sched_setaffinity(pid_t pid, unsigned int cpusetsize, 21617 cpu_set_t * mask); 21618 21619 Description 21620 21621 sched_setaffinity() shall set the CPU affinity mask for a 21622 process. 21623 21624 The parameter pid specifies the ID for the process. If pid is 21625 0, then the calling process is specified instead. 21626 21627 The parameter cpusetsize specifies the length of the data 21628 pointed to by mask, in bytes. Normally, this parameter is 21629 specified as sizeof(cpu_set_t). 21630 21631 The parameter mask specifies the new value for the CPU affinity 21632 mask. The structure pointed to by mask represents the set of 21633 CPUs on which the process may run. If mask does not specify one 21634 of the CPUs on which the specified process is currently 21635 running, then sched_setaffinity() shall migrate the process to 21636 one of those CPUs. 21637 21638 Setting the mask on a multiprocessor system can improve 21639 performance. For example, setting the mask for one process to 21640 specify a particular CPU, and then setting the mask of all 21641 other processes to exclude the CPU, dedicates the CPU to the 21642 process so that the process runs as fast as possible. This 21643 technique also prevents loss of performance in case the process 21644 terminates on one CPU and starts again on another, invalidating 21645 cache. 21646 21647 Return Value 21648 21649 On success, sched_setaffinity() shall return 0. 21650 21651 On failure, sched_setaffinity() shall return -1 and set errno 21652 as follows. 21653 21654 Errors 21655 21656 EFAULT 21657 21658 Bad address. 21659 EINVAL 21660 21661 mask does not specify any processors that exist in the system, 21662 or cpusetsize is smaller than the kernel's affinity mask. 21663 EPERM 21664 21665 Insufficient privileges. The effective user ID of the process 21666 calling sched_setaffinity() is not equal to the user ID or 21667 effective user ID of the specified process, and the calling 21668 process does not have appropriate privileges. 21669 ESRCH 21670 21671 The specified process could not be found. 21672 21673 See Also 21674 21675 sched_setscheduler(), sched_getaffinity(). 21676 21677 sched_setscheduler 21678 21679 Name 21680 21681 sched_setscheduler -- set scheduling policy and parameters 21682 21683 Synopsis 21684 21685 #include 21686 21687 int sched_setscheduler(pid_t pid, int policy, const struct 21688 sched_param * param); 21689 21690 Description 21691 21692 The sched_setscheduler() shall behave as described in POSIX 21693 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 21694 21695 Return Value 21696 21697 On success, 0 is returned instead of the former scheduling 21698 policy. 21699 21700 seed48_r 21701 21702 Name 21703 21704 seed48_r -- reentrantly generate pseudorandom numbers in a 21705 uniform distribution 21706 21707 Synopsis 21708 21709 #include 21710 21711 int seed48_r(unsigned short[3] seed16v, struct drand48_data * 21712 buffer); 21713 21714 Description 21715 21716 The interface seed48_r() shall function in the same way as the 21717 interface seed48(), except that seed48_r() shall use the data 21718 in buffer instead of the global random number generator state. 21719 21720 sendfile 21721 21722 Name 21723 21724 sendfile -- transfer data between two file descriptors 21725 21726 Synopsis 21727 21728 #include 21729 21730 ssize_t sendfile(int out_fd, int in_fd, off_t * offset, size_t 21731 count); 21732 21733 Description 21734 21735 The sendfile() function shall copy data between the file 21736 descriptor in_fd, which must not be a socket, and the file 21737 descriptor out_fd, which must be a socket. in_fd should be 21738 opened for reading, and out_fd should be opened for writing. 21739 21740 The offset parameter points to a variable set to the file 21741 offset at which sendfile() shall start reading from in_fd, 21742 unless it is NULL. On exit, this variable shall contain the 21743 offset of the byte immediately after the last byte read. 21744 sendfile() shall not change the current file offset of in_fd, 21745 unless it is NULL. In that case, sendfile() shall adjust the 21746 current file offset to show how many bytes were read. 21747 21748 The count parameter specifies how many bytes to copy. 21749 21750 Return Value 21751 21752 On success, sendfile() shall return the number of bytes written 21753 to out_fd. 21754 21755 On failure, sendfile() shall return -1 and set errno 21756 appropriately, as follows. 21757 21758 Errors 21759 21760 EAGAIN 21761 21762 Non-blocking I/O with O_NONBLOCK has been chosen, but the write 21763 would block. 21764 EBADF 21765 21766 The input file is not open for reading, or the output file is 21767 not open for writing. 21768 EFAULT 21769 21770 Bad address. 21771 EINVAL 21772 21773 An mmap()-like operation is unavailable for in_fd, or file 21774 descriptor is locked or invalid. 21775 EIO 21776 21777 There was an unspecified error while reading. 21778 ENOMEM 21779 21780 There is not enough memory to read from in_fd. 21781 21782 Notes 21783 21784 sendfile() is usually faster than combining read() and write() 21785 calls, because it is part of the kernel. However, if it fails 21786 with EINVAL, falling back to read() and write() may be 21787 advisable. 21788 21789 It is advisable for performance reasons to use the TCP_CORK 21790 option of the tcp() function when sending header data with file 21791 contents to a TCP socket. This minimizes the number of packets. 21792 21793 See Also 21794 21795 mmap(), open(), socket(), splice(). 21796 21797 sendfile64 21798 21799 Name 21800 21801 sendfile64 -- transfer data between two file descriptors (Large 21802 File Support) 21803 21804 Synopsis 21805 21806 #include 21807 21808 ssize_t sendfile64(int out_fd, int in_fd, off64_t * offset, 21809 size_t count); 21810 21811 Description 21812 21813 The sendfile64() function is a large-file version of the 21814 sendfile() function. 21815 21816 setbuffer 21817 21818 Name 21819 21820 setbuffer -- stream buffering operation 21821 21822 Synopsis 21823 21824 #include 21825 21826 void setbuffer(FILE * stream, char * buf, size_t size); 21827 21828 Description 21829 21830 setbuffer() is an alias for the call to setvbuf(). It works the 21831 same, except that the size of the buffer in setbuffer() is up 21832 to the caller, rather than being determined by the default 21833 BUFSIZ. 21834 21835 setgroups 21836 21837 Name 21838 21839 setgroups -- set list of supplementary group IDs 21840 21841 Synopsis 21842 21843 #include 21844 21845 int setgroups(size_t size, const gid_t * list); 21846 21847 Description 21848 21849 If the process has appropriate privilege, the setgroups() 21850 function shall set the supplementary group IDs for the current 21851 process. list shall reference an array of size group IDs. A 21852 process may have at most NGROUPS_MAX supplementary group IDs. 21853 21854 Return Value 21855 21856 On successful completion, 0 is returned. On error, -1 is 21857 returned and the errno is set to indicate the error. 21858 21859 Errors 21860 21861 EFAULT 21862 21863 list has an invalid address. 21864 EPERM 21865 21866 The process does not have appropriate privileges. 21867 EINVAL 21868 21869 size is greater than NGROUPS_MAX. 21870 21871 sethostname 21872 21873 Name 21874 21875 sethostname -- set host name 21876 21877 Synopsis 21878 21879 #include 21880 #include 21881 #include 21882 21883 int sethostname(const char * name, size_t len); 21884 21885 Description 21886 21887 If the process has appropriate privileges, the sethostname() 21888 function shall change the host name for the current machine. 21889 The name shall point to a null-terminated string of at most len 21890 bytes that holds the new hostname. 21891 21892 If the symbol HOST_NAME_MAX is defined, or if 21893 sysconf(_SC_HOST_NAME_MAX)() returns a value greater than 0, 21894 this value shall represent the maximum length of the new 21895 hostname. Otherwise, if the symbol MAXHOSTLEN is defined, this 21896 value shall represent the maximum length for the new hostname. 21897 If none of these values are defined, the maximum length shall 21898 be the size of the nodename field of the utsname structure. 21899 21900 Return Value 21901 21902 On success, 0 is returned. On error, -1 is returned and the 21903 global variable errno is set appropriately. 21904 21905 Errors 21906 21907 EINVAL 21908 21909 len is negative or larger than the maximum allowed size. 21910 EPERM 21911 21912 the process did not have appropriate privilege. 21913 EFAULT 21914 21915 name is an invalid address. 21916 21917 Rationale 21918 21919 POSIX 1003.1-2008 (ISO/IEC 9945-2009) guarantees that: 21920 21921 Maximum length of a host name (not including the terminating 21922 null) as returned from the gethostname() function shall be 21923 at least 255 bytes. 21924 21925 The glibc C library does not currently define HOST_NAME_MAX, 21926 and although it provides the name _SC_HOST_NAME_MAX a call to 21927 sysconf() returns -1 and does not alter errno in this case 21928 (indicating that there is no restriction on the hostname 21929 length). However, the glibc manual idicates that some 21930 implementations may have MAXHOSTNAMELEN as a means of detecting 21931 the maximum length, while the Linux kernel at release 2.4 and 21932 2.6 stores this hostname in the utsname structure. While the 21933 glibc manual suggests simply shortening the name until 21934 sethostname() succeeds, the LSB requires that one of the first 21935 four mechanisms works. Future versions of glibc may provide a 21936 more reasonable result from sysconf(_SC_HOST_NAME_MAX). 21937 21938 setsockopt 21939 21940 Name 21941 21942 setsockopt -- set socket options 21943 21944 Synopsis 21945 21946 #include 21947 #include 21948 21949 int setsockopt(int socket, int level, int option_name, const 21950 void * option_value, socklen_t option_len); 21951 21952 Description 21953 21954 The setsockopt() function shall behave as specified in POSIX 21955 1003.1-2008 (ISO/IEC 9945-2009), with the following extensions. 21956 21957 IP Protocol Level Options 21958 21959 If the level parameter is IPPROTO_IP, the following values 21960 shall be supported for option_name (see RFC 791:Internet 21961 Protocol for further details): 21962 21963 IP_OPTIONS 21964 21965 Set the Internet Protocol options sent with every packet from 21966 this socket. The option_value shall point to a memory buffer 21967 containing the options and option_len shall contain the size in 21968 bytes of that buffer. For IPv4, the maximum length of options 21969 is 40 bytes. 21970 IP_TOS 21971 21972 Set the Type of Service flags to use when sending packets with 21973 this socket. The option_value shall point to a value containing 21974 the type of service value. The least significant two bits of 21975 the value shall contain the new Type of Service indicator. Use 21976 of other bits in the value is unspecified. The option_len 21977 parameter shall hold the size, in bytes, of the buffer referred 21978 to by option_value. 21979 IP_TTL 21980 21981 Set the current unicast Internet Protocol Time To Live value 21982 used when sending packets with this socket. The option_value 21983 shall point to a value containing the time to live value, which 21984 shall be between 1 and 255. The option_len parameter shall hold 21985 the size, in bytes, of the buffer referred to by option_value. 21986 IP_MULTICAST_TTL 21987 21988 Sets the Time To Live value of outgoing multicast packets for 21989 this socket. optval shall point to an integer which contains 21990 the new TTL value. If the new TTL value is -1, the 21991 implementation should use an unspecified default TTL value. If 21992 the new TTL value is out of the range of acceptable values 21993 (0-255), setsockopt() shall return -1 and set errno to indicate 21994 the error. 21995 IP_MULTICAST_LOOP 21996 21997 Sets a boolean flag indicating whether multicast packets 21998 originating locally should be looped back to the local sockets. 21999 optval shall point to an integer which contains the new flag 22000 value. 22001 IP_ADD_MEMBERSHIP 22002 22003 Join a multicast group. optval shall point to a ip_mreq 22004 structure. Before calling, the caller should fill in the 22005 imr_multiaddr field with the multicast group address and the 22006 imr_address field with the address of the local interface. If 22007 imr_address is set to INADDR_ANY, then an appropriate interface 22008 is chosen by the system. 22009 IP_DROP_MEMBERSHIP 22010 22011 Leave a multicast group. optval shall point to a ip_mreq 22012 structure containing the same values as were used with 22013 IP_ADD_MEMBERSHIP. 22014 IP_MULTICAST_IF 22015 22016 Set the local device for a multicast socket. optval shall point 22017 to either an ip_mreqn structure or an in_addr structure. If 22018 using the ip_mreqn structure, the imr_multiaddr field should be 22019 set to multicast group address, the imr_address field to the 22020 address of the local interface, and the imr_index field to the 22021 interface index. If using the in_addr structure, the address of 22022 the local interface shall be specified. If in_addr or 22023 imr_address is set to INADDR_ANY, then an appropriate interface 22024 is chosen by the system. If imr_index is zero, then an 22025 appropriate interface index is chosen by the implementation. 22026 22027 The ip_mreq structure contains two struct in_addr fields: 22028 imr_multiaddr and imr_address. 22029 22030 Return Value 22031 22032 On success, 0 is returned. On error, -1 is returned and the 22033 global variable errno is set appropriately. 22034 22035 Errors 22036 22037 As defined in POSIX 1003.1-2001 (ISO/IEC 9945-2003). 22038 22039 setstate_r 22040 22041 Name 22042 22043 setstate_r -- reentrantly change the state array used by random 22044 number generator functions 22045 22046 Synopsis 22047 22048 #include 22049 22050 int setstate_r(char * statebuf, struct random_data * buf); 22051 22052 Description 22053 22054 The interface setstate_r() shall function in the same way as 22055 the interface setstate(), except that setstate_r() shall use 22056 the data in statebuf instead of the global random number 22057 generator state. 22058 22059 setutent 22060 22061 Name 22062 22063 setutent -- access user accounting database entries 22064 22065 Synopsis 22066 22067 #include 22068 22069 void setutent(void); 22070 22071 Description 22072 22073 The setutent() function shall reset the user accounting 22074 database such that the next call to getutent() shall return the 22075 first record in the database. It is recommended to call it 22076 before any of the other functions that operate on the user 22077 accounting databases (e.g. getutent()) 22078 22079 Return Value 22080 22081 None. 22082 22083 sigandset 22084 22085 Name 22086 22087 sigandset -- build a new signal set by combining the two input 22088 sets using logical AND 22089 22090 Synopsis 22091 22092 #include 22093 22094 int sigandset(sigset_t * set, const sigset_t * left, const 22095 sigset_t * right); 22096 22097 Description 22098 22099 The sigandset() function shall combine the two signal sets 22100 referenced by left and right, using a logical AND operation, 22101 and shall place the result in the location referenced by set, 22102 The resulting signal set shall contain only signals that are in 22103 both the set referenced by left and the set referenced by 22104 right. 22105 22106 Applications shall call sigemptyset() or sigfillset() at least 22107 once for each object of type sigset_t to initialize it. If an 22108 uninitialized or NULL object is passed to sigandset(), the 22109 results are undefined. 22110 22111 Return Value 22112 22113 sigandset() returns 0. There are no defined error returns. 22114 22115 See Also 22116 22117 sigorset() 22118 22119 sigisemptyset 22120 22121 Name 22122 22123 sigisemptyset -- check for empty signal set 22124 22125 Synopsis 22126 22127 #include 22128 22129 int sigisemptyset(const sigset_t * set); 22130 22131 Description 22132 22133 The sigisemptyset() function shall check for empty signal set 22134 referenced by set. 22135 22136 Applications shall call sigemptyset() or sigfillset() at least 22137 once for each object of type sigset_t to initialize it. If an 22138 uninitialized or NULL object is passed to sigisemptyset(), the 22139 results are undefined. 22140 22141 Return Value 22142 22143 The sigisemptyset() function shall return a positive non-zero 22144 value if the signal set referenced by set is empty, or zero if 22145 this set is empty. There are no defined error returns. 22146 22147 sigorset 22148 22149 Name 22150 22151 sigorset -- build a new signal set by combining the two input 22152 sets using logical OR 22153 22154 Synopsis 22155 22156 #include 22157 22158 int sigorset(sigset_t * set, const sigset_t * left, const 22159 sigset_t * right); 22160 22161 Description 22162 22163 The sigorset() function shall combine the two signal sets 22164 referenced by left and right, using a logical OR operation, and 22165 shall place the result in the location referenced by set, The 22166 resulting signal set shall contain only signals that are in 22167 either the set referenced by left or the set referenced by 22168 right. 22169 22170 Applications shall call sigemptyset() or sigfillset() at least 22171 once for each object of type sigset_t to initialize it. If an 22172 uninitialized or NULL object is passed to sigorset(), the 22173 results are undefined. 22174 22175 Return Value 22176 22177 sigorset() returns 0. There are no defined error returns. 22178 22179 See Also 22180 22181 sigandset() 22182 22183 sigpause 22184 22185 Name 22186 22187 sigpause -- remove a signal from the signal mask and suspend 22188 the thread (deprecated) 22189 22190 Synopsis 22191 22192 #include 22193 22194 int sigpause(int sig); 22195 22196 Description 22197 22198 The sigpause() function is deprecated from the LSB and is 22199 expected to disappear from a future version of the LSB. 22200 Conforming applications should use sigsuspend() instead. 22201 22202 In the source standard, sigpause() is implemented as a macro 22203 causing it to behave as described in POSIX 1003.1-2008 (ISO/IEC 22204 9945-2009), and is equivalent to the function __xpg_sigpause(). 22205 If the macro is undefined, sigpause() from the binary standard 22206 is used, with differences as described here: 22207 22208 The sigpause() function shall block those signals indicated by 22209 sig and suspend execution of the thread until a signal is 22210 delivered. When a signal is delivered, the original signal mask 22211 shall be restored. 22212 22213 See Also 22214 22215 __xpg_sigpause() 22216 22217 sigreturn 22218 22219 Name 22220 22221 sigreturn -- return from signal handler and cleanup stack frame 22222 22223 Synopsis 22224 22225 int sigreturn(struct sigcontext * scp); 22226 22227 Description 22228 22229 The sigreturn() function is used by the system to cleanup after 22230 a signal handler has returned. This function is not in the 22231 source standard; it is only in the binary standard. 22232 22233 Return Value 22234 22235 sigreturn() never returns. 22236 22237 srand48_r 22238 22239 Name 22240 22241 srand48_r -- reentrantly generate pseudorandom numbers in a 22242 uniform distribution 22243 22244 Synopsis 22245 22246 #include 22247 22248 int srand48_r(long int seedval, struct drand48_data * buffer); 22249 22250 Description 22251 22252 The interface srand48_r() shall function in the same way as the 22253 interface srand48(), except that srand48_r() shall use the data 22254 in buffer instead of the global random number generator state. 22255 22256 srandom_r 22257 22258 Name 22259 22260 srandom_r -- reentrantly set the seed for a new sequence of 22261 pseudorandom numbers 22262 22263 Synopsis 22264 22265 #include 22266 22267 int srandom_r(unsigned int seed, struct random_data * buffer); 22268 22269 Description 22270 22271 The interface srandom_r() shall function in the same way as the 22272 interface srandom(), except that srandom_r() shall use the data 22273 in buffer instead of the global random number generator state. 22274 22275 sscanf 22276 22277 Name 22278 22279 sscanf -- convert formatted input 22280 22281 Description 22282 22283 The scanf() family of functions shall behave as described in 22284 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 22285 22286 Differences 22287 22288 The %s, %S and %[ conversion specifiers shall accept an option 22289 length modifier a, which shall cause a memory buffer to be 22290 allocated to hold the string converted. In such a case, the 22291 argument corresponding to the conversion specifier should be a 22292 reference to a pointer value that will receive a pointer to the 22293 allocated buffer. If there is insufficient memory to allocate a 22294 buffer, the function may set errno to ENOMEM and a conversion 22295 error results. 22296 22297 Note: This directly conflicts with the ISO C (1999) usage of 22298 %a as a conversion specifier for hexadecimal float values. 22299 While this conversion specifier should be supported, a 22300 format specifier such as "%aseconds" will have a different 22301 meaning on an LSB conforming system. 22302 22303 statfs 22304 22305 Name 22306 22307 statfs -- (deprecated) 22308 22309 Synopsis 22310 22311 #include 22312 22313 int statfs(const char *path, struct statfs *buf); 22314 22315 Description 22316 22317 The statfs() function returns information about a mounted file 22318 system. The file system is identified by path, a path name of a 22319 file within the mounted filesystem. The results are placed in 22320 the structure pointed to by 22321 22322 Fields that are undefined for a particular file system shall be 22323 set to 0. 22324 22325 Note: Application developers should use the statvfs() 22326 function to obtain general file system information. 22327 Applications should only use the statfs() function if they 22328 must determine the file system type, which need not be 22329 provided by statvfs(). 22330 22331 Return Value 22332 22333 On success, the statfs() function shall return 0 and set the 22334 fields of the structure idenfitied by buf accordingly. On 22335 error, the statfs() function shall return -1 and set errno 22336 accordingly. 22337 22338 Errors 22339 22340 ENOTDIR 22341 22342 A component of the path prefix of path is not a directory. 22343 ENAMETOOLONG 22344 22345 path is too long. 22346 ENOENT 22347 22348 The file referred to by path does not exist. 22349 EACCES 22350 22351 Search permission is denied for a component of the path prefix 22352 of path. 22353 ELOOP 22354 22355 Too many symbolic links were encountered in translating path. 22356 EFAULT 22357 22358 buf or path points to an invalid address. 22359 EIO 22360 22361 An I/O error occurred while reading from or writing to the file 22362 system. 22363 ENOMEM 22364 22365 Insufficient kernel memory was available. 22366 ENOSYS 22367 22368 The filesystem path is on does not support statfs(). 22369 22370 statfs64 22371 22372 Name 22373 22374 statfs64 -- (deprecated) 22375 22376 Synopsis 22377 22378 #include 22379 22380 int statfs64(const char * path, struct statfs64 *buf); 22381 22382 Description 22383 22384 The statfs64() function returns information about a mounted 22385 file system. The file system is identified by path, a path name 22386 of a file within the mounted filesystem. The results are placed 22387 in the structure pointed to by buf. 22388 22389 statfs64() is a large-file version of the statfs() function. 22390 22391 Fields that are undefined for a particular file system shall be 22392 set to 0. 22393 22394 Note: Application developers should use the statvfs64() 22395 function to obtain general file system information. 22396 Applications should only use the statfs64() function if they 22397 must determine the file system type, which need not be 22398 provided by statvfs64(). 22399 22400 Return Value 22401 22402 On success, the statfs64() function shall return 0 and set the 22403 fields of the structure idenfitied by buf accordingly. On 22404 error, the statfs64() function shall return -1 and set errno 22405 accordingly. 22406 22407 Errors 22408 22409 See fstatfs(). 22410 22411 stime 22412 22413 Name 22414 22415 stime -- set time 22416 22417 Synopsis 22418 22419 #define _SVID_SOURCE 22420 #include 22421 22422 int stime(const time_t * t); 22423 22424 Description 22425 22426 If the process has appropriate privilege, the stime() function 22427 shall set the system's idea of the time and date. Time, 22428 referenced by t, is measured in seconds from the epoch (defined 22429 in POSIX 1003.1-2008 (ISO/IEC 9945-2009) as 00:00:00 UTC 22430 January 1, 1970). 22431 22432 Return Value 22433 22434 On success, stime() shall return 0. Otherwise, stime() shall 22435 return -1 and errno shall be set to indicate the error. 22436 22437 Errors 22438 22439 EPERM 22440 22441 The process does not have appropriate privilege. 22442 EINVAL 22443 22444 t is a null pointer. 22445 22446 strcasestr 22447 22448 Name 22449 22450 strcasestr -- locate a substring ignoring case 22451 22452 Synopsis 22453 22454 #include 22455 22456 char * strcasestr(const char * s1, const char * s2); 22457 22458 Description 22459 22460 The strcasestr() shall behave as strstr(), except that it shall 22461 ignore the case of both strings. The strcasestr() function 22462 shall be locale aware; that is strcasestr() shall behave as if 22463 both strings had been converted to lower case in the current 22464 locale before the comparison is performed. 22465 22466 Return Value 22467 22468 Upon successful completion, strcasestr() shall return a pointer 22469 to the located string or a null pointer if the string is not 22470 found. If s2 points to a string with zero length, the function 22471 shall return s1. 22472 22473 strerror_r 22474 22475 Name 22476 22477 strerror_r -- return string describing error number 22478 22479 Synopsis 22480 22481 #include 22482 22483 char * strerror_r(int errnum, char * buf, size_t buflen); 22484 22485 Description 22486 22487 In the source standard, strerror_r() is implemented as a macro 22488 causing it to behave as described in POSIX 1003.1-2008 (ISO/IEC 22489 9945-2009), and is equivalent to the function 22490 __xpg_strerror_r(). If the macro is undefined, strerror_r() 22491 from the binary standard is used, with differences as described 22492 here. 22493 22494 The strerror_r() function shall return a pointer to the string 22495 corresponding to the error number errnum. The returned pointer 22496 may point within the buffer buf (at most buflen bytes). 22497 22498 Return Value 22499 22500 On success, strerror_r() shall return a pointer to the 22501 generated message string (determined by the setting of the 22502 LC_MESSAGES category in the current locale). Otherwise, 22503 strerror_r() shall return the string corresponding to "Unknown 22504 error". 22505 22506 See Also 22507 22508 __xpg_strerror_r() 22509 22510 strptime 22511 22512 Name 22513 22514 strptime -- parse a time string 22515 22516 Description 22517 22518 The strptime() shall behave as specified in the POSIX 22519 1003.1-2008 (ISO/IEC 9945-2009) with differences as listed 22520 below. 22521 22522 Number of leading zeroes may be limited 22523 22524 The POSIX 1003.1-2008 (ISO/IEC 9945-2009) specifies fields for 22525 which "leading zeros are permitted but not required"; however, 22526 applications shall not expect to be able to supply more leading 22527 zeroes for these fields than would be implied by the range of 22528 the field. Implementations may choose to either match an input 22529 with excess leading zeroes, or treat this as a non-matching 22530 input. For example, %j has a range of 001 to 366, so 0, 00, 22531 000, 001, and 045 are acceptable inputs, but inputs such as 22532 0000, 0366 and the like are not. 22533 22534 Rationale 22535 22536 glibc developers consider it appropriate behavior to forbid 22537 excess leading zeroes. When trying to parse a given input 22538 against several format strings, forbidding excess leading 22539 zeroes could be helpful. For example, if one matches 0011-12-26 22540 against %m-%d-%Y and then against %Y-%m-%d, it seems useful for 22541 the first match to fail, as it would be perverse to parse that 22542 date as November 12, year 26. The second pattern parses it as 22543 December 26, year 11. 22544 22545 The POSIX 1003.1-2008 (ISO/IEC 9945-2009) is not explicit that 22546 an unlimited number of leading zeroes are required, although it 22547 may imply this. The LSB explicitly allows implementations to 22548 have either behavior. Future versions of this standard may 22549 require implementations to forbid excess leading zeroes. 22550 22551 An Interpretation Request is currently pending against POSIX 22552 1003.1-2008 (ISO/IEC 9945-2009) for this matter. 22553 22554 strsep 22555 22556 Name 22557 22558 strsep -- extract token from string 22559 22560 Synopsis 22561 22562 #include 22563 22564 char * strsep(char * * stringp, const char * delim); 22565 22566 Description 22567 22568 The strsep() function shall find the first token in the string 22569 referenced by the pointer stringp, using the characters in 22570 delim as delimiters. 22571 22572 If stringp is NULL, strsep() shall return NULL and do nothing 22573 else. 22574 22575 If stringp is non-NULL, strsep() shall find the first token in 22576 the string referenced by stringp, where tokens are delimited by 22577 characters in the string delim. This token shall be terminated 22578 with a \0 character by overwriting the delimiter, and stringp 22579 shall be updated to point past the token. In case no delimiter 22580 was found, the token is taken to be the entire string 22581 referenced by stringp, and the location referenced by stringp 22582 is made NULL. 22583 22584 Return Value 22585 22586 strsep() shall return a pointer to the beginning of the token. 22587 22588 Notes 22589 22590 The strsep() function was introduced as a replacement for 22591 strtok(), since the latter cannot handle empty fields. However, 22592 strtok() conforms to ISO C (1999) and to POSIX 1003.1-2008 22593 (ISO/IEC 9945-2009) and hence is more portable. 22594 22595 See Also 22596 22597 strtok(), strtok_r(). 22598 22599 strtoq 22600 22601 Name 22602 22603 strtoq -- convert string value to a long or quad_t integer 22604 22605 Synopsis 22606 22607 #include 22608 #include 22609 #include 22610 22611 long long strtoq(const char * nptr, char * * endptr, int base); 22612 22613 Description 22614 22615 strtoq() converts the string nptr to a quadt value. The 22616 conversion is done according to the given base, which shall be 22617 between 2 and 36 inclusive, or be the special value 0. 22618 22619 nptr may begin with an arbitrary amount of white space (as 22620 determined by isspace()), followed by a single optional + or - 22621 sign character. If base is 0 or 16, the string may then include 22622 a 0x prefix, and the number will be read in base 16; otherwise, 22623 a 0 base is taken as 10 (decimal), unless the next character is 22624 0, in which case it is taken as 8 (octal). 22625 22626 The remainder of the string is converted to a long value in the 22627 obvious manner, stopping at the first character which is not a 22628 valid digit in the given base. (In bases above 10, the letter A 22629 in either upper or lower case represents 10, B represents 11, 22630 and so forth, with Z representing 35.) 22631 22632 Return Value 22633 22634 strtoq() returns the result of the conversion, unless the value 22635 would underflow or overflow. If an underflow occurs, strtoq() 22636 returns QUAD_MIN. If an overflow occurs, strtoq() returns 22637 QUAD_MAX. In both cases, the global variable errno is set to 22638 ERANGE. 22639 22640 Errors 22641 22642 ERANGE 22643 22644 The given string was out of range; the value converted has been 22645 clamped. 22646 22647 strtouq 22648 22649 Name 22650 22651 strtouq -- convert a string to an unsigned long long 22652 22653 Synopsis 22654 22655 #include 22656 #include 22657 #include 22658 22659 unsigned long long strtouq(const char * nptr, char * * endptr, 22660 int base); 22661 22662 Description 22663 22664 strtouq() converts the string nptr to an unsigned long long 22665 value. The conversion is done according to the given base, 22666 which shall be between 2 and 36 inclusive, or be the special 22667 value 0. 22668 22669 nptr may begin with an arbitrary amount of white space (as 22670 determined by isspace()), followed by a single optional + or - 22671 sign character. If base is 0 or 16, the string may then include 22672 a 0x prefix, and the number will be read in base 16; otherwise, 22673 a 0 base is taken as 10 (decimal), unless the next character is 22674 0, in which case it is taken as 8 (octal). 22675 22676 The remainder of the string is converted to an unsigned long 22677 value in the obvious manner, stopping at the end of the string 22678 or at the first character that does not produce a valid digit 22679 in the given base. (In bases above 10, the letter A in either 22680 upper or lower case represents 10, B represents 11, and so 22681 forth, with Z representing 35.) 22682 22683 Return Value 22684 22685 On success, strtouq() returns either the result of the 22686 conversion or, if there was a leading minus sign, the negation 22687 of the result of the conversion, unless the original 22688 (non-negated) value would overflow. In the case of an overflow 22689 the function returns UQUAD_MAX and the global variable errno is 22690 set to ERANGE. 22691 22692 Errors 22693 22694 ERANGE 22695 22696 The given string was out of range; the value converted has been 22697 clamped. 22698 22699 svc_register 22700 22701 Name 22702 22703 svc_register -- register Remote Procedure Call interface 22704 22705 Synopsis 22706 22707 #include 22708 22709 bool_t svc_register(SVCXPRT * xprt, rpcprog_t prognum, 22710 rpcvers_t versnum, __dispatch_fn_t dispatch, rpcprot_t 22711 protocol); 22712 22713 Description 22714 22715 The svc_register() function shall associate the program 22716 identified by prognum at version versnum with the service 22717 dispatch procedure, dispatch. If protocol is zero, the service 22718 is not registered with the portmap service. If protocol is 22719 non-zero, then a mapping of the triple [prognum, versnum, 22720 protocol] to xprt->xp_port is established with the local 22721 portmap service. The procedure dispatch has the following form: 22722 22723 int dispatch(struct svc_req * request, SVCXPRT * xprt); 22724 22725 Return Value 22726 22727 svc_register() returns 1 if it succeeds, and zero otherwise. 22728 22729 svc_run 22730 22731 Name 22732 22733 svc_run -- waits for RPC requests to arrive and calls service 22734 procedure 22735 22736 Synopsis 22737 22738 #include 22739 22740 void svc_run(void); 22741 22742 Description 22743 22744 The svc_run() function shall wait for RPC requests to arrive, 22745 read and unpack each request, and dispatch it to the 22746 appropriate registered handler. Under normal conditions, 22747 svc_run() shall not return; it shall only return if serious 22748 errors occur that prevent further processing. 22749 22750 svc_sendreply 22751 22752 Name 22753 22754 svc_sendreply -- called by RPC service's dispatch routine 22755 22756 Synopsis 22757 22758 bool_t svc_sendreply(SVCXPRT *xprt, xdrproc_t outproc, caddr_t 22759 out); 22760 22761 Description 22762 22763 Called by an RPC service's dispatch routine to send the results 22764 of a remote procedure call. The parameter xprt is the request's 22765 associated transport handle; outproc is the XDR routine which 22766 is used to encode the results; and out is the address of the 22767 results. This routine returns one if it succeeds, zero 22768 otherwise. 22769 22770 svctcp_create 22771 22772 Name 22773 22774 svctcp_create -- create a TCP/IP-based RPC service transport 22775 22776 Synopsis 22777 22778 #include 22779 22780 SVCXPRT * svctcp_create(int sock, u_int send_buf_size, u_int 22781 recv_buf_size); 22782 22783 Description 22784 22785 svctcp_create() creates a TCP/IP-based RPC service transport, 22786 to which it returns a pointer. The transport is associated with 22787 the socket sock, which may be RPC_ANYSOCK, in which case a new 22788 socket is created. If the socket is not bound to a local TCP 22789 port, then this routine binds it to an arbitrary port. Upon 22790 completion, xprt->xp_sock is the transport's socket descriptor, 22791 and xprt->xp_port is the transport's port number. Since 22792 TCP-based RPC uses buffered I/O, users may specify the size of 22793 buffers; values of zero choose suitable defaults. 22794 22795 Return Value 22796 22797 svctcp_create() returns NULL if it fails, or a pointer to the 22798 RPC service transport otherwise. 22799 22800 svcudp_create 22801 22802 Name 22803 22804 svcudp_create -- create a UDP-based RPC service transport 22805 22806 Synopsis 22807 22808 SVCXPRT * 22809 22810 svcudp_create(int sock); 22811 22812 Description 22813 22814 The svcudp_create() function shall create a UDP/IP-based RPC 22815 service transport, and return a pointer to its descriptor. The 22816 transport is associated with the socket sock, which may be 22817 RPC_ANYSOCK, in which case a new socket shall be created. If 22818 the socket is not bound to a local UDP port, then 22819 svcudp_create() shall bind it to an arbitrary port. 22820 22821 If svcudp_create() returns successfully, then the xp_sock field 22822 in the result shall be the transport's socket descriptor, and 22823 the xp_port field shall be the transport's port number. 22824 22825 Return Value 22826 22827 Upon successful completion, svcudp_create() shall return a 22828 pointer to a RPC service transport; otherwise, a null pointer 22829 shall be returned. 22830 22831 swscanf 22832 22833 Name 22834 22835 swscanf -- convert formatted input 22836 22837 Description 22838 22839 The scanf() family of functions shall behave as described in 22840 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 22841 22842 Differences 22843 22844 The %s, %S and %[ conversion specifiers shall accept an option 22845 length modifier a, which shall cause a memory buffer to be 22846 allocated to hold the string converted. In such a case, the 22847 argument corresponding to the conversion specifier should be a 22848 reference to a pointer value that will receive a pointer to the 22849 allocated buffer. If there is insufficient memory to allocate a 22850 buffer, the function may set errno to ENOMEM and a conversion 22851 error results. 22852 22853 Note: This directly conflicts with the ISO C (1999) usage of 22854 %a as a conversion specifier for hexadecimal float values. 22855 While this conversion specifier should be supported, a 22856 format specifier such as "%aseconds" will have a different 22857 meaning on an LSB conforming system. 22858 22859 sysconf 22860 22861 Name 22862 22863 sysconf -- Get configuration information at runtime 22864 22865 Synopsis 22866 22867 #include 22868 22869 long sysconf(int name); 22870 22871 DESCRIPTION 22872 22873 sysconf() is as specified in POSIX 1003.1-2008 (ISO/IEC 22874 9945-2009), but with differences as listed below. 22875 22876 Extra Variables 22877 22878 These additional values extend the list in POSIX 1003.1-2008 22879 (ISO/IEC 9945-2009). 22880 22881 - _SC_PHYS_PAGES 22882 The number of pages of physical memory. 22883 22884 - _SC_AVPHYS_PAGES 22885 The number of currently available pages of physical 22886 memory. 22887 22888 - _SC_NPROCESSORS_CONF 22889 The number of processors configured. 22890 22891 - _SC_NPROCESSORS_ONLN 22892 The number of processors currently online (available). 22893 22894 Extra Versions 22895 22896 While this specification only requires conformance with POSIX 22897 1003.1-2008 (ISO/IEC 9945-2009), implementations are not 22898 constrained from moving on and claiming conformance with a 22899 subsequent edition, POSIX 1003.1-2008 (ISO/IEC 9945-2009). Thus 22900 for run-time checks using sysconf(), the wording is amended to 22901 allow return values of 0, -1, 200112L or 200809L where formerly 22902 200809L was not listed as allowed. 22903 22904 sysinfo 22905 22906 Name 22907 22908 sysinfo -- return system information 22909 22910 Synopsis 22911 22912 #include 22913 22914 int sysinfo(struct sysinfo *info); 22915 22916 Description 22917 22918 sysinfo() provides a way to obtain certain system statistics. 22919 Statistics are written into a sysinfo structure pointed to by 22920 info. Elements which take a size are sized in units indicated 22921 by the value of the mem_unit member of info. The other members 22922 have traditional meanings as indicated in Data Definitions, but 22923 are not formally part of this specification. 22924 22925 Return Value 22926 22927 Returns zero on success. On error, -1 is returned and errno is 22928 set to indicate the error. 22929 22930 Errors 22931 22932 EFAULT 22933 22934 The info parameter does not point to a valid sysinfo structure. 22935 22936 system 22937 22938 Name 22939 22940 system -- execute a shell command 22941 22942 Synopsis 22943 22944 #include 22945 22946 int system(const char * string); 22947 22948 Description 22949 22950 The system() function shall behave as described in POSIX 22951 1003.1-2008 (ISO/IEC 9945-2009). 22952 22953 Notes 22954 22955 The fact that system() ignores interrupts is often not what a 22956 program wants. POSIX 1003.1-2008 (ISO/IEC 9945-2009) describes 22957 some of the consequences; an additional consequence is that a 22958 program calling system() from a loop cannot be reliably 22959 interrupted. Many programs will want to use the exec() family 22960 of functions instead. 22961 22962 Do not use system() from a program with suid or sgid 22963 privileges, because unexpected values for some environment 22964 variables might be used to subvert system integrity. Use the 22965 exec() family of functions instead, but not execlp() or 22966 execvp(). system() will not, in fact, work properly from 22967 programs with suid or sgid privileges on systems on which 22968 /bin/sh is bash version 2, since bash 2 drops privileges on 22969 startup. (Debian uses a modified bash which does not do this 22970 when invoked as sh.) 22971 22972 The check for the availability of /bin/sh is not actually 22973 performed; it is always assumed to be available. ISO C (1999) 22974 specifies the check, but POSIX 1003.1-2008 (ISO/IEC 9945-2009) 22975 specifies that the return shall always be nonzero, since a 22976 system without the shell is not conforming, and it is this that 22977 is implemented. 22978 22979 It is possible for the shell command to return 127, so that 22980 code is not a sure indication that the execve() call failed; 22981 check the global variable errno to make sure. 22982 22983 textdomain 22984 22985 Name 22986 22987 textdomain -- set the current default message domain 22988 22989 Synopsis 22990 22991 #include 22992 22993 char * textdomain(const char * domainname); 22994 22995 Description 22996 22997 The textdomain() function shall set the current default message 22998 domain to domainname. Subsequent calls to gettext() and 22999 ngettext() use the default message domain. 23000 23001 If domainname is NULL, the default message domain shall not be 23002 altered. 23003 23004 If domainname is "", textdomain() shall reset the default 23005 domain to the system default of "messages". 23006 23007 Return 23008 23009 On success, textdomain() shall return the currently selected 23010 domain. Otherwise, a null pointer shall be returned, and errno 23011 is set to indicate the error. 23012 23013 Errors 23014 23015 ENOMEM 23016 23017 Insufficent memory available. 23018 23019 unlink 23020 23021 Name 23022 23023 unlink -- remove a directory entry 23024 23025 Synopsis 23026 23027 int unlink(const char * path); 23028 23029 Description 23030 23031 unlink() is as specified in POSIX 1003.1-2008 (ISO/IEC 23032 9945-2009), but with differences as listed below. 23033 23034 See also Section 18.1, Additional behaviors: unlink/link on 23035 directory. 23036 23037 May return EISDIR on directories 23038 23039 If path specifies a directory, the implementation may return 23040 EISDIR instead of EPERM as specified by POSIX 1003.1-2008 23041 (ISO/IEC 9945-2009). 23042 23043 Rationale: The Linux kernel has deliberately chosen EISDIR 23044 for this case and does not expect to change. 23045 23046 utmpname 23047 23048 Name 23049 23050 utmpname -- set user accounting database 23051 23052 Synopsis 23053 23054 #include 23055 23056 int utmpname(const char * dbname); 23057 23058 Description 23059 23060 The utmpname() function shall cause the user accounting 23061 database used by the getutent(), getutent_r(), getutxent(), 23062 getutxid(), getutxline(), and pututxline() functions to be that 23063 named by dbname, instead of the system default database. See 23064 Section 18.3 for further information. 23065 23066 Note: The LSB does not specify the format of the user 23067 accounting database, nor the names of the file or files that 23068 may contain it. 23069 23070 Return Value 23071 23072 None. 23073 23074 Errors 23075 23076 None defined. 23077 23078 vasprintf 23079 23080 Name 23081 23082 vasprintf -- write formatted output to a dynamically allocated 23083 string 23084 23085 Synopsis 23086 23087 #include 23088 #include 23089 23090 int vasprintf(char * * restrict ptr, const char * restrict 23091 format, va_list arg); 23092 23093 Description 23094 23095 The vasprintf() function shall write formatted output to a 23096 dynamically allocated string, and store the address of that 23097 string in the location referenced by ptr. It shall behave as 23098 asprintf(), except that instead of being called with a variable 23099 number of arguments, it is called with an argument list as 23100 defined by . 23101 23102 Return Value 23103 23104 Refer to fprintf(). 23105 23106 Errors 23107 23108 Refer to fprintf(). 23109 23110 verrx 23111 23112 Name 23113 23114 verrx -- display formatted error message and exit 23115 23116 Synopsis 23117 23118 #include 23119 #include 23120 23121 void verrx (int eval , const char * fmt , va_list args ); 23122 23123 Description 23124 23125 The verrx() shall behave as errx() except that instead of being 23126 called with a variable number of arguments, it is called with 23127 an argument list as defined by . 23128 23129 verrx() does not return, but exits with the value of eval. 23130 23131 Return Value 23132 23133 None. 23134 23135 Errors 23136 23137 None. 23138 23139 vfscanf 23140 23141 Name 23142 23143 vfscanf -- convert formatted input 23144 23145 Description 23146 23147 The scanf() family of functions shall behave as described in 23148 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23149 23150 Differences 23151 23152 The %s, %S and %[ conversion specifiers shall accept an option 23153 length modifier a, which shall cause a memory buffer to be 23154 allocated to hold the string converted. In such a case, the 23155 argument corresponding to the conversion specifier should be a 23156 reference to a pointer value that will receive a pointer to the 23157 allocated buffer. If there is insufficient memory to allocate a 23158 buffer, the function may set errno to ENOMEM and a conversion 23159 error results. 23160 23161 Note: This directly conflicts with the ISO C (1999) usage of 23162 %a as a conversion specifier for hexadecimal float values. 23163 While this conversion specifier should be supported, a 23164 format specifier such as "%aseconds" will have a different 23165 meaning on an LSB conforming system. 23166 23167 vfwscanf 23168 23169 Name 23170 23171 vfwscanf -- convert formatted input 23172 23173 Description 23174 23175 The scanf() family of functions shall behave as described in 23176 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23177 23178 Differences 23179 23180 The %s, %S and %[ conversion specifiers shall accept an option 23181 length modifier a, which shall cause a memory buffer to be 23182 allocated to hold the string converted. In such a case, the 23183 argument corresponding to the conversion specifier should be a 23184 reference to a pointer value that will receive a pointer to the 23185 allocated buffer. If there is insufficient memory to allocate a 23186 buffer, the function may set errno to ENOMEM and a conversion 23187 error results. 23188 23189 Note: This directly conflicts with the ISO C (1999) usage of 23190 %a as a conversion specifier for hexadecimal float values. 23191 While this conversion specifier should be supported, a 23192 format specifier such as "%aseconds" will have a different 23193 meaning on an LSB conforming system. 23194 23195 vscanf 23196 23197 Name 23198 23199 vscanf -- convert formatted input 23200 23201 Description 23202 23203 The scanf() family of functions shall behave as described in 23204 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23205 23206 Differences 23207 23208 The %s, %S and %[ conversion specifiers shall accept an option 23209 length modifier a, which shall cause a memory buffer to be 23210 allocated to hold the string converted. In such a case, the 23211 argument corresponding to the conversion specifier should be a 23212 reference to a pointer value that will receive a pointer to the 23213 allocated buffer. If there is insufficient memory to allocate a 23214 buffer, the function may set errno to ENOMEM and a conversion 23215 error results. 23216 23217 Note: This directly conflicts with the ISO C (1999) usage of 23218 %a as a conversion specifier for hexadecimal float values. 23219 While this conversion specifier should be supported, a 23220 format specifier such as "%aseconds" will have a different 23221 meaning on an LSB conforming system. 23222 23223 vsscanf 23224 23225 Name 23226 23227 vsscanf -- convert formatted input 23228 23229 Description 23230 23231 The scanf() family of functions shall behave as described in 23232 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23233 23234 Differences 23235 23236 The %s, %S and %[ conversion specifiers shall accept an option 23237 length modifier a, which shall cause a memory buffer to be 23238 allocated to hold the string converted. In such a case, the 23239 argument corresponding to the conversion specifier should be a 23240 reference to a pointer value that will receive a pointer to the 23241 allocated buffer. If there is insufficient memory to allocate a 23242 buffer, the function may set errno to ENOMEM and a conversion 23243 error results. 23244 23245 Note: This directly conflicts with the ISO C (1999) usage of 23246 %a as a conversion specifier for hexadecimal float values. 23247 While this conversion specifier should be supported, a 23248 format specifier such as "%aseconds" will have a different 23249 meaning on an LSB conforming system. 23250 23251 vswscanf 23252 23253 Name 23254 23255 vswscanf -- convert formatted input 23256 23257 Description 23258 23259 The scanf() family of functions shall behave as described in 23260 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23261 23262 Differences 23263 23264 The %s, %S and %[ conversion specifiers shall accept an option 23265 length modifier a, which shall cause a memory buffer to be 23266 allocated to hold the string converted. In such a case, the 23267 argument corresponding to the conversion specifier should be a 23268 reference to a pointer value that will receive a pointer to the 23269 allocated buffer. If there is insufficient memory to allocate a 23270 buffer, the function may set errno to ENOMEM and a conversion 23271 error results. 23272 23273 Note: This directly conflicts with the ISO C (1999) usage of 23274 %a as a conversion specifier for hexadecimal float values. 23275 While this conversion specifier should be supported, a 23276 format specifier such as "%aseconds" will have a different 23277 meaning on an LSB conforming system. 23278 23279 vsyslog 23280 23281 Name 23282 23283 vsyslog -- log to system log 23284 23285 Synopsis 23286 23287 #include 23288 #include 23289 23290 void vsyslog(int priority, char * message, va_list arglist); 23291 23292 Description 23293 23294 The vsyslog() function is identical to syslog() as specified in 23295 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that arglist (as 23296 defined by stdarg.h) replaces the variable number of arguments. 23297 23298 vwscanf 23299 23300 Name 23301 23302 vwscanf -- convert formatted input 23303 23304 Description 23305 23306 The scanf() family of functions shall behave as described in 23307 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23308 23309 Differences 23310 23311 The %s, %S and %[ conversion specifiers shall accept an option 23312 length modifier a, which shall cause a memory buffer to be 23313 allocated to hold the string converted. In such a case, the 23314 argument corresponding to the conversion specifier should be a 23315 reference to a pointer value that will receive a pointer to the 23316 allocated buffer. If there is insufficient memory to allocate a 23317 buffer, the function may set errno to ENOMEM and a conversion 23318 error results. 23319 23320 Note: This directly conflicts with the ISO C (1999) usage of 23321 %a as a conversion specifier for hexadecimal float values. 23322 While this conversion specifier should be supported, a 23323 format specifier such as "%aseconds" will have a different 23324 meaning on an LSB conforming system. 23325 23326 wait4 23327 23328 Name 23329 23330 wait4 -- wait for process termination, BSD style 23331 23332 Synopsis 23333 23334 #include 23335 #include 23336 #include 23337 23338 pid_t wait4(pid_t pid, int * status, int options, struct rusage 23339 * rusage); 23340 23341 Description 23342 23343 wait4() suspends execution of the current process until a child 23344 (as specified by pid) has exited, or until a signal is 23345 delivered whose action is to terminate the current process or 23346 to call a signal handling function. If a child (as requested by 23347 pid) has already exited by the time of the call (a so-called 23348 "zombie" process), the function returns immediately. Any system 23349 resources used by the child are freed. 23350 23351 The value of pid can be one of: 23352 23353 < -1 23354 23355 wait for any child process whose process group ID is equal to 23356 the absolute value of pid. 23357 -1 23358 23359 wait for any child process; this is equivalent to calling 23360 wait3(). 23361 0 23362 23363 wait for any child process whose process group ID is equal to 23364 that of the calling process. 23365 > 0 23366 23367 wait for the child whose process ID is equal to the value of 23368 pid. 23369 23370 The value of options is a bitwise or of zero or more of the 23371 following constants: 23372 23373 WNOHANG 23374 23375 return immediately if no child is there to be waited for. 23376 WUNTRACED 23377 23378 return for children that are stopped, and whose status has not 23379 been reported. 23380 23381 If status is not NULL, wait4() stores status information in the 23382 location status. This status can be evaluated with the 23383 following macros: 23384 23385 Note: These macros take the status value (an int) as an 23386 argument -- not a pointer to the value! 23387 23388 WIFEXITED(status) 23389 23390 is nonzero if the child exited normally. 23391 WEXITSTATUS(status) 23392 23393 evaluates to the least significant eight bits of the return 23394 code of the child that terminated, which may have been set as 23395 the argument to a call to exit() or as the argument for a 23396 return statement in the main program. This macro can only be 23397 evaluated if WIFEXITED() returned nonzero. 23398 WIFSIGNALED(status) 23399 23400 returns true if the child process exited because of a signal 23401 that was not caught. 23402 WTERMSIG(status) 23403 23404 returns the number of the signal that caused the child process 23405 to terminate. This macro can only be evaluated if WIFSIGNALED() 23406 returned nonzero. 23407 WIFSTOPPED(status) 23408 23409 returns true if the child process that caused the return is 23410 currently stopped; this is only possible if the call was done 23411 using WUNTRACED(). 23412 WSTOPSIG(status) 23413 23414 returns the number of the signal that caused the child to stop. 23415 This macro can only be evaluated if WIFSTOPPED() returned 23416 nonzero. 23417 23418 If rusage is not NULL, the struct rusage (as defined in 23419 sys/resource.h) that it points to will be filled with 23420 accounting information. See getrusage() for details. 23421 23422 Return Value 23423 23424 On success, the process ID of the child that exited is 23425 returned. On error, -1 is returned (in particular, when no 23426 unwaited-for child processes of the specified kind exist), or 0 23427 if WNOHANG() was used and no child was available yet. In the 23428 latter two cases, the global variable errno is set 23429 appropriately. 23430 23431 Errors 23432 23433 ECHILD 23434 23435 No unwaited-for child process as specified does exist. 23436 ERESTARTSYS 23437 23438 A WNOHANG() was not set and an unblocked signal or a SIGCHILD 23439 was caught. This error is returned by the system call. The 23440 library interface is not allowed to return ERESTARTSYS, but 23441 will return EINTR. 23442 23443 warn 23444 23445 Name 23446 23447 warn -- formatted error messages 23448 23449 Synopsis 23450 23451 #include 23452 23453 void warn (const char * fmt , ...); 23454 23455 Description 23456 23457 The warn() function shall display a formatted error message on 23458 the standard error stream. The output shall consist of the last 23459 component of the program name, a colon character, and a space 23460 character. If fmt is non-NULL, it shall be used as a format 23461 string for the printf() family of functions, and the formatted 23462 message, a colon character, and a space are written to stderr. 23463 Finally, the error message string affiliated with the current 23464 value of the global variable errno shall be written to stderr, 23465 followed by a newline character. 23466 23467 Return Value 23468 23469 None. 23470 23471 Errors 23472 23473 None. 23474 23475 warnx 23476 23477 Name 23478 23479 warnx -- formatted error messages 23480 23481 Synopsis 23482 23483 #include 23484 23485 void warnx (const char * fmt , ...); 23486 23487 Description 23488 23489 The warnx() function shall display a formatted error message on 23490 the standard error stream. The last component of the program 23491 name, a colon character, and a space shall be output. If fmt is 23492 non-NULL, it shall be used as the format string for the 23493 printf() family of functions, and the formatted error message, 23494 a colon character, and a space shall be output. The output 23495 shall be followed by a newline character. 23496 23497 Return Value 23498 23499 None. 23500 23501 Errors 23502 23503 None. 23504 23505 wcstoq 23506 23507 Name 23508 23509 wcstoq -- convert wide string to long long int representation 23510 23511 Synopsis 23512 23513 #include 23514 23515 long long int wcstoq(const wchar_t * restrict nptr, wchar_t ** 23516 restrict endptr, int base); 23517 23518 Description 23519 23520 The wcstoq() function shall convert the initial portion of the 23521 wide string nptr to long long int representation. It is 23522 identical to wcstoll(). 23523 23524 Return Value 23525 23526 Refer to wcstoll(). 23527 23528 Errors 23529 23530 Refer to wcstoll(). 23531 23532 wcstouq 23533 23534 Name 23535 23536 wcstouq -- convert wide string to unsigned long long int 23537 representation 23538 23539 Synopsis 23540 23541 #include 23542 23543 unsigned long long wcstouq(const wchar_t * restrict nptr, 23544 wchar_t ** restrict endptr, int base); 23545 23546 Description 23547 23548 The wcstouq() function shall convert the initial portion of the 23549 wide string nptr to unsigned long long int representation. It 23550 is identical to wcstoull(). 23551 23552 Return Value 23553 23554 Refer to wcstoull(). 23555 23556 Errors 23557 23558 Refer to wcstoull(). 23559 23560 wscanf 23561 23562 Name 23563 23564 wscanf -- convert formatted input 23565 23566 Description 23567 23568 The scanf() family of functions shall behave as described in 23569 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except as noted below. 23570 23571 Differences 23572 23573 The %s, %S and %[ conversion specifiers shall accept an option 23574 length modifier a, which shall cause a memory buffer to be 23575 allocated to hold the string converted. In such a case, the 23576 argument corresponding to the conversion specifier should be a 23577 reference to a pointer value that will receive a pointer to the 23578 allocated buffer. If there is insufficient memory to allocate a 23579 buffer, the function may set errno to ENOMEM and a conversion 23580 error results. 23581 23582 Note: This directly conflicts with the ISO C (1999) usage of 23583 %a as a conversion specifier for hexadecimal float values. 23584 While this conversion specifier should be supported, a 23585 format specifier such as "%aseconds" will have a different 23586 meaning on an LSB conforming system. 23587 23588 xdr_u_int 23589 23590 Name 23591 23592 xdr_u_int -- library routines for external data representation 23593 23594 Synopsis 23595 23596 int xdr_u_int(XDR * xdrs, unsigned int * up); 23597 23598 Description 23599 23600 xdr_u_int() is a filter primitive that translates between C 23601 unsigned integers and their external representations. 23602 23603 Return Value 23604 23605 On success, 1 is returned. On error, 0 is returned. 23606 23607 xdrstdio_create 23608 23609 Name 23610 23611 xdrstdio_create -- library routines for external data 23612 representation 23613 23614 Synopsis 23615 23616 #include 23617 23618 void xdrstdio_create(XDR * xdrs, FILE * file, enum xdr_op op); 23619 23620 Description 23621 23622 The xdrstdio_create() function shall initialize the XDR stream 23623 object referred to by xdrs. The XDR stream data shall be 23624 written to, or read from, the standard I/O stream associated 23625 with file. If the operation op is XDR_ENCODE, encoded data 23626 shall be written to file. If op is XDR_DECODE, encoded data 23627 shall be read from file. If op is XDR_FREE, the XDR stream 23628 object may be used to deallocate storage allocated by a 23629 previous XDR_DECODE. 23630 23631 The associated destroy function shall flush the file I/O 23632 stream, but not close it. 23633 23634 Return Value 23635 23636 None. 23637 __________________________________________________________ 23638 23639 14.6. Interfaces for libm 23640 23641 Table 14-38 defines the library name and shared object name for 23642 the libm library 23643 23644 Table 14-38. libm Definition 23645 Library: libm 23646 SONAME: See architecture specific part. 23647 23648 The behavior of the interfaces in this library is specified by 23649 the following specifications: 23650 23651 [LSB] This Specification 23652 [SUSv3] POSIX 1003.1-2001 (ISO/IEC 9945-2003) 23653 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 23654 __________________________________________________________ 23655 23656 14.6.1. Math 23657 __________________________________________________________ 23658 23659 14.6.1.1. Interfaces for Math 23660 23661 An LSB conforming implementation shall provide the generic 23662 functions for Math specified in Table 14-39, with the full 23663 mandatory functionality as described in the referenced 23664 underlying specification. 23665 23666 Table 14-39. libm - Math Function Interfaces 23667 __finite [LSB] __finitef [LSB] __finitel [LSB] __fpclassify 23668 [LSB] 23669 __fpclassifyf [LSB] __signbit [LSB] __signbitf [LSB] acos 23670 [SUSv4] 23671 acosf [SUSv4] acosh [SUSv4] acoshf [SUSv4] acoshl [SUSv4] 23672 acosl [SUSv4] asin [SUSv4] asinf [SUSv4] asinh [SUSv4] 23673 asinhf [SUSv4] asinhl [SUSv4] asinl [SUSv4] atan [SUSv4] 23674 atan2 [SUSv4] atan2f [SUSv4] atan2l [SUSv4] atanf [SUSv4] 23675 atanh [SUSv4] atanhf [SUSv4] atanhl [SUSv4] atanl [SUSv4] 23676 cabs [SUSv4] cabsf [SUSv4] cabsl [SUSv4] cacos [SUSv4] 23677 cacosf [SUSv4] cacosh [SUSv4] cacoshf [SUSv4] cacoshl [SUSv4] 23678 cacosl [SUSv4] carg [SUSv4] cargf [SUSv4] cargl [SUSv4] 23679 casin [SUSv4] casinf [SUSv4] casinh [SUSv4] casinhf [SUSv4] 23680 casinhl [SUSv4] casinl [SUSv4] catan [SUSv4] catanf [SUSv4] 23681 catanh [SUSv4] catanhf [SUSv4] catanhl [SUSv4] catanl [SUSv4] 23682 cbrt [SUSv4] cbrtf [SUSv4] cbrtl [SUSv4] ccos [SUSv4] 23683 ccosf [SUSv4] ccosh [SUSv4] ccoshf [SUSv4] ccoshl [SUSv4] 23684 ccosl [SUSv4] ceil [SUSv4] ceilf [SUSv4] ceill [SUSv4] 23685 cexp [SUSv4] cexpf [SUSv4] cexpl [SUSv4] cimag [SUSv4] 23686 cimagf [SUSv4] cimagl [SUSv4] clog [SUSv4] clog10 [LSB] 23687 clog10f [LSB] clog10l [LSB] clogf [SUSv4] clogl [SUSv4] 23688 conj [SUSv4] conjf [SUSv4] conjl [SUSv4] copysign [SUSv4] 23689 copysignf [SUSv4] copysignl [SUSv4] cos [SUSv4] cosf [SUSv4] 23690 cosh [SUSv4] coshf [SUSv4] coshl [SUSv4] cosl [SUSv4] 23691 cpow [SUSv4] cpowf [SUSv4] cpowl [SUSv4] cproj [SUSv4] 23692 cprojf [SUSv4] cprojl [SUSv4] creal [SUSv4] crealf [SUSv4] 23693 creall [SUSv4] csin [SUSv4] csinf [SUSv4] csinh [SUSv4] 23694 csinhf [SUSv4] csinhl [SUSv4] csinl [SUSv4] csqrt [SUSv4] 23695 csqrtf [SUSv4] csqrtl [SUSv4] ctan [SUSv4] ctanf [SUSv4] 23696 ctanh [SUSv4] ctanhf [SUSv4] ctanhl [SUSv4] ctanl [SUSv4] 23697 drem [LSB] dremf [LSB] dreml [LSB] erf [SUSv4] 23698 erfc [SUSv4] erfcf [SUSv4] erfcl [SUSv4] erff [SUSv4] 23699 erfl [SUSv4] exp [SUSv4] exp10 [LSB] exp10f [LSB] 23700 exp10l [LSB] exp2 [SUSv4] exp2f [SUSv4] expf [SUSv4] 23701 expl [SUSv4] expm1 [SUSv4] expm1f [SUSv4] expm1l [SUSv4] 23702 fabs [SUSv4] fabsf [SUSv4] fabsl [SUSv4] fdim [SUSv4] 23703 fdimf [SUSv4] fdiml [SUSv4] feclearexcept [SUSv4] 23704 fedisableexcept [LSB] 23705 feenableexcept [LSB] fegetenv [SUSv4] fegetexcept [LSB] 23706 fegetexceptflag [SUSv4] 23707 fegetround [SUSv4] feholdexcept [SUSv4] feraiseexcept [SUSv4] 23708 fesetenv [SUSv4] 23709 fesetexceptflag [SUSv4] fesetround [SUSv4] fetestexcept [SUSv4] 23710 feupdateenv [SUSv4] 23711 finite [LSB] finitef [LSB] finitel [LSB] floor [SUSv4] 23712 floorf [SUSv4] floorl [SUSv4] fma [SUSv4] fmaf [SUSv4] 23713 fmal [SUSv4] fmax [SUSv4] fmaxf [SUSv4] fmaxl [SUSv4] 23714 fmin [SUSv4] fminf [SUSv4] fminl [SUSv4] fmod [SUSv4] 23715 fmodf [SUSv4] fmodl [SUSv4] frexp [SUSv4] frexpf [SUSv4] 23716 frexpl [SUSv4] gamma [LSB] gammaf [LSB] gammal [LSB] 23717 hypot [SUSv4] hypotf [SUSv4] hypotl [SUSv4] ilogb [SUSv4] 23718 ilogbf [SUSv4] ilogbl [SUSv4] j0 [SUSv4] j0f [LSB] 23719 j0l [LSB] j1 [SUSv4] j1f [LSB] j1l [LSB] 23720 jn [SUSv4] jnf [LSB] jnl [LSB] ldexp [SUSv4] 23721 ldexpf [SUSv4] ldexpl [SUSv4] lgamma [SUSv4] lgamma_r [LSB] 23722 lgammaf [SUSv4] lgammaf_r [LSB] lgammal [SUSv4] lgammal_r [LSB] 23723 llrint [SUSv4] llrintf [SUSv4] llrintl [SUSv4] llround [SUSv4] 23724 llroundf [SUSv4] llroundl [SUSv4] log [SUSv4] log10 [SUSv4] 23725 log10f [SUSv4] log10l [SUSv4] log1p [SUSv4] log1pf [SUSv4] 23726 log1pl [SUSv4] log2 [SUSv4] log2f [SUSv4] log2l [SUSv4] 23727 logb [SUSv4] logbf [SUSv4] logbl [SUSv4] logf [SUSv4] 23728 logl [SUSv4] lrint [SUSv4] lrintf [SUSv4] lrintl [SUSv4] 23729 lround [SUSv4] lroundf [SUSv4] lroundl [SUSv4] matherr [LSB] 23730 modf [SUSv4] modff [SUSv4] modfl [SUSv4] nan [SUSv4] 23731 nanf [SUSv4] nanl [SUSv4] nearbyint [SUSv4] nearbyintf [SUSv4] 23732 nearbyintl [SUSv4] nextafter [SUSv4] nextafterf [SUSv4] 23733 nextafterl [SUSv4] 23734 nexttoward [SUSv4] nexttowardf [SUSv4] nexttowardl [SUSv4] pow 23735 [SUSv4] 23736 pow10 [LSB] pow10f [LSB] pow10l [LSB] powf [SUSv4] 23737 powl [SUSv4] remainder [SUSv4] remainderf [SUSv4] remainderl 23738 [SUSv4] 23739 remquo [SUSv4] remquof [SUSv4] remquol [SUSv4] rint [SUSv4] 23740 rintf [SUSv4] rintl [SUSv4] round [SUSv4] roundf [SUSv4] 23741 roundl [SUSv4] scalb [SUSv3] scalbf [LSB] scalbl [LSB] 23742 scalbln [SUSv4] scalblnf [SUSv4] scalblnl [SUSv4] scalbn 23743 [SUSv4] 23744 scalbnf [SUSv4] scalbnl [SUSv4] significand [LSB] significandf 23745 [LSB] 23746 significandl [LSB] sin [SUSv4] sincos [LSB] sincosf [LSB] 23747 sincosl [LSB] sinf [SUSv4] sinh [SUSv4] sinhf [SUSv4] 23748 sinhl [SUSv4] sinl [SUSv4] sqrt [SUSv4] sqrtf [SUSv4] 23749 sqrtl [SUSv4] tan [SUSv4] tanf [SUSv4] tanh [SUSv4] 23750 tanhf [SUSv4] tanhl [SUSv4] tanl [SUSv4] tgamma [SUSv4] 23751 tgammaf [SUSv4] tgammal [SUSv4] trunc [SUSv4] truncf [SUSv4] 23752 truncl [SUSv4] y0 [SUSv4] y0f [LSB] y0l [LSB] 23753 y1 [SUSv4] y1f [LSB] y1l [LSB] yn [SUSv4] 23754 ynf [LSB] ynl [LSB] 23755 23756 An LSB conforming implementation shall provide the generic 23757 deprecated functions for Math specified in Table 14-40, with 23758 the full mandatory functionality as described in the referenced 23759 underlying specification. 23760 23761 Note: These interfaces are deprecated, and applications 23762 should avoid using them. These interfaces may be withdrawn 23763 in future releases of this specification. 23764 23765 Table 14-40. libm - Math Deprecated Function Interfaces 23766 drem [LSB] dremf [LSB] dreml [LSB] finite [LSB] 23767 finitef [LSB] finitel [LSB] gamma [LSB] gammaf [LSB] 23768 gammal [LSB] matherr [LSB] 23769 23770 An LSB conforming implementation shall provide the generic data 23771 interfaces for Math specified in Table 14-41, with the full 23772 mandatory functionality as described in the referenced 23773 underlying specification. 23774 23775 Table 14-41. libm - Math Data Interfaces 23776 signgam [SUSv4] 23777 __________________________________________________________ 23778 23779 14.7. Data Definitions for libm 23780 23781 This section defines global identifiers and their values that 23782 are associated with interfaces contained in libm. These 23783 definitions are organized into groups that correspond to system 23784 headers. This convention is used as a convenience for the 23785 reader, and does not imply the existence of these headers, or 23786 their content. Where an interface is defined as requiring a 23787 particular system header file all of the data definitions for 23788 that system header file presented here shall be in effect. 23789 23790 This section gives data definitions to promote binary 23791 application portability, not to repeat source interface 23792 definitions available elsewhere. System providers and 23793 application developers should use this ABI to supplement - not 23794 to replace - source interface definition specifications. 23795 23796 This specification uses the ISO C (1999) C Language as the 23797 reference programming language, and data definitions are 23798 specified in ISO C format. The C language is used here as a 23799 convenient notation. Using a C language description of these 23800 data objects does not preclude their use by other programming 23801 languages. 23802 __________________________________________________________ 23803 23804 14.7.1. complex.h 23805 23806 #define complex _Complex 23807 23808 extern double cabs(double complex); 23809 extern float cabsf(float complex); 23810 extern long double cabsl(long double complex); 23811 extern double complex cacos(double complex); 23812 extern float complex cacosf(float complex); 23813 extern double complex cacosh(double complex); 23814 extern float complex cacoshf(float complex); 23815 extern long double complex cacoshl(long double complex); 23816 extern long double complex cacosl(long double complex); 23817 extern double carg(double complex); 23818 extern float cargf(float complex); 23819 extern long double cargl(long double complex); 23820 extern double complex casin(double complex); 23821 extern float complex casinf(float complex); 23822 extern double complex casinh(double complex); 23823 extern float complex casinhf(float complex); 23824 extern long double complex casinhl(long double complex); 23825 extern long double complex casinl(long double complex); 23826 extern double complex catan(double complex); 23827 extern float complex catanf(float complex); 23828 extern double complex catanh(double complex); 23829 extern float complex catanhf(float complex); 23830 extern long double complex catanhl(long double complex); 23831 extern long double complex catanl(long double complex); 23832 extern double complex ccos(double complex); 23833 extern float complex ccosf(float complex); 23834 extern double complex ccosh(double complex); 23835 extern float complex ccoshf(float complex); 23836 extern long double complex ccoshl(long double complex); 23837 extern long double complex ccosl(long double complex); 23838 extern double complex cexp(double complex); 23839 extern float complex cexpf(float complex); 23840 extern long double complex cexpl(long double complex); 23841 extern double cimag(double complex); 23842 extern float cimagf(float complex); 23843 extern long double cimagl(long double complex); 23844 extern double complex clog(double complex); 23845 extern double complex clog10(double complex); 23846 extern float complex clog10f(float complex); 23847 extern long double complex clog10l(long double complex); 23848 extern float complex clogf(float complex); 23849 extern long double complex clogl(long double complex); 23850 extern double complex conj(double complex); 23851 extern float complex conjf(float complex); 23852 extern long double complex conjl(long double complex); 23853 extern double complex cpow(double complex, double complex); 23854 extern float complex cpowf(float complex, float complex); 23855 extern long double complex cpowl(long double complex, long double complex); 23856 extern double complex cproj(double complex); 23857 extern float complex cprojf(float complex); 23858 extern long double complex cprojl(long double complex); 23859 extern double creal(double complex); 23860 extern float crealf(float complex); 23861 extern long double creall(long double complex); 23862 extern double complex csin(double complex); 23863 extern float complex csinf(float complex); 23864 extern double complex csinh(double complex); 23865 extern float complex csinhf(float complex); 23866 extern long double complex csinhl(long double complex); 23867 extern long double complex csinl(long double complex); 23868 extern double complex csqrt(double complex); 23869 extern float complex csqrtf(float complex); 23870 extern long double complex csqrtl(long double complex); 23871 extern double complex ctan(double complex); 23872 extern float complex ctanf(float complex); 23873 extern double complex ctanh(double complex); 23874 extern float complex ctanhf(float complex); 23875 extern long double complex ctanhl(long double complex); 23876 extern long double complex ctanl(long double complex); 23877 __________________________________________________________ 23878 23879 14.7.2. fenv.h 23880 23881 extern int feclearexcept(int __excepts); 23882 extern int fedisableexcept(int __excepts); 23883 extern int feenableexcept(int __excepts); 23884 extern int fegetenv(fenv_t * __envp); 23885 extern int fegetexcept(void); 23886 extern int fegetexceptflag(fexcept_t * __flagp, int __excepts); 23887 extern int fegetround(void); 23888 extern int feholdexcept(fenv_t * __envp); 23889 extern int feraiseexcept(int __excepts); 23890 extern int fesetenv(const fenv_t * __envp); 23891 extern int fesetexceptflag(const fexcept_t * __flagp, int __excepts); 23892 extern int fesetround(int __rounding_direction); 23893 extern int fetestexcept(int __excepts); 23894 extern int feupdateenv(const fenv_t * __envp); 23895 __________________________________________________________ 23896 23897 14.7.3. math.h 23898 23899 #define DOMAIN 1 23900 #define SING 2 23901 23902 #define FP_NAN 0 23903 #define FP_INFINITE 1 23904 #define FP_ZERO 2 23905 #define FP_SUBNORMAL 3 23906 #define FP_NORMAL 4 23907 23908 #define isnormal(x) (fpclassify (x) == FP_NORMAL) /* Return nonzero value if X is neither zero, subnormal, Inf, n */ 23909 23910 #define HUGE_VAL 0x1.0p2047 23911 #define HUGE_VALF 0x1.0p255f 23912 23913 #define NAN ((float)0x7fc00000UL) 23914 #define M_1_PI 0.31830988618379067154 23915 #define M_LOG10E 0.43429448190325182765 23916 #define M_2_PI 0.63661977236758134308 23917 #define M_LN2 0.69314718055994530942 23918 #define M_SQRT1_2 0.70710678118654752440 23919 #define M_PI_4 0.78539816339744830962 23920 #define M_2_SQRTPI 1.12837916709551257390 23921 #define M_SQRT2 1.41421356237309504880 23922 #define M_LOG2E 1.4426950408889634074 23923 #define M_PI_2 1.57079632679489661923 23924 #define M_LN10 2.30258509299404568402 23925 #define M_E 2.7182818284590452354 23926 #define M_PI 3.14159265358979323846 23927 #define INFINITY HUGE_VALF 23928 23929 #define MATH_ERRNO 1 /* errno set by math functions. */ 23930 #define MATH_ERREXCEPT 2 /* Exceptions raised by math functions.*/ 23931 23932 #define isunordered(u, v) \ 23933 (__extension__({ __typeof__(u) __u = (u); __typeof__(v) __v = (v);fpclassify (__u) == FP_NAN || fpclassify (__v) == FP_NAN; }))/* Return nonzero value if arguments are unordered. */ 23934 #define islessgreater(x, y) \ 23935 (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) && (__x < __y || __y < __x); })) /* Return nonzero value if either X is less than Y or Y is less */ 23936 #define isless(x,y) \ 23937 (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) && __x < __y; })) /* Return nonzero valueif X is less than Y. */ 23938 #define islessequal(x, y) \ 23939 (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) && __x <= __y; })) /* Return nonzero valueif X is less than or equal to Y. */ 23940 #define isgreater(x,y) \ 23941 (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) && __x > __y; })) /* Return nonzero valueif X is greater than Y. */ 23942 #define isgreaterequal(x,y) \ 23943 (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) && __x >= __y; })) /* Return nonzero valueif X is greater than or equal to Y. */ 23944 23945 extern int __finite(double); 23946 extern int __finitef(float); 23947 extern int __finitel(long double); 23948 extern int __fpclassify(double); 23949 extern int __fpclassifyf(float); 23950 extern int __isinf(double); 23951 extern int __isinff(float); 23952 extern int __isinfl(long double); 23953 extern int __isnan(double); 23954 extern int __isnanf(float); 23955 extern int __isnanl(long double); 23956 extern int __signbit(double); 23957 extern int __signbitf(float); 23958 extern double acos(double); 23959 extern float acosf(float); 23960 extern double acosh(double); 23961 extern float acoshf(float); 23962 extern long double acoshl(long double); 23963 extern long double acosl(long double); 23964 extern double asin(double); 23965 extern float asinf(float); 23966 extern double asinh(double); 23967 extern float asinhf(float); 23968 extern long double asinhl(long double); 23969 extern long double asinl(long double); 23970 extern double atan(double); 23971 extern double atan2(double, double); 23972 extern float atan2f(float, float); 23973 extern long double atan2l(long double, long double); 23974 extern float atanf(float); 23975 extern double atanh(double); 23976 extern float atanhf(float); 23977 extern long double atanhl(long double); 23978 extern long double atanl(long double); 23979 extern double cbrt(double); 23980 extern float cbrtf(float); 23981 extern long double cbrtl(long double); 23982 extern double ceil(double); 23983 extern float ceilf(float); 23984 extern long double ceill(long double); 23985 extern double copysign(double, double); 23986 extern float copysignf(float, float); 23987 extern long double copysignl(long double, long double); 23988 extern double cos(double); 23989 extern float cosf(float); 23990 extern double cosh(double); 23991 extern float coshf(float); 23992 extern long double coshl(long double); 23993 extern long double cosl(long double); 23994 extern double drem(double, double); 23995 extern float dremf(float, float); 23996 extern long double dreml(long double, long double); 23997 extern double erf(double); 23998 extern double erfc(double); 23999 extern float erfcf(float); 24000 extern long double erfcl(long double); 24001 extern float erff(float); 24002 extern long double erfl(long double); 24003 extern double exp(double); 24004 extern double exp10(double); 24005 extern float exp10f(float); 24006 extern long double exp10l(long double); 24007 extern double exp2(double); 24008 extern float exp2f(float); 24009 extern float expf(float); 24010 extern long double expl(long double); 24011 extern double expm1(double); 24012 extern float expm1f(float); 24013 extern long double expm1l(long double); 24014 extern double fabs(double); 24015 extern float fabsf(float); 24016 extern long double fabsl(long double); 24017 extern double fdim(double, double); 24018 extern float fdimf(float, float); 24019 extern long double fdiml(long double, long double); 24020 extern int finite(double); 24021 extern int finitef(float); 24022 extern int finitel(long double); 24023 extern double floor(double); 24024 extern float floorf(float); 24025 extern long double floorl(long double); 24026 extern double fma(double, double, double); 24027 extern float fmaf(float, float, float); 24028 extern long double fmal(long double, long double, long double); 24029 extern double fmax(double, double); 24030 extern float fmaxf(float, float); 24031 extern long double fmaxl(long double, long double); 24032 extern double fmin(double, double); 24033 extern float fminf(float, float); 24034 extern long double fminl(long double, long double); 24035 extern double fmod(double, double); 24036 extern float fmodf(float, float); 24037 extern long double fmodl(long double, long double); 24038 extern double frexp(double, int *); 24039 extern float frexpf(float, int *); 24040 extern long double frexpl(long double, int *); 24041 extern double gamma(double); 24042 extern float gammaf(float); 24043 extern long double gammal(long double); 24044 extern double hypot(double, double); 24045 extern float hypotf(float, float); 24046 extern long double hypotl(long double, long double); 24047 extern int ilogb(double); 24048 extern int ilogbf(float); 24049 extern int ilogbl(long double); 24050 extern double j0(double); 24051 extern float j0f(float); 24052 extern long double j0l(long double); 24053 extern double j1(double); 24054 extern float j1f(float); 24055 extern long double j1l(long double); 24056 extern double jn(int, double); 24057 extern float jnf(int, float); 24058 extern long double jnl(int, long double); 24059 extern double ldexp(double, int); 24060 extern float ldexpf(float, int); 24061 extern long double ldexpl(long double, int); 24062 extern double lgamma(double); 24063 extern double lgamma_r(double, int *); 24064 extern float lgammaf(float); 24065 extern float lgammaf_r(float, int *); 24066 extern long double lgammal(long double); 24067 extern long double lgammal_r(long double, int *); 24068 extern long long int llrint(double); 24069 extern long long int llrintf(float); 24070 extern long long int llrintl(long double); 24071 extern long long int llround(double); 24072 extern long long int llroundf(float); 24073 extern long long int llroundl(long double); 24074 extern double log(double); 24075 extern double log10(double); 24076 extern float log10f(float); 24077 extern long double log10l(long double); 24078 extern double log1p(double); 24079 extern float log1pf(float); 24080 extern long double log1pl(long double); 24081 extern double log2(double); 24082 extern float log2f(float); 24083 extern long double log2l(long double); 24084 extern double logb(double); 24085 extern float logbf(float); 24086 extern long double logbl(long double); 24087 extern float logf(float); 24088 extern long double logl(long double); 24089 extern long int lrint(double); 24090 extern long int lrintf(float); 24091 extern long int lrintl(long double); 24092 extern long int lround(double); 24093 extern long int lroundf(float); 24094 extern long int lroundl(long double); 24095 extern double modf(double, double *); 24096 extern float modff(float, float *); 24097 extern long double modfl(long double, long double *); 24098 extern double nan(const char *); 24099 extern float nanf(const char *); 24100 extern long double nanl(const char *); 24101 extern double nearbyint(double); 24102 extern float nearbyintf(float); 24103 extern long double nearbyintl(long double); 24104 extern double nextafter(double, double); 24105 extern float nextafterf(float, float); 24106 extern long double nextafterl(long double, long double); 24107 extern double nexttoward(double, long double); 24108 extern float nexttowardf(float, long double); 24109 extern long double nexttowardl(long double, long double); 24110 extern double pow(double, double); 24111 extern double pow10(double); 24112 extern float pow10f(float); 24113 extern long double pow10l(long double); 24114 extern float powf(float, float); 24115 extern long double powl(long double, long double); 24116 extern double remainder(double, double); 24117 extern float remainderf(float, float); 24118 extern long double remainderl(long double, long double); 24119 extern double remquo(double, double, int *); 24120 extern float remquof(float, float, int *); 24121 extern long double remquol(long double, long double, int *); 24122 extern double rint(double); 24123 extern float rintf(float); 24124 extern long double rintl(long double); 24125 extern double round(double); 24126 extern float roundf(float); 24127 extern long double roundl(long double); 24128 extern double scalb(double, double); 24129 extern float scalbf(float, float); 24130 extern long double scalbl(long double, long double); 24131 extern double scalbln(double, long int); 24132 extern float scalblnf(float, long int); 24133 extern long double scalblnl(long double, long int); 24134 extern double scalbn(double, int); 24135 extern float scalbnf(float, int); 24136 extern long double scalbnl(long double, int); 24137 extern int signgam; 24138 extern double significand(double); 24139 extern float significandf(float); 24140 extern long double significandl(long double); 24141 extern double sin(double); 24142 extern void sincos(double, double *, double *); 24143 extern void sincosf(float, float *, float *); 24144 extern void sincosl(long double, long double *, long double *); 24145 extern float sinf(float); 24146 extern double sinh(double); 24147 extern float sinhf(float); 24148 extern long double sinhl(long double); 24149 extern long double sinl(long double); 24150 extern double sqrt(double); 24151 extern float sqrtf(float); 24152 extern long double sqrtl(long double); 24153 extern double tan(double); 24154 extern float tanf(float); 24155 extern double tanh(double); 24156 extern float tanhf(float); 24157 extern long double tanhl(long double); 24158 extern long double tanl(long double); 24159 extern double tgamma(double); 24160 extern float tgammaf(float); 24161 extern long double tgammal(long double); 24162 extern double trunc(double); 24163 extern float truncf(float); 24164 extern long double truncl(long double); 24165 extern double y0(double); 24166 extern float y0f(float); 24167 extern long double y0l(long double); 24168 extern double y1(double); 24169 extern float y1f(float); 24170 extern long double y1l(long double); 24171 extern double yn(int, double); 24172 extern float ynf(int, float); 24173 extern long double ynl(int, long double); 24174 __________________________________________________________ 24175 24176 14.8. Interface Definitions for libm 24177 24178 Table of Contents 24179 __finite -- test for infinity 24180 __finitef -- test for infinity 24181 __finitel -- test for infinity 24182 __fpclassify -- Classify real floating type 24183 __fpclassifyf -- Classify real floating type 24184 __signbit -- test sign of floating point value 24185 __signbitf -- test sign of floating point value 24186 clog10 -- Logarithm of a Complex Number 24187 clog10f -- Logarithm of a Complex Number 24188 clog10l -- Logarithm of a Complex Number 24189 drem -- Floating Point Remainder (DEPRECATED) 24190 dremf -- Floating Point Remainder (DEPRECATED) 24191 dreml -- Floating Point Remainder (DEPRECATED) 24192 exp10 -- Base-10 power function 24193 exp10f -- Base-10 power function 24194 exp10l -- Base-10 power function 24195 fedisableexcept -- disable floating point exceptions 24196 feenableexcept -- enable floating point exceptions 24197 fegetexcept -- query floating point exception handling state 24198 finite -- test for infinity (DEPRECATED) 24199 finitef -- test for infinity (DEPRECATED) 24200 finitel -- test for infinity (DEPRECATED) 24201 gamma -- log gamma function (DEPRECATED) 24202 gammaf -- log gamma function (DEPRECATED) 24203 gammal -- log gamma function (DEPRECATED) 24204 j0f -- Bessel functions 24205 j0l -- Bessel functions 24206 j1f -- Bessel functions 24207 j1l -- Bessel functions 24208 jnf -- Bessel functions 24209 jnl -- Bessel functions 24210 lgamma_r -- log gamma functions 24211 lgammaf_r -- log gamma functions 24212 lgammal_r -- log gamma functions 24213 matherr -- math library exception handling 24214 pow10 -- Base-10 power function 24215 pow10f -- Base-10 power function 24216 pow10l -- Base-10 power function 24217 scalbf -- load exponent of radix-independent floating point 24218 number 24219 24220 scalbl -- load exponent of radix-independent floating point 24221 number 24222 24223 significand -- floating point mantissa 24224 significandf -- floating point mantissa 24225 significandl -- floating point mantissa 24226 sincos -- trigonometric functions 24227 sincosf -- trigonometric functions 24228 sincosl -- trigonometric functions 24229 y0f -- Bessel functions 24230 y0l -- Bessel functions 24231 y1f -- Bessel functions 24232 y1l -- Bessel functions 24233 ynf -- Bessel functions 24234 ynl -- Bessel functions 24235 24236 The interfaces defined on the following pages are included in 24237 libm and are defined by this specification. Unless otherwise 24238 noted, these interfaces shall be included in the source 24239 standard. 24240 24241 Other interfaces listed in Section 14.6 shall behave as 24242 described in the referenced base document. 24243 24244 __finite 24245 24246 Name 24247 24248 __finite -- test for infinity 24249 24250 Synopsis 24251 24252 #include 24253 24254 int __finite(double arg); 24255 24256 Description 24257 24258 __finite() has the same specification as isfinite() in POSIX 24259 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 24260 for __finite() is known to be double. 24261 24262 __finite() is not in the source standard; it is only in the 24263 binary standard. 24264 24265 __finitef 24266 24267 Name 24268 24269 __finitef -- test for infinity 24270 24271 Synopsis 24272 24273 #include 24274 24275 int __finitef(float arg); 24276 24277 Description 24278 24279 __finitef() has the same specification as isfinite() in POSIX 24280 1003.1-2008 (ISO/IEC 9945-2009) except that the argument type 24281 for __finitef() is known to be float. 24282 24283 __finitef() is not in the source standard; it is only in the 24284 binary standard. 24285 24286 __finitel 24287 24288 Name 24289 24290 __finitel -- test for infinity 24291 24292 Synopsis 24293 24294 #include 24295 24296 int __finitel(long double arg); 24297 24298 Description 24299 24300 __finitel() has the same specification as isfinite() in the 24301 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that the argument 24302 type for __finitel() is known to be long double. 24303 24304 __finitel() is not in the source standard; it is only in the 24305 binary standard. 24306 24307 __fpclassify 24308 24309 Name 24310 24311 __fpclassify -- Classify real floating type 24312 24313 Synopsis 24314 24315 int __fpclassify(double arg); 24316 24317 Description 24318 24319 __fpclassify() has the same specification as fpclassify() in 24320 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that the argument 24321 type for __fpclassify() is known to be double. 24322 24323 __fpclassify() is not in the source standard; it is only in the 24324 binary standard. 24325 24326 __fpclassifyf 24327 24328 Name 24329 24330 __fpclassifyf -- Classify real floating type 24331 24332 Synopsis 24333 24334 int __fpclassifyf(float arg); 24335 24336 Description 24337 24338 __fpclassifyf() has the same specification as fpclassify() in 24339 POSIX 1003.1-2008 (ISO/IEC 9945-2009), except that the argument 24340 type for __fpclassifyf() is known to be float. 24341 24342 __fpclassifyf() is not in the source standard; it is only in 24343 the binary standard. 24344 24345 __signbit 24346 24347 Name 24348 24349 __signbit -- test sign of floating point value 24350 24351 Synopsis 24352 24353 #include 24354 24355 int __signbit(double arg); 24356 24357 Description 24358 24359 __signbit() has the same specification as signbit() in POSIX 24360 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 24361 for __signbit() is known to be double. 24362 24363 __signbit() is not in the source standard; it is only in the 24364 binary standard. 24365 24366 __signbitf 24367 24368 Name 24369 24370 __signbitf -- test sign of floating point value 24371 24372 Synopsis 24373 24374 #include 24375 24376 int __signbitf(float arg); 24377 24378 Description 24379 24380 __signbitf() has the same specification as signbit() in POSIX 24381 1003.1-2008 (ISO/IEC 9945-2009), except that the argument type 24382 for __signbitf() is known to be float. 24383 24384 __signbitf() is not in the source standard; it is only in the 24385 binary standard. 24386 24387 clog10 24388 24389 Name 24390 24391 clog10 -- Logarithm of a Complex Number 24392 24393 Synopsis 24394 24395 #include 24396 24397 double complex clog10(double complex z); 24398 24399 Description 24400 24401 The clog10() function shall compute the base 10 logarithm of 24402 the complex number z. 24403 24404 Return Value 24405 24406 The clog10() function shall return the base 10 logarithm. 24407 24408 clog10f 24409 24410 Name 24411 24412 clog10f -- Logarithm of a Complex Number 24413 24414 Synopsis 24415 24416 #include 24417 24418 float complex clog10f(float complex z); 24419 24420 Description 24421 24422 The clog10f() function shall compute the base 10 logarithm of 24423 the complex number z. 24424 24425 Return Value 24426 24427 The clog10f() function shall return the base 10 logarithm. 24428 24429 clog10l 24430 24431 Name 24432 24433 clog10l -- Logarithm of a Complex Number 24434 24435 Synopsis 24436 24437 #include 24438 24439 long double complex clog10l(long double complex z); 24440 24441 Description 24442 24443 The clog10l() function shall compute the base 10 logarithm of 24444 the complex number z. 24445 24446 Return Value 24447 24448 The clog10l() function shall return the base 10 logarithm. 24449 24450 drem 24451 24452 Name 24453 24454 drem -- Floating Point Remainder (DEPRECATED) 24455 24456 Synopsis 24457 24458 #include 24459 24460 double drem(double x, double y); 24461 24462 Description 24463 24464 The drem() function shall return the floating point remainder, 24465 x REM y as required by IEC 60559/IEEE 754 Floating Point in the 24466 same way as remainder(). 24467 24468 Note: This function is included only for backwards 24469 compatibility; applications should use remainder() instead. 24470 24471 Returns 24472 24473 See remainder(). 24474 24475 See Also 24476 24477 remainder(), dremf(), dreml() 24478 24479 dremf 24480 24481 Name 24482 24483 dremf -- Floating Point Remainder (DEPRECATED) 24484 24485 Synopsis 24486 24487 #include 24488 24489 double dremf(double x, double y); 24490 24491 Description 24492 24493 The dremf() function shall return the floating point remainder, 24494 x REM y as required by IEC 60559/IEEE 754 Floating Point in the 24495 same way as remainderf(). 24496 24497 Note: This function is included only for backwards 24498 compatibility; applications should use remainderf() instead. 24499 24500 Returns 24501 24502 See remainderf(). 24503 24504 See Also 24505 24506 remainderf(), drem(), dreml() 24507 24508 dreml 24509 24510 Name 24511 24512 dreml -- Floating Point Remainder (DEPRECATED) 24513 24514 Synopsis 24515 24516 #include 24517 24518 double dreml(double x, double y); 24519 24520 Description 24521 24522 The dreml() function shall return the floating point remainder, 24523 x REM y as required by IEC 60559/IEEE 754 Floating Point in the 24524 same way as remainderl(). 24525 24526 Note: This function is included only for backwards 24527 compatibility; applications should use remainderl() instead. 24528 24529 Returns 24530 24531 See remainderl(). 24532 24533 See Also 24534 24535 remainderl(), drem(), dremf() 24536 24537 exp10 24538 24539 Name 24540 24541 exp10 -- Base-10 power function 24542 24543 Synopsis 24544 24545 #include 24546 24547 double exp10(double x); 24548 24549 Description 24550 24551 The exp10() function shall return 10^x. 24552 24553 Note: This function is identical to pow10(). 24554 24555 Returns 24556 24557 Upon successful completion, exp10() shall return 10 rised to 24558 the power of x. 24559 24560 If the correct value would cause overflow, a range error shall 24561 occur and exp10() shall return ±HUGE_VAL, with the same sign as 24562 the correct value of the function. 24563 24564 See Also 24565 24566 pow10(), exp10f(), exp10l() 24567 24568 exp10f 24569 24570 Name 24571 24572 exp10f -- Base-10 power function 24573 24574 Synopsis 24575 24576 #include 24577 24578 float exp10f(float x); 24579 24580 Description 24581 24582 The exp10f() function shall return 10^x. 24583 24584 Note: This function is identical to pow10f(). 24585 24586 Returns 24587 24588 Upon successful completion, exp10f() shall return 10 rised to 24589 the power of x. 24590 24591 If the correct value would cause overflow, a range error shall 24592 occur and exp10f() shall return ±HUGE_VALF, with the same sign 24593 as the correct value of the function. 24594 24595 See Also 24596 24597 pow10f(), exp10(), exp10l() 24598 24599 exp10l 24600 24601 Name 24602 24603 exp10l -- Base-10 power function 24604 24605 Synopsis 24606 24607 #include 24608 24609 long double exp10l(long double x); 24610 24611 Description 24612 24613 The exp10l() function shall return 10^x. 24614 24615 Note: This function is identical to pow10l(). 24616 24617 Returns 24618 24619 Upon successful completion, exp10l() shall return 10 rised to 24620 the power of x. 24621 24622 If the correct value would cause overflow, a range error shall 24623 occur and exp10l() shall return ±HUGE_VALL, with the same sign 24624 as the correct value of the function. 24625 24626 See Also 24627 24628 pow10l(), exp10(), exp10f() 24629 24630 fedisableexcept 24631 24632 Name 24633 24634 fedisableexcept -- disable floating point exceptions 24635 24636 Synopsis 24637 24638 #include 24639 24640 int fedisableexcept(int excepts); 24641 24642 Description 24643 24644 The fedisableexcept() function disables traps for each of the 24645 exceptions represented by the mask excepts. 24646 24647 Return Value 24648 24649 The fedisableexcept() function returns the previous set of 24650 enabled exceptions on success. On error, -1 is returned. 24651 24652 Errors 24653 24654 No errors are defined, but the function will fail if not 24655 supported on the architecture. 24656 24657 feenableexcept 24658 24659 Name 24660 24661 feenableexcept -- enable floating point exceptions 24662 24663 Synopsis 24664 24665 #include 24666 24667 int feenableexcept(int excepts); 24668 24669 Description 24670 24671 The feenableexcept() function enables traps for each of the 24672 exceptions represented by the mask excepts. 24673 24674 Return Value 24675 24676 The feenableexcept() function returns the previous set of 24677 enabled exceptions on success. On error, -1 is returned. 24678 24679 Errors 24680 24681 No errors are defined, but the function will fail if not 24682 supported on the architecture. 24683 24684 fegetexcept 24685 24686 Name 24687 24688 fegetexcept -- query floating point exception handling state 24689 24690 Synopsis 24691 24692 #include 24693 24694 int fegetexcept(void); 24695 24696 Description 24697 24698 The fegetexcept() function returns the set of all currently 24699 enabled exceptions. 24700 24701 Return Value 24702 24703 The fegetexcept() function returns the set of all currently 24704 enabled exceptions. 24705 24706 Errors 24707 24708 No errors are defined, but the function will fail if not 24709 supported on the architecture. 24710 24711 finite 24712 24713 Name 24714 24715 finite -- test for infinity (DEPRECATED) 24716 24717 Synopsis 24718 24719 #define _SVID_SOURCE 24720 #include 24721 24722 int finite(double arg); 24723 24724 Description 24725 24726 The finite() function shall test whether its argument is 24727 neither INFINITY nor not a number (NaN). 24728 24729 Returns 24730 24731 On success, finite() shall return 1. Otherwise the function 24732 shall return 0. 24733 24734 Note: The ISO C (1999) standard defines the function 24735 isfinite(), which is more general purpose. The finite() 24736 function is deprecated, and applications should use 24737 isfinite() instead. A future revision of this standard may 24738 remove this function. 24739 24740 See Also 24741 24742 isfinite(), finitef(), finitel() 24743 24744 finitef 24745 24746 Name 24747 24748 finitef -- test for infinity (DEPRECATED) 24749 24750 Synopsis 24751 24752 #define _SVID_SOURCE 24753 #include 24754 24755 int finitef(float arg); 24756 24757 Description 24758 24759 The finitef() function shall test whether its argument is 24760 neither INFINITY nor not a number (NaN). 24761 24762 Returns 24763 24764 On success, finitef() shall return 1. Otherwise the function 24765 shall return 0. 24766 24767 Note: The ISO C (1999) standard defines the function 24768 isfinite(), which is more general purpose. The finitef() 24769 function is deprecated, and applications should use 24770 isfinite() instead. A future revision of this standard may 24771 remove this function. 24772 24773 See Also 24774 24775 isfinite(), finite(), finitel() 24776 24777 finitel 24778 24779 Name 24780 24781 finitel -- test for infinity (DEPRECATED) 24782 24783 Synopsis 24784 24785 #define _SVID_SOURCE 24786 #include 24787 24788 int finitel(long double arg); 24789 24790 Description 24791 24792 The finitel() function shall test whether its argument is 24793 neither INFINITY nor not a number (NaN). 24794 24795 Returns 24796 24797 On success, finitel() shall return 1. Otherwise the function 24798 shall return 0. 24799 24800 Note: The ISO C (1999) standard defines the function 24801 isfinite(), which is more general purpose. The finitel() 24802 function is deprecated, and applications should use 24803 isfinite() instead. A future revision of this standard may 24804 remove this function. 24805 24806 See Also 24807 24808 isfinite(), finite(), finitef() 24809 24810 gamma 24811 24812 Name 24813 24814 gamma -- log gamma function (DEPRECATED) 24815 24816 Synopsis 24817 24818 #include 24819 24820 double gammaf(double x); 24821 24822 Description 24823 24824 The gamma() function is identical to lgamma() in POSIX 24825 1003.1-2008 (ISO/IEC 9945-2009). 24826 24827 Note: The name gamma() for this function is deprecated and 24828 should not be used. 24829 24830 Returns 24831 24832 See lgamma(). 24833 24834 See Also 24835 24836 lgamma(), lgammaf(), lgammal(), gammaf(), gammal() 24837 24838 gammaf 24839 24840 Name 24841 24842 gammaf -- log gamma function (DEPRECATED) 24843 24844 Synopsis 24845 24846 #include 24847 24848 float gammaf(float x); 24849 24850 Description 24851 24852 The gammaf() function is identical to lgammaf() in POSIX 24853 1003.1-2008 (ISO/IEC 9945-2009). 24854 24855 Note: The name gammaf() for this function is deprecated and 24856 should not be used. 24857 24858 Returns 24859 24860 See lgammaf(). 24861 24862 See Also 24863 24864 lgamma(), lgammaf(), lgammal(), gamma(), gammal() 24865 24866 gammal 24867 24868 Name 24869 24870 gammal -- log gamma function (DEPRECATED) 24871 24872 Synopsis 24873 24874 #include 24875 24876 long double gammal(long double x); 24877 24878 Description 24879 24880 The gammal() function is identical to lgammal() in POSIX 24881 1003.1-2008 (ISO/IEC 9945-2009). 24882 24883 Note: The name gammal() for this function is deprecated and 24884 should not be used. 24885 24886 Returns 24887 24888 See lgammal(). 24889 24890 See Also 24891 24892 lgamma(), lgammaf(), lgammal(), gamma(), gammaf() 24893 24894 j0f 24895 24896 Name 24897 24898 j0f -- Bessel functions 24899 24900 Synopsis 24901 24902 #include 24903 24904 float j0f(float x); 24905 24906 Description 24907 24908 The j0f() function is identical to j0(), except that the 24909 argument x and the return value is a float. 24910 24911 Returns 24912 24913 See j0(). 24914 24915 See Also 24916 24917 j0(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), y0(), 24918 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 24919 24920 j0l 24921 24922 Name 24923 24924 j0l -- Bessel functions 24925 24926 Synopsis 24927 24928 #include 24929 24930 long double j0l(long double x); 24931 24932 Description 24933 24934 The j0l() function is identical to j0(), except that the 24935 argument x and the return value is a long double. 24936 24937 Returns 24938 24939 See j0(). 24940 24941 See Also 24942 24943 j0(), j0f(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), y0(), 24944 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 24945 24946 j1f 24947 24948 Name 24949 24950 j1f -- Bessel functions 24951 24952 Synopsis 24953 24954 #include 24955 24956 float j1f(float x); 24957 24958 Description 24959 24960 The j1f() function is identical to j1(), except that the 24961 argument x and the return value is a float. 24962 24963 Returns 24964 24965 See j1(). 24966 24967 See Also 24968 24969 j0(), j0f(), j0l(), j1(), j1l(), jn(), jnf(), jnl(), y0(), 24970 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 24971 24972 j1l 24973 24974 Name 24975 24976 j1l -- Bessel functions 24977 24978 Synopsis 24979 24980 #include 24981 24982 long double j1l(long double x); 24983 24984 Description 24985 24986 The j1l() function is identical to j1(), except that the 24987 argument x and the return value is a long double. 24988 24989 Returns 24990 24991 See j0(). 24992 24993 See Also 24994 24995 j0(), j0f(), j0l(), j1(), j1f(), jn(), jnf(), jnl(), y0(), 24996 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 24997 24998 jnf 24999 25000 Name 25001 25002 jnf -- Bessel functions 25003 25004 Synopsis 25005 25006 #include 25007 25008 float jnf(float x); 25009 25010 Description 25011 25012 The jnf() function is identical to jn(), except that the 25013 argument x and the return value is a float. 25014 25015 Returns 25016 25017 See jn(). 25018 25019 See Also 25020 25021 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnl(), y0(), 25022 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 25023 25024 jnl 25025 25026 Name 25027 25028 jnl -- Bessel functions 25029 25030 Synopsis 25031 25032 #include 25033 25034 long double jnl(long double x); 25035 25036 Description 25037 25038 The jnl() function is identical to jn(), except that the 25039 argument x and the return value is a long double. 25040 25041 Returns 25042 25043 See jn(). 25044 25045 See Also 25046 25047 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), y0(), 25048 y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 25049 25050 lgamma_r 25051 25052 Name 25053 25054 lgamma_r -- log gamma functions 25055 25056 Synopsis 25057 25058 #include 25059 25060 double lgamma_r(double x, int * signp); 25061 25062 Description 25063 25064 The lgamma_r() function shall compute the natural logarithm of 25065 the absolute value of the Gamma function, as lgamma(). However, 25066 instead of setting the external integer signgam to the sign of 25067 the Gamma function, lgamma_r() shall set the integer referenced 25068 by signp to the sign. 25069 25070 Returns 25071 25072 See lgamma() and signgam. 25073 25074 See Also 25075 25076 lgamma(), lgammaf_r(), lgammal_r(), signgam 25077 25078 lgammaf_r 25079 25080 Name 25081 25082 lgammaf_r -- log gamma functions 25083 25084 Synopsis 25085 25086 #include 25087 25088 float lgammaf_r(float x, int * signp); 25089 25090 Description 25091 25092 The lgammaf_r() function shall compute the natural logarithm of 25093 the absolute value of the Gamma function, as lgammaf(). 25094 However, instead of setting the external integer signgam to the 25095 sign of the Gamma function, lgammaf_r() shall set the integer 25096 referenced by signp to the sign. 25097 25098 Returns 25099 25100 See lgammaf() and signgam. 25101 25102 See Also 25103 25104 lgamma(), lgamma_r(), lgammal_r(), signgam 25105 25106 lgammal_r 25107 25108 Name 25109 25110 lgammal_r -- log gamma functions 25111 25112 Synopsis 25113 25114 #include 25115 25116 double lgammal_r(double x, int * signp); 25117 25118 Description 25119 25120 The lgammal_r() function shall compute the natural logarithm of 25121 the absolute value of the Gamma function, as lgammal(). 25122 However, instead of setting the external integer signgam to the 25123 sign of the Gamma function, lgammal_r() shall set the integer 25124 referenced by signp to the sign. 25125 25126 Returns 25127 25128 See lgammal() and signgam. 25129 25130 See Also 25131 25132 lgamma(), lgamma_r(), lgammaf_r(), signgam 25133 25134 matherr 25135 25136 Name 25137 25138 matherr -- math library exception handling 25139 25140 Synopsis 25141 25142 #include 25143 25144 int matherr(struct exception *__exc); 25145 25146 Description 25147 25148 The System V Interface Definition (SVID) Issue 3 specifies that 25149 various math functions should invoke a function called 25150 matherr() if a math exception is detected. This function is 25151 called before the math function returns; after matherr() 25152 returns, the system then returns to the math function, which in 25153 turn returns to the caller. 25154 25155 matherr() is obsolete; indeed it was withdrawn in the System V 25156 Interface Definition (SVID) Issue 4, and is required only by 25157 this specification for historical compatibility, and will be 25158 removed in a future version. The floating point environment 25159 function group including fesetenv() should be used instead. 25160 25161 matherr() is not in the source standard; it is only in the 25162 binary standard. 25163 25164 See Also 25165 25166 fesetenv(), fegetenv(), feupdateenv(). 25167 25168 pow10 25169 25170 Name 25171 25172 pow10 -- Base-10 power function 25173 25174 Synopsis 25175 25176 #include 25177 25178 double pow10(double x); 25179 25180 Description 25181 25182 The pow10() function shall return 10^x. 25183 25184 Note: This function is identical to exp10(). 25185 25186 Returns 25187 25188 Upon successful completion, pow10() shall return 10 rised to 25189 the power of x. 25190 25191 If the correct value would cause overflow, a range error shall 25192 occur and pow10() shall return ±HUGE_VAL, with the same sign as 25193 the correct value of the function. 25194 25195 See Also 25196 25197 exp10(), pow10f(), pow10l() 25198 25199 pow10f 25200 25201 Name 25202 25203 pow10f -- Base-10 power function 25204 25205 Synopsis 25206 25207 #include 25208 25209 float pow10f(float x); 25210 25211 Description 25212 25213 The pow10f() function shall return 10^x. 25214 25215 Note: This function is identical to exp10f(). 25216 25217 Returns 25218 25219 Upon successful completion, pow10f() shall return 10 rised to 25220 the power of x. 25221 25222 If the correct value would cause overflow, a range error shall 25223 occur and pow10f() shall return ±HUGE_VALF, with the same sign 25224 as the correct value of the function. 25225 25226 See Also 25227 25228 exp10f(), pow10(), pow10l() 25229 25230 pow10l 25231 25232 Name 25233 25234 pow10l -- Base-10 power function 25235 25236 Synopsis 25237 25238 #include 25239 25240 long double pow10l(long double x); 25241 25242 Description 25243 25244 The pow10l() function shall return 10^x. 25245 25246 Note: This function is identical to exp10l(). 25247 25248 Returns 25249 25250 Upon successful completion, pow10l() shall return 10 rised to 25251 the power of x. 25252 25253 If the correct value would cause overflow, a range error shall 25254 occur and pow10l() shall return ±HUGE_VALL, with the same sign 25255 as the correct value of the function. 25256 25257 See Also 25258 25259 exp10l(), pow10(), pow10f() 25260 25261 scalbf 25262 25263 Name 25264 25265 scalbf -- load exponent of radix-independent floating point 25266 number 25267 25268 Synopsis 25269 25270 #include 25271 25272 float scalbf(float x, double exp); 25273 25274 Description 25275 25276 The scalbf() function is identical to scalb(), except that the 25277 argument x and the return value is of type float. 25278 25279 Returns 25280 25281 See scalb(). 25282 25283 scalbl 25284 25285 Name 25286 25287 scalbl -- load exponent of radix-independent floating point 25288 number 25289 25290 Synopsis 25291 25292 #include 25293 25294 long double scalbl(long double x, double exp); 25295 25296 Description 25297 25298 The scalbl() function is identical to scalb(), except that the 25299 argument x and the return value is of type long double. 25300 25301 Returns 25302 25303 See scalb(). 25304 25305 significand 25306 25307 Name 25308 25309 significand -- floating point mantissa 25310 25311 Synopsis 25312 25313 #include 25314 25315 double significand(double x); 25316 25317 Description 25318 25319 The significand() function shall return the mantissa of x, sig 25320 such that x =3 sig × 2^n scaled such that 1 <= sig < 2. 25321 25322 Note: This function is intended for testing conformance to 25323 IEC 60559/IEEE 754 Floating Point, and its use is not 25324 otherwise recommended. 25325 25326 This function is equivalent to scalb(x, (double)-ilogb(x)). 25327 25328 Returns 25329 25330 Upon successful completion, significand() shall return the 25331 mantissa of x in the range 1 <= sig < 2. 25332 25333 If x is 0, ±HUGE_VAL, or NaN, the result is undefined. 25334 25335 See Also 25336 25337 significandf(), significandl() 25338 25339 significandf 25340 25341 Name 25342 25343 significandf -- floating point mantissa 25344 25345 Synopsis 25346 25347 #include 25348 25349 float significandf(float x); 25350 25351 Description 25352 25353 The significandf() function shall return the mantissa of x, sig 25354 such that x =3 sig × 2^n scaled such that 1 <= sig < 2. 25355 25356 Note: This function is intended for testing conformance to 25357 IEC 60559/IEEE 754 Floating Point, and its use is not 25358 otherwise recommended. 25359 25360 This function is equivalent to scalb(x, (double)-ilogb(x)). 25361 25362 Returns 25363 25364 Upon successful completion, significandf() shall return the 25365 mantissa of x in the range 1 <= sig < 2. 25366 25367 If x is 0, ±HUGE_VALF, or NaN, the result is undefined. 25368 25369 See Also 25370 25371 significand(), significandl() 25372 25373 significandl 25374 25375 Name 25376 25377 significandl -- floating point mantissa 25378 25379 Synopsis 25380 25381 #include 25382 25383 long double significandl(long double x); 25384 25385 Description 25386 25387 The significandl() function shall return the mantissa of x, sig 25388 such that x =3 sig × 2^n scaled such that 1 <= sig < 2. 25389 25390 Note: This function is intended for testing conformance to 25391 IEC 60559/IEEE 754 Floating Point, and its use is not 25392 otherwise recommended. 25393 25394 This function is equivalent to scalb(x, (double)-ilogb(x)). 25395 25396 Returns 25397 25398 Upon successful completion, significandl() shall return the 25399 mantissa of x in the range 1 <= sig < 2. 25400 25401 If x is 0, ±HUGE_VALL, or NaN, the result is undefined. 25402 25403 See Also 25404 25405 significand(), significandf() 25406 25407 sincos 25408 25409 Name 25410 25411 sincos -- trigonometric functions 25412 25413 Synopsis 25414 25415 #define _GNU_SOURCE 25416 #include 25417 25418 void sincos(double x, double * sin, double * cos); 25419 25420 Description 25421 25422 The sincos() function shall calculate both the sine and cosine 25423 of x. The sine shall be stored in the location referenced by 25424 sin, and the cosine in the location referenced by cosine. 25425 25426 Returns 25427 25428 None. See sin() and cos() for possible error conditions. 25429 25430 See Also 25431 25432 cos(), sin(), sincosf(), sincosl() 25433 25434 sincosf 25435 25436 Name 25437 25438 sincosf -- trigonometric functions 25439 25440 Synopsis 25441 25442 #define _GNU_SOURCE 25443 #include 25444 25445 void sincosf(float x, float * sin, float * cos); 25446 25447 Description 25448 25449 The sincosf() function shall calculate both the sine and cosine 25450 of x. The sine shall be stored in the location referenced by 25451 sin, and the cosine in the location referenced by cosine. 25452 25453 Returns 25454 25455 None. See sin() and cos() for possible error conditions. 25456 25457 See Also 25458 25459 cos(), sin(), sincos(), sincosl() 25460 25461 sincosl 25462 25463 Name 25464 25465 sincosl -- trigonometric functions 25466 25467 Synopsis 25468 25469 #define _GNU_SOURCE 25470 #include 25471 25472 void sincosl(long double x, long double * sin, long double * 25473 cos); 25474 25475 Description 25476 25477 The sincosl() function shall calculate both the sine and cosine 25478 of x. The sine shall be stored in the location referenced by 25479 sin, and the cosine in the location referenced by cosine. 25480 25481 Returns 25482 25483 None. See sin() and cos() for possible error conditions. 25484 25485 See Also 25486 25487 cos(), sin(), sincos(), sincosl() 25488 25489 y0f 25490 25491 Name 25492 25493 y0f -- Bessel functions 25494 25495 Synopsis 25496 25497 #include 25498 25499 float y0f(float x); 25500 25501 Description 25502 25503 The y0f() function is identical to y0(), except that the 25504 argument x and the return value is a float. 25505 25506 Returns 25507 25508 See y0(). 25509 25510 See Also 25511 25512 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25513 y0(), y0l(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 25514 25515 y0l 25516 25517 Name 25518 25519 y0l -- Bessel functions 25520 25521 Synopsis 25522 25523 #include 25524 25525 long double y0l(long double x); 25526 25527 Description 25528 25529 The y0l() function is identical to y0(), except that the 25530 argument x and the return value is a long double. 25531 25532 Returns 25533 25534 See y0(). 25535 25536 See Also 25537 25538 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25539 y0(), y0f(), y1(), y1f(), y1l(), yn(), ynf(), ynl() 25540 25541 y1f 25542 25543 Name 25544 25545 y1f -- Bessel functions 25546 25547 Synopsis 25548 25549 #include 25550 25551 float y1f(float x); 25552 25553 Description 25554 25555 The y1f() function is identical to y1(), except that the 25556 argument x and the return value is a float. 25557 25558 Returns 25559 25560 See y1(). 25561 25562 See Also 25563 25564 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25565 y0(), y0f(), y0l(), y1(), y1l(), yn(), ynf(), ynl() 25566 25567 y1l 25568 25569 Name 25570 25571 y1l -- Bessel functions 25572 25573 Synopsis 25574 25575 #include 25576 25577 long double y1l(long double x); 25578 25579 Description 25580 25581 The y1l() function is identical to y1(), except that the 25582 argument x and the return value is a long double. 25583 25584 Returns 25585 25586 See j0(). 25587 25588 See Also 25589 25590 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25591 y0(), y0f(), y0l(), y1(), y1f(), yn(), ynf(), ynl() 25592 25593 ynf 25594 25595 Name 25596 25597 ynf -- Bessel functions 25598 25599 Synopsis 25600 25601 #include 25602 25603 float ynf(float x); 25604 25605 Description 25606 25607 The ynf() function is identical to yn(), except that the 25608 argument x and the return value is a float. 25609 25610 Returns 25611 25612 See yn(). 25613 25614 See Also 25615 25616 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25617 y0(), y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynl() 25618 25619 ynl 25620 25621 Name 25622 25623 ynl -- Bessel functions 25624 25625 Synopsis 25626 25627 #include 25628 25629 long double ynl(long double x); 25630 25631 Description 25632 25633 The ynl() function is identical to yn(), except that the 25634 argument x and the return value is a long double. 25635 25636 Returns 25637 25638 See yn(). 25639 25640 See Also 25641 25642 j0(), j0f(), j0l(), j1(), j1f(), j1l(), jn(), jnf(), jnl(), 25643 y0(), y0f(), y0l(), y1(), y1f(), y1l(), yn(), ynf() 25644 __________________________________________________________ 25645 25646 14.9. Interfaces for libpthread 25647 25648 Table 14-42 defines the library name and shared object name for 25649 the libpthread library 25650 25651 Table 14-42. libpthread Definition 25652 Library: libpthread 25653 SONAME: libpthread.so.0 25654 25655 The behavior of the interfaces in this library is specified by 25656 the following specifications: 25657 25658 [LFS] Large File Support 25659 [LSB] This Specification 25660 [SUSv3] POSIX 1003.1-2001 (ISO/IEC 9945-2003) 25661 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 25662 __________________________________________________________ 25663 25664 14.9.1. Realtime Threads 25665 __________________________________________________________ 25666 25667 14.9.1.1. Interfaces for Realtime Threads 25668 25669 An LSB conforming implementation shall provide the generic 25670 functions for Realtime Threads specified in Table 14-43, with 25671 the full mandatory functionality as described in the referenced 25672 underlying specification. 25673 25674 Table 14-43. libpthread - Realtime Threads Function Interfaces 25675 pthread_attr_getinheritsched [SUSv4] 25676 pthread_attr_getschedpolicy [SUSv4] pthread_attr_getscope 25677 [SUSv4] pthread_attr_setinheritsched [SUSv4] 25678 pthread_attr_setschedpolicy [SUSv4] pthread_attr_setscope 25679 [SUSv4] pthread_getschedparam [SUSv4] 25680 pthread_mutex_getprioceiling(GLIBC_2.4) [SUSv4] 25681 pthread_mutex_setprioceiling(GLIBC_2.4) [SUSv4] 25682 pthread_mutexattr_getprioceiling(GLIBC_2.4) [SUSv4] 25683 pthread_mutexattr_getprotocol(GLIBC_2.4) [SUSv4] 25684 pthread_mutexattr_setprioceiling(GLIBC_2.4) [SUSv4] 25685 pthread_mutexattr_setprotocol(GLIBC_2.4) [SUSv4] 25686 pthread_setschedparam [SUSv4] pthread_setschedprio(GLIBC_2.3.4) 25687 [SUSv4] 25688 __________________________________________________________ 25689 25690 14.9.2. Advanced Realtime Threads 25691 __________________________________________________________ 25692 25693 14.9.2.1. Interfaces for Advanced Realtime Threads 25694 25695 An LSB conforming implementation shall provide the generic 25696 functions for Advanced Realtime Threads specified in Table 25697 14-44, with the full mandatory functionality as described in 25698 the referenced underlying specification. 25699 25700 Table 14-44. libpthread - Advanced Realtime Threads Function 25701 Interfaces 25702 pthread_barrier_destroy [SUSv4] pthread_barrier_init [SUSv4] 25703 pthread_barrier_wait [SUSv4] pthread_barrierattr_destroy 25704 [SUSv4] 25705 pthread_barrierattr_getpshared(GLIBC_2.3.3) [SUSv4] 25706 pthread_barrierattr_init [SUSv4] pthread_barrierattr_setpshared 25707 [SUSv4] pthread_getcpuclockid [SUSv4] 25708 pthread_spin_destroy [SUSv4] pthread_spin_init [SUSv4] 25709 pthread_spin_lock [SUSv4] pthread_spin_trylock [SUSv4] 25710 pthread_spin_unlock [SUSv4] 25711 __________________________________________________________ 25712 25713 14.9.3. Posix Threads 25714 __________________________________________________________ 25715 25716 14.9.3.1. Interfaces for Posix Threads 25717 25718 An LSB conforming implementation shall provide the generic 25719 functions for Posix Threads specified in Table 14-45, with the 25720 full mandatory functionality as described in the referenced 25721 underlying specification. 25722 25723 Table 14-45. libpthread - Posix Threads Function Interfaces 25724 _pthread_cleanup_pop [LSB] _pthread_cleanup_push [LSB] 25725 pthread_attr_destroy [SUSv4] pthread_attr_getdetachstate 25726 [SUSv4] 25727 pthread_attr_getguardsize [SUSv4] pthread_attr_getschedparam 25728 [SUSv4] pthread_attr_getstack [SUSv4] pthread_attr_getstackaddr 25729 [SUSv3] 25730 pthread_attr_getstacksize [SUSv4] pthread_attr_init [SUSv4] 25731 pthread_attr_setdetachstate [SUSv4] pthread_attr_setguardsize 25732 [SUSv4] 25733 pthread_attr_setschedparam [SUSv4] pthread_attr_setstack 25734 [SUSv4] pthread_attr_setstackaddr [SUSv3] 25735 pthread_attr_setstacksize [SUSv4] 25736 pthread_cancel [SUSv4] pthread_cond_broadcast [SUSv4] 25737 pthread_cond_destroy [SUSv4] pthread_cond_init [SUSv4] 25738 pthread_cond_signal [SUSv4] pthread_cond_timedwait [SUSv4] 25739 pthread_cond_wait [SUSv4] pthread_condattr_destroy [SUSv4] 25740 pthread_condattr_getclock(GLIBC_2.3.3) [SUSv4] 25741 pthread_condattr_getpshared [SUSv4] pthread_condattr_init 25742 [SUSv4] pthread_condattr_setclock(GLIBC_2.3.3) [SUSv4] 25743 pthread_condattr_setpshared [SUSv4] pthread_create [SUSv4] 25744 pthread_detach [SUSv4] pthread_equal [SUSv4] 25745 pthread_exit [SUSv4] pthread_getconcurrency [SUSv4] 25746 pthread_getspecific [SUSv4] pthread_join [SUSv4] 25747 pthread_key_create [SUSv4] pthread_key_delete [SUSv4] 25748 pthread_kill [SUSv4] pthread_mutex_consistent(GLIBC_2.12) 25749 [SUSv4] 25750 pthread_mutex_destroy [SUSv4] pthread_mutex_init [SUSv4] 25751 pthread_mutex_lock [SUSv4] pthread_mutex_timedlock [SUSv4] 25752 pthread_mutex_trylock [SUSv4] pthread_mutex_unlock [SUSv4] 25753 pthread_mutexattr_destroy [SUSv4] pthread_mutexattr_getpshared 25754 [SUSv4] 25755 pthread_mutexattr_getrobust(GLIBC_2.12) [SUSv4] 25756 pthread_mutexattr_gettype [SUSv4] pthread_mutexattr_init 25757 [SUSv4] pthread_mutexattr_setpshared [SUSv4] 25758 pthread_mutexattr_setrobust(GLIBC_2.12) [SUSv4] 25759 pthread_mutexattr_settype [SUSv4] pthread_once [SUSv4] 25760 pthread_rwlock_destroy [SUSv4] 25761 pthread_rwlock_init [SUSv4] pthread_rwlock_rdlock [SUSv4] 25762 pthread_rwlock_timedrdlock [SUSv4] pthread_rwlock_timedwrlock 25763 [SUSv4] 25764 pthread_rwlock_tryrdlock [SUSv4] pthread_rwlock_trywrlock 25765 [SUSv4] pthread_rwlock_unlock [SUSv4] pthread_rwlock_wrlock 25766 [SUSv4] 25767 pthread_rwlockattr_destroy [SUSv4] 25768 pthread_rwlockattr_getpshared [SUSv4] pthread_rwlockattr_init 25769 [SUSv4] pthread_rwlockattr_setpshared [SUSv4] 25770 pthread_self [SUSv4] pthread_setcancelstate [SUSv4] 25771 pthread_setcanceltype [SUSv4] pthread_setconcurrency [SUSv4] 25772 pthread_setspecific [SUSv4] pthread_sigmask [SUSv4] 25773 pthread_testcancel [SUSv4] sem_close [SUSv4] 25774 sem_destroy [SUSv4] sem_getvalue [SUSv4] sem_init [SUSv4] 25775 sem_open [SUSv4] 25776 sem_post [SUSv4] sem_timedwait [SUSv4] sem_trywait [SUSv4] 25777 sem_unlink [SUSv4] 25778 sem_wait [SUSv4] 25779 25780 An LSB conforming implementation shall provide the generic 25781 deprecated functions for Posix Threads specified in Table 25782 14-46, with the full mandatory functionality as described in 25783 the referenced underlying specification. 25784 25785 Note: These interfaces are deprecated, and applications 25786 should avoid using them. These interfaces may be withdrawn 25787 in future releases of this specification. 25788 25789 Table 14-46. libpthread - Posix Threads Deprecated Function 25790 Interfaces 25791 pthread_attr_getstackaddr [SUSv3] pthread_attr_setstackaddr 25792 [SUSv3] 25793 __________________________________________________________ 25794 25795 14.9.4. Thread aware versions of libc interfaces 25796 __________________________________________________________ 25797 25798 14.9.4.1. Interfaces for Thread aware versions of libc interfaces 25799 25800 An LSB conforming implementation shall provide the generic 25801 functions for Thread aware versions of libc interfaces 25802 specified in Table 14-47, with the full mandatory functionality 25803 as described in the referenced underlying specification. 25804 25805 Table 14-47. libpthread - Thread aware versions of libc 25806 interfaces Function Interfaces 25807 lseek64 [LFS] open64 [LFS] pread [SUSv4] pread64 [LSB] 25808 pwrite [SUSv4] pwrite64 [LSB] 25809 __________________________________________________________ 25810 25811 14.9.5. GNU Extensions for libpthread 25812 __________________________________________________________ 25813 25814 14.9.5.1. Interfaces for GNU Extensions for libpthread 25815 25816 An LSB conforming implementation shall provide the generic 25817 functions for GNU Extensions for libpthread specified in Table 25818 14-48, with the full mandatory functionality as described in 25819 the referenced underlying specification. 25820 25821 Table 14-48. libpthread - GNU Extensions for libpthread 25822 Function Interfaces 25823 pthread_getattr_np [LSB] pthread_mutex_consistent_np [LSB] 25824 pthread_mutexattr_getrobust_np [LSB] 25825 pthread_mutexattr_setrobust_np [LSB] 25826 pthread_rwlockattr_getkind_np [LSB] 25827 pthread_rwlockattr_setkind_np [LSB] 25828 __________________________________________________________ 25829 25830 14.9.6. System Calls 25831 __________________________________________________________ 25832 25833 14.9.6.1. Interfaces for System Calls 25834 25835 An LSB conforming implementation shall provide the generic 25836 functions for System Calls specified in Table 14-49, with the 25837 full mandatory functionality as described in the referenced 25838 underlying specification. 25839 25840 Table 14-49. libpthread - System Calls Function Interfaces 25841 close [SUSv4] fcntl [LSB] fork [SUSv4] fsync [SUSv4] 25842 lseek [SUSv4] msync [SUSv4] nanosleep [SUSv4] open [SUSv4] 25843 pause [SUSv4] read [SUSv4] vfork [SUSv3] wait [SUSv4] 25844 waitpid [LSB] write [SUSv4] 25845 __________________________________________________________ 25846 25847 14.9.7. Standard I/O 25848 __________________________________________________________ 25849 25850 14.9.7.1. Interfaces for Standard I/O 25851 25852 An LSB conforming implementation shall provide the generic 25853 functions for Standard I/O specified in Table 14-50, with the 25854 full mandatory functionality as described in the referenced 25855 underlying specification. 25856 25857 Table 14-50. libpthread - Standard I/O Function Interfaces 25858 flockfile [SUSv4] 25859 __________________________________________________________ 25860 25861 14.9.8. Signal Handling 25862 __________________________________________________________ 25863 25864 14.9.8.1. Interfaces for Signal Handling 25865 25866 An LSB conforming implementation shall provide the generic 25867 functions for Signal Handling specified in Table 14-51, with 25868 the full mandatory functionality as described in the referenced 25869 underlying specification. 25870 25871 Table 14-51. libpthread - Signal Handling Function Interfaces 25872 __libc_current_sigrtmax [LSB] __libc_current_sigrtmin [LSB] 25873 raise [SUSv4] sigaction [SUSv4] 25874 siglongjmp [SUSv4] sigwait [SUSv4] 25875 __________________________________________________________ 25876 25877 14.9.9. Standard Library 25878 __________________________________________________________ 25879 25880 14.9.9.1. Interfaces for Standard Library 25881 25882 An LSB conforming implementation shall provide the generic 25883 functions for Standard Library specified in Table 14-52, with 25884 the full mandatory functionality as described in the referenced 25885 underlying specification. 25886 25887 Table 14-52. libpthread - Standard Library Function Interfaces 25888 __errno_location [LSB] ftrylockfile [SUSv4] funlockfile [SUSv4] 25889 longjmp [SUSv4] 25890 system [LSB] 25891 __________________________________________________________ 25892 25893 14.9.10. Socket Interface 25894 __________________________________________________________ 25895 25896 14.9.10.1. Interfaces for Socket Interface 25897 25898 An LSB conforming implementation shall provide the generic 25899 functions for Socket Interface specified in Table 14-53, with 25900 the full mandatory functionality as described in the referenced 25901 underlying specification. 25902 25903 Table 14-53. libpthread - Socket Interface Function Interfaces 25904 __h_errno_location [LSB] accept [SUSv4] connect [SUSv4] recv 25905 [SUSv4] 25906 recvfrom [SUSv4] recvmsg [SUSv4] send [SUSv4] sendmsg [SUSv4] 25907 sendto [SUSv4] 25908 __________________________________________________________ 25909 25910 14.9.11. Terminal Interface Functions 25911 __________________________________________________________ 25912 25913 14.9.11.1. Interfaces for Terminal Interface Functions 25914 25915 An LSB conforming implementation shall provide the generic 25916 functions for Terminal Interface Functions specified in Table 25917 14-54, with the full mandatory functionality as described in 25918 the referenced underlying specification. 25919 25920 Table 14-54. libpthread - Terminal Interface Functions Function 25921 Interfaces 25922 tcdrain [SUSv4] 25923 __________________________________________________________ 25924 25925 14.10. Data Definitions for libpthread 25926 25927 This section defines global identifiers and their values that 25928 are associated with interfaces contained in libpthread. These 25929 definitions are organized into groups that correspond to system 25930 headers. This convention is used as a convenience for the 25931 reader, and does not imply the existence of these headers, or 25932 their content. Where an interface is defined as requiring a 25933 particular system header file all of the data definitions for 25934 that system header file presented here shall be in effect. 25935 25936 This section gives data definitions to promote binary 25937 application portability, not to repeat source interface 25938 definitions available elsewhere. System providers and 25939 application developers should use this ABI to supplement - not 25940 to replace - source interface definition specifications. 25941 25942 This specification uses the ISO C (1999) C Language as the 25943 reference programming language, and data definitions are 25944 specified in ISO C format. The C language is used here as a 25945 convenient notation. Using a C language description of these 25946 data objects does not preclude their use by other programming 25947 languages. 25948 __________________________________________________________ 25949 25950 14.10.1. lsb/pthread.h 25951 25952 typedef unsigned long int pthread_t; 25953 __________________________________________________________ 25954 25955 14.10.2. pthread.h 25956 25957 #define PTHREAD_MUTEX_DEFAULT 0 25958 #define PTHREAD_MUTEX_NORMAL 0 25959 #define PTHREAD_SCOPE_SYSTEM 0 25960 #define PTHREAD_MUTEX_RECURSIVE 1 25961 #define PTHREAD_SCOPE_PROCESS 1 25962 #define PTHREAD_MUTEX_ERRORCHECK 2 25963 #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 25964 #define __SIZEOF_PTHREAD_CONDATTR_T 4 25965 #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 25966 #define __SIZEOF_PTHREAD_COND_T 48 25967 #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 25968 #define pthread_cleanup_push(routine,arg) \ 25969 {struct _pthread_cleanup_buffer _buffer;\ 25970 _pthread_cleanup_push(&_buffer,(routine),(arg)); 25971 #define pthread_cleanup_pop(execute) _pthread_cleanup_pop(&_buffer,(execute));} 25972 #define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } } 25973 25974 struct _pthread_cleanup_buffer { 25975 void (*__routine) (void *); 25976 void *__arg; 25977 int __canceltype; 25978 struct _pthread_cleanup_buffer *__prev; 25979 }; 25980 typedef unsigned int pthread_key_t; 25981 typedef int pthread_once_t; 25982 typedef volatile int pthread_spinlock_t; 25983 typedef union { 25984 char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; 25985 int __align; 25986 } pthread_barrierattr_t; 25987 enum { 25988 PTHREAD_PRIO_NONE, 25989 PTHREAD_PRIO_INHERIT, 25990 PTHREAD_PRIO_PROTECT 25991 }; 25992 enum { 25993 PTHREAD_MUTEX_STALLED = 0, 25994 PTHREAD_MUTEX_STALLED_NP = 0, 25995 PTHREAD_MUTEX_ROBUST = 1, 25996 PTHREAD_MUTEX_ROBUST_NP = 1 25997 }; 25998 enum { 25999 PTHREAD_RWLOCK_PREFER_READER_NP, 26000 PTHREAD_RWLOCK_PREFER_WRITER_NP, 26001 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 26002 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 26003 }; 26004 26005 typedef union { 26006 struct __pthread_mutex_s __data; 26007 char __size[__SIZEOF_PTHREAD_MUTEX_T]; 26008 long int __align; 26009 } pthread_mutex_t; 26010 typedef union { 26011 char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; 26012 int __align; 26013 } pthread_mutexattr_t; 26014 26015 typedef union { 26016 char __size[__SIZEOF_PTHREAD_ATTR_T]; 26017 long int __align; 26018 } pthread_attr_t; 26019 26020 typedef union { 26021 struct { 26022 int __lock; 26023 unsigned int __futex; 26024 unsigned long long int __total_seq; 26025 unsigned long long int __wakeup_seq; 26026 unsigned long long int __woken_seq; 26027 void *__mutex; 26028 unsigned int __nwaiters; 26029 unsigned int __broadcast_seq; 26030 } __data; 26031 char __size[__SIZEOF_PTHREAD_COND_T]; 26032 long long int __align; 26033 } pthread_cond_t; 26034 typedef union { 26035 char __size[__SIZEOF_PTHREAD_CONDATTR_T]; 26036 int __align; 26037 } pthread_condattr_t; 26038 26039 typedef union { 26040 char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; 26041 long int __align; 26042 } pthread_rwlockattr_t; 26043 26044 #define PTHREAD_CREATE_JOINABLE 0 26045 #define PTHREAD_INHERIT_SCHED 0 26046 #define PTHREAD_ONCE_INIT 0 26047 #define PTHREAD_PROCESS_PRIVATE 0 26048 #define PTHREAD_CREATE_DETACHED 1 26049 #define PTHREAD_EXPLICIT_SCHED 1 26050 #define PTHREAD_PROCESS_SHARED 1 26051 26052 #define PTHREAD_CANCELED ((void*)-1) 26053 #define PTHREAD_CANCEL_DEFERRED 0 26054 #define PTHREAD_CANCEL_ENABLE 0 26055 #define PTHREAD_CANCEL_ASYNCHRONOUS 1 26056 #define PTHREAD_CANCEL_DISABLE 1 26057 26058 extern int __register_atfork(void (*)(void), void (*)(void), 26059 void (*)(void), void *); 26060 extern void _pthread_cleanup_pop(struct _pthread_cleanup_buffer *, int); 26061 extern void _pthread_cleanup_push(struct _pthread_cleanup_buffer *, 26062 void (*)(void *), void *); 26063 extern int pthread_atfork(void (*__prepare) (void), 26064 void (*__parent) (void), void (*__child) (void)); 26065 extern int pthread_attr_destroy(pthread_attr_t * __attr); 26066 extern int pthread_attr_getdetachstate(const pthread_attr_t * __attr, 26067 int *__detachstate); 26068 extern int pthread_attr_getguardsize(const pthread_attr_t * __attr, 26069 size_t * __guardsize); 26070 extern int pthread_attr_getinheritsched(const pthread_attr_t * __attr, 26071 int *__inherit); 26072 extern int pthread_attr_getschedparam(const pthread_attr_t * __attr, 26073 struct sched_param *__param); 26074 extern int pthread_attr_getschedpolicy(const pthread_attr_t * __attr, 26075 int *__policy); 26076 extern int pthread_attr_getscope(const pthread_attr_t * __attr, 26077 int *__scope); 26078 extern int pthread_attr_getstack(const pthread_attr_t * __attr, 26079 void **__stackaddr, size_t * __stacksize); 26080 extern int pthread_attr_getstackaddr(const pthread_attr_t * __attr, 26081 void **__stackaddr); 26082 extern int pthread_attr_getstacksize(const pthread_attr_t * __attr, 26083 size_t * __stacksize); 26084 extern int pthread_attr_init(pthread_attr_t * __attr); 26085 extern int pthread_attr_setdetachstate(pthread_attr_t * __attr, 26086 int __detachstate); 26087 extern int pthread_attr_setguardsize(pthread_attr_t * __attr, 26088 size_t __guardsize); 26089 extern int pthread_attr_setinheritsched(pthread_attr_t * __attr, 26090 int __inherit); 26091 extern int pthread_attr_setschedparam(pthread_attr_t * __attr, 26092 const struct sched_param *__param); 26093 extern int pthread_attr_setschedpolicy(pthread_attr_t * __attr, 26094 int __policy); 26095 extern int pthread_attr_setscope(pthread_attr_t * __attr, int __scope); 26096 extern int pthread_attr_setstack(pthread_attr_t * __attr, 26097 void *__stackaddr, size_t __stacksize); 26098 extern int pthread_attr_setstackaddr(pthread_attr_t * __attr, 26099 void *__stackaddr); 26100 extern int pthread_attr_setstacksize(pthread_attr_t * __attr, 26101 size_t __stacksize); 26102 extern int pthread_barrier_destroy(pthread_barrier_t * __barrier); 26103 extern int pthread_barrier_init(pthread_barrier_t * __barrier, 26104 const pthread_barrierattr_t * __attr, 26105 unsigned int __count); 26106 extern int pthread_barrier_wait(pthread_barrier_t * __barrier); 26107 extern int pthread_barrierattr_destroy(pthread_barrierattr_t * __attr); 26108 extern int pthread_barrierattr_getpshared(const pthread_barrierattr_t * 26109 __attr, int *__pshared); 26110 extern int pthread_barrierattr_init(pthread_barrierattr_t * __attr); 26111 extern int pthread_barrierattr_setpshared(pthread_barrierattr_t * __attr, 26112 int __pshared); 26113 extern int pthread_cancel(pthread_t __th); 26114 extern int pthread_cond_broadcast(pthread_cond_t * __cond); 26115 extern int pthread_cond_destroy(pthread_cond_t * __cond); 26116 extern int pthread_cond_init(pthread_cond_t * __cond, 26117 const pthread_condattr_t * __cond_attr); 26118 extern int pthread_cond_signal(pthread_cond_t * __cond); 26119 extern int pthread_cond_timedwait(pthread_cond_t * __cond, 26120 pthread_mutex_t * __mutex, 26121 const struct timespec *__abstime); 26122 extern int pthread_cond_wait(pthread_cond_t * __cond, 26123 pthread_mutex_t * __mutex); 26124 extern int pthread_condattr_destroy(pthread_condattr_t * __attr); 26125 extern int pthread_condattr_getclock(const pthread_condattr_t * attr, 26126 clockid_t * clock_id); 26127 extern int pthread_condattr_getpshared(const pthread_condattr_t * __attr, 26128 int *__pshared); 26129 extern int pthread_condattr_init(pthread_condattr_t * __attr); 26130 extern int pthread_condattr_setclock(pthread_condattr_t * attr, 26131 clockid_t clock_id); 26132 extern int pthread_condattr_setpshared(pthread_condattr_t * __attr, 26133 int __pshared); 26134 extern int pthread_create(pthread_t * __newthread, 26135 const pthread_attr_t * __attr, 26136 void *(*__start_routine) (void *), void *__arg); 26137 extern int pthread_detach(pthread_t __th); 26138 extern int pthread_equal(pthread_t __thread1, pthread_t __thread2); 26139 extern void pthread_exit(void *__retval); 26140 extern int pthread_getattr_np(pthread_t thread, pthread_attr_t * attr); 26141 extern int pthread_getconcurrency(void); 26142 extern int pthread_getcpuclockid(pthread_t __thread_id, 26143 clockid_t * __clock_id); 26144 extern int pthread_getschedparam(pthread_t __target_thread, int *__policy, 26145 struct sched_param *__param); 26146 extern void *pthread_getspecific(pthread_key_t __key); 26147 extern int pthread_join(pthread_t __th, void **__thread_return); 26148 extern int pthread_key_create(pthread_key_t * __key, 26149 void (*__destr_function) (void *)); 26150 extern int pthread_key_delete(pthread_key_t __key); 26151 extern int pthread_mutex_consistent(pthread_mutex_t * mutex); 26152 extern int pthread_mutex_consistent_np(pthread_mutex_t * __mutex); 26153 extern int pthread_mutex_destroy(pthread_mutex_t * __mutex); 26154 extern int pthread_mutex_getprioceiling(const pthread_mutex_t * __mutex, 26155 int *__prioceiling); 26156 extern int pthread_mutex_init(pthread_mutex_t * __mutex, 26157 const pthread_mutexattr_t * __mutexattr); 26158 extern int pthread_mutex_lock(pthread_mutex_t * __mutex); 26159 extern int pthread_mutex_setprioceiling(pthread_mutex_t * __mutex, 26160 int __prioceiling, 26161 int *__old_ceiling); 26162 extern int pthread_mutex_timedlock(pthread_mutex_t * __mutex, 26163 const struct timespec *__abstime); 26164 extern int pthread_mutex_trylock(pthread_mutex_t * __mutex); 26165 extern int pthread_mutex_unlock(pthread_mutex_t * __mutex); 26166 extern int pthread_mutexattr_destroy(pthread_mutexattr_t * __attr); 26167 extern int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t * 26168 __attr, int *__prioceiling); 26169 extern int pthread_mutexattr_getprotocol(const pthread_mutexattr_t * 26170 __attr, int *__protocol); 26171 extern int pthread_mutexattr_getpshared(const pthread_mutexattr_t * __attr, 26172 int *__pshared); 26173 extern int pthread_mutexattr_getrobust(const pthread_mutexattr_t * attr, 26174 int *robust); 26175 extern int pthread_mutexattr_getrobust_np(const pthread_mutexattr_t * 26176 __attr, int *__robustness); 26177 extern int pthread_mutexattr_gettype(const pthread_mutexattr_t * __attr, 26178 int *__kind); 26179 extern int pthread_mutexattr_init(pthread_mutexattr_t * __attr); 26180 extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t * __attr, 26181 int __prioceiling); 26182 extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t * __attr, 26183 int __protocol); 26184 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t * __attr, 26185 int __pshared); 26186 extern int pthread_mutexattr_setrobust(pthread_mutexattr_t * attr, 26187 int robust); 26188 extern int pthread_mutexattr_setrobust_np(pthread_mutexattr_t * __attr, 26189 int __robustness); 26190 extern int pthread_mutexattr_settype(pthread_mutexattr_t * __attr, 26191 int __kind); 26192 extern int pthread_once(pthread_once_t * __once_control, 26193 void (*__init_routine) (void)); 26194 extern int pthread_rwlock_destroy(pthread_rwlock_t * __rwlock); 26195 extern int pthread_rwlock_init(pthread_rwlock_t * __rwlock, 26196 const pthread_rwlockattr_t * __attr); 26197 extern int pthread_rwlock_rdlock(pthread_rwlock_t * __rwlock); 26198 extern int pthread_rwlock_timedrdlock(pthread_rwlock_t * __rwlock, 26199 const struct timespec *__abstime); 26200 extern int pthread_rwlock_timedwrlock(pthread_rwlock_t * __rwlock, 26201 const struct timespec *__abstime); 26202 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t * __rwlock); 26203 extern int pthread_rwlock_trywrlock(pthread_rwlock_t * __rwlock); 26204 extern int pthread_rwlock_unlock(pthread_rwlock_t * __rwlock); 26205 extern int pthread_rwlock_wrlock(pthread_rwlock_t * __rwlock); 26206 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t * __attr); 26207 extern int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t * 26208 __attr, int *__pref); 26209 extern int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t * 26210 __attr, int *__pshared); 26211 extern int pthread_rwlockattr_init(pthread_rwlockattr_t * __attr); 26212 extern int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t * __attr, 26213 int __pref); 26214 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t * __attr, 26215 int __pshared); 26216 extern pthread_t pthread_self(void); 26217 extern int pthread_setcancelstate(int __state, int *__oldstate); 26218 extern int pthread_setcanceltype(int __type, int *__oldtype); 26219 extern int pthread_setconcurrency(int __level); 26220 extern int pthread_setschedparam(pthread_t __target_thread, int __policy, 26221 const struct sched_param *__param); 26222 extern int pthread_setschedprio(pthread_t __target_thread, int __prio); 26223 extern int pthread_setspecific(pthread_key_t __key, const void *__pointer); 26224 extern int pthread_spin_destroy(pthread_spinlock_t * __lock); 26225 extern int pthread_spin_init(pthread_spinlock_t * __lock, int __pshared); 26226 extern int pthread_spin_lock(pthread_spinlock_t * __lock); 26227 extern int pthread_spin_trylock(pthread_spinlock_t * __lock); 26228 extern int pthread_spin_unlock(pthread_spinlock_t * __lock); 26229 extern void pthread_testcancel(void); 26230 __________________________________________________________ 26231 26232 14.10.3. semaphore.h 26233 26234 typedef union { 26235 char __size[__SIZEOF_SEM_T]; 26236 long int __align; 26237 } sem_t; 26238 26239 #define SEM_FAILED ((sem_t*)0) 26240 26241 #define SEM_VALUE_MAX ((int)((~0u)>>1)) 26242 26243 extern int sem_close(sem_t * __sem); 26244 extern int sem_destroy(sem_t * __sem); 26245 extern int sem_getvalue(sem_t * __sem, int *__sval); 26246 extern int sem_init(sem_t * __sem, int __pshared, unsigned int __value); 26247 extern sem_t *sem_open(const char *__name, int __oflag, ...); 26248 extern int sem_post(sem_t * __sem); 26249 extern int sem_timedwait(sem_t * __sem, const struct timespec *__abstime); 26250 extern int sem_trywait(sem_t * __sem); 26251 extern int sem_unlink(const char *__name); 26252 extern int sem_wait(sem_t * __sem); 26253 __________________________________________________________ 26254 26255 14.11. Interface Definitions for libpthread 26256 26257 Table of Contents 26258 _pthread_cleanup_pop -- establish cancellation handlers 26259 _pthread_cleanup_push -- establish cancellation handlers 26260 pthread_getattr_np -- get thread attributes 26261 pthread_mutex_consistent_np -- mark state protected by robust 26262 mutex as consistent 26263 26264 pthread_mutexattr_getrobust_np, 26265 pthread_mutexattr_setrobust_np -- get and set the mutex 26266 robust attribute 26267 26268 pthread_rwlockattr_getkind_np, 26269 pthread_rwlockattr_setkind_np -- get/set the read-write 26270 lock kind of the thread read-write lock attribute object 26271 26272 waitpid -- wait for child process 26273 26274 The interfaces defined on the following pages are included in 26275 libpthread and are defined by this specification. Unless 26276 otherwise noted, these interfaces shall be included in the 26277 source standard. 26278 26279 Other interfaces listed in Section 14.9 shall behave as 26280 described in the referenced base document. 26281 26282 _pthread_cleanup_pop 26283 26284 Name 26285 26286 _pthread_cleanup_pop -- establish cancellation handlers 26287 26288 Synopsis 26289 26290 #include 26291 26292 void _pthread_cleanup_pop(struct _pthread_cleanup_buffer *, 26293 int); 26294 26295 Description 26296 26297 The _pthread_cleanup_pop() function provides an implementation 26298 of the pthread_cleanup_pop() macro described in POSIX 26299 1003.1-2008 (ISO/IEC 9945-2009). 26300 26301 The _pthread_cleanup_pop() function is not in the source 26302 standard; it is only in the binary standard. 26303 26304 _pthread_cleanup_push 26305 26306 Name 26307 26308 _pthread_cleanup_push -- establish cancellation handlers 26309 26310 Synopsis 26311 26312 #include 26313 26314 void _pthread_cleanup_push(struct _pthread_cleanup_buffer *, 26315 void (*) (void *), void *); 26316 26317 Description 26318 26319 The _pthread_cleanup_push() function provides an implementation 26320 of the pthread_cleanup_push() macro described in POSIX 26321 1003.1-2008 (ISO/IEC 9945-2009). 26322 26323 The _pthread_cleanup_push() function is not in the source 26324 standard; it is only in the binary standard. 26325 26326 pthread_getattr_np 26327 26328 Name 26329 26330 pthread_getattr_np -- get thread attributes 26331 26332 Synopsis 26333 26334 #include 26335 26336 int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr); 26337 26338 Description 26339 26340 pthread_getattr_np() fills in the thread attribute object attr 26341 with attribute values describing the running thread thread. 26342 This is useful to detect runtime changes from the values 26343 specified in the thread attributes object used to create the 26344 thread with pthread_create(). The following differences may be 26345 noted: 26346 26347 * The detach state, since a joinable thread may have detached 26348 itself after creation. Use pthread_attr_getdetachstate() to 26349 extract from attr. 26350 * The stack size, which the implementation may align to a 26351 suitable boundary. Use pthread_attr_getstack() to extract 26352 from attr. 26353 * The guard size, which the implementation may round upwards 26354 to a multiple of the page size, or ignore (i.e., treat as 26355 0), if the application is allocating its own stack. Use 26356 pthread_attr_getguardsize() to extract from attr. 26357 26358 If the stack address attribute was not set in the thread 26359 attributes object used to create the thread, then the thread 26360 attributes object returned by pthread_getattr_np() will show 26361 the actual stack address the implementation selected for the 26362 thread. Use pthread_attr_getstack() to extract from attr. 26363 26364 The thread attributes object attr should be destroyed using 26365 pthread_attr_destroy() when it is no longer needed. 26366 26367 Return Value 26368 26369 On success, pthread_getattr_np() returns 0; on error, it 26370 returns a non-zero error number. 26371 26372 Errors 26373 26374 ENOMEM 26375 26376 Insufficient memory to complete the operation. 26377 26378 In addition, if thread refers to the main thread, then 26379 pthread_getattr_np() may also fail due to errors from various 26380 underlying calls: fopen(), if the pseudo-file containing the 26381 memory region map cannot be opened; getrlimit() if the 26382 RLIMIT_STACK resource limit it not supported. 26383 26384 Notes 26385 26386 This function is a GNU extension. 26387 26388 See Also 26389 26390 pthread_attr_destroy(), pthread_attr_getdetachstate(), 26391 pthread_attr_getguardsize(), pthread_attr_getstack(), 26392 pthread_create(). 26393 26394 pthread_mutex_consistent_np 26395 26396 Name 26397 26398 pthread_mutex_consistent_np -- mark state protected by robust 26399 mutex as consistent 26400 26401 Synopsis 26402 26403 #include 26404 26405 int pthread_mutex_consistent_np(pthread_mutex_t * __mutex); 26406 26407 Description 26408 26409 pthread_mutex_consistent_np() shall behave as described for 26410 pthread_mutex_consistent() in POSIX 1003.1-2008 (ISO/IEC 26411 9945-2009). 26412 26413 pthread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np 26414 26415 Name 26416 26417 pthread_mutexattr_getrobust_np, 26418 pthread_mutexattr_setrobust_np -- get and set the mutex robust 26419 attribute 26420 26421 Synopsis 26422 26423 #include 26424 26425 int pthread_mutexattr_getrobust_np(const pthread_mutexattr_t * 26426 __attr, int * __robustness); 26427 26428 int pthread_mutexattr_setrobust_np(const pthread_mutexattr_t * 26429 __attr, int __robustness); 26430 26431 Description 26432 26433 pthread_mutexattr_setrobust_np() shall behave as described for 26434 pthread_mutexattr_setrobust() in POSIX 1003.1-2008 (ISO/IEC 26435 9945-2009). 26436 26437 pthread_mutexattr_getrobust_np() shall behave as described for 26438 pthread_mutexattr_getrobust() in POSIX 1003.1-2008 (ISO/IEC 26439 9945-2009). 26440 26441 Two additional valid values are defined for __robustness: 26442 PTHREAD_MUTEX_STALLED_NP, which is identical to 26443 PTHREAD_MUTEX_STALLED and PTHREAD_MUTEX_ROBUST_NP, which is 26444 identical to PTHREAD_MUTEX_ROBUST. 26445 26446 pthread_rwlockattr_getkind_np, pthread_rwlockattr_setkind_np 26447 26448 Name 26449 26450 pthread_rwlockattr_getkind_np, 26451 pthread_rwlockattr_setkind_np -- get/set the read-write lock 26452 kind of the thread read-write lock attribute object 26453 26454 Synopsis 26455 26456 #include 26457 26458 int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t * 26459 attr, int * pref); 26460 26461 int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t * attr, 26462 int * pref); 26463 26464 Description 26465 26466 The pthread_rwlockattr_setkind_np() function sets the kind of 26467 read-write lock of the thread read-write lock attribute object 26468 referred to by attr to the value specified with pref. The 26469 argument pref may be set to PTHREAD_RWLOCK_PREFER_READER_NP, 26470 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, or 26471 PTHREAD_RWLOCK_PREFER_WRITER_NP. The default lock setting is 26472 PTHREAD_RWLOCK_PREFER_READER_NP. A thread may hold multiple 26473 read locks, i.e. read locks are recursive. According to The 26474 Single Unix Specification, the behavior is unspecified when a 26475 reader tries to place a lock, and there is no write lock but 26476 writers are waiting. Giving preference to the reader, as is set 26477 by default with the PTHREAD_RWLOCK_PREFER_READER_NP value 26478 implies that the reader will receive the requested lock, even 26479 if a writer is waiting. As long as there are readers the writer 26480 will be starved. Setting the kind to 26481 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, avoids writer 26482 starvation as long as any read locking is not done in a 26483 recursive fashion. The pthread_rwlockattr_getkind_np() function 26484 returns the value of the read-write lock attribute of the 26485 thread read-write lock attribute object referred to by attr in 26486 the pointer pref. 26487 26488 Return Value 26489 26490 pthread_rwlockattr_setkind_np() function returns 0 on success; 26491 on error, it returns a non-zero error number. 26492 pthread_rwlockattr_setkind_np() function always returns 0. 26493 26494 Errors 26495 26496 EINVAL 26497 26498 pref is set to an unsupported value. 26499 26500 Notes 26501 26502 Setting the value read-write lock kind to 26503 PTHREAD_RWLOCK_PREFER_WRITER_NP, results in the same behavior 26504 as setting the value to PTHREAD_RWLOCK_PREFER_READER_NP. As 26505 long as a reader thread holds the lock the thread holding a 26506 write lock will be starved. Setting the kind value to 26507 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, allows the writer 26508 to run. However, the writer may not be recursive as is implied 26509 by the name. 26510 26511 waitpid 26512 26513 Name 26514 26515 waitpid -- wait for child process 26516 26517 Description 26518 26519 waitpid() is as specified in POSIX 1003.1-2008 (ISO/IEC 26520 9945-2009), but with differences as listed below. 26521 26522 Need not support WCONTINUED or WIFCONTINUED 26523 26524 Implementations need not support the XSI optional functionality 26525 of WCONTINUED() or WIFCONTINUED(). 26526 __________________________________________________________ 26527 26528 14.12. Interfaces for libgcc_s 26529 26530 Table 14-55 defines the library name and shared object name for 26531 the libgcc_s library 26532 26533 Table 14-55. libgcc_s Definition 26534 Library: libgcc_s 26535 SONAME: libgcc_s.so.1 26536 26537 The behavior of the interfaces in this library is specified by 26538 the following specifications: 26539 26540 [LSB] This Specification 26541 __________________________________________________________ 26542 26543 14.12.1. Unwind Library 26544 __________________________________________________________ 26545 26546 14.12.1.1. Interfaces for Unwind Library 26547 26548 An LSB conforming implementation shall provide the generic 26549 functions for Unwind Library specified in Table 14-56, with the 26550 full mandatory functionality as described in the referenced 26551 underlying specification. 26552 26553 Table 14-56. libgcc_s - Unwind Library Function Interfaces 26554 _Unwind_Backtrace [LSB] _Unwind_DeleteException [LSB] 26555 _Unwind_FindEnclosingFunction [LSB] _Unwind_ForcedUnwind [LSB] 26556 _Unwind_GetCFA [LSB] _Unwind_GetGR [LSB] _Unwind_GetIP [LSB] 26557 _Unwind_GetIPInfo(GCC_4.2.0) [LSB] 26558 _Unwind_GetLanguageSpecificData [LSB] _Unwind_GetRegionStart 26559 [LSB] _Unwind_RaiseException [LSB] _Unwind_Resume [LSB] 26560 _Unwind_Resume_or_Rethrow [LSB] _Unwind_SetGR [LSB] 26561 _Unwind_SetIP [LSB] 26562 __________________________________________________________ 26563 26564 14.13. Data Definitions for libgcc_s 26565 26566 This section defines global identifiers and their values that 26567 are associated with interfaces contained in libgcc_s. These 26568 definitions are organized into groups that correspond to system 26569 headers. This convention is used as a convenience for the 26570 reader, and does not imply the existence of these headers, or 26571 their content. Where an interface is defined as requiring a 26572 particular system header file all of the data definitions for 26573 that system header file presented here shall be in effect. 26574 26575 This section gives data definitions to promote binary 26576 application portability, not to repeat source interface 26577 definitions available elsewhere. System providers and 26578 application developers should use this ABI to supplement - not 26579 to replace - source interface definition specifications. 26580 26581 This specification uses the ISO C (1999) C Language as the 26582 reference programming language, and data definitions are 26583 specified in ISO C format. The C language is used here as a 26584 convenient notation. Using a C language description of these 26585 data objects does not preclude their use by other programming 26586 languages. 26587 __________________________________________________________ 26588 26589 14.13.1. unwind.h 26590 26591 struct _Unwind_Context; 26592 struct _Unwind_Exception; 26593 26594 typedef unsigned int _Unwind_Ptr __attribute__ ((__mode__(__pointer__))); 26595 typedef unsigned int _Unwind_Word __attribute__ ((__mode__(__word__))); 26596 typedef unsigned int _Unwind_Exception_Class 26597 __attribute__ ((__mode__(__DI__))); 26598 26599 typedef enum { 26600 _URC_NO_REASON = 0, 26601 _URC_FOREIGN_EXCEPTION_CAUGHT = 1, 26602 _URC_FATAL_PHASE2_ERROR = 2, 26603 _URC_FATAL_PHASE1_ERROR = 3, 26604 _URC_NORMAL_STOP = 4, 26605 _URC_END_OF_STACK = 5, 26606 _URC_HANDLER_FOUND = 6, 26607 _URC_INSTALL_CONTEXT = 7, 26608 _URC_CONTINUE_UNWIND = 8 26609 } _Unwind_Reason_Code; 26610 26611 typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code, 26612 struct _Unwind_Exception *); 26613 26614 struct _Unwind_Exception { 26615 _Unwind_Exception_Class exception_class; 26616 _Unwind_Exception_Cleanup_Fn exception_cleanup; 26617 _Unwind_Word private_1; 26618 _Unwind_Word private_2; 26619 } __attribute__ ((__aligned__)); 26620 26621 #define _UA_SEARCH_PHASE 1 26622 #define _UA_END_OF_STACK 16 26623 #define _UA_CLEANUP_PHASE 2 26624 #define _UA_HANDLER_FRAME 4 26625 #define _UA_FORCE_UNWIND 8 26626 26627 typedef int _Unwind_Action; 26628 26629 typedef _Unwind_Reason_Code(*_Unwind_Stop_Fn) (int version, 26630 _Unwind_Action actions, 26631 _Unwind_Exception_Class 26632 exceptionClass, 26633 struct _Unwind_Exception* 26634 exceptionObject, 26635 struct _Unwind_Context * 26636 context, 26637 void *stop_parameter); 26638 26639 typedef _Unwind_Reason_Code(*_Unwind_Trace_Fn) (struct _Unwind_Context *, 26640 void *); 26641 extern _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); 26642 extern void _Unwind_DeleteException(struct _Unwind_Exception *); 26643 extern void *_Unwind_FindEnclosingFunction(void *); 26644 extern _Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *, 26645 _Unwind_Stop_Fn, void *); 26646 extern _Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *); 26647 extern _Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); 26648 extern _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *); 26649 extern _Unwind_Ptr _Unwind_GetIPInfo(struct _Unwind_Context *, int *); 26650 extern void *_Unwind_GetLanguageSpecificData(struct _Unwind_Context *); 26651 extern _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); 26652 extern _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception 26653 *); 26654 extern void _Unwind_Resume(struct _Unwind_Exception *); 26655 extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 26656 _Unwind_Exception *); 26657 extern void _Unwind_SetGR(struct _Unwind_Context *, int, u_int64_t); 26658 extern void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr); 26659 __________________________________________________________ 26660 26661 14.14. Interface Definitions for libgcc_s 26662 26663 Table of Contents 26664 _Unwind_Backtrace -- private C++ error handling method 26665 _Unwind_DeleteException -- private C++ error handling method 26666 _Unwind_FindEnclosingFunction -- private C++ error handling 26667 method 26668 26669 _Unwind_ForcedUnwind -- private C++ error handling method 26670 _Unwind_GetCFA -- private C++ error handling method 26671 _Unwind_GetGR -- private C++ error handling method 26672 _Unwind_GetIP -- private C++ error handling method 26673 _Unwind_GetIPInfo -- private C++ error handling method 26674 _Unwind_GetLanguageSpecificData -- private C++ error handling 26675 method 26676 26677 _Unwind_GetRegionStart -- private C++ error handling method 26678 _Unwind_RaiseException -- private C++ error handling method 26679 _Unwind_Resume -- private C++ error handling method 26680 _Unwind_Resume_or_Rethrow -- private C++ error handling method 26681 _Unwind_SetGR -- private C++ error handling method 26682 _Unwind_SetIP -- private C++ error handling method 26683 26684 The interfaces defined on the following pages are included in 26685 libgcc_s and are defined by this specification. Unless 26686 otherwise noted, these interfaces shall be included in the 26687 source standard. 26688 26689 Other interfaces listed in Section 14.12 shall behave as 26690 described in the referenced base document. 26691 26692 _Unwind_Backtrace 26693 26694 Name 26695 26696 _Unwind_Backtrace -- private C++ error handling method 26697 26698 Synopsis 26699 26700 _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn trace, 26701 void * trace_argument); 26702 26703 Description 26704 26705 _Unwind_Backtrace() performs a stack backtrace using unwind 26706 data. The trace callback is called for every stack frame in the 26707 call chain. No cleanup actions are performed. 26708 26709 _Unwind_DeleteException 26710 26711 Name 26712 26713 _Unwind_DeleteException -- private C++ error handling method 26714 26715 Synopsis 26716 26717 void _Unwind_DeleteException(struct _Unwind_Exception * 26718 object); 26719 26720 Description 26721 26722 _Unwind_DeleteException() deletes the given exception object. 26723 If a given runtime resumes normal execution after catching a 26724 foreign exception, it will not know how to delete that 26725 exception. Such an exception shall be deleted by calling 26726 _Unwind_DeleteException(). This is a convenience function that 26727 calls the function pointed to by the exception_cleanup field of 26728 the exception header. 26729 26730 _Unwind_FindEnclosingFunction 26731 26732 Name 26733 26734 _Unwind_FindEnclosingFunction -- private C++ error handling 26735 method 26736 26737 Synopsis 26738 26739 void * _Unwind_FindEnclosingFunction(void * ip); 26740 26741 Description 26742 26743 _Unwind_FindEnclosingFunction() Find the start address of the 26744 procedure containing the specified ip or NULL if it cannot be 26745 found (for example, because the function has no unwind info). 26746 26747 Note that there is not necessarily a one-to-one correspondence 26748 between source level functions and procedures. Some functions 26749 do not have unwind-info and others are split into multiple 26750 procedures. 26751 26752 _Unwind_ForcedUnwind 26753 26754 Name 26755 26756 _Unwind_ForcedUnwind -- private C++ error handling method 26757 26758 Synopsis 26759 26760 #include 26761 26762 _Unwind_Reason_Code _Unwind_ForcedUnwind(struct 26763 _Unwind_Exception * object, _Unwind_Stop_Fn stop, void * 26764 stop_parameter); 26765 26766 Description 26767 26768 Forced unwinding is a single-phase process. stop and 26769 stop_parameter control the termination of the unwind process 26770 instead of the usual personality routine query. Stop function 26771 stop is called for each unwind frame, with the parameteres 26772 described for the usual personality routine below, plus an 26773 additional stop_parameter. 26774 26775 Return Value 26776 26777 When stop identifies the destination frame, it transfers 26778 control to the user code as appropriate without returning, 26779 normally after calling _Unwind_DeleteException(). If not, then 26780 it should return an _Unwind_Reason_Code value. 26781 26782 If stop returns any reason code other than _URC_NO_REASON, then 26783 the stack state is indeterminate from the point of view of the 26784 caller of _Unwind_ForcedUnwind(). Rather than attempt to 26785 return, therefore, the unwind library should use the 26786 exception_cleanup entry in object, and then call abort(). 26787 26788 _URC_NO_REASON 26789 This is not the destination from. The unwind runtime 26790 will call frame's personality routine with the 26791 _UA_FORCE_UNWIND and _UA_CLEANUP_PHASE flag set in 26792 actions, and then unwind to the next frame and call the 26793 stop() function again. 26794 26795 _URC_END_OF_STACK 26796 In order to allow _Unwind_ForcedUnwind() to perform 26797 special processing when it reaches the end of the stack, 26798 the unwind runtime will call it after the last frame is 26799 rejected, with a NULL stack pointer in the context, and 26800 the STOP() FUNCTION SHALL CATCH THIS CONDITION. iT MAY 26801 return this code if it cannot handle end-of-stack. 26802 26803 _URC_FATAL_PHASE2_ERROR 26804 The stop() function may return this code for other fatal 26805 conditions like stack corruption. 26806 26807 _Unwind_GetCFA 26808 26809 Name 26810 26811 _Unwind_GetCFA -- private C++ error handling method 26812 26813 Synopsis 26814 26815 _Unwind_Word _Unwind_GetCFA(struct _Unwind_Context * context); 26816 26817 Description 26818 26819 _Unwind_GetCFA() shall retrieve the value of the Canonical 26820 Frame Address (CFA) of the given context. 26821 26822 _Unwind_GetGR 26823 26824 Name 26825 26826 _Unwind_GetGR -- private C++ error handling method 26827 26828 Synopsis 26829 26830 _Unwind_Word _Unwind_GetGR(struct _Unwind_Context * context, 26831 int index); 26832 26833 Description 26834 26835 _Unwind_GetGR() returns data at index found in context. The 26836 register is identified by its index: 0 to 31 are for the fixed 26837 registers, and 32 to 127 are for the stacked registers. 26838 26839 During the two phases of unwinding, only GR1 has a guaranteed 26840 value, which is the global pointer of the frame referenced by 26841 the unwind context. If the register has its NAT bit set, the 26842 behavior is unspecified. 26843 26844 _Unwind_GetIP 26845 26846 Name 26847 26848 _Unwind_GetIP -- private C++ error handling method 26849 26850 Synopsis 26851 26852 _Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context * context); 26853 26854 Description 26855 26856 _Unwind_GetIP() returns the instruction pointer value for the 26857 routine identified by the unwind context. 26858 26859 _Unwind_GetIPInfo 26860 26861 Name 26862 26863 _Unwind_GetIPInfo -- private C++ error handling method 26864 26865 Synopsis 26866 26867 _Unwind_Ptr _Unwind_GetIPInfo(struct _Unwind_Context * context, 26868 int * ip_before_insn); 26869 26870 Description 26871 26872 _Unwind_GetIPInfo() returns the instruction pointer value for 26873 the routine identified by the unwind context and sets 26874 ip_before_insn flag indicating whether that IP is before or 26875 after first not yet fully executed instruction. 26876 26877 _Unwind_GetLanguageSpecificData 26878 26879 Name 26880 26881 _Unwind_GetLanguageSpecificData -- private C++ error handling 26882 method 26883 26884 Synopsis 26885 26886 #include 26887 26888 _Unwind_Ptr _Unwind_GetLanguageSpecificData(struct 26889 _Unwind_Context * context); 26890 26891 Description 26892 26893 _Unwind_GetLanguageSpecificData() returns the address of the 26894 language specific data area for the current stack frame 26895 described by context. 26896 26897 _Unwind_GetRegionStart 26898 26899 Name 26900 26901 _Unwind_GetRegionStart -- private C++ error handling method 26902 26903 Synopsis 26904 26905 _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context * 26906 context); 26907 26908 Description 26909 26910 _Unwind_GetRegionStart() routine returns the address (i.e., 0) 26911 of the beginning of the procedure or code fragment described by 26912 the current unwind descriptor block. 26913 26914 _Unwind_RaiseException 26915 26916 Name 26917 26918 _Unwind_RaiseException -- private C++ error handling method 26919 26920 Synopsis 26921 26922 _Unwind_Reason_Code _Unwind_RaiseException(struct 26923 _Unwind_Exception * object); 26924 26925 Description 26926 26927 _Unwind_RaiseException() raises an exception, passing along the 26928 given exception object, which should have its exception_class 26929 and exception_cleanup fields set. The exception object has been 26930 allocated by the language-specific runtime, and has a 26931 language-specific format, exception that it shall contain an 26932 _Unwind_Exception. 26933 26934 Return Value 26935 26936 _Unwind_RaiseException() does not return unless an error 26937 condition is found. If an error condition occurs, an 26938 _Unwind_Reason_Code is returnd: 26939 26940 _URC_END_OF_STACK 26941 The unwinder encountered the end of the stack during 26942 phase one without finding a handler. The unwind runtime 26943 will not have modified the stack. The C++ runtime will 26944 normally call uncaught_exception() in this case. 26945 26946 _URC_FATAL_PHASE1_ERROR 26947 The unwinder encountered an unexpected error during 26948 phase one, because of something like stack corruption. 26949 The unwind runtime will not have modified the stack. The 26950 C++ runtime will normally call terminate() in this case. 26951 26952 _URC_FATAL_PHASE2_ERROR 26953 The unwinder encountered an unexpected error during 26954 phase two. This is usually a throw, which will call 26955 terminate(). 26956 26957 _Unwind_Resume 26958 26959 Name 26960 26961 _Unwind_Resume -- private C++ error handling method 26962 26963 Synopsis 26964 26965 void _Unwind_Resume(struct _Unwind_Exception * object); 26966 26967 Description 26968 26969 _Unwind_Resume() resumes propagation of an existing exception 26970 object. A call to this routine is inserted as the end of a 26971 landing pad that performs cleanup, but does not resume normal 26972 execution. It causes unwinding to proceed further. 26973 26974 _Unwind_Resume_or_Rethrow 26975 26976 Name 26977 26978 _Unwind_Resume_or_Rethrow -- private C++ error handling method 26979 26980 Synopsis 26981 26982 _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct 26983 _Unwind_Exception * exception_object); 26984 26985 Description 26986 26987 If the unwind was initiated due to a forced unwind, 26988 _Unwind_Resume_or_Rethrow() shall resume that operation, else 26989 it shall re-raise the exception. 26990 26991 _Unwind_SetGR 26992 26993 Name 26994 26995 _Unwind_SetGR -- private C++ error handling method 26996 26997 Synopsis 26998 26999 void _Unwind_SetGR(struct _Unwind_Context * context, int index, 27000 uint value); 27001 27002 Description 27003 27004 _Unwind_SetGR() sets the value of the register indexed for the 27005 routine identified by the unwind context. 27006 27007 _Unwind_SetIP 27008 27009 Name 27010 27011 _Unwind_SetIP -- private C++ error handling method 27012 27013 Synopsis 27014 27015 #include 27016 27017 void _Unwind_SetIP(struct _Unwind_Context * context, 27018 _Unwind_Ptr value); 27019 27020 Description 27021 27022 _Unwind_SetIP() sets the instruction pointer for the routine 27023 identified by the unwind context to value. 27024 __________________________________________________________ 27025 27026 14.15. Interfaces for libdl 27027 27028 Table 14-57 defines the library name and shared object name for 27029 the libdl library 27030 27031 Table 14-57. libdl Definition 27032 Library: libdl 27033 SONAME: libdl.so.2 27034 27035 The behavior of the interfaces in this library is specified by 27036 the following specifications: 27037 27038 [LSB] This Specification 27039 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 27040 __________________________________________________________ 27041 27042 14.15.1. Dynamic Loader 27043 __________________________________________________________ 27044 27045 14.15.1.1. Interfaces for Dynamic Loader 27046 27047 An LSB conforming implementation shall provide the generic 27048 functions for Dynamic Loader specified in Table 14-58, with the 27049 full mandatory functionality as described in the referenced 27050 underlying specification. 27051 27052 Table 14-58. libdl - Dynamic Loader Function Interfaces 27053 dladdr [LSB] dlclose [SUSv4] dlerror [SUSv4] dlopen [LSB] 27054 dlsym [LSB] dlvsym [LSB] 27055 __________________________________________________________ 27056 27057 14.16. Data Definitions for libdl 27058 27059 This section defines global identifiers and their values that 27060 are associated with interfaces contained in libdl. These 27061 definitions are organized into groups that correspond to system 27062 headers. This convention is used as a convenience for the 27063 reader, and does not imply the existence of these headers, or 27064 their content. Where an interface is defined as requiring a 27065 particular system header file all of the data definitions for 27066 that system header file presented here shall be in effect. 27067 27068 This section gives data definitions to promote binary 27069 application portability, not to repeat source interface 27070 definitions available elsewhere. System providers and 27071 application developers should use this ABI to supplement - not 27072 to replace - source interface definition specifications. 27073 27074 This specification uses the ISO C (1999) C Language as the 27075 reference programming language, and data definitions are 27076 specified in ISO C format. The C language is used here as a 27077 convenient notation. Using a C language description of these 27078 data objects does not preclude their use by other programming 27079 languages. 27080 __________________________________________________________ 27081 27082 14.16.1. dlfcn.h 27083 27084 #define RTLD_NEXT ((void *) -1l) 27085 #define RTLD_DEFAULT ((void *) 0) 27086 #define RTLD_LOCAL 0 27087 #define RTLD_LAZY 0x00001 27088 #define RTLD_NOW 0x00002 27089 #define RTLD_NOLOAD 0x00004 27090 #define RTLD_DEEPBIND 0x00008 27091 #define RTLD_GLOBAL 0x00100 27092 #define RTLD_NODELETE 0x01000 27093 27094 typedef struct { 27095 char *dli_fname; 27096 void *dli_fbase; 27097 char *dli_sname; 27098 void *dli_saddr; 27099 } Dl_info; 27100 extern int dladdr(const void *__address, Dl_info * __info); 27101 extern int dlclose(void *__handle); 27102 extern char *dlerror(void); 27103 extern void *dlopen(const char *__file, int __mode); 27104 extern void *dlsym(void *__handle, const char *__name); 27105 extern void *dlvsym(void *handle, const char *name, const char *version); 27106 __________________________________________________________ 27107 27108 14.17. Interface Definitions for libdl 27109 27110 Table of Contents 27111 dladdr -- find the shared object containing a given address 27112 dlopen -- open dynamic object 27113 dlsym -- obtain the address of a symbol from a dlopen object 27114 dlvsym -- obtain the address of a symbol from a dlopen object 27115 27116 The interfaces defined on the following pages are included in 27117 libdl and are defined by this specification. Unless otherwise 27118 noted, these interfaces shall be included in the source 27119 standard. 27120 27121 Other interfaces listed in Section 14.15 shall behave as 27122 described in the referenced base document. 27123 27124 dladdr 27125 27126 Name 27127 27128 dladdr -- find the shared object containing a given address 27129 27130 Synopsis 27131 27132 #include 27133 27134 typedef struct { 27135 const char *dli_fname; 27136 void *dli_fbase; 27137 const char *dli_sname; 27138 void *dli_saddr; 27139 } Dl_info; 27140 27141 int dladdr(const void * addr, Dl_info * dlip); 27142 27143 Description 27144 27145 The dladdr() function shall query the dynamic linker for 27146 information about the shared object containing the address 27147 addr. The information shall be returned in the user supplied 27148 data structure referenced by dlip. 27149 27150 The structure shall contain at least the following members: 27151 27152 dli_fname 27153 27154 The pathname of the shared object containing the address 27155 dli_fbase 27156 27157 The base address at which the shared object is mapped into the 27158 address space of the calling process. 27159 dli_sname 27160 27161 The name of the nearest runtime symbol with value less than or 27162 equal to addr. Where possible, the symbol name shall be 27163 returned as it would appear in C source code. 27164 27165 If no symbol with a suitable value is found, both this field 27166 and dli_saddr shall be set to NULL. 27167 dli_saddr 27168 27169 The address of the symbol returned in dli_sname. This address 27170 has type "pointer to type", where type is the type of the 27171 symbol dli_sname. 27172 27173 Example: If the symbol in dli_sname is a function, then the 27174 type of dli_saddr is of type "pointer to function". 27175 27176 The behavior of dladdr() is only specified in dynamically 27177 linked programs. 27178 27179 Return Value 27180 27181 On success, dladdr() shall return non-zero, and the structure 27182 referenced by dlip shall be filled in as described. Otherwise, 27183 dladdr() shall return zero, and the cause of the error can be 27184 fetched with dlerror(). 27185 27186 Errors 27187 27188 See dlerror(). 27189 27190 Environment 27191 27192 LD_LIBRARY_PATH 27193 27194 directory search-path for object files 27195 27196 dlopen 27197 27198 Name 27199 27200 dlopen -- open dynamic object 27201 27202 Synopsis 27203 27204 #include 27205 27206 void * dlopen(const char * filename, int flag); 27207 27208 Description 27209 27210 The dlopen() function shall behave as specified in POSIX 27211 1003.1-2008 (ISO/IEC 9945-2009), but with additional behaviors 27212 listed below. 27213 27214 If the file argument does not contain a character, then 27215 the system shall look for a library of that name in at least 27216 the following directories, and use the first one which is 27217 found: 27218 27219 * The directories specified by the DT_RPATH dynamic entry. 27220 * The directories specified in the LD_LIBRARY_PATH 27221 environment variable (which is a colon separated list of 27222 pathnames). This step shall be skipped for setuid and 27223 setgid executables. 27224 * A set of directories sufficient to contain the libraries 27225 specified in this standard. 27226 27227 Note: Traditionally, /lib and /usr/lib. This case would also 27228 cover cases in which the system used the mechanism of 27229 /etc/ld.so.conf and /etc/ld.so.cache to provide access. 27230 Example: An application which is not linked against libm may 27231 choose to dlopen libm. 27232 27233 Additional flags 27234 27235 In addition to the available values for flag as documented in 27236 POSIX 1003.1-2008 (ISO/IEC 9945-2009), the following values may 27237 also be ORed into flag: 27238 27239 RTLD_NODELETE 27240 27241 Do not unload the library during dlclose(). Consequently, the 27242 library's static variables are not reinitialized if the library 27243 is reloaded with dlopen() at a later time. 27244 RTLD_NOLOAD 27245 27246 Do not load the library. This can be used to test if the 27247 library is already resident. dlopen() returns a NULL pointer if 27248 it is not resident; it returns the library's handle if it is 27249 resident. This flag can also be used to promote the flags on a 27250 library that is already loaded. For example, a library that was 27251 previously loaded with RTLD_LOCAL can be reopened using 27252 RTLD_NOLOAD|RTLD_GLOBAL. 27253 RTLD_DEEPBIND 27254 27255 Place the lookup scope of the symbols in this library ahead of 27256 the global scope. This means that a self-contained library will 27257 use its own symbols in preference to global symbols with the 27258 same name contained in libraries that have already been loaded. 27259 27260 dlsym 27261 27262 Name 27263 27264 dlsym -- obtain the address of a symbol from a dlopen object 27265 27266 Description 27267 27268 dlsym() is as specified in the POSIX 1003.1-2008 (ISO/IEC 27269 9945-2009), but with differences as listed below. 27270 27271 RTLD_NEXT, RTLD_DEFAULT Required 27272 27273 The values RTLD_NEXT and RTLD_DEFAULT, described as reserved 27274 for future use in POSIX 1003.1-2008 (ISO/IEC 9945-2009), are 27275 required, with behavior as described in POSIX 1003.1-2008 27276 (ISO/IEC 9945-2009). 27277 27278 dlvsym 27279 27280 Name 27281 27282 dlvsym -- obtain the address of a symbol from a dlopen object 27283 27284 Synopsis 27285 27286 #include 27287 27288 void * dlvsym(void * handle, char * name, char * version); 27289 27290 Description 27291 27292 dlvsym() does the same as dlsym() but takes a version string as 27293 an additional argument. 27294 __________________________________________________________ 27295 27296 14.18. Interfaces for librt 27297 27298 Table 14-59 defines the library name and shared object name for 27299 the librt library 27300 27301 Table 14-59. librt Definition 27302 Library: librt 27303 SONAME: librt.so.1 27304 27305 The behavior of the interfaces in this library is specified by 27306 the following specifications: 27307 27308 [LFS] Large File Support 27309 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 27310 __________________________________________________________ 27311 27312 14.18.1. Shared Memory Objects 27313 __________________________________________________________ 27314 27315 14.18.1.1. Interfaces for Shared Memory Objects 27316 27317 An LSB conforming implementation shall provide the generic 27318 functions for Shared Memory Objects specified in Table 14-60, 27319 with the full mandatory functionality as described in the 27320 referenced underlying specification. 27321 27322 Table 14-60. librt - Shared Memory Objects Function Interfaces 27323 shm_open [SUSv4] shm_unlink [SUSv4] 27324 __________________________________________________________ 27325 27326 14.18.2. Asynchronous I/O 27327 __________________________________________________________ 27328 27329 14.18.2.1. Interfaces for Asynchronous I/O 27330 27331 An LSB conforming implementation shall provide the generic 27332 functions for Asynchronous I/O specified in Table 14-61, with 27333 the full mandatory functionality as described in the referenced 27334 underlying specification. 27335 27336 Table 14-61. librt - Asynchronous I/O Function Interfaces 27337 aio_cancel [SUSv4] aio_cancel64 [LFS] aio_error [SUSv4] 27338 aio_error64 [LFS] 27339 aio_fsync [SUSv4] aio_fsync64 [LFS] aio_read [SUSv4] aio_read64 27340 [LFS] 27341 aio_return [SUSv4] aio_return64 [LFS] aio_suspend [SUSv4] 27342 aio_suspend64 [LFS] 27343 aio_write [SUSv4] aio_write64 [LFS] lio_listio(GLIBC_2.4) 27344 [SUSv4] lio_listio64(GLIBC_2.4) [LFS] 27345 __________________________________________________________ 27346 27347 14.18.3. Clock 27348 __________________________________________________________ 27349 27350 14.18.3.1. Interfaces for Clock 27351 27352 An LSB conforming implementation shall provide the generic 27353 functions for Clock specified in Table 14-62, with the full 27354 mandatory functionality as described in the referenced 27355 underlying specification. 27356 27357 Table 14-62. librt - Clock Function Interfaces 27358 clock_getcpuclockid [SUSv4] clock_getres [SUSv4] clock_gettime 27359 [SUSv4] clock_nanosleep [SUSv4] 27360 clock_settime [SUSv4] 27361 __________________________________________________________ 27362 27363 14.18.4. Timers 27364 __________________________________________________________ 27365 27366 14.18.4.1. Interfaces for Timers 27367 27368 An LSB conforming implementation shall provide the generic 27369 functions for Timers specified in Table 14-63, with the full 27370 mandatory functionality as described in the referenced 27371 underlying specification. 27372 27373 Table 14-63. librt - Timers Function Interfaces 27374 timer_create [SUSv4] timer_delete [SUSv4] timer_getoverrun 27375 [SUSv4] timer_gettime [SUSv4] 27376 timer_settime [SUSv4] 27377 __________________________________________________________ 27378 27379 14.18.5. Message Queues 27380 __________________________________________________________ 27381 27382 14.18.5.1. Interfaces for Message Queues 27383 27384 An LSB conforming implementation shall provide the generic 27385 functions for Message Queues specified in Table 14-64, with the 27386 full mandatory functionality as described in the referenced 27387 underlying specification. 27388 27389 Table 14-64. librt - Message Queues Function Interfaces 27390 mq_close(GLIBC_2.3.4) [SUSv4] mq_getattr(GLIBC_2.3.4) [SUSv4] 27391 mq_notify(GLIBC_2.3.4) [SUSv4] mq_open(GLIBC_2.3.4) [SUSv4] 27392 mq_receive(GLIBC_2.3.4) [SUSv4] mq_send(GLIBC_2.3.4) [SUSv4] 27393 mq_setattr(GLIBC_2.3.4) [SUSv4] mq_timedreceive(GLIBC_2.3.4) 27394 [SUSv4] 27395 mq_timedsend(GLIBC_2.3.4) [SUSv4] mq_unlink(GLIBC_2.3.4) 27396 [SUSv4] 27397 __________________________________________________________ 27398 27399 14.19. Data Definitions for librt 27400 27401 This section defines global identifiers and their values that 27402 are associated with interfaces contained in librt. These 27403 definitions are organized into groups that correspond to system 27404 headers. This convention is used as a convenience for the 27405 reader, and does not imply the existence of these headers, or 27406 their content. Where an interface is defined as requiring a 27407 particular system header file all of the data definitions for 27408 that system header file presented here shall be in effect. 27409 27410 This section gives data definitions to promote binary 27411 application portability, not to repeat source interface 27412 definitions available elsewhere. System providers and 27413 application developers should use this ABI to supplement - not 27414 to replace - source interface definition specifications. 27415 27416 This specification uses the ISO C (1999) C Language as the 27417 reference programming language, and data definitions are 27418 specified in ISO C format. The C language is used here as a 27419 convenient notation. Using a C language description of these 27420 data objects does not preclude their use by other programming 27421 languages. 27422 __________________________________________________________ 27423 27424 14.19.1. aio.h 27425 27426 #define AIO_CANCELED 0 27427 #define AIO_NOTCANCELED 1 27428 #define AIO_ALLDONE 2 27429 27430 #define LIO_READ 0 27431 #define LIO_WRITE 1 27432 #define LIO_NOP 2 27433 27434 #define LIO_WAIT 0 27435 #define LIO_NOWAIT 1 27436 27437 struct aiocb { 27438 int aio_fildes; /* File desriptor */ 27439 int aio_lio_opcode; /* Operation to be performed */ 27440 int aio_reqprio; /* Request priority offset */ 27441 void *aio_buf; /* Location of buffer */ 27442 size_t aio_nbytes; /* Length of transfer */ 27443 struct sigevent aio_sigevent; /* Signal number and value */ 27444 struct aiocb *__next_prio; /* internal, do not use */ 27445 int __abs_prio; /* internal, do not use */ 27446 int __policy; /* internal, do not use */ 27447 int __error_code; /* internal, do not use */ 27448 ssize_t __return_value; /* internal, do not use */ 27449 off_t aio_offset; /* File offset */ 27450 char __pad[sizeof(off64_t) - sizeof(off_t)]; 27451 char __unused[32]; 27452 }; 27453 struct aiocb64 { 27454 int aio_fildes; /* File desriptor */ 27455 int aio_lio_opcode; /* Operation to be performed */ 27456 int aio_reqprio; /* Request priority offset */ 27457 void *aio_buf; /* Location of buffer */ 27458 size_t aio_nbytes; /* Length of transfer */ 27459 struct sigevent aio_sigevent; /* Signal number and value */ 27460 struct aiocb *__next_prio; /* internal, do not use */ 27461 int __abs_prio; /* internal, do not use */ 27462 int __policy; /* internal, do not use */ 27463 int __error_code; /* internal, do not use */ 27464 ssize_t __return_value; /* internal, do not use */ 27465 off64_t aio_offset; /* File offset */ 27466 char __unused[32]; 27467 }; 27468 extern int aio_cancel(int fildes, struct aiocb *aiocbp); 27469 extern int aio_cancel64(int fildes, struct aiocb64 *aiocbp); 27470 extern int aio_error(struct aiocb *aiocbp); 27471 extern int aio_error64(struct aiocb64 *aiocbp); 27472 extern int aio_fsync(int operation, struct aiocb *aiocbp); 27473 extern int aio_fsync64(int operation, struct aiocb64 *aiocbp); 27474 extern int aio_read(struct aiocb *aiocbp); 27475 extern int aio_read64(struct aiocb64 *aiocbp); 27476 extern int aio_return(struct aiocb *aiocbp); 27477 extern int aio_return64(struct aiocb64 *aiocbp); 27478 extern int aio_suspend(struct aiocb *list[], int nent, 27479 struct timespec *timeout); 27480 extern int aio_suspend64(struct aiocb64 *list[], int nent, 27481 struct timespec *timeout); 27482 extern int aio_write(struct aiocb *aiocbp); 27483 extern int aio_write64(struct aiocb64 *aiocbp); 27484 extern int lio_listio(int mode, struct aiocb *list[], int nent, 27485 struct sigevent *sig); 27486 extern int lio_listio64(int mode, struct aiocb64 *list[], int nent, 27487 struct sigevent *sig); 27488 __________________________________________________________ 27489 27490 14.19.2. mqueue.h 27491 27492 typedef int mqd_t; 27493 struct mq_attr { 27494 long int mq_flags; 27495 long int mq_maxmsg; 27496 long int mq_msgsize; 27497 long int mq_curmsgs; 27498 long int __pad[4]; 27499 }; 27500 extern int mq_close(mqd_t __mqdes); 27501 extern int mq_getattr(mqd_t __mqdes, struct mq_attr *__mqstat); 27502 extern int mq_notify(mqd_t __mqdes, const struct sigevent *__notification); 27503 extern mqd_t mq_open(const char *__name, int __oflag, ...); 27504 extern ssize_t mq_receive(mqd_t __mqdes, char *__msg_ptr, size_t __msg_len, 27505 unsigned int *__msg_prio); 27506 extern int mq_send(mqd_t __mqdes, const char *__msg_ptr, size_t __msg_len, 27507 unsigned int __msg_prio); 27508 extern int mq_setattr(mqd_t __mqdes, const struct mq_attr *__mqstat, 27509 struct mq_attr *__omqstat); 27510 extern ssize_t mq_timedreceive(mqd_t __mqdes, char *__msg_ptr, 27511 size_t __msg_len, unsigned int *__msg_prio, 27512 const struct timespec *__abs_timeout); 27513 extern int mq_timedsend(mqd_t __mqdes, const char *__msg_ptr, 27514 size_t __msg_len, unsigned int __msg_prio, 27515 const struct timespec *__abs_timeout); 27516 extern int mq_unlink(const char *__name); 27517 __________________________________________________________ 27518 27519 14.20. Interfaces for libcrypt 27520 27521 Table 14-65 defines the library name and shared object name for 27522 the libcrypt library 27523 27524 Table 14-65. libcrypt Definition 27525 Library: libcrypt 27526 SONAME: libcrypt.so.1 27527 27528 The behavior of the interfaces in this library is specified by 27529 the following specifications: 27530 27531 [LSB] This Specification 27532 [SUSv4] POSIX 1003.1-2008 (ISO/IEC 9945-2009) 27533 __________________________________________________________ 27534 27535 14.20.1. Encryption 27536 __________________________________________________________ 27537 27538 14.20.1.1. Interfaces for Encryption 27539 27540 An LSB conforming implementation shall provide the generic 27541 functions for Encryption specified in Table 14-66, with the 27542 full mandatory functionality as described in the referenced 27543 underlying specification. 27544 27545 Table 14-66. libcrypt - Encryption Function Interfaces 27546 crypt [SUSv4] crypt_r [LSB] encrypt [SUSv4] encrypt_r [LSB] 27547 setkey [SUSv4] setkey_r [LSB] 27548 __________________________________________________________ 27549 27550 14.21. Data Definitions for libcrypt 27551 27552 This section defines global identifiers and their values that 27553 are associated with interfaces contained in libcrypt. These 27554 definitions are organized into groups that correspond to system 27555 headers. This convention is used as a convenience for the 27556 reader, and does not imply the existence of these headers, or 27557 their content. Where an interface is defined as requiring a 27558 particular system header file all of the data definitions for 27559 that system header file presented here shall be in effect. 27560 27561 This section gives data definitions to promote binary 27562 application portability, not to repeat source interface 27563 definitions available elsewhere. System providers and 27564 application developers should use this ABI to supplement - not 27565 to replace - source interface definition specifications. 27566 27567 This specification uses the ISO C (1999) C Language as the 27568 reference programming language, and data definitions are 27569 specified in ISO C format. The C language is used here as a 27570 convenient notation. Using a C language description of these 27571 data objects does not preclude their use by other programming 27572 languages. 27573 __________________________________________________________ 27574 27575 14.21.1. crypt.h 27576 27577 struct crypt_data { 27578 char keysched[128]; 27579 char sb0[32768]; 27580 char sb1[32768]; 27581 char sb2[32768]; 27582 char sb3[32768]; 27583 char crypt_3_buf[14]; 27584 char current_salt[2]; 27585 long int current_saltbits; 27586 int direction; 27587 int initialized; 27588 }; 27589 extern char *crypt_r(const char *key, const char *salt, 27590 struct crypt_data *data); 27591 extern void encrypt_r(const char *block, int edflag, 27592 struct crypt_data *data); 27593 extern void setkey_r(const char *key, struct crypt_data *data); 27594 __________________________________________________________ 27595 27596 14.22. Interface Definitions for libcrypt 27597 27598 Table of Contents 27599 crypt_r -- Cryptographic string encoding function 27600 encrypt_r -- Cryptographic encoding function 27601 setkey_r -- Set cryptographic encoding key 27602 27603 The interfaces defined on the following pages are included in 27604 libcrypt and are defined by this specification. Unless 27605 otherwise noted, these interfaces shall be included in the 27606 source standard. 27607 27608 Other interfaces listed in Section 14.20 shall behave as 27609 described in the referenced base document. 27610 27611 crypt_r 27612 27613 Name 27614 27615 crypt_r -- Cryptographic string encoding function 27616 27617 Synopsis 27618 27619 #include 27620 27621 char * crypt_r(const char * key, const char * salt, struct 27622 crypt_data * data); 27623 27624 Description 27625 27626 The crypt_r() function is a re-entrant version of the crypt() 27627 function. crypt_r() shall behave as specified for crypt() in 27628 POSIX 1003.1-2008 (ISO/IEC 9945-2009), but with an additional 27629 parameter, a pointer to a structure which is used to store 27630 result data and bookkeeping information. 27631 27632 The caller should set the initialized field of the crypt_data 27633 structure to zero before the first call to crypt_r(). 27634 27635 Notes 27636 27637 INSERT TEXT HERE 27638 27639 See Also 27640 27641 crypt(), setkey_r(), encrypt_r(). 27642 27643 encrypt_r 27644 27645 Name 27646 27647 encrypt_r -- Cryptographic encoding function 27648 27649 Synopsis 27650 27651 #include 27652 27653 void encrypt_r(const char * block, int edflag, struct 27654 crypt_data * data); 27655 27656 Description 27657 27658 The encrypt_r() function is a re-entrant version of the 27659 encrypt() function. encrypt_r() shall behave as specified for 27660 encrypt() in POSIX 1003.1-2008 (ISO/IEC 9945-2009), but with an 27661 additional parameter, a pointer to a structure which is used to 27662 store result data and bookkeeping information. 27663 27664 Notes 27665 27666 INSERT TEXT HERE 27667 27668 See Also 27669 27670 encrypt(), crypt_r(), setkey_r(). 27671 27672 setkey_r 27673 27674 Name 27675 27676 setkey_r -- Set cryptographic encoding key 27677 27678 Synopsis 27679 27680 #include 27681 27682 void setkey_r(const char * key, struct crypt_data * data); 27683 27684 Description 27685 27686 The setkey_r() function is a re-entrant version of the setkey() 27687 function. setkey_r() shall behave as specified for setkey() in 27688 POSIX 1003.1-2008 (ISO/IEC 9945-2009), but with an additional 27689 parameter, a pointer to a structure which is used to store 27690 result data and bookkeeping information. 27691 27692 The caller should set the initialized field of the crypt_data 27693 structure to zero before the first call to setkey_r(). 27694 27695 Notes 27696 27697 INSERT TEXT HERE 27698 27699 See Also 27700 27701 setkey(), crypt_r(), encrypt_r(). 27702 __________________________________________________________ 27703 27704 14.23. Interfaces for libpam 27705 27706 Table 14-67 defines the library name and shared object name for 27707 the libpam library 27708 27709 Table 14-67. libpam Definition 27710 Library: libpam 27711 SONAME: libpam.so.0 27712 27713 The Pluggable Authentication Module (PAM) interfaces allow 27714 applications to request authentication via a system 27715 administrator defined mechanism, known as a service. 27716 27717 A single service name, other, shall always be present. The 27718 behavior of this service shall be determined by the system 27719 administrator. Additional service names may also exist. 27720 27721 Note: Future versions of this specification might define 27722 additional service names. 27723 27724 The behavior of the interfaces in this library is specified by 27725 the following specifications: 27726 27727 [LSB] This Specification 27728 [PAM] PAM 27729 __________________________________________________________ 27730 27731 14.23.1. Pluggable Authentication API 27732 __________________________________________________________ 27733 27734 14.23.1.1. Interfaces for Pluggable Authentication API 27735 27736 An LSB conforming implementation shall provide the generic 27737 functions for Pluggable Authentication API specified in Table 27738 14-68, with the full mandatory functionality as described in 27739 the referenced underlying specification. 27740 27741 Table 14-68. libpam - Pluggable Authentication API Function 27742 Interfaces 27743 pam_acct_mgmt(LIBPAM_1.0) [LSB] pam_authenticate(LIBPAM_1.0) 27744 [LSB] pam_chauthtok(LIBPAM_1.0) [LSB] 27745 pam_close_session(LIBPAM_1.0) [LSB] 27746 pam_end(LIBPAM_1.0) [LSB] pam_fail_delay(LIBPAM_1.0) [LSB] 27747 pam_get_data(LIBPAM_1.0) [PAM] pam_get_item(LIBPAM_1.0) [LSB] 27748 pam_get_user(LIBPAM_1.0) [PAM] pam_getenv(LIBPAM_1.0) [LSB] 27749 pam_getenvlist(LIBPAM_1.0) [LSB] pam_open_session(LIBPAM_1.0) 27750 [LSB] 27751 pam_putenv(LIBPAM_1.0) [LSB] pam_set_data(LIBPAM_1.0) [PAM] 27752 pam_set_item(LIBPAM_1.0) [LSB] pam_setcred(LIBPAM_1.0) [LSB] 27753 pam_start(LIBPAM_1.0) [LSB] pam_strerror(LIBPAM_1.0) [LSB] 27754 __________________________________________________________ 27755 27756 14.24. Data Definitions for libpam 27757 27758 This section defines global identifiers and their values that 27759 are associated with interfaces contained in libpam. These 27760 definitions are organized into groups that correspond to system 27761 headers. This convention is used as a convenience for the 27762 reader, and does not imply the existence of these headers, or 27763 their content. Where an interface is defined as requiring a 27764 particular system header file all of the data definitions for 27765 that system header file presented here shall be in effect. 27766 27767 This section gives data definitions to promote binary 27768 application portability, not to repeat source interface 27769 definitions available elsewhere. System providers and 27770 application developers should use this ABI to supplement - not 27771 to replace - source interface definition specifications. 27772 27773 This specification uses the ISO C (1999) C Language as the 27774 reference programming language, and data definitions are 27775 specified in ISO C format. The C language is used here as a 27776 convenient notation. Using a C language description of these 27777 data objects does not preclude their use by other programming 27778 languages. 27779 __________________________________________________________ 27780 27781 14.24.1. security/_pam_types.h 27782 27783 typedef struct pam_handle pam_handle_t; 27784 struct pam_message { 27785 int msg_style; 27786 const char *msg; 27787 }; 27788 struct pam_response { 27789 char *resp; 27790 int resp_retcode; /* currently un-used, zero expected */ 27791 }; 27792 27793 struct pam_conv { 27794 int (*conv) (int num_msg, const struct pam_message * *msg, 27795 struct pam_response * *resp, void *appdata_ptr); 27796 void *appdata_ptr; 27797 }; 27798 27799 #define PAM_PROMPT_ECHO_OFF 1 27800 #define PAM_PROMPT_ECHO_ON 2 27801 #define PAM_ERROR_MSG 3 27802 #define PAM_TEXT_INFO 4 27803 27804 #define PAM_SERVICE 1 /* The service name */ 27805 #define PAM_USER 2 /* The user name */ 27806 #define PAM_TTY 3 /* The tty name */ 27807 #define PAM_RHOST 4 /* The remote host name */ 27808 #define PAM_CONV 5 /* The pam_conv structure */ 27809 #define PAM_RUSER 8 /* The remote user name */ 27810 #define PAM_USER_PROMPT 9 /* the prompt for getting a username */ 27811 27812 #define PAM_SUCCESS 0 /* Successful function return */ 27813 #define PAM_OPEN_ERR 1 /* dlopen() failure */ 27814 #define PAM_USER_UNKNOWN 10 /* User not known to the underlying authenticaiton module */ 27815 #define PAM_MAXTRIES 11 /* An authentication service has maintained a retry count which */ 27816 #define PAM_NEW_AUTHTOK_REQD 12 /* New authentication token required */ 27817 #define PAM_ACCT_EXPIRED 13 /* User account has expired */ 27818 #define PAM_SESSION_ERR 14 /* Can not make/remove an entry for the specified session */ 27819 #define PAM_CRED_UNAVAIL 15 /* Underlying authentication service can not retrieve user cred */ 27820 #define PAM_CRED_EXPIRED 16 /* User credentials expired */ 27821 #define PAM_CRED_ERR 17 /* Failure setting user credentials */ 27822 #define PAM_CONV_ERR 19 /* Conversation error */ 27823 #define PAM_SYMBOL_ERR 2 /* Symbol not found */ 27824 #define PAM_AUTHTOK_ERR 20 /* Authentication token manipulation error */ 27825 #define PAM_AUTHTOK_RECOVER_ERR 21 /* Authentication information cannot be recovered */ 27826 #define PAM_AUTHTOK_LOCK_BUSY 22 /* Authentication token lock busy */ 27827 #define PAM_AUTHTOK_DISABLE_AGING 23 /* Authentication tokenaging disabled */ 27828 #define PAM_TRY_AGAIN 24 /* Preliminary check by password service */ 27829 #define PAM_ABORT 26 /* Critical error (?module fail now request) */ 27830 #define PAM_AUTHTOK_EXPIRED 27 /* user's authentication token has expired */ 27831 #define PAM_BAD_ITEM 29 /* Bad item passed to pam_*_item() */ 27832 #define PAM_SERVICE_ERR 3 /* Error in service module */ 27833 #define PAM_SYSTEM_ERR 4 /* System error */ 27834 #define PAM_BUF_ERR 5 /* Memory buffer error */ 27835 #define PAM_PERM_DENIED 6 /* Permission denied */ 27836 #define PAM_AUTH_ERR 7 /* Authentication failure */ 27837 #define PAM_CRED_INSUFFICIENT 8 /* Can not access authentication data due to insufficient crede */ 27838 #define PAM_AUTHINFO_UNAVAIL 9 /* Underlying authentication service can not retrieve authentic */ 27839 27840 #define PAM_DISALLOW_NULL_AUTHTOK 0x0001U 27841 #define PAM_ESTABLISH_CRED 0x0002U /* Set user credentials for an authentication service */ 27842 #define PAM_DELETE_CRED 0x0004U /* Delete user credentials associated with an authentication se */ 27843 #define PAM_REINITIALIZE_CRED 0x0008U /* Reinitialize user credentials */ 27844 #define PAM_REFRESH_CRED 0x0010U /* Extend lifetime of user credentials */ 27845 #define PAM_CHANGE_EXPIRED_AUTHTOK 0x0020U /* Extend lifetime of user credentials */ 27846 #define PAM_SILENT 0x8000U /* Authentication service should not generate any messages */ 27847 27848 extern int pam_fail_delay(pam_handle_t *, unsigned int); 27849 extern int pam_get_item(const pam_handle_t *, int, const void **); 27850 extern const char *pam_getenv(pam_handle_t *, const char *); 27851 extern char **pam_getenvlist(pam_handle_t *); 27852 extern int pam_putenv(pam_handle_t *, const char *); 27853 extern int pam_set_item(pam_handle_t *, int, const void *); 27854 extern const char *pam_strerror(pam_handle_t *, int); 27855 __________________________________________________________ 27856 27857 14.24.2. security/pam_appl.h 27858 27859 extern int pam_acct_mgmt(pam_handle_t *, int); 27860 extern int pam_authenticate(pam_handle_t *, int); 27861 extern int pam_chauthtok(pam_handle_t *, int); 27862 extern int pam_close_session(pam_handle_t *, int); 27863 extern int pam_end(pam_handle_t *, int); 27864 extern int pam_open_session(pam_handle_t *, int); 27865 extern int pam_setcred(pam_handle_t *, int); 27866 extern int pam_start(const char *, const char *, const struct pam_conv *, 27867 pam_handle_t * *); 27868 __________________________________________________________ 27869 27870 14.24.3. security/pam_modules.h 27871 27872 extern int pam_get_data(const pam_handle_t *, const char *, const void **); 27873 extern int pam_get_user(pam_handle_t *, const char **, const char *); 27874 extern int pam_set_data(pam_handle_t *, const char *, void *, 27875 void (*)(pam_handle_t *, void *, int)); 27876 __________________________________________________________ 27877 27878 14.25. Interface Definitions for libpam 27879 27880 Table of Contents 27881 pam_acct_mgmt -- establish the status of a user's account 27882 pam_authenticate -- authenticate the user 27883 pam_chauthtok -- change the authentication token for a given 27884 user 27885 27886 pam_close_session -- indicate that an authenticated session has 27887 ended 27888 27889 pam_end -- terminate the use of the PAM library 27890 pam_fail_delay -- specify delay time to use on authentication 27891 error 27892 27893 pam_get_item -- obtain the value of the indicated item. 27894 pam_getenv -- get a PAM environment variable 27895 pam_getenvlist -- returns a pointer to the complete PAM 27896 environment. 27897 27898 pam_open_session -- indicate session has started 27899 pam_putenv -- Add, replace or delete a PAM environment variable 27900 pam_set_item -- (re)set the value of an item. 27901 pam_setcred -- set the module-specific credentials of the user 27902 pam_start -- initialize the PAM library 27903 pam_strerror -- returns a string describing the PAM error 27904 27905 The interfaces defined on the following pages are included in 27906 libpam and are defined by this specification. Unless otherwise 27907 noted, these interfaces shall be included in the source 27908 standard. 27909 27910 Other interfaces listed in Section 14.23 shall behave as 27911 described in the referenced base document. 27912 27913 pam_acct_mgmt 27914 27915 Name 27916 27917 pam_acct_mgmt -- establish the status of a user's account 27918 27919 Synopsis 27920 27921 #include 27922 27923 int pam_acct_mgmt(pam_handle_t * pamh, int flags); 27924 27925 Description 27926 27927 pam_acct_mgmt() establishes the account's usability and the 27928 user's accessibility to the system. It is typically called 27929 after the user has been authenticated. 27930 27931 flags may be specified as any valid flag (namely, one of those 27932 applicable to the flags argument of pam_authenticate()). 27933 Additionally, the value of flags may be logically or'd with 27934 PAM_SILENT. 27935 27936 Return Value 27937 27938 PAM_SUCCESS 27939 27940 Success. 27941 PAM_NEW_AUTHTOK_REQD 27942 27943 User is valid, but user's authentication token has expired. The 27944 correct response to this return-value is to require that the 27945 user satisfy the pam_chauthtok() function before obtaining 27946 service. It may not be possible for an application to do this. 27947 In such a case, the user should be denied access until the 27948 account password is updated. 27949 PAM_ACCT_EXPIRED 27950 27951 User is no longer permitted access to the system. 27952 PAM_AUTH_ERR 27953 27954 Authentication error. 27955 PAM_PERM_DENIED 27956 27957 User is not permitted to gain access at this time. 27958 PAM_USER_UNKNOWN 27959 27960 User is not known to a module's account management component. 27961 27962 Note: Errors may be translated to text with pam_strerror(). 27963 27964 pam_authenticate 27965 27966 Name 27967 27968 pam_authenticate -- authenticate the user 27969 27970 Synopsis 27971 27972 #include 27973 27974 int pam_authenticate(pam_handle_t * pamh, int flags); 27975 27976 Description 27977 27978 pam_authenticate() serves as an interface to the authentication 27979 mechanisms of the loaded modules. 27980 27981 flags is an optional parameter that may be specified by the 27982 following value: 27983 27984 PAM_DISALLOW_NULL_AUTHTOK 27985 Instruct the authentication modules to return 27986 PAM_AUTH_ERR if the user does not have a registered 27987 authorization token. 27988 27989 Additionally, the value of flags may be logically or'd with 27990 PAM_SILENT. 27991 27992 The process may need to be privileged in order to successfully 27993 call this function. 27994 27995 Return Value 27996 27997 PAM_SUCCESS 27998 Success. 27999 28000 PAM_AUTH_ERR 28001 User was not authenticated or process did not have 28002 sufficient privileges to perform authentication. 28003 28004 PAM_CRED_INSUFFICIENT 28005 Application does not have sufficient credentials to 28006 authenticate the user. 28007 28008 PAM_AUTHINFO_UNAVAIL 28009 Modules were not able to access the authentication 28010 information. This might be due to a network or hardware 28011 failure, etc. 28012 28013 PAM_USER_UNKNOWN 28014 Supplied username is not known to the authentication 28015 service. 28016 28017 PAM_MAXTRIES 28018 One or more authentication modules has reached its limit 28019 of tries authenticating the user. Do not try again. 28020 28021 PAM_ABORT 28022 One or more authentication modules failed to load. 28023 28024 Note: Errors may be translated to text with pam_strerror(). 28025 28026 pam_chauthtok 28027 28028 Name 28029 28030 pam_chauthtok -- change the authentication token for a given 28031 user 28032 28033 Synopsis 28034 28035 #include 28036 28037 int pam_chauthtok(pam_handle_t * pamh, const int flags); 28038 28039 Description 28040 28041 pam_chauthtok() is used to change the authentication token for 28042 a given user as indicated by the state associated with the 28043 handle pamh. 28044 28045 flags is an optional parameter that may be specified by the 28046 following value: 28047 28048 PAM_CHANGE_EXPIRED_AUTHTOK 28049 User's authentication token should only be changed if it 28050 has expired. 28051 28052 Additionally, the value of flags may be logically or'd with 28053 PAM_SILENT. 28054 28055 RETURN VALUE 28056 28057 PAM_SUCCESS 28058 Success. 28059 28060 PAM_AUTHTOK_ERR 28061 A module was unable to obtain the new authentication 28062 token. 28063 28064 PAM_AUTHTOK_RECOVER_ERR 28065 A module was unable to obtain the old authentication 28066 token. 28067 28068 PAM_AUTHTOK_LOCK_BUSY 28069 One or more modules were unable to change the 28070 authentication token since it is currently locked. 28071 28072 PAM_AUTHTOK_DISABLE_AGING 28073 Authentication token aging has been disabled for at 28074 least one of the modules. 28075 28076 PAM_PERM_DENIED 28077 Permission denied. 28078 28079 PAM_TRY_AGAIN 28080 Not all modules were in a position to update the 28081 authentication token(s). In such a case, none of the 28082 user's authentication tokens are updated. 28083 28084 PAM_USER_UNKNOWN 28085 User is not known to the authentication token changing 28086 service. 28087 28088 Note: Errors may be translated to text with pam_strerror(). 28089 28090 pam_close_session 28091 28092 Name 28093 28094 pam_close_session -- indicate that an authenticated session has 28095 ended 28096 28097 Synopsis 28098 28099 #include 28100 28101 int pam_close_session(pam_handle_t * pamh, int flags); 28102 28103 Description 28104 28105 pam_close_session() is used to indicate that an authenticated 28106 session has ended. It is used to inform the module that the 28107 user is exiting a session. It should be possible for the PAM 28108 library to open a session and close the same session from 28109 different applications. 28110 28111 flags may have the value PAM_SILENT to indicate that no output 28112 should be generated as a result of this function call. 28113 28114 Return Value 28115 28116 PAM_SUCCESS 28117 28118 Success. 28119 PAM_SESSION_ERR 28120 28121 One of the required loaded modules was unable to close a 28122 session for the user. 28123 28124 Note: Errors may be translated to text with pam_strerror(). 28125 28126 pam_end 28127 28128 Name 28129 28130 pam_end -- terminate the use of the PAM library 28131 28132 Synopsis 28133 28134 #include 28135 28136 int pam_end(pam_handle_t * pamh, int pam_status); 28137 28138 Description 28139 28140 pam_end() terminates use of the PAM library. On success, the 28141 contents of *pamh are no longer valid, and all memory 28142 associated with it is invalid. 28143 28144 Normally, pam_status is passed the value PAM_SUCCESS, but in 28145 the event of an unsuccessful service application, the 28146 appropriate PAM error return value should be used. 28147 28148 Return Value 28149 28150 PAM_SUCCESS 28151 28152 Success. 28153 28154 Note: Errors may be translated to text with pam_strerror(). 28155 28156 pam_fail_delay 28157 28158 Name 28159 28160 pam_fail_delay -- specify delay time to use on authentication 28161 error 28162 28163 Synopsis 28164 28165 #include 28166 28167 int pam_fail_delay(pam_handle_t * pamh, unsigned int 28168 micro_sec); 28169 28170 Description 28171 28172 pam_fail_delay() specifies the minimum delay for the PAM 28173 library to use when an authentication error occurs. The actual 28174 delay can vary by as much at 25%. If this function is called 28175 multiple times, the longest time specified by any of the call 28176 will be used. 28177 28178 The delay is invoked if an authentication error occurs during 28179 the pam_authenticate() or pam_chauthtok() function calls. 28180 28181 Independent of the success of pam_authenticate() or 28182 pam_chauthtok(), the delay time is reset to its default value 28183 of 0 when the PAM library returns control to the application 28184 from these two functions. 28185 28186 Return Value 28187 28188 PAM_SUCCESS 28189 28190 Success. 28191 28192 Note: Errors may be translated to text with pam_strerror(). 28193 28194 pam_get_item 28195 28196 Name 28197 28198 pam_get_item -- obtain the value of the indicated item. 28199 28200 Synopsis 28201 28202 #include 28203 28204 int pam_get_item(const pam_handle_t * pamh, int item_type, 28205 const void * * item); 28206 28207 Description 28208 28209 pam_get_item() obtains the value of the indicated item_type. 28210 The possible values of item_type are the same as listed for 28211 pam_set_item(). 28212 28213 On success, item contains a pointer to the value of the 28214 corresponding item. Note that this is a pointer to the actual 28215 data and should not be free()'d or over-written. 28216 28217 Return Value 28218 28219 PAM_SUCCESS 28220 28221 Success. 28222 PAM_PERM_DENIED 28223 28224 Application passed a NULL pointer for item. 28225 PAM_BAD_ITEM 28226 28227 Application attempted to get an undefined item. 28228 28229 Note: Errors may be translated to text with pam_strerror(). 28230 28231 pam_getenv 28232 28233 Name 28234 28235 pam_getenv -- get a PAM environment variable 28236 28237 Synopsis 28238 28239 #include 28240 28241 const char * pam_getenv(const pam_handle_t * pamh, const char * 28242 name); 28243 28244 Description 28245 28246 The pam_getenv() function shall search the environment 28247 associated with the PAM handle pamh for the environment 28248 variable name. If the specified environment variable cannot be 28249 found, a null pointer shall be returned. The application shall 28250 ensure that it does not modify the string pointed to by the 28251 pam_getenv() function. 28252 28253 Return Value 28254 28255 On success, pam_getenv() returns a pointer to a string of the 28256 form name=value. 28257 28258 pam_getenvlist 28259 28260 Name 28261 28262 pam_getenvlist -- returns a pointer to the complete PAM 28263 environment. 28264 28265 Synopsis 28266 28267 #include 28268 28269 char * const * pam_getenvlist(pam_handle_t * pamh); 28270 28271 Description 28272 28273 pam_getenvlist() returns a pointer to the complete PAM 28274 environment. This pointer points to an array of pointers to 28275 NUL-terminated strings and must be terminated by a NULL 28276 pointer. Each string has the form "name=value". 28277 28278 The PAM library module allocates memory for the returned value 28279 and the associated strings. The calling application is 28280 responsible for freeing this memory. 28281 28282 Return Value 28283 28284 pam_getenvlist() returns an array of string pointers containing 28285 the PAM environment. On error, NULL is returned. 28286 28287 pam_open_session 28288 28289 Name 28290 28291 pam_open_session -- indicate session has started 28292 28293 Synopsis 28294 28295 #include 28296 28297 int pam_open_session(pam_handle_t * pamh, int flags); 28298 28299 Description 28300 28301 The pam_open_session() function is used to indicate that an 28302 authenticated session has begun, after the user has been 28303 identified (see pam_authenticate()) and, if necessary, granted 28304 credentials (see pam_setcred()). It is used to inform the 28305 module that the user is currently in a session. It should be 28306 possible for the PAM library to open a session and close the 28307 same session from different applications. 28308 28309 flags may have the value PAM_SILENT to indicate that no output 28310 be generated as a result of this function call. 28311 28312 Return Value 28313 28314 PAM_SUCCESS 28315 28316 Success. 28317 PAM_SESSION_ERR 28318 28319 One of the loaded modules was unable to open a session for the 28320 user. 28321 28322 Note: Errors may be translated to text with pam_strerror(). 28323 28324 pam_putenv 28325 28326 Name 28327 28328 pam_putenv -- Add, replace or delete a PAM environment variable 28329 28330 Synopsis 28331 28332 #include 28333 28334 int pam_putenv(const pam_handle_t * pamh, const char * 28335 name_value); 28336 28337 Description 28338 28339 The pam_putenv() function shall modify the environment list 28340 associated with pamh. If name_value contains an '=' character, 28341 the characters to the left of the first '=' character represent 28342 the name, and the remaining characters after the '=' represent 28343 the value. 28344 28345 If the name environment variable exists in the environment 28346 associated with pamh, it shall be modified to have the value 28347 value. Otherwise, the name shall be added to the environment 28348 associated with pamh with the value value. 28349 28350 If there is no '=' character in name_value, the variable in the 28351 environment associated with pamh named name_value shall be 28352 deleted. 28353 28354 Return Value 28355 28356 On success, the pam_putenv() function shall return PAM_SUCCESS. 28357 Otherwise the return value indicates the error: 28358 28359 PAM_PERM_DENIED 28360 28361 The name_value argument is a null pointer. 28362 PAM_BAD_ITEM 28363 28364 The PAM environment varable named name_value does not exist and 28365 therefore cannot be deleted. 28366 PAM_ABORT 28367 28368 The PAM handle identifed by pamh is corrupt. 28369 PAM_BUF_ERR 28370 28371 Memory buffer error. 28372 28373 pam_set_item 28374 28375 Name 28376 28377 pam_set_item -- (re)set the value of an item. 28378 28379 Synopsis 28380 28381 #include 28382 28383 int pam_set_item(pam_handle_t * pamh, int item_type, const void 28384 * item); 28385 28386 Description 28387 28388 pam_set_item() (re)sets the value of one of the following 28389 item_types: 28390 28391 PAM_SERVICE 28392 28393 service name 28394 PAM_USER 28395 28396 user name 28397 PAM_TTY 28398 28399 terminal name 28400 28401 The value for a device file should include the /dev/ prefix. 28402 The value for graphical, X-based, applications should be the 28403 $DISPLAY variable. 28404 PAM_RHOST 28405 28406 remote host name 28407 PAM_CONV 28408 28409 conversation structure 28410 PAM_RUSER 28411 28412 remote user name 28413 PAM_USER_PROMPT 28414 28415 string to be used when prompting for a user's name 28416 28417 The default value for this string is Please enter username: . 28418 28419 For all item_types other than PAM_CONV, item is a pointer to a 28420 NULL-terminated character string. In the case of PAM_CONV, item 28421 points to an initialized pam_conv structure. 28422 28423 Return Value 28424 28425 PAM_SUCCESS 28426 28427 Success. 28428 PAM_PERM_DENIED 28429 28430 An attempt was made to replace the conversation structure with 28431 a NULL value. 28432 PAM_BUF_ERR 28433 28434 Function ran out of memory making a copy of the item. 28435 PAM_BAD_ITEM 28436 28437 Application attempted to set an undefined item. 28438 28439 Note: Errors may be translated to text with pam_strerror(). 28440 28441 pam_setcred 28442 28443 Name 28444 28445 pam_setcred -- set the module-specific credentials of the user 28446 28447 Synopsis 28448 28449 #include 28450 28451 extern int pam_setcred(pam_handle_t * pamh, int flags); 28452 28453 Description 28454 28455 pam_setcred() sets the module-specific credentials of the user. 28456 It is usually called after the user has been authenticated, 28457 after the account management function has been called and after 28458 a session has been opened for the user. 28459 28460 flags maybe specified from among the following values: 28461 28462 PAM_ESTABLISH_CRED 28463 set credentials for the authentication service 28464 28465 PAM_DELETE_CRED 28466 delete credentials associated with the authentication 28467 service 28468 28469 PAM_REINITIALIZE_CRED 28470 reinitialize the user credentials 28471 28472 PAM_REFRESH_CRED 28473 extend lifetime of the user credentials 28474 28475 Additionally, the value of flags may be logically or'd with 28476 PAM_SILENT. 28477 28478 Return Value 28479 28480 PAM_SUCCESS 28481 28482 Success. 28483 PAM_CRED_UNAVAIL 28484 28485 Module cannot retrieve the user's credentials. 28486 PAM_CRED_EXPIRED 28487 28488 User's credentials have expired. 28489 PAM_USER_UNKNOWN 28490 28491 User is not known to an authentication module. 28492 PAM_CRED_ERR 28493 28494 Module was unable to set the credentials of the user. 28495 28496 Note: Errors may be translated to text with pam_strerror(). 28497 28498 pam_start 28499 28500 Name 28501 28502 pam_start -- initialize the PAM library 28503 28504 Synopsis 28505 28506 #include 28507 28508 int pam_start(const char * service_name, const char * user, 28509 const struct pam_conv * pam_conversation, pam_handle_t * * 28510 pamh); 28511 28512 Description 28513 28514 pam_start() is used to initialize the PAM library. It must be 28515 called prior to any other usage of the PAM library. On success, 28516 *pamh becomes a handle that provides continuity for successive 28517 calls to the PAM library. pam_start() expects arguments as 28518 follows: the service_name of the program, the username of the 28519 individual to be authenticated, a pointer to an 28520 application-supplied pam_conv structure, and a pointer to a 28521 pam_handle_t pointer. 28522 28523 An application must provide the conversation function used for 28524 direct communication between a loaded module and the 28525 application. The application also typically provides a means 28526 for the module to prompt the user for a password, etc. 28527 28528 The structure, pam_conv, is defined to be, 28529 struct pam_conv { 28530 int (*conv) (int num_msg, 28531 const struct pam_message * *msg, 28532 struct pam_response * *resp, 28533 void *appdata_ptr); 28534 void *appdata_ptr; 28535 }; 28536 28537 It is initialized by the application before it is passed to the 28538 library. The contents of this structure are attached to the 28539 *pamh handle. The point of this argument is to provide a 28540 mechanism for any loaded module to interact directly with the 28541 application program; this is why it is called a conversation 28542 structure. 28543 28544 When a module calls the referenced conv() function, appdata_ptr 28545 is set to the second element of this structure. 28546 28547 The other arguments of a call to conv() concern the information 28548 exchanged by module and application. num_msg holds the length 28549 of the array of pointers passed via msg. On success, the 28550 pointer resp points to an array of num_msg pam_response 28551 structures, holding the application-supplied text. Note that 28552 resp is a struct pam_response array and not an array of 28553 pointers. 28554 28555 Return Value 28556 28557 PAM_SUCCESS 28558 28559 Success. 28560 PAM_BUF_ERR 28561 28562 Memory allocation error. 28563 PAM_ABORT 28564 28565 Internal failure. 28566 28567 ERRORS 28568 28569 May be translated to text with pam_strerror(). 28570 28571 pam_strerror 28572 28573 Name 28574 28575 pam_strerror -- returns a string describing the PAM error 28576 28577 Synopsis 28578 28579 #include 28580 28581 const char * pam_strerror(pam_handle_t * pamh, int errnum); 28582 28583 Description 28584 28585 pam_strerror() returns a string describing the PAM error 28586 associated with errnum. 28587 28588 Return Value 28589 28590 On success, this function returns a description of the 28591 indicated error. The application should not free or modify this 28592 string. Otherwise, a string indicating that the error is 28593 unknown shall be returned. It is unspecified whether or not the 28594 string returned is translated according to the setting of 28595 LC_MESSAGES. 28596 28597 IV. Utility Libraries 28598 28599 Table of Contents 28600 15. Utility Libraries 28601 28602 15.1. Introduction 28603 15.2. Interfaces for libz 28604 28605 15.2.1. Compression Library 28606 28607 15.3. Data Definitions for libz 28608 28609 15.3.1. zconf.h 28610 15.3.2. zlib.h 28611 28612 15.4. Interface Definitions for libz 28613 28614 adler32 -- compute Adler 32 Checksum 28615 compress -- compress data 28616 compress2 -- compress data at a specified level 28617 compressBound -- compute compressed data size 28618 crc32 -- compute CRC-32 Checksum 28619 deflate -- compress data 28620 deflateBound -- compute compressed data size 28621 deflateCopy -- copy compression stream 28622 deflateEnd -- free compression stream state 28623 deflateInit2_ -- initialize compression system 28624 deflateInit_ -- initialize compression system 28625 deflateParams -- set compression parameters 28626 deflateReset -- reset compression stream state 28627 deflateSetDictionary -- initialize compression 28628 dictionary 28629 28630 get_crc_table -- generate a table for crc 28631 calculations 28632 28633 gzclose -- close a compressed file stream 28634 gzdopen -- open a compressed file 28635 gzeof -- check for end-of-file on a compressed file 28636 stream 28637 28638 gzerror -- decode an error on a compressed file 28639 stream 28640 28641 gzflush -- flush a compressed file stream 28642 gzgetc -- read a character from a compressed file 28643 gzgets -- read a string from a compressed file 28644 gzopen -- open a compressed file 28645 gzprintf -- format data and compress 28646 gzputc -- write character to a compressed file 28647 gzputs -- string write to a compressed file 28648 gzread -- read from a compressed file 28649 gzrewind -- reset the file-position indicator on a 28650 compressed file stream 28651 28652 gzseek -- reposition a file-position indicator in a 28653 compressed file stream 28654 28655 gzsetparams -- dynamically set compression 28656 parameters 28657 28658 gztell -- find position on a compressed file stream 28659 gzwrite -- write to a compressed file 28660 inflate -- decompress data 28661 inflateEnd -- free decompression stream state 28662 inflateInit2_ -- initialize decompression system 28663 inflateInit_ -- initialize decompression system 28664 inflateReset -- reset decompression stream state 28665 inflateSetDictionary -- initialize decompression 28666 dictionary 28667 28668 inflateSync -- advance compression stream to next 28669 sync point 28670 28671 inflateSyncPoint -- test for synchronization point 28672 uncompress -- uncompress data 28673 zError -- translate error number to string 28674 zlibVersion -- discover library version at run time 28675 28676 15.5. Interfaces for libncurses 28677 28678 15.5.1. Curses 28679 28680 15.6. Data Definitions for libncurses 28681 28682 15.6.1. curses.h 28683 15.6.2. term.h 28684 28685 15.7. Interface Definitions for libncurses 28686 28687 inchnstr -- obtain a string of characters and their 28688 attributes from a curses window 28689 28690 inchstr -- obtain a string of characters and their 28691 attributes from a curses window 28692 28693 instr -- obtain a string of characters from a curses 28694 window 28695 28696 mvcur -- send cursor movement commands to terminal 28697 mvinchnstr -- obtain a string of characters and 28698 their attributes from a curses window 28699 28700 mvinchstr -- obtain a string of characters and their 28701 attributes from a curses window 28702 28703 mvinstr -- obtain a string of characters from a 28704 curses window 28705 28706 mvscanw -- convert formatted input from a curses 28707 window 28708 28709 mvwinchnstr -- obtain a string of characters and 28710 their attributes from a curses window 28711 28712 mvwinchstr -- obtain a string of characters and 28713 their attributes from a curses window 28714 28715 mvwinstr -- obtain a string of characters from a 28716 curses window 28717 28718 mvwscanw -- convert formatted input from a curses 28719 window 28720 28721 ripoffline -- obtain a string of characters and 28722 their attributes from a curses window 28723 28724 scanw -- convert formatted input from a curses 28725 window 28726 28727 vw_scanw -- convert formatted input from a curses 28728 window 28729 28730 vwscanw -- convert formatted input from a curses 28731 window 28732 28733 winchnstr -- obtain a string of characters and their 28734 attributes from a curses window 28735 28736 winchstr -- obtain a string of characters and their 28737 attributes from a curses window 28738 28739 winstr -- obtain a string of characters from a 28740 curses window 28741 28742 wscanw -- convert formatted input from a curses 28743 window 28744 28745 15.8. Interfaces for libncursesw 28746 28747 15.8.1. Curses Wide 28748 28749 15.9. Data Definitions for libncursesw 28750 28751 15.9.1. ncursesw/curses.h 28752 15.9.2. ncursesw/ncurses_dll.h 28753 15.9.3. ncursesw/term.h 28754 15.9.4. ncursesw/unctrl.h 28755 28756 15.10. Interface Definitions for libncursesw 28757 15.11. Interfaces for libutil 28758 28759 15.11.1. Utility Functions 28760 28761 15.12. Data Definitions for libutil 28762 28763 15.12.1. pty.h 28764 28765 15.13. Interface Definitions for libutil 28766 28767 forkpty -- Create a new process attached to an 28768 available pseudo-terminal 28769 28770 login -- login utility function 28771 login_tty -- Prepare a terminal for login 28772 logout -- logout utility function 28773 logwtmp -- append an entry to the wtmp file 28774 openpty -- find and open an available 28775 pseudo-terminal 28776 __________________________________________________________ 28777 28778 Chapter 15. Utility Libraries 28779 28780 15.1. Introduction 28781 28782 An LSB-conforming implementation shall also support the 28783 following utility libraries which are built on top of the 28784 interfaces provided by the base libraries. These libraries 28785 implement common functionality, and hide additional system 28786 dependent information such as file formats and device names. 28787 28788 * libz 28789 * libncurses 28790 * libncursesw 28791 * libutil 28792 28793 The structure of the definitions for these libraries follows 28794 the same model as used for Base Libraries. 28795 __________________________________________________________ 28796 28797 15.2. Interfaces for libz 28798 28799 Table 15-1 defines the library name and shared object name for 28800 the libz library 28801 28802 Table 15-1. libz Definition 28803 Library: libz 28804 SONAME: libz.so.1 28805 28806 The behavior of the interfaces in this library is specified by 28807 the following specifications: 28808 28809 [LSB] This Specification 28810 __________________________________________________________ 28811 28812 15.2.1. Compression Library 28813 __________________________________________________________ 28814 28815 15.2.1.1. Interfaces for Compression Library 28816 28817 An LSB conforming implementation shall provide the generic 28818 functions for Compression Library specified in Table 15-2, with 28819 the full mandatory functionality as described in the referenced 28820 underlying specification. 28821 28822 Table 15-2. libz - Compression Library Function Interfaces 28823 adler32 [LSB] compress [LSB] compress2 [LSB] 28824 compressBound(ZLIB_1.2.0) [LSB] 28825 crc32 [LSB] deflate [LSB] deflateBound(ZLIB_1.2.0) [LSB] 28826 deflateCopy [LSB] 28827 deflateEnd [LSB] deflateInit2_ [LSB] deflateInit_ [LSB] 28828 deflateParams [LSB] 28829 deflatePrime(ZLIB_1.2.0.8) [LSB] deflateReset [LSB] 28830 deflateSetDictionary [LSB] get_crc_table [LSB] 28831 gzclearerr(ZLIB_1.2.0.2) [LSB] gzclose [LSB] gzdopen [LSB] 28832 gzeof [LSB] 28833 gzerror [LSB] gzflush [LSB] gzgetc [LSB] gzgets [LSB] 28834 gzopen [LSB] gzprintf [LSB] gzputc [LSB] gzputs [LSB] 28835 gzread [LSB] gzrewind [LSB] gzseek [LSB] gzsetparams [LSB] 28836 gztell [LSB] gzwrite [LSB] inflate [LSB] 28837 inflateBack(ZLIB_1.2.0) [LSB] 28838 inflateBackEnd(ZLIB_1.2.0) [LSB] inflateBackInit_(ZLIB_1.2.0) 28839 [LSB] inflateCopy(ZLIB_1.2.0) [LSB] inflateEnd [LSB] 28840 inflateInit2_ [LSB] inflateInit_ [LSB] inflateReset [LSB] 28841 inflateSetDictionary [LSB] 28842 inflateSync [LSB] inflateSyncPoint [LSB] uncompress [LSB] 28843 zError [LSB] 28844 zlibVersion [LSB] 28845 __________________________________________________________ 28846 28847 15.3. Data Definitions for libz 28848 28849 This section defines global identifiers and their values that 28850 are associated with interfaces contained in libz. These 28851 definitions are organized into groups that correspond to system 28852 headers. This convention is used as a convenience for the 28853 reader, and does not imply the existence of these headers, or 28854 their content. Where an interface is defined as requiring a 28855 particular system header file all of the data definitions for 28856 that system header file presented here shall be in effect. 28857 28858 This section gives data definitions to promote binary 28859 application portability, not to repeat source interface 28860 definitions available elsewhere. System providers and 28861 application developers should use this ABI to supplement - not 28862 to replace - source interface definition specifications. 28863 28864 This specification uses the ISO C (1999) C Language as the 28865 reference programming language, and data definitions are 28866 specified in ISO C format. The C language is used here as a 28867 convenient notation. Using a C language description of these 28868 data objects does not preclude their use by other programming 28869 languages. 28870 __________________________________________________________ 28871 28872 15.3.1. zconf.h 28873 28874 #define ZEXPORT 28875 #define ZEXPORTVA 28876 #define OF(args) args 28877 #define ZEXTERN extern 28878 __________________________________________________________ 28879 28880 15.3.2. zlib.h 28881 28882 #define ZLIB_VERSION "1.2.2" 28883 #define Z_NULL 0 28884 #define MAX_WBITS 15 /* 32K LZ77 window */ 28885 #define MAX_MEM_LEVEL 9 /* Maximum value for memLevel in deflateInit2 */ 28886 #define deflateInit2(strm,level,method,windowBits,memLevel,strategy)\ 28887 deflateInit2_((strm),(level),(method),(windowBits),(memLevel),(strategy),ZLIB_VERSION,sizeof(z_stream)) 28888 #define deflateInit(strm,level) \ 28889 deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) 28890 #define inflateInit2(strm,windowBits) \ 28891 inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) 28892 #define inflateInit(strm) \ 28893 inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) 28894 #define inflateBackInit(strm, windowBits, window) \ 28895 inflateBackInit_((strm), (windowBits), (window), \ 28896 ZLIB_VERSION, sizeof(z_stream)) 28897 28898 typedef char charf; 28899 typedef int intf; 28900 28901 typedef void *voidpf; 28902 typedef unsigned int uInt; 28903 typedef unsigned long int uLong; 28904 typedef uLong uLongf; 28905 typedef void *voidp; 28906 typedef unsigned char Byte; 28907 typedef off_t z_off_t; 28908 typedef void *const voidpc; 28909 28910 typedef voidpf(*alloc_func) (voidpf opaque, uInt items, uInt size); 28911 typedef void (*free_func) (voidpf opaque, voidpf address); 28912 struct internal_state { 28913 int dummy; 28914 }; 28915 typedef Byte Bytef; 28916 typedef uInt uIntf; 28917 typedef unsigned int (*in_func) (void *, unsigned char **); 28918 typedef int (*out_func) (void *, unsigned char *, unsigned int); 28919 28920 typedef struct z_stream_s { 28921 Bytef *next_in; /* next input byte */ 28922 uInt avail_in; /* number of bytes available at next_in*/ 28923 uLong total_in; /* total nb of input bytes read so far */ 28924 Bytef *next_out; /* next output byte should be put there*/ 28925 uInt avail_out; /* remaining free space at next_out */ 28926 uLong total_out; /* total nb of bytes output so far */ 28927 char *msg; /* last error message, NULL if no error*/ 28928 struct internal_state *state; /* not visible by applications */ 28929 alloc_func zalloc; /* used to allocate the internal state */ 28930 free_func zfree; /* used to free the internal state */ 28931 voidpf opaque; /* private data object passed to zallocand zfree */ 28932 int data_type; /* best guess about the data type: ascii or binary */ 28933 uLong adler; /* adler32 value of the uncompressed data */ 28934 uLong reserved; /* reserved for future use */ 28935 } z_stream; 28936 28937 typedef z_stream *z_streamp; 28938 typedef voidp gzFile; 28939 28940 #define Z_NO_FLUSH 0 28941 #define Z_PARTIAL_FLUSH 1 28942 #define Z_SYNC_FLUSH 2 28943 #define Z_FULL_FLUSH 3 28944 #define Z_FINISH 4 28945 #define Z_BLOCK 5 28946 28947 #define Z_ERRNO (-1) 28948 #define Z_STREAM_ERROR (-2) 28949 #define Z_DATA_ERROR (-3) 28950 #define Z_MEM_ERROR (-4) 28951 #define Z_BUF_ERROR (-5) 28952 #define Z_VERSION_ERROR (-6) 28953 #define Z_OK 0 28954 #define Z_STREAM_END 1 28955 #define Z_NEED_DICT 2 28956 28957 #define Z_DEFAULT_COMPRESSION (-1) 28958 #define Z_NO_COMPRESSION 0 28959 #define Z_BEST_SPEED 1 28960 #define Z_BEST_COMPRESSION 9 28961 28962 #define Z_DEFAULT_STRATEGY 0 28963 #define Z_FILTERED 1 28964 #define Z_HUFFMAN_ONLY 2 28965 28966 #define Z_BINARY 0 28967 #define Z_ASCII 1 28968 #define Z_UNKNOWN 2 28969 28970 #define Z_DEFLATED 8 28971 28972 extern uLong adler32(uLong adler, const Bytef * buf, uInt len); 28973 extern int compress(Bytef * dest, uLongf * destLen, const Bytef * source, 28974 uLong sourceLen); 28975 extern int compress2(Bytef * dest, uLongf * destLen, const Bytef * source, 28976 uLong sourceLen, int level); 28977 extern uLong compressBound(uLong sourceLen); 28978 extern uLong crc32(uLong crc, const Bytef * buf, uInt len); 28979 extern int deflate(z_streamp strm, int flush); 28980 extern uLong deflateBound(z_streamp strm, uLong sourceLen); 28981 extern int deflateCopy(z_streamp dest, z_streamp source); 28982 extern int deflateEnd(z_streamp strm); 28983 extern int deflateInit2_(z_streamp strm, int level, int method, 28984 int windowBits, int memLevel, int strategy, 28985 const char *version, int stream_size); 28986 extern int deflateInit_(z_streamp strm, int level, const char *version, 28987 int stream_size); 28988 extern int deflateParams(z_streamp strm, int level, int strategy); 28989 extern int deflatePrime(z_streamp strm, int bits, int value); 28990 extern int deflateReset(z_streamp strm); 28991 extern int deflateSetDictionary(z_streamp strm, const Bytef * dictionary, 28992 uInt dictLength); 28993 extern const uLongf *get_crc_table(void); 28994 extern void gzclearerr(gzFile file); 28995 extern int gzclose(gzFile file); 28996 extern gzFile gzdopen(int fd, const char *mode); 28997 extern int gzeof(gzFile file); 28998 extern const char *gzerror(gzFile file, int *errnum); 28999 extern int gzflush(gzFile file, int flush); 29000 extern int gzgetc(gzFile file); 29001 extern char *gzgets(gzFile file, char *buf, int len); 29002 extern gzFile gzopen(const char *path, const char *mode); 29003 extern int gzprintf(gzFile file, const char *format, ...); 29004 extern int gzputc(gzFile file, int c); 29005 extern int gzputs(gzFile file, const char *s); 29006 extern int gzread(gzFile file, voidp buf, unsigned int len); 29007 extern int gzrewind(gzFile file); 29008 extern z_off_t gzseek(gzFile file, z_off_t offset, int whence); 29009 extern int gzsetparams(gzFile file, int level, int strategy); 29010 extern z_off_t gztell(gzFile file); 29011 extern int gzwrite(gzFile file, voidpc buf, unsigned int len); 29012 extern int inflate(z_streamp strm, int flush); 29013 extern int inflateBack(z_streamp strm, in_func in, void *in_desc, 29014 out_func out, void *out_desc); 29015 extern int inflateBackEnd(z_streamp strm); 29016 extern int inflateBackInit_(z_streamp strm, int windowBits, 29017 unsigned char *window, const char *version, 29018 int stream_size); 29019 extern int inflateCopy(z_streamp dest, z_streamp source); 29020 extern int inflateEnd(z_streamp strm); 29021 extern int inflateInit2_(z_streamp strm, int windowBits, 29022 const char *version, int stream_size); 29023 extern int inflateInit_(z_streamp strm, const char *version, 29024 int stream_size); 29025 extern int inflateReset(z_streamp strm); 29026 extern int inflateSetDictionary(z_streamp strm, const Bytef * dictionary, 29027 uInt dictLength); 29028 extern int inflateSync(z_streamp strm); 29029 extern int inflateSyncPoint(z_streamp z); 29030 extern int uncompress(Bytef * dest, uLongf * destLen, const Bytef * source, 29031 uLong sourceLen); 29032 extern const char *zError(int); 29033 extern const char *zlibVersion(void); 29034 __________________________________________________________ 29035 29036 15.4. Interface Definitions for libz 29037 29038 Table of Contents 29039 adler32 -- compute Adler 32 Checksum 29040 compress -- compress data 29041 compress2 -- compress data at a specified level 29042 compressBound -- compute compressed data size 29043 crc32 -- compute CRC-32 Checksum 29044 deflate -- compress data 29045 deflateBound -- compute compressed data size 29046 deflateCopy -- copy compression stream 29047 deflateEnd -- free compression stream state 29048 deflateInit2_ -- initialize compression system 29049 deflateInit_ -- initialize compression system 29050 deflateParams -- set compression parameters 29051 deflateReset -- reset compression stream state 29052 deflateSetDictionary -- initialize compression dictionary 29053 get_crc_table -- generate a table for crc calculations 29054 gzclose -- close a compressed file stream 29055 gzdopen -- open a compressed file 29056 gzeof -- check for end-of-file on a compressed file stream 29057 gzerror -- decode an error on a compressed file stream 29058 gzflush -- flush a compressed file stream 29059 gzgetc -- read a character from a compressed file 29060 gzgets -- read a string from a compressed file 29061 gzopen -- open a compressed file 29062 gzprintf -- format data and compress 29063 gzputc -- write character to a compressed file 29064 gzputs -- string write to a compressed file 29065 gzread -- read from a compressed file 29066 gzrewind -- reset the file-position indicator on a compressed 29067 file stream 29068 29069 gzseek -- reposition a file-position indicator in a compressed 29070 file stream 29071 29072 gzsetparams -- dynamically set compression parameters 29073 gztell -- find position on a compressed file stream 29074 gzwrite -- write to a compressed file 29075 inflate -- decompress data 29076 inflateEnd -- free decompression stream state 29077 inflateInit2_ -- initialize decompression system 29078 inflateInit_ -- initialize decompression system 29079 inflateReset -- reset decompression stream state 29080 inflateSetDictionary -- initialize decompression dictionary 29081 inflateSync -- advance compression stream to next sync point 29082 inflateSyncPoint -- test for synchronization point 29083 uncompress -- uncompress data 29084 zError -- translate error number to string 29085 zlibVersion -- discover library version at run time 29086 29087 The interfaces defined on the following pages are included in 29088 libz and are defined by this specification. Unless otherwise 29089 noted, these interfaces shall be included in the source 29090 standard. 29091 29092 Other interfaces listed in Section 15.2 shall behave as 29093 described in the referenced base document. 29094 29095 adler32 29096 29097 Name 29098 29099 adler32 -- compute Adler 32 Checksum 29100 29101 Synopsis 29102 29103 #include 29104 29105 uLong adler32(uLong adler, const Bytef * buf, uInt len); 29106 29107 Description 29108 29109 The adler32() function shall compute a running Adler-32 29110 checksum (as described in RFC 1950: ZLIB Compressed Data Format 29111 Specication). On entry, adler is the previous value for the 29112 checksum, and buf shall point to an array of len bytes of data 29113 to be added to this checksum. The adler32() function shall 29114 return the new checksum. 29115 29116 If buf is NULL (or Z_NULL), adler32() shall return the initial 29117 checksum. 29118 29119 Return Value 29120 29121 The adler32() function shall return the new checksum value. 29122 29123 Errors 29124 29125 None defined. 29126 29127 Application Usage (informative) 29128 29129 The following code fragment demonstrates typical usage of the 29130 adler32() function: 29131 uLong adler = adler32(0L, Z_NULL, 0); 29132 29133 while (read_buffer(buffer, length) != EOF) { 29134 adler = adler32(adler, buffer, length); 29135 } 29136 if (adler != original_adler) error(); 29137 29138 compress 29139 29140 Name 29141 29142 compress -- compress data 29143 29144 Synopsis 29145 29146 #include 29147 29148 int compress(Bytef * dest, uLongf * destLen, const Bytef * 29149 source, uLong sourceLen); 29150 29151 Description 29152 29153 The compress() function shall attempt to compress sourceLen 29154 bytes of data in the buffer source, placing the result in the 29155 buffer dest. 29156 29157 On entry, destLen should point to a value describing the size 29158 of the dest buffer. The application should ensure that this 29159 value be at least (sourceLen × 1.001) + 12. On successful exit, 29160 the variable referenced by destLen shall be updated to hold the 29161 length of compressed data in dest. 29162 29163 The compress() function is equivalent to compress2() with a 29164 level of Z_DEFAULT_COMPRESSION. 29165 29166 Return Value 29167 29168 On success, compress() shall return Z_OK. Otherwise, compress() 29169 shall return a value to indicate the error. 29170 29171 Errors 29172 29173 On error, compress() shall return a value as described below: 29174 29175 Z_BUF_ERROR 29176 29177 The buffer dest was not large enough to hold the compressed 29178 data. 29179 Z_MEM_ERROR 29180 29181 Insufficient memory. 29182 29183 compress2 29184 29185 Name 29186 29187 compress2 -- compress data at a specified level 29188 29189 Synopsis 29190 29191 #include 29192 29193 int compress2(Bytef * dest, uLongf * destLen, const Bytef * 29194 source, uLong sourceLen, int level); 29195 29196 Description 29197 29198 The compress2() function shall attempt to compress sourceLen 29199 bytes of data in the buffer source, placing the result in the 29200 buffer dest, at the level described by level. The level 29201 supplied shall be a value between 0 and 9, or the value 29202 Z_DEFAULT_COMPRESSION. A level of 1 requests the highest speed, 29203 while a level of 9 requests the highest compression. A level of 29204 0 indicates that no compression should be used, and the output 29205 shall be the same as the input. 29206 29207 On entry, destLen should point to a value describing the size 29208 of the dest buffer. The application should ensure that this 29209 value be at least (sourceLen × 1.001) + 12. On successful exit, 29210 the variable referenced by destLen shall be updated to hold the 29211 length of compressed data in dest. 29212 29213 The compress() function is equivalent to compress2() with a 29214 level of Z_DEFAULT_COMPRESSION. 29215 29216 Return Value 29217 29218 On success, compress2() shall return Z_OK. Otherwise, 29219 compress2() shall return a value to indicate the error. 29220 29221 Errors 29222 29223 On error, compress2() shall return a value as described below: 29224 29225 Z_BUF_ERROR 29226 29227 The buffer dest was not large enough to hold the compressed 29228 data. 29229 Z_MEM_ERROR 29230 29231 Insufficient memory. 29232 Z_STREAM_ERROR 29233 29234 The level was not Z_DEFAULT_COMPRESSION, or was not between 0 29235 and 9. 29236 29237 compressBound 29238 29239 Name 29240 29241 compressBound -- compute compressed data size 29242 29243 Synopsis 29244 29245 #include 29246 29247 int compressBound(uLong sourceLen); 29248 29249 Description 29250 29251 The compressBound() function shall estimate the size of buffer 29252 required to compress sourceLen bytes of data using the 29253 compress() or compress2() functions. If successful, the value 29254 returned shall be an upper bound for the size of buffer 29255 required to compress sourceLen bytes of data, using the 29256 parameters stored in stream, in a single call to compress() or 29257 compress2(). 29258 29259 Return Value 29260 29261 The compressBound() shall return a value representing the upper 29262 bound of an array to allocate to hold the compressed data in a 29263 single call to compress() or compress2(). This function may 29264 return a conservative value that may be larger than sourceLen. 29265 29266 Errors 29267 29268 None defined. 29269 29270 crc32 29271 29272 Name 29273 29274 crc32 -- compute CRC-32 Checksum 29275 29276 Synopsis 29277 29278 #include 29279 29280 uLong crc32(uLong crc, const Bytef * buf, uInt len); 29281 29282 Description 29283 29284 The crc32() function shall compute a running Cyclic Redundancy 29285 Check checksum, as defined in ITU-T V.42. On entry, crc is the 29286 previous value for the checksum, and buf shall point to an 29287 array of len bytes of data to be added to this checksum. The 29288 crc32() function shall return the new checksum. 29289 29290 If buf is NULL (or Z_NULL), crc32() shall return the initial 29291 checksum. 29292 29293 Return Value 29294 29295 The crc32() function shall return the new checksum value. 29296 29297 Errors 29298 29299 None defined. 29300 29301 Application Usage (informative) 29302 29303 The following code fragment demonstrates typical usage of the 29304 crc32() function: 29305 uLong crc = crc32(0L, Z_NULL, 0); 29306 29307 while (read_buffer(buffer, length) != EOF) { 29308 crc = crc32(crc, buffer, length); 29309 } 29310 if (crc != original_crc) error(); 29311 29312 deflate 29313 29314 Name 29315 29316 deflate -- compress data 29317 29318 Synopsis 29319 29320 #include 29321 29322 int deflate(z_streamp stream, int flush); 29323 29324 Description 29325 29326 The deflate() function shall attempt to compress data until 29327 either the input buffer is empty or the output buffer is full. 29328 The stream references a z_stream structure. Before the first 29329 call to deflate(), this structure should have been initialized 29330 by a call to deflateInit2_(). 29331 29332 Note: deflateInit2_() is only in the binary standard; source 29333 level applications should initialize stream via a call to 29334 deflateInit() or deflateInit2(). 29335 29336 In addition, the stream input and output buffers should have 29337 been initialized as follows: 29338 29339 next_in 29340 29341 should point to the data to be compressed. 29342 avail_in 29343 29344 should contain the number of bytes of data in the buffer 29345 referenced by next_in. 29346 next_out 29347 29348 should point to a buffer where compressed data may be placed. 29349 avail_out 29350 29351 should contain the size in bytes of the buffer referenced by 29352 next_out 29353 29354 The deflate() function shall perform one or both of the 29355 following actions: 29356 29357 1. Compress input data from next_in and update next_in, 29358 avail_in and total_in to reflect the data that has been 29359 compressed. 29360 2. Fill the output buffer referenced by next_out, and update 29361 next_out, avail_out and total_out to reflect the compressed 29362 data that has been placed there. If flush is not 29363 Z_NO_FLUSH, and avail_out indicates that there is still 29364 space in output buffer, this action shall always occur (see 29365 below for further details). 29366 29367 The deflate() function shall return when either avail_in 29368 reaches zero (indicating that all the input data has been 29369 compressed), or avail_out reaches zero (indicating that the 29370 output buffer is full). 29371 29372 On success, the deflate() function shall set the adler field of 29373 the stream to the adler32() checksum of all the input data 29374 compressed so far (represented by total_in). 29375 29376 If the deflate() function shall attempt to determine the type 29377 of input data, and set field data_type in stream to Z_ASCII if 29378 the majority of the data bytes fall within the ASCII (ISO 646) 29379 printable character range. Otherwise, it shall set data_type to 29380 Z_BINARY. This data type is informational only, and does not 29381 affect the compression algorithm. 29382 29383 Note: Future versions of the LSB may remove this 29384 requirement, since it is based on an outdated character set 29385 that does not support Internationalization, and does not 29386 affect the algorithm. It is included for information only at 29387 this release. Applications should not depend on this field. 29388 29389 Flush Operation 29390 29391 The parameter flush determines when compressed bits are added 29392 to the output buffer in next_out. If flush is Z_NO_FLUSH, 29393 deflate() may return with some data pending output, and not yet 29394 added to the output buffer. 29395 29396 If flush is Z_SYNC_FLUSH, deflate() shall flush all pending 29397 output to next_out and align the output to a byte boundary. A 29398 synchronization point is generated in the output. 29399 29400 If flush is Z_FULL_FLUSH, all output shall be flushed, as for 29401 Z_SYNC_FLUSH, and the compression state shall be reset. A 29402 synchronization point is generated in the output. 29403 29404 Rationale: Z_SYNC_FLUSH is intended to ensure that the 29405 compressed data contains all the data compressed so far, and 29406 allows a decompressor to reconstruct all of the input data. 29407 Z_FULL_FLUSH allows decompression to restart from this point 29408 if the previous compressed data has been lost or damaged. 29409 Flushing is likely to degrade the performance of the 29410 compression system, and should only be used where necessary. 29411 29412 If flush is set to Z_FINISH, all pending input shall be 29413 processed and deflate() shall return with Z_STREAM_END if there 29414 is sufficient space in the output buffer at next_out, as 29415 indicated by avail_out. If deflate() is called with flush set 29416 to Z_FINISH and there is insufficient space to store the 29417 compressed data, and no other error has occurred during 29418 compression, deflate() shall return Z_OK, and the application 29419 should call deflate() again with flush unchanged, and having 29420 updated next_out and avail_out. 29421 29422 If all the compression is to be done in a single step, 29423 deflate() may be called with flush set to Z_FINISH immediately 29424 after the stream has been initialized if avail_out is set to at 29425 least the value returned by deflateBound(). 29426 29427 Return Value 29428 29429 On success, deflate() shall return Z_OK, unless flush was set 29430 to Z_FINISH and there was sufficient space in the output buffer 29431 to compress all of the input data. In this case, deflate() 29432 shall return Z_STREAM_END. On error, deflate() shall return a 29433 value to indicate the error. 29434 29435 Note: If deflate() returns Z_OK and has set avail_out to 29436 zero, the function should be called again with the same 29437 value for flush, and with updated next_out and avail_out 29438 until deflate() returns with Z_OK (or Z_STREAM_END if flush 29439 is set to Z_FINISH) and a non-zero avail_out. 29440 29441 Errors 29442 29443 On error, deflate() shall return a value as described below, 29444 and set the msg field of stream to point to a string describing 29445 the error: 29446 29447 Z_BUF_ERROR 29448 29449 No progress is possible; either avail_in or avail_out was zero. 29450 Z_MEM_ERROR 29451 29452 Insufficient memory. 29453 Z_STREAM_ERROR 29454 29455 The state (as represented in stream) is inconsistent, or stream 29456 was NULL. 29457 29458 deflateBound 29459 29460 Name 29461 29462 deflateBound -- compute compressed data size 29463 29464 Synopsis 29465 29466 #include 29467 29468 int deflateBound(z_streamp stream, uLong sourceLen); 29469 29470 Description 29471 29472 The deflateBound() function shall estimate the size of buffer 29473 required to compress sourceLen bytes of data. If successful, 29474 the value returned shall be an upper bound for the size of 29475 buffer required to compress sourceLen bytes of data, using the 29476 parameters stored in stream, in a single call to deflate() with 29477 flush set to Z_FINISH. 29478 29479 On entry, stream should have been initialized via a call to 29480 deflateInit_() or deflateInit2_(). 29481 29482 Return Value 29483 29484 The deflateBound() shall return a value representing the upper 29485 bound of an array to allocate to hold the compressed data in a 29486 single call to deflate(). If the stream is not correctly 29487 initialized, or is NULL, then deflateBound() may return a 29488 conservative value that may be larger than sourceLen. 29489 29490 Errors 29491 29492 None defined. 29493 29494 deflateCopy 29495 29496 Name 29497 29498 deflateCopy -- copy compression stream 29499 29500 Synopsis 29501 29502 #include 29503 29504 int deflateCopy(z_streamp dest, z_streamp source); 29505 29506 Description 29507 29508 The deflateCopy() function shall copy the compression state 29509 information in source to the uninitialized z_stream structure 29510 referenced by dest. 29511 29512 On successful return, dest will be an exact copy of the stream 29513 referenced by source. The input and output buffer pointers in 29514 next_in and next_out will reference the same data. 29515 29516 Return Value 29517 29518 On success, deflateCopy() shall return Z_OK. Otherwise it shall 29519 return a value less than zero to indicate the error. 29520 29521 Errors 29522 29523 On error, deflateCopy() shall return a value as described 29524 below: 29525 29526 Z_STREAM_ERROR 29527 29528 The state in source is inconsistent, or either source or dest 29529 was NULL. 29530 Z_MEM_ERROR 29531 29532 Insufficient memory available. 29533 29534 Application Usage (informative) 29535 29536 This function can be useful when several compression strategies 29537 will be tried, for example when there are several ways of 29538 pre-processing the input data with a filter. The streams that 29539 will be discarded should then be freed by calling deflateEnd(). 29540 Note that deflateCopy() duplicates the internal compression 29541 state which can be quite large, so this strategy may be slow 29542 and can consume lots of memory. 29543 29544 deflateEnd 29545 29546 Name 29547 29548 deflateEnd -- free compression stream state 29549 29550 Synopsis 29551 29552 #include 29553 29554 int deflateEnd(z_streamp stream); 29555 29556 Description 29557 29558 The deflateEnd() function shall free all allocated state 29559 information referenced by stream. All pending output is 29560 discarded, and unprocessed input is ignored. 29561 29562 Return Value 29563 29564 On success, deflateEnd() shall return Z_OK, or Z_DATA_ERROR if 29565 there was pending output discarded or input unprocessed. 29566 Otherwise it shall return Z_STREAM_ERROR to indicate the error. 29567 29568 Errors 29569 29570 On error, deflateEnd() shall return Z_STREAM_ERROR. The 29571 following conditions shall be treated as an error: 29572 29573 * The state in stream is inconsistent or inappropriate. 29574 * stream is NULL. 29575 29576 deflateInit2_ 29577 29578 Name 29579 29580 deflateInit2_ -- initialize compression system 29581 29582 Synopsis 29583 29584 #include 29585 29586 int deflateInit2_ (z_streamp strm, int level, int method, int 29587 windowBits, int memLevel, int strategy, char * version, int 29588 stream_size); 29589 29590 Description 29591 29592 The deflateInit2_() function shall initialize the compression 29593 system. On entry, strm shall refer to a user supplied z_stream 29594 object (a z_stream_s structure). The following fields shall be 29595 set on entry: 29596 29597 zalloc 29598 29599 a pointer to an alloc_func function, used to allocate state 29600 information. If this is NULL, a default allocation function 29601 will be used. 29602 zfree 29603 29604 a pointer to a free_func function, used to free memory 29605 allocated by the zalloc function. If this is NULL a default 29606 free function will be used. 29607 opaque 29608 29609 If alloc_func is not NULL, opaque is a user supplied pointer to 29610 data that will be passed to the alloc_func and free_func 29611 functions. 29612 29613 If the version requested is not compatible with the version 29614 implemented, or if the size of the z_stream_s structure 29615 provided in stream_size does not match the size in the library 29616 implementation, deflateInit2_() shall fail, and return 29617 Z_VERSION_ERROR. 29618 29619 The level supplied shall be a value between 0 and 9, or the 29620 value Z_DEFAULT_COMPRESSION. A level of 1 requests the highest 29621 speed, while a level of 9 requests the highest compression. A 29622 level of 0 indicates that no compression should be used, and 29623 the output shall be the same as the input. 29624 29625 The method selects the compression algorithm to use. LSB 29626 conforming implementation shall support the Z_DEFLATED method, 29627 and may support other implementation defined methods. 29628 29629 The windowBits parameter shall be a base 2 logarithm of the 29630 window size to use, and shall be a value between 8 and 15. A 29631 smaller value will use less memory, but will result in a poorer 29632 compression ratio, while a higher value will give better 29633 compression but utilize more memory. 29634 29635 The memLevel parameter specifies how much memory to use for the 29636 internal state. The value of memLevel shall be between 1 and 29637 MAX_MEM_LEVEL. Smaller values use less memory but are slower, 29638 while higher values use more memory to gain compression speed. 29639 29640 The strategy parameter selects the compression strategy to use: 29641 29642 Z_DEFAULT_STRATEGY 29643 29644 use the system default compression strategy. Z_DEFAULT_STRATEGY 29645 is particularly appropriate for text data. 29646 Z_FILTERED 29647 29648 use a compression strategy tuned for data consisting largely of 29649 small values with a fairly random distribution. Z_FILTERED uses 29650 more Huffman encoding and less string matching than 29651 Z_DEFAULT_STRATEGY. 29652 Z_HUFFMAN_ONLY 29653 29654 force Huffman encoding only, with no string match. 29655 29656 The deflateInit2_() function is not in the source standard; it 29657 is only in the binary standard. Source applications should use 29658 the deflateInit2() macro. 29659 29660 Return Value 29661 29662 On success, the deflateInit2_() function shall return Z_OK. 29663 Otherwise, deflateInit2_() shall return a value as described 29664 below to indicate the error. 29665 29666 Errors 29667 29668 On error, deflateInit2_() shall return one of the following 29669 error indicators: 29670 29671 Z_STREAM_ERROR 29672 29673 Invalid parameter. 29674 Z_MEM_ERROR 29675 29676 Insufficient memory available. 29677 Z_VERSION_ERROR 29678 29679 The version requested is not compatible with the library 29680 version, or the z_stream size differs from that used by the 29681 library. 29682 29683 In addition, the msg field of the strm may be set to an error 29684 message. 29685 29686 deflateInit_ 29687 29688 Name 29689 29690 deflateInit_ -- initialize compression system 29691 29692 Synopsis 29693 29694 #include 29695 29696 int deflateInit_(z_streamp stream, int level, const char * 29697 version, int stream_size); 29698 29699 Description 29700 29701 The deflateInit_() function shall initialize the compression 29702 system. On entry, stream shall refer to a user supplied 29703 z_stream object (a z_stream_s structure). The following fields 29704 shall be set on entry: 29705 29706 zalloc 29707 29708 a pointer to an alloc_func function, used to allocate state 29709 information. If this is NULL, a default allocation function 29710 will be used. 29711 zfree 29712 29713 a pointer to a free_func function, used to free memory 29714 allocated by the zalloc function. If this is NULL a default 29715 free function will be used. 29716 opaque 29717 29718 If alloc_func is not NULL, opaque is a user supplied pointer to 29719 data that will be passed to the alloc_func and free_func 29720 functions. 29721 29722 If the version requested is not compatible with the version 29723 implemented, or if the size of the z_stream_s structure 29724 provided in stream_size does not match the size in the library 29725 implementation, deflateInit_() shall fail, and return 29726 Z_VERSION_ERROR. 29727 29728 The level supplied shall be a value between 0 and 9, or the 29729 value Z_DEFAULT_COMPRESSION. A level of 1 requests the highest 29730 speed, while a level of 9 requests the highest compression. A 29731 level of 0 indicates that no compression should be used, and 29732 the output shall be the same as the input. 29733 29734 The deflateInit_() function is not in the source standard; it 29735 is only in the binary standard. Source applications should use 29736 the deflateInit() macro. 29737 29738 The deflateInit_() function is equivalent to 29739 deflateInit2_(stream, level, Z_DEFLATED, MAX_WBITS, MAX_MEM_LEVEL, 29740 Z_DEFAULT_STRATEGY, version, stream_size); 29741 29742 Return Value 29743 29744 On success, the deflateInit_() function shall return Z_OK. 29745 Otherwise, deflateInit_() shall return a value as described 29746 below to indicate the error. 29747 29748 Errors 29749 29750 On error, deflateInit_() shall return one of the following 29751 error indicators: 29752 29753 Z_STREAM_ERROR 29754 29755 Invalid parameter. 29756 Z_MEM_ERROR 29757 29758 Insufficient memory available. 29759 Z_VERSION_ERROR 29760 29761 The version requested is not compatible with the library 29762 version, or the z_stream size differs from that used by the 29763 library. 29764 29765 In addition, the msg field of the stream may be set to an error 29766 message. 29767 29768 deflateParams 29769 29770 Name 29771 29772 deflateParams -- set compression parameters 29773 29774 Synopsis 29775 29776 #include 29777 29778 int deflateParams(z_streamp stream, int level, int strategy); 29779 29780 Description 29781 29782 The deflateParams() function shall dynamically alter the 29783 compression parameters for the compression stream object 29784 stream. On entry, stream shall refer to a user supplied 29785 z_stream object (a z_stream_s structure), already initialized 29786 via a call to deflateInit_() or deflateInit2_(). 29787 29788 The level supplied shall be a value between 0 and 9, or the 29789 value Z_DEFAULT_COMPRESSION. A level of 1 requests the highest 29790 speed, while a level of 9 requests the highest compression. A 29791 level of 0 indicates that no compression should be used, and 29792 the output shall be the same as the input. If the compression 29793 level is altered by deflateParams(), and some data has already 29794 been compressed with this stream (i.e. total_in is not zero), 29795 and the new level requires a different underlying compression 29796 method, then stream shall be flushed by a call to deflate(). 29797 29798 The strategy parameter selects the compression strategy to use: 29799 29800 Z_DEFAULT_STRATEGY 29801 29802 use the system default compression strategy. Z_DEFAULT_STRATEGY 29803 is particularly appropriate for text data. 29804 Z_FILTERED 29805 29806 use a compression strategy tuned for data consisting largely of 29807 small values with a fairly random distribution. Z_FILTERED uses 29808 more Huffman encoding and less string matching than 29809 Z_DEFAULT_STRATEGY. 29810 Z_HUFFMAN_ONLY 29811 29812 force Huffman encoding only, with no string match. 29813 29814 Return Value 29815 29816 On success, the deflateParams() function shall return Z_OK. 29817 Otherwise, deflateParams() shall return a value as described 29818 below to indicate the error. 29819 29820 Errors 29821 29822 On error, deflateParams() shall return one of the following 29823 error indicators: 29824 29825 Z_STREAM_ERROR 29826 29827 Invalid parameter. 29828 Z_MEM_ERROR 29829 29830 Insufficient memory available. 29831 Z_BUF_ERROR 29832 29833 Insufficient space in stream to flush the current output. 29834 29835 In addition, the msg field of the strm may be set to an error 29836 message. 29837 29838 Application Usage (Informative) 29839 29840 Applications should ensure that the stream is flushed, e.g. by 29841 a call to deflate(stream, Z_SYNC_FLUSH) before calling 29842 deflateParams(), or ensure that there is sufficient space in 29843 next_out (as identified by avail_out) to ensure that all 29844 pending output and all uncompressed input can be flushed in a 29845 single call to deflate(). 29846 29847 Rationale: Although the deflateParams() function should 29848 flush pending output and compress all pending input, the 29849 result is unspecified if there is insufficient space in the 29850 output buffer. Applications should only call deflateParams() 29851 when the stream is effectively empty (flushed). 29852 29853 The deflateParams() can be used to switch between 29854 compression and straight copy of the input data, or to 29855 switch to a different kind of input data requiring a 29856 different strategy. 29857 29858 deflateReset 29859 29860 Name 29861 29862 deflateReset -- reset compression stream state 29863 29864 Synopsis 29865 29866 #include 29867 29868 int deflateReset(z_streamp stream); 29869 29870 Description 29871 29872 The deflateReset() function shall reset all state associated 29873 with stream. All pending output shall be discarded, and the 29874 counts of processed bytes (total_in and total_out) shall be 29875 reset to zero. 29876 29877 Return Value 29878 29879 On success, deflateReset() shall return Z_OK. Otherwise it 29880 shall return Z_STREAM_ERROR to indicate the error. 29881 29882 Errors 29883 29884 On error, deflateReset() shall return Z_STREAM_ERROR. The 29885 following conditions shall be treated as an error: 29886 29887 * The state in stream is inconsistent or inappropriate. 29888 * stream is NULL. 29889 29890 deflateSetDictionary 29891 29892 Name 29893 29894 deflateSetDictionary -- initialize compression dictionary 29895 29896 Synopsis 29897 29898 #include 29899 29900 int deflateSetDictionary(z_streamp stream, const Bytef * 29901 dictionary, uInt dictlen); 29902 29903 Description 29904 29905 The deflateSetDictionary() function shall initialize the 29906 compression dictionary associated with stream using the dictlen 29907 bytes referenced by dictionary. 29908 29909 The implementation may silently use a subset of the provided 29910 dictionary if the dictionary cannot fit in the current window 29911 associated with stream (see deflateInit2_()). The application 29912 should ensure that the dictionary is sorted such that the most 29913 commonly used strings occur at the end of the dictionary. 29914 29915 If the dictionary is successfully set, the Adler32 checksum of 29916 the entire provided dictionary shall be stored in the adler 29917 member of stream. This value may be used by the decompression 29918 system to select the correct dictionary. The compression and 29919 decompression systems must use the same dictionary. 29920 29921 stream shall reference an initialized compression stream, with 29922 total_in zero (i.e. no data has been compressed since the 29923 stream was initialized). 29924 29925 Return Value 29926 29927 On success, deflateSetDictionary() shall return Z_OK. Otherwise 29928 it shall return Z_STREAM_ERROR to indicate an error. 29929 29930 Errors 29931 29932 On error, deflateSetDictionary() shall return a value as 29933 described below: 29934 29935 Z_STREAM_ERROR 29936 29937 The state in stream is inconsistent, or stream was NULL. 29938 29939 Application Usage (informative) 29940 29941 The application should provide a dictionary consisting of 29942 strings {{{ed note: do we really mean "strings"? Null 29943 terminated?}}} that are likely to be encountered in the data to 29944 be compressed. The application should ensure that the 29945 dictionary is sorted such that the most commonly used strings 29946 occur at the end of the dictionary. 29947 29948 The use of a dictionary is optional; however if the data to be 29949 compressed is relatively short and has a predictable structure, 29950 the use of a dictionary can substantially improve the 29951 compression ratio. 29952 29953 get_crc_table 29954 29955 Name 29956 29957 get_crc_table -- generate a table for crc calculations 29958 29959 Synopsis 29960 29961 #include 29962 29963 const uLongf * get_crc_table(void); 29964 29965 Description 29966 29967 Generate tables for a byte-wise 32-bit CRC calculation based on 29968 the polynomial: 29969 x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 29970 29971 In a multi-threaded application, get_crc_table() should be 29972 called by one thread to initialize the tables before any other 29973 thread calls any libz function. 29974 29975 Return Value 29976 29977 The get_crc_table() function shall return a pointer to the 29978 first of a set of tables used internally to calculate CRC-32 29979 values (see crc32()). 29980 29981 Errors 29982 29983 None defined. 29984 29985 gzclose 29986 29987 Name 29988 29989 gzclose -- close a compressed file stream 29990 29991 Synopsis 29992 29993 #include 29994 29995 int gzclose (gzFile file ); 29996 29997 Description 29998 29999 The gzclose() function shall close the compressed file stream 30000 file. If file was open for writing, gzclose() shall first flush 30001 any pending output. Any state information allocated shall be 30002 freed. 30003 30004 Return Value 30005 30006 On success, gzclose() shall return Z_OK. Otherwise, gzclose() 30007 shall return an error value as described below. 30008 30009 Errors 30010 30011 On error, gzclose() may set the global variable errno to 30012 indicate the error. The gzclose() shall return a value other 30013 than Z_OK on error. 30014 30015 Z_STREAM_ERROR 30016 30017 file was NULL (or Z_NULL), or did not refer to an open 30018 compressed file stream. 30019 Z_ERRNO 30020 30021 An error occurred in the underlying base libraries, and the 30022 application should check errno for further information. 30023 Z_BUF_ERROR 30024 30025 no compression progress is possible during buffer flush (see 30026 deflate()). 30027 30028 gzdopen 30029 30030 Name 30031 30032 gzdopen -- open a compressed file 30033 30034 Synopsis 30035 30036 #include 30037 30038 gzFile gzdopen ( int fd, const char *mode ); 30039 30040 Description 30041 30042 The gzdopen() function shall attempt to associate the open file 30043 referenced by fd with a gzFile object. The mode argument is 30044 based on that of fopen(), but the mode parameter may also 30045 contain the following characters: 30046 30047 digit 30048 30049 set the compression level to digit. A low value (e.g. 1) means 30050 high speed, while a high value (e.g. 9) means high compression. 30051 A compression level of 0 (zero) means no compression. See 30052 deflateInit2_() for further details. 30053 [fhR] 30054 30055 set the compression strategy to [fhR]. The letter f corresponds 30056 to filtered data, the letter h corresponds to Huffman only 30057 compression, and the letter R corresponds to Run Length 30058 Encoding. See deflateInit2_() for further details. 30059 30060 If fd refers to an uncompressed file, and mode refers to a read 30061 mode, gzdopen() shall attempt to open the file and return a 30062 gzFile object suitable for reading directly from the file 30063 without any decompression. 30064 30065 If mode is NULL, or if mode does not contain one of r, w, or a, 30066 gzdopen() shall return Z_NULL, and need not set any other error 30067 condition. 30068 30069 Example 30070 30071 gzdopen(fileno(stdin), "r"); 30072 30073 Attempt to associate the standard input with a gzFile object. 30074 30075 Return Value 30076 30077 On success, gzdopen() shall return a gzFile object. On failure, 30078 gzdopen() shall return Z_NULL and may set errno accordingly. 30079 30080 Note: At version 1.2.2, zlib does not set errno for several 30081 error conditions. Applications may not be able to determine 30082 the cause of an error. 30083 30084 Errors 30085 30086 On error, gzdopen() may set the global variable errno to 30087 indicate the error. 30088 30089 gzeof 30090 30091 Name 30092 30093 gzeof -- check for end-of-file on a compressed file stream 30094 30095 Synopsis 30096 30097 #include 30098 30099 int gzeof (gzFile file ); 30100 30101 Description 30102 30103 The gzeof() function shall test the compressed file stream file 30104 for end of file. 30105 30106 Return Value 30107 30108 If file was open for reading and end of file has been reached, 30109 gzeof() shall return 1. Otherwise, gzeof() shall return 0. 30110 30111 Errors 30112 30113 None defined. 30114 30115 gzerror 30116 30117 Name 30118 30119 gzerror -- decode an error on a compressed file stream 30120 30121 Synopsis 30122 30123 #include 30124 30125 const char * gzerror (gzFile file, int * errnum); 30126 30127 Description 30128 30129 The gzerror() function shall return a string describing the 30130 last error to have occurred associated with the open compressed 30131 file stream referred to by file. It shall also set the location 30132 referenced by errnum to an integer value that further 30133 identifies the error. 30134 30135 Return Value 30136 30137 The gzerror() function shall return a string that describes the 30138 last error associated with the given file compressed file 30139 stream. This string shall have the format "%s: %s", with the 30140 name of the file, followed by a colon, a space, and the 30141 description of the error. If the compressed file stream was 30142 opened by a call to gzdopen(), the format of the filename is 30143 unspecified. 30144 30145 Rationale: Although in all current implementations of libz 30146 file descriptors are named "", the code suggests that 30147 this is for debugging purposes only, and may change in a 30148 future release. 30149 30150 It is unspecified if the string returned is determined by the 30151 setting of the LC_MESSAGES category in the current locale. 30152 30153 Errors 30154 30155 None defined. 30156 30157 gzflush 30158 30159 Name 30160 30161 gzflush -- flush a compressed file stream 30162 30163 Synopsis 30164 30165 #include 30166 30167 int gzflush(gzFile file, int flush); 30168 30169 Description 30170 30171 The gzflush() function shall flush pending output to the 30172 compressed file stream identified by file, which must be open 30173 for writing. 30174 30175 Flush Operation 30176 30177 The parameter flush determines which compressed bits are added 30178 to the output file. If flush is Z_NO_FLUSH, gzflush() may 30179 return with some data pending output, and not yet written to 30180 the file. 30181 30182 If flush is Z_SYNC_FLUSH, gzflush() shall flush all pending 30183 output to file and align the output to a byte boundary. There 30184 may still be data pending compression that is not flushed. 30185 30186 If flush is Z_FULL_FLUSH, all output shall be flushed, as for 30187 Z_SYNC_FLUSH, and the compression state shall be reset. There 30188 may still be data pending compression that is not flushed. 30189 30190 Rationale: Z_SYNC_FLUSH is intended to ensure that the 30191 compressed data contains all the data compressed so far, and 30192 allows a decompressor to reconstruct all of the input data. 30193 Z_FULL_FLUSH allows decompression to restart from this point 30194 if the previous compressed data has been lost or damaged. 30195 Flushing is likely to degrade the performance of the 30196 compression system, and should only be used where necessary. 30197 30198 If flush is set to Z_FINISH, all pending uncompressed data 30199 shall be compressed and all output shall be flushed. 30200 30201 Return Value 30202 30203 On success, gzflush() shall return the value Z_OK. Otherwise 30204 gzflush() shall return a value to indicate the error, and may 30205 set the error number associated with the compressed file stream 30206 file. 30207 30208 Note: If flush is set to Z_FINISH and the flush operation is 30209 successful, gzflush() will return Z_OK, but the compressed 30210 file stream error value may be set to Z_STREAM_END. 30211 30212 Errors 30213 30214 On error, gzflush() shall return an error value, and may set 30215 the error number associated with the stream identified by file 30216 to indicate the error. Applications may use gzerror() to access 30217 this error value. 30218 30219 Z_ERRNO 30220 30221 An underlying base library function has indicated an error. The 30222 global variable errno may be examined for further information. 30223 Z_STREAM_ERROR 30224 30225 The stream is invalid, is not open for writing, or is in an 30226 invalid state. 30227 Z_BUF_ERROR 30228 30229 no compression progress is possible (see deflate()). 30230 Z_MEM_ERROR 30231 30232 Insufficient memory available to compress. 30233 30234 gzgetc 30235 30236 Name 30237 30238 gzgetc -- read a character from a compressed file 30239 30240 Synopsis 30241 30242 #include 30243 30244 int gzgetc (gzFile file); 30245 30246 Description 30247 30248 The gzgetc() function shall read the next single character from 30249 the compressed file stream referenced by file, which shall have 30250 been opened in a read mode (see gzopen() and gzdopen()). 30251 30252 Return Value 30253 30254 On success, gzgetc() shall return the uncompressed character 30255 read, otherwise, on end of file or error, gzgetc() shall return 30256 -1. 30257 30258 Errors 30259 30260 On end of file or error, gzgetc() shall return -1. Further 30261 information can be found by calling gzerror() with a pointer to 30262 the compressed file stream. 30263 30264 gzgets 30265 30266 Name 30267 30268 gzgets -- read a string from a compressed file 30269 30270 Synopsis 30271 30272 #include 30273 30274 char * gzgets (gzFile file, char * buf, int len); 30275 30276 Description 30277 30278 The gzgets() function shall attempt to read data from the 30279 compressed file stream file, uncompressing it into buf until 30280 either len-1 bytes have been inserted into buf, or until a 30281 newline character has been uncompressed into buf. A null byte 30282 shall be appended to the uncompressed data. The file shall have 30283 been opened in for reading (see gzopen() and gzdopen()). 30284 30285 Return Value 30286 30287 On success, gzgets() shall return a pointer to buf. Otherwise, 30288 gzgets() shall return Z_NULL. Applications may examine the 30289 cause using gzerror(). 30290 30291 Errors 30292 30293 On error, gzgets() shall return Z_NULL. The following 30294 conditions shall always be treated as an error: 30295 30296 file is NULL, or does not refer to a file open for reading; 30297 buf is NULL; 30298 len is less than or equal to zero. 30299 30300 gzopen 30301 30302 Name 30303 30304 gzopen -- open a compressed file 30305 30306 Synopsis 30307 30308 #include 30309 30310 gzFile gzopen (const char *path , const char *mode ); 30311 30312 Description 30313 30314 The gzopen() function shall open the compressed file named by 30315 path. The mode argument is based on that of fopen(), but the 30316 mode parameter may also contain the following characters: 30317 30318 digit 30319 30320 set the compression level to digit. A low value (e.g. 1) means 30321 high speed, while a high value (e.g. 9) means high compression. 30322 A compression level of 0 (zero) means no compression. See 30323 deflateInit2_() for further details. 30324 [fhR] 30325 30326 set the compression strategy to [fhR]. The letter f corresponds 30327 to filtered data, the letter h corresponds to Huffman only 30328 compression, and the letter R corresponds to Run Length 30329 Encoding. See deflateInit2_() for further details. 30330 30331 If path refers to an uncompressed file, and mode refers to a 30332 read mode, gzopen() shall attempt to open the file and return a 30333 gzFile object suitable for reading directly from the file 30334 without any decompression. 30335 30336 If path or mode is NULL, or if mode does not contain one of r, 30337 w, or a, gzopen() shall return Z_NULL, and need not set any 30338 other error condition. 30339 30340 The gzFile object is also referred to as a compressed file 30341 stream. 30342 30343 Example 30344 30345 gzopen("file.gz", "w6h"); 30346 30347 Attempt to create a new compressed file, file.gz, at 30348 compression level 6 using Huffman only compression. 30349 30350 Return Value 30351 30352 On success, gzopen() shall return a gzFile object (also known 30353 as a compressed file stream). On failure, gzopen() shall return 30354 Z_NULL and may set errno accordingly. 30355 30356 Note: At version 1.2.2, zlib does not set errno for several 30357 error conditions. Applications may not be able to determine 30358 the cause of an error. 30359 30360 Errors 30361 30362 On error, gzopen() may set the global variable errno to 30363 indicate the error. 30364 30365 gzprintf 30366 30367 Name 30368 30369 gzprintf -- format data and compress 30370 30371 Synopsis 30372 30373 #include 30374 30375 int gzprintf (gzFile file, const char * fmt, ...); 30376 30377 Description 30378 30379 The gzprintf() function shall format data as for fprintf(), and 30380 write the resulting string to the compressed file stream file. 30381 30382 Return Value 30383 30384 The gzprintf() function shall return the number of uncompressed 30385 bytes actually written, or a value less than or equal to 0 in 30386 the event of an error. 30387 30388 Errors 30389 30390 If file is NULL, or refers to a compressed file stream that has 30391 not been opened for writing, gzprintf() shall return 30392 Z_STREAM_ERROR. Otherwise, errors are as for gzwrite(). 30393 30394 gzputc 30395 30396 Name 30397 30398 gzputc -- write character to a compressed file 30399 30400 Synopsis 30401 30402 #include 30403 30404 int gzputc (gzFile file, int c); 30405 30406 Description 30407 30408 The gzputc() function shall write the single character c, 30409 converted from integer to unsigned character, to the compressed 30410 file referenced by file, which shall have been opened in a 30411 write mode (see gzopen() and gzdopen()). 30412 30413 Return Value 30414 30415 On success, gzputc() shall return the value written, otherwise 30416 gzputc() shall return -1. 30417 30418 Errors 30419 30420 On error, gzputc() shall return -1. 30421 30422 gzputs 30423 30424 Name 30425 30426 gzputs -- string write to a compressed file 30427 30428 Synopsis 30429 30430 #include 30431 30432 int gzputs (gzFile file, const char * s); 30433 30434 Description 30435 30436 The gzputs() function shall write the null terminated string s 30437 to the compressed file referenced by file, which shall have 30438 been opened in a write mode (see gzopen() and gzdopen()). The 30439 terminating null character shall not be written. The gzputs() 30440 function shall return the number of uncompressed bytes actually 30441 written. 30442 30443 Return Value 30444 30445 On success, gzputs() shall return the number of uncompressed 30446 bytes actually written to file. On error gzputs() shall return 30447 a value less than or equal to 0. Applications may examine the 30448 cause using gzerror(). 30449 30450 Errors 30451 30452 On error, gzputs() shall set the error number associated with 30453 the stream identified by file to indicate the error. 30454 Applications should use gzerror() to access this error value. 30455 If file is NULL, gzputs() shall return Z_STREAM_ERR. 30456 30457 Z_ERRNO 30458 30459 An underlying base library function has indicated an error. The 30460 global variable errno may be examined for further information. 30461 Z_STREAM_ERROR 30462 30463 The stream is invalid, is not open for writing, or is in an 30464 invalid state. 30465 Z_BUF_ERROR 30466 30467 no compression progress is possible (see deflate()). 30468 Z_MEM_ERROR 30469 30470 Insufficient memory available to compress. 30471 30472 gzread 30473 30474 Name 30475 30476 gzread -- read from a compressed file 30477 30478 Synopsis 30479 30480 #include 30481 30482 int gzread (gzFile file, voidp buf, unsigned int len); 30483 30484 Description 30485 30486 The gzread() function shall read data from the compressed file 30487 referenced by file, which shall have been opened in a read mode 30488 (see gzopen() and gzdopen()). The gzread() function shall read 30489 data from file, and uncompress it into buf. At most, len bytes 30490 of uncompressed data shall be copied to buf. If the file is not 30491 compressed, gzread() shall simply copy data from file to buf 30492 without alteration. 30493 30494 Return Value 30495 30496 On success, gzread() shall return the number of bytes 30497 decompressed into buf. If gzread() returns 0, either the 30498 end-of-file has been reached or an underlying read error has 30499 occurred. Applications should use gzerror() or gzeof() to 30500 determine which occurred. On other errors, gzread() shall 30501 return a value less than 0 and applications may examine the 30502 cause using gzerror(). 30503 30504 Errors 30505 30506 On error, gzread() shall set the error number associated with 30507 the stream identified by file to indicate the error. 30508 Applications should use gzerror() to access this error value. 30509 30510 Z_ERRNO 30511 30512 An underlying base library function has indicated an error. The 30513 global variable errno may be examined for further information. 30514 Z_STREAM_END 30515 30516 End of file has been reached on input. 30517 Z_DATA_ERROR 30518 30519 A CRC error occurred when reading data; the file is corrupt. 30520 Z_STREAM_ERROR 30521 30522 The stream is invalid, or is in an invalid state. 30523 Z_NEED_DICT 30524 30525 A dictionary is needed (see inflateSetDictionary()). 30526 Z_MEM_ERROR 30527 30528 Insufficient memory available to decompress. 30529 30530 gzrewind 30531 30532 Name 30533 30534 gzrewind -- reset the file-position indicator on a compressed 30535 file stream 30536 30537 Synopsis 30538 30539 #include 30540 30541 int gzrewind(gzFile file); 30542 30543 Description 30544 30545 The gzrewind() function shall set the starting position for the 30546 next read on compressed file stream file to the beginning of 30547 file. file must be open for reading. 30548 30549 gzrewind() is equivalent to 30550 (int)gzseek(file, 0L, SEEK_SET) 30551 30552 . 30553 30554 Return Value 30555 30556 On success, gzrewind() shall return 0. On error, gzrewind() 30557 shall return -1, and may set the error value for file 30558 accordingly. 30559 30560 Errors 30561 30562 On error, gzrewind() shall return -1, indicating that file is 30563 NULL, or does not represent an open compressed file stream, or 30564 represents a compressed file stream that is open for writing 30565 and is not currently at the beginning of file. 30566 30567 gzseek 30568 30569 Name 30570 30571 gzseek -- reposition a file-position indicator in a compressed 30572 file stream 30573 30574 Synopsis 30575 30576 #include 30577 30578 z_off_t gzseek(gzFile file, z_off_t offset, int whence); 30579 30580 Description 30581 30582 The gzseek() function shall set the file-position indicator for 30583 the compressed file stream file. The file-position indicator 30584 controls where the next read or write operation on the 30585 compressed file stream shall take place. The offset indicates a 30586 byte offset in the uncompressed data. The whence parameter may 30587 be one of: 30588 30589 SEEK_SET 30590 30591 the offset is relative to the start of the uncompressed data. 30592 SEEK_CUR 30593 30594 the offset is relative to the current positition in the 30595 uncompressed data. 30596 30597 Note: The value SEEK_END need not be supported. 30598 30599 If the file is open for writing, the new offset must be greater 30600 than or equal to the current offset. In this case, gzseek() 30601 shall compress a sequence of null bytes to fill the gap from 30602 the previous offset to the new offset. 30603 30604 Return Value 30605 30606 On success, gzseek() shall return the resulting offset in the 30607 file expressed as a byte position in the uncompressed data 30608 stream. On error, gzseek() shall return -1, and may set the 30609 error value for file accordingly. 30610 30611 Errors 30612 30613 On error, gzseek() shall return -1. The following conditions 30614 shall always result in an error: 30615 30616 * file is NULL 30617 * file does not represent an open compressed file stream. 30618 * file refers to a compressed file stream that is open for 30619 writing, and the newly computed offset is less than the 30620 current offset. 30621 * The newly computed offset is less than zero. 30622 * whence is not one of the supported values. 30623 30624 Application Usage (informative) 30625 30626 If file is open for reading, the implementation may still need 30627 to uncompress all of the data up to the new offset. As a 30628 result, gzseek() may be extremely slow in some circumstances. 30629 30630 gzsetparams 30631 30632 Name 30633 30634 gzsetparams -- dynamically set compression parameters 30635 30636 Synopsis 30637 30638 #include 30639 30640 int gzsetparams (gzFile file, int level, int strategy); 30641 30642 Description 30643 30644 The gzsetparams() function shall set the compression level and 30645 compression strategy on the compressed file stream referenced 30646 by file. The compressed file stream shall have been opened in a 30647 write mode. The level and strategy are as defined in 30648 deflateInit2.. If there is any data pending writing, it shall 30649 be flushed before the parameters are updated. 30650 30651 Return Value 30652 30653 On success, the gzsetparams() function shall return Z_OK. 30654 30655 Errors 30656 30657 On error, gzsetparams() shall return one of the following error 30658 indications: 30659 30660 Z_STREAM_ERROR 30661 30662 Invalid parameter, or file not open for writing. 30663 Z_BUF_ERROR 30664 30665 An internal inconsistency was detected while flushing the 30666 previous buffer. 30667 30668 gztell 30669 30670 Name 30671 30672 gztell -- find position on a compressed file stream 30673 30674 Synopsis 30675 30676 #include 30677 30678 z_off_t gztell (gzFile file ); 30679 30680 Description 30681 30682 The gztell() function shall return the starting position for 30683 the next read or write operation on compressed file stream 30684 file. This position represents the number of bytes from the 30685 beginning of file in the uncompressed data. 30686 30687 gztell() is equivalent to 30688 gzseek(file, 0L, SEEK_CUR) 30689 30690 . 30691 30692 Return Value 30693 30694 gztell() shall return the current offset in the file expressed 30695 as a byte position in the uncompressed data stream. On error, 30696 gztell() shall return -1, and may set the error value for file 30697 accordingly. 30698 30699 Errors 30700 30701 On error, gztell() shall return -1, indicating that file is 30702 NULL, or does not represent an open compressed file stream. 30703 30704 gzwrite 30705 30706 Name 30707 30708 gzwrite -- write to a compressed file 30709 30710 Synopsis 30711 30712 #include 30713 30714 int gzwrite (gzFile file, voidpc buf, unsigned int len); 30715 30716 Description 30717 30718 The gzwrite() function shall write data to the compressed file 30719 referenced by file, which shall have been opened in a write 30720 mode (see gzopen() and gzdopen()). On entry, buf shall point to 30721 a buffer containing len bytes of uncompressed data. The 30722 gzwrite() function shall compress this data and write it to 30723 file. The gzwrite() function shall return the number of 30724 uncompressed bytes actually written. 30725 30726 Return Value 30727 30728 On success, gzwrite() shall return the number of uncompressed 30729 bytes actually written to file. On error gzwrite() shall return 30730 a value less than or equal to 0. Applications may examine the 30731 cause using gzerror(). 30732 30733 Errors 30734 30735 On error, gzwrite() shall set the error number associated with 30736 the stream identified by file to indicate the error. 30737 Applications should use gzerror() to access this error value. 30738 30739 Z_ERRNO 30740 30741 An underlying base library function has indicated an error. The 30742 global variable errno may be examined for further information. 30743 Z_STREAM_ERROR 30744 30745 The stream is invalid, is not open for writing, or is in an 30746 invalid state. 30747 Z_BUF_ERROR 30748 30749 no compression progress is possible (see deflate()). 30750 Z_MEM_ERROR 30751 30752 Insufficient memory available to compress. 30753 30754 inflate 30755 30756 Name 30757 30758 inflate -- decompress data 30759 30760 Synopsis 30761 30762 #include 30763 30764 int inflate(z_streamp stream, int flush); 30765 30766 Description 30767 30768 The inflate() function shall attempt to decompress data until 30769 either the input buffer is empty or the output buffer is full. 30770 The stream references a z_stream structure. Before the first 30771 call to inflate(), this structure should have been initialized 30772 by a call to inflateInit2_(). 30773 30774 Note: inflateInit2_() is only in the binary standard; source 30775 level applications should initialize stream via a call to 30776 inflateInit() or inflateInit2(). 30777 30778 In addition, the stream input and output buffers should have 30779 been initialized as follows: 30780 30781 next_in 30782 30783 should point to the data to be decompressed. 30784 avail_in 30785 30786 should contain the number of bytes of data in the buffer 30787 referenced by next_in. 30788 next_out 30789 30790 should point to a buffer where decompressed data may be placed. 30791 avail_out 30792 30793 should contain the size in bytes of the buffer referenced by 30794 next_out 30795 30796 The inflate() function shall perform one or both of the 30797 following actions: 30798 30799 1. Decompress input data from next_in and update next_in, 30800 avail_in and total_in to reflect the data that has been 30801 decompressed. 30802 2. Fill the output buffer referenced by next_out, and update 30803 next_out, avail_out, and total_out to reflect the 30804 decompressed data that has been placed there. If flush is 30805 not Z_NO_FLUSH, and avail_out indicates that there is still 30806 space in output buffer, this action shall always occur (see 30807 below for further details). 30808 30809 The inflate() function shall return when either avail_in 30810 reaches zero (indicating that all the input data has been 30811 compressed), or avail_out reaches zero (indicating that the 30812 output buffer is full). 30813 30814 Flush Operation 30815 30816 The parameter flush determines when uncompressed bytes are 30817 added to the output buffer in next_out. If flush is Z_NO_FLUSH, 30818 inflate() may return with some data pending output, and not yet 30819 added to the output buffer. 30820 30821 If flush is Z_SYNC_FLUSH, inflate() shall flush all pending 30822 output to next_out, and update next_out and avail_out 30823 accordingly. 30824 30825 If flush is set to Z_BLOCK, inflate() shall stop adding data to 30826 the output buffer if and when the next compressed block 30827 boundary is reached (see RFC 1951: DEFLATE Compressed Data 30828 Format Specification). 30829 30830 If flush is set to Z_FINISH, all of the compressed input shall 30831 be decompressed and added to the output. If there is 30832 insufficient output space (i.e. the compressed input data 30833 uncompresses to more than avail_out bytes), then inflate() 30834 shall fail and return Z_BUF_ERROR. 30835 30836 Return Value 30837 30838 On success, inflate() shall return Z_OK if decompression 30839 progress has been made, or Z_STREAM_END if all of the input 30840 data has been decompressed and there was sufficient space in 30841 the output buffer to store the uncompressed result. On error, 30842 inflate() shall return a value to indicate the error. 30843 30844 Note: If inflate() returns Z_OK and has set avail_out to 30845 zero, the function should be called again with the same 30846 value for flush, and with updated next_out and avail_out 30847 until inflate() returns with either Z_OK or Z_STREAM_END and 30848 a non-zero avail_out. 30849 30850 On success, inflate() shall set the adler to the Adler-32 30851 checksum of the output produced so far (i.e. total_out bytes). 30852 30853 Errors 30854 30855 On error, inflate() shall return a value as described below, 30856 and may set the msg field of stream to point to a string 30857 describing the error: 30858 30859 Z_BUF_ERROR 30860 30861 No progress is possible; either avail_in or avail_out was zero. 30862 Z_MEM_ERROR 30863 30864 Insufficient memory. 30865 Z_STREAM_ERROR 30866 30867 The state (as represented in stream) is inconsistent, or stream 30868 was NULL. 30869 Z_NEED_DICT 30870 30871 A preset dictionary is required. The adler field shall be set 30872 to the Adler-32 checksum of the dictionary chosen by the 30873 compressor. 30874 30875 inflateEnd 30876 30877 Name 30878 30879 inflateEnd -- free decompression stream state 30880 30881 Synopsis 30882 30883 #include 30884 30885 int inflateEnd(z_streamp stream); 30886 30887 Description 30888 30889 The inflateEnd() function shall free all allocated state 30890 information referenced by stream. All pending output is 30891 discarded, and unprocessed input is ignored. 30892 30893 Return Value 30894 30895 On success, inflateEnd() shall return Z_OK. Otherwise it shall 30896 return Z_STREAM_ERROR to indicate the error. 30897 30898 Errors 30899 30900 On error, inflateEnd() shall return Z_STREAM_ERROR. The 30901 following conditions shall be treated as an error: 30902 30903 * The state in stream is inconsistent. 30904 * stream is NULL. 30905 * The zfree function pointer is NULL. 30906 30907 inflateInit2_ 30908 30909 Name 30910 30911 inflateInit2_ -- initialize decompression system 30912 30913 Synopsis 30914 30915 #include 30916 30917 int inflateInit2_ (z_streamp strm, int windowBits, char * 30918 version, int stream_size); 30919 30920 Description 30921 30922 The inflateInit2_() function shall initialize the decompression 30923 system. On entry, strm shall refer to a user supplied z_stream 30924 object (a z_stream_s structure). The following fields shall be 30925 set on entry: 30926 30927 zalloc 30928 30929 a pointer to an alloc_func function, used to allocate state 30930 information. If this is NULL, a default allocation function 30931 will be used. 30932 zfree 30933 30934 a pointer to a free_func function, used to free memory 30935 allocated by the zalloc function. If this is NULL a default 30936 free function will be used. 30937 opaque 30938 30939 If alloc_func is not NULL, opaque is a user supplied pointer to 30940 data that will be passed to the alloc_func and free_func 30941 functions. 30942 30943 If the version requested is not compatible with the version 30944 implemented, or if the size of the z_stream_s structure 30945 provided in stream_size does not match the size in the library 30946 implementation, inflateInit2_() shall fail, and return 30947 Z_VERSION_ERROR. 30948 30949 The windowBits parameter shall be a base 2 logarithm of the 30950 maximum window size to use, and shall be a value between 8 and 30951 15. If the input data was compressed with a larger window size, 30952 subsequent attempts to decompress this data will fail with 30953 Z_DATA_ERROR, rather than try to allocate a larger window. 30954 30955 The inflateInit2_() function is not in the source standard; it 30956 is only in the binary standard. Source applications should use 30957 the inflateInit2() macro. 30958 30959 Return Value 30960 30961 On success, the inflateInit2_() function shall return Z_OK. 30962 Otherwise, inflateInit2_() shall return a value as described 30963 below to indicate the error. 30964 30965 Errors 30966 30967 On error, inflateInit2_() shall return one of the following 30968 error indicators: 30969 30970 Z_STREAM_ERROR 30971 30972 Invalid parameter. 30973 Z_MEM_ERROR 30974 30975 Insufficient memory available. 30976 Z_VERSION_ERROR 30977 30978 The version requested is not compatible with the library 30979 version, or the z_stream size differs from that used by the 30980 library. 30981 30982 In addition, the msg field of the strm may be set to an error 30983 message. 30984 30985 inflateInit_ 30986 30987 Name 30988 30989 inflateInit_ -- initialize decompression system 30990 30991 Synopsis 30992 30993 #include 30994 30995 int inflateInit_(z_streamp stream, const char * version, int 30996 stream_size); 30997 30998 Description 30999 31000 The inflateInit_() function shall initialize the decompression 31001 system. On entry, stream shall refer to a user supplied 31002 z_stream object (a z_stream_s structure). The following fields 31003 shall be set on entry: 31004 31005 zalloc 31006 31007 a pointer to an alloc_func function, used to allocate state 31008 information. If this is NULL, a default allocation function 31009 will be used. 31010 zfree 31011 31012 a pointer to a free_func function, used to free memory 31013 allocated by the zalloc function. If this is NULL a default 31014 free function will be used. 31015 opaque 31016 31017 If alloc_func is not NULL, opaque is a user supplied pointer to 31018 data that will be passed to the alloc_func and free_func 31019 functions. 31020 31021 If the version requested is not compatible with the version 31022 implemented, or if the size of the z_stream_s structure 31023 provided in stream_size does not match the size in the library 31024 implementation, inflateInit_() shall fail, and return 31025 Z_VERSION_ERROR. 31026 31027 The inflateInit_() function is not in the source standard; it 31028 is only in the binary standard. Source applications should use 31029 the inflateInit() macro. 31030 31031 The inflateInit_() shall be equivalent to 31032 inflateInit2_(strm, MAX_WBITS, version, stream_size); 31033 31034 Return Value 31035 31036 On success, the inflateInit_() function shall return Z_OK. 31037 Otherwise, inflateInit_() shall return a value as described 31038 below to indicate the error. 31039 31040 Errors 31041 31042 On error, inflateInit_() shall return one of the following 31043 error indicators: 31044 31045 Z_STREAM_ERROR 31046 31047 Invalid parameter. 31048 Z_MEM_ERROR 31049 31050 Insufficient memory available. 31051 Z_VERSION_ERROR 31052 31053 The version requested is not compatible with the library 31054 version, or the z_stream size differs from that used by the 31055 library. 31056 31057 In addition, the msg field of the strm may be set to an error 31058 message. 31059 31060 inflateReset 31061 31062 Name 31063 31064 inflateReset -- reset decompression stream state 31065 31066 Synopsis 31067 31068 #include 31069 31070 int inflateReset(z_streamp stream); 31071 31072 Description 31073 31074 The inflateReset() function shall reset all state associated 31075 with stream. All pending output shall be discarded, and the 31076 counts of processed bytes (total_in and total_out) shall be 31077 reset to zero. 31078 31079 Return Value 31080 31081 On success, inflateReset() shall return Z_OK. Otherwise it 31082 shall return Z_STREAM_ERROR to indicate the error. 31083 31084 Errors 31085 31086 On error, inflateReset() shall return Z_STREAM_ERROR. The 31087 following conditions shall be treated as an error: 31088 31089 * The state in stream is inconsistent or inappropriate. 31090 * stream is NULL. 31091 31092 inflateSetDictionary 31093 31094 Name 31095 31096 inflateSetDictionary -- initialize decompression dictionary 31097 31098 Synopsis 31099 31100 #include 31101 31102 int inflateSetDictionary(z_streamp stream, const Bytef * 31103 dictionary, uInt dictlen); 31104 31105 Description 31106 31107 The inflateSetDictionary() function shall initialize the 31108 decompression dictionary associated with stream using the 31109 dictlen bytes referenced by dictionary. 31110 31111 The inflateSetDictionary() function should be called 31112 immediately after a call to inflate() has failed with return 31113 value Z_NEED_DICT. The dictionary must have the same Adler-32 31114 checksum as the dictionary used for the compression (see 31115 deflateSetDictionary()). 31116 31117 stream shall reference an initialized decompression stream, 31118 with total_in zero (i.e. no data has been decompressed since 31119 the stream was initialized). 31120 31121 Return Value 31122 31123 On success, inflateSetDictionary() shall return Z_OK. Otherwise 31124 it shall return a value as indicated below. 31125 31126 Errors 31127 31128 On error, inflateSetDictionary() shall return a value as 31129 described below: 31130 31131 Z_STREAM_ERROR 31132 31133 The state in stream is inconsistent, or stream was NULL. 31134 Z_DATA_ERROR 31135 31136 The Adler-32 checksum of the supplied dictionary does not match 31137 that used for the compression. 31138 31139 Application Usage (informative) 31140 31141 The application should provide a dictionary consisting of 31142 strings {{{ed note: do we really mean "strings"? Null 31143 terminated?}}} that are likely to be encountered in the data to 31144 be compressed. The application should ensure that the 31145 dictionary is sorted such that the most commonly used strings 31146 occur at the end of the dictionary. 31147 31148 The use of a dictionary is optional; however if the data to be 31149 compressed is relatively short and has a predictable structure, 31150 the use of a dictionary can substantially improve the 31151 compression ratio. 31152 31153 inflateSync 31154 31155 Name 31156 31157 inflateSync -- advance compression stream to next sync point 31158 31159 Synopsis 31160 31161 #include 31162 31163 int inflateSync(z_streamp stream); 31164 31165 Description 31166 31167 The inflateSync() function shall advance through the compressed 31168 data in stream, skipping any invalid compressed data, until the 31169 next full flush point is reached, or all input is exhausted. 31170 See the description for deflate() with flush level 31171 Z_FULL_FLUSH. No output is placed in next_out. 31172 31173 Return Value 31174 31175 On success, inflateSync() shall return Z_OK, and update the 31176 next_in, avail_in, and total_in fields of stream to reflect the 31177 number of bytes of compressed data that have been skipped. 31178 Otherwise, inflateSync() shall return a value as described 31179 below to indicate the error. 31180 31181 Errors 31182 31183 On error, inflateSync() shall return a value as described 31184 below: 31185 31186 Z_STREAM_ERROR 31187 31188 The state (as represented in stream) is inconsistent, or stream 31189 was NULL. 31190 Z_BUF_ERROR 31191 31192 There is no data available to skip over. 31193 Z_DATA_ERROR 31194 31195 No sync point was found. 31196 31197 inflateSyncPoint 31198 31199 Name 31200 31201 inflateSyncPoint -- test for synchronization point 31202 31203 Synopsis 31204 31205 #include 31206 31207 int inflateSyncPoint(z_streamp stream); 31208 31209 Description 31210 31211 The inflateSyncPoint() function shall return a non-zero value 31212 if the compressed data stream referenced by stream is at a 31213 synchronization point. 31214 31215 Return Value 31216 31217 If the compressed data in stream is at a synchronization point 31218 (see deflate() with a flush level of Z_SYNC_FLUSH or 31219 Z_FULL_FLUSH), inflateSyncPoint() shall return a non-zero 31220 value, other than Z_STREAM_ERROR. Otherwise, if the stream is 31221 valid, inflateSyncPoint() shall return 0. If stream is invalid, 31222 or in an invalid state, inflateSyncPoint() shall return 31223 Z_STREAM_ERROR to indicate the error. 31224 31225 Errors 31226 31227 On error, inflateSyncPoint() shall return a value as described 31228 below: 31229 31230 Z_STREAM_ERROR 31231 31232 The state (as represented in stream) is inconsistent, or stream 31233 was NULL. 31234 31235 uncompress 31236 31237 Name 31238 31239 uncompress -- uncompress data 31240 31241 Synopsis 31242 31243 #include 31244 31245 int uncompress(Bytef * dest, uLongf * destLen, const Bytef * 31246 source, uLong sourceLen); 31247 31248 Description 31249 31250 The uncompress() function shall attempt to uncompress sourceLen 31251 bytes of data in the buffer source, placing the result in the 31252 buffer dest. 31253 31254 On entry, destLen should point to a value describing the size 31255 of the dest buffer. The application should ensure that this 31256 value is large enough to hold the entire uncompressed data. 31257 31258 Note: The LSB does not describe any mechanism by which a 31259 compressor can communicate the size required to the 31260 uncompressor. 31261 31262 On successful exit, the variable referenced by destLen shall be 31263 updated to hold the length of uncompressed data in dest. 31264 31265 Return Value 31266 31267 On success, uncompress() shall return Z_OK. Otherwise, 31268 uncompress() shall return a value to indicate the error. 31269 31270 Errors 31271 31272 On error, uncompress() shall return a value as described below: 31273 31274 Z_BUF_ERROR 31275 31276 The buffer dest was not large enough to hold the uncompressed 31277 data. 31278 Z_MEM_ERROR 31279 31280 Insufficient memory. 31281 Z_DATA_ERROR 31282 31283 The compressed data (referenced by source) was corrupted. 31284 31285 zError 31286 31287 Name 31288 31289 zError -- translate error number to string 31290 31291 Synopsis 31292 31293 #include 31294 31295 const char * zError(int err); 31296 31297 Description 31298 31299 The zError() function shall return the string identifying the 31300 error associated with err. This allows for conversion from 31301 error code to string for functions such as compress() and 31302 uncompress(), that do not always set the string version of an 31303 error. 31304 31305 Return Value 31306 31307 The zError() function shall return a the string identifying the 31308 error associated with err, or NULL if err is not a valid error 31309 code. 31310 31311 It is unspecified if the string returned is determined by the 31312 setting of the LC_MESSAGES category in the current locale. 31313 31314 Errors 31315 31316 None defined. 31317 31318 zlibVersion 31319 31320 Name 31321 31322 zlibVersion -- discover library version at run time 31323 31324 Synopsis 31325 31326 #include 31327 31328 const char * zlibVersion (void); 31329 31330 Description 31331 31332 The zlibVersion() function shall return the string identifying 31333 the interface version at the time the library was built. 31334 31335 Applications should compare the value returned from 31336 zlibVersion() with the macro constant ZLIB_VERSION for 31337 compatibility. 31338 31339 Return Value 31340 31341 The zlibVersion() function shall return a the string 31342 identifying the version of the library currently implemented. 31343 31344 Errors 31345 31346 None defined. 31347 __________________________________________________________ 31348 31349 15.5. Interfaces for libncurses 31350 31351 Table 15-3 defines the library name and shared object name for 31352 the libncurses library 31353 31354 Table 15-3. libncurses Definition 31355 Library: libncurses 31356 SONAME: libncurses.so.5 31357 31358 The parameters or return types of the following interfaces have 31359 had the const qualifier added as shown here, as compared to the 31360 specification in X/Open Curses, Issue 7. 31361 extern const char *keyname (int); 31362 extern SCREEN *newterm (const char *, FILE *, FILE *); 31363 extern const char *unctrl (chtype); 31364 31365 extern int mvprintw (int, int, const char *, ...); 31366 extern int mvwprintw (WINDOW *, int, int, const char *, ...); 31367 extern int printw (const char *, ...); 31368 extern int vwprintw (WINDOW *, const char *, va_list); 31369 extern int vw_printw (WINDOW *, const char *, va_list); 31370 extern int wprintw (WINDOW *, const char *, ...); 31371 31372 extern int mvscanw (int, int, const char *, ...); 31373 extern int mvwscanw (WINDOW *, int, int, const char *, ...); 31374 extern int scanw (const char *, ...); 31375 extern int vwscanw (WINDOW *, const char *, va_list); 31376 extern int vw_scanw (WINDOW *, const char *, va_list); 31377 extern int wscanw (WINDOW *, const char *, ...); 31378 31379 The behavior of the interfaces in this library is specified by 31380 the following specifications: 31381 31382 [LSB] This Specification 31383 [X-CURSES] X/Open Curses, Issue 7 31384 __________________________________________________________ 31385 31386 15.5.1. Curses 31387 __________________________________________________________ 31388 31389 15.5.1.1. Interfaces for Curses 31390 31391 An LSB conforming implementation shall provide the generic 31392 functions for Curses specified in Table 15-4, with the full 31393 mandatory functionality as described in the referenced 31394 underlying specification. 31395 31396 Table 15-4. libncurses - Curses Function Interfaces 31397 addch [X-CURSES] addchnstr [X-CURSES] addchstr [X-CURSES] 31398 addnstr [X-CURSES] 31399 addstr [X-CURSES] attr_get [X-CURSES] attr_off [X-CURSES] 31400 attr_on [X-CURSES] 31401 attr_set [X-CURSES] attroff [X-CURSES] attron [X-CURSES] 31402 attrset [X-CURSES] 31403 baudrate [X-CURSES] beep [X-CURSES] bkgd [X-CURSES] bkgdset 31404 [X-CURSES] 31405 border [X-CURSES] box [X-CURSES] can_change_color [X-CURSES] 31406 cbreak [X-CURSES] 31407 chgat [X-CURSES] clear [X-CURSES] clearok [X-CURSES] clrtobot 31408 [X-CURSES] 31409 clrtoeol [X-CURSES] color_content [X-CURSES] color_set 31410 [X-CURSES] copywin [X-CURSES] 31411 curs_set [X-CURSES] def_prog_mode [X-CURSES] def_shell_mode 31412 [X-CURSES] del_curterm [X-CURSES] 31413 delay_output [X-CURSES] delch [X-CURSES] deleteln [X-CURSES] 31414 delscreen [X-CURSES] 31415 delwin [X-CURSES] derwin [X-CURSES] doupdate [X-CURSES] dupwin 31416 [X-CURSES] 31417 echo [X-CURSES] echochar [X-CURSES] endwin [X-CURSES] erase 31418 [X-CURSES] 31419 erasechar [X-CURSES] filter [X-CURSES] flash [X-CURSES] 31420 flushinp [X-CURSES] 31421 getbkgd [X-CURSES] getch [X-CURSES] getnstr [X-CURSES] getstr 31422 [X-CURSES] 31423 getwin [X-CURSES] halfdelay [X-CURSES] has_colors [X-CURSES] 31424 has_ic [X-CURSES] 31425 has_il [X-CURSES] hline [X-CURSES] idcok [X-CURSES] idlok 31426 [X-CURSES] 31427 immedok [X-CURSES] inch [X-CURSES] inchnstr [LSB] inchstr [LSB] 31428 init_color [X-CURSES] init_pair [X-CURSES] initscr [X-CURSES] 31429 innstr [X-CURSES] 31430 insch [X-CURSES] insdelln [X-CURSES] insertln [X-CURSES] 31431 insnstr [X-CURSES] 31432 insstr [X-CURSES] instr [LSB] intrflush [X-CURSES] 31433 is_linetouched [X-CURSES] 31434 is_wintouched [X-CURSES] isendwin [X-CURSES] keyname [X-CURSES] 31435 keypad [X-CURSES] 31436 killchar [X-CURSES] leaveok [X-CURSES] longname [X-CURSES] meta 31437 [X-CURSES] 31438 move [X-CURSES] mvaddch [X-CURSES] mvaddchnstr [X-CURSES] 31439 mvaddchstr [X-CURSES] 31440 mvaddnstr [X-CURSES] mvaddstr [X-CURSES] mvchgat [X-CURSES] 31441 mvcur [LSB] 31442 mvdelch [X-CURSES] mvderwin [X-CURSES] mvgetch [X-CURSES] 31443 mvgetnstr [X-CURSES] 31444 mvgetstr [X-CURSES] mvhline [X-CURSES] mvinch [X-CURSES] 31445 mvinchnstr [LSB] 31446 mvinchstr [LSB] mvinnstr [X-CURSES] mvinsch [X-CURSES] 31447 mvinsnstr [X-CURSES] 31448 mvinsstr [X-CURSES] mvinstr [LSB] mvprintw [X-CURSES] mvscanw 31449 [LSB] 31450 mvvline [X-CURSES] mvwaddch [X-CURSES] mvwaddchnstr [X-CURSES] 31451 mvwaddchstr [X-CURSES] 31452 mvwaddnstr [X-CURSES] mvwaddstr [X-CURSES] mvwchgat [X-CURSES] 31453 mvwdelch [X-CURSES] 31454 mvwgetch [X-CURSES] mvwgetnstr [X-CURSES] mvwgetstr [X-CURSES] 31455 mvwhline [X-CURSES] 31456 mvwin [X-CURSES] mvwinch [X-CURSES] mvwinchnstr [LSB] 31457 mvwinchstr [LSB] 31458 mvwinnstr [X-CURSES] mvwinsch [X-CURSES] mvwinsnstr [X-CURSES] 31459 mvwinsstr [X-CURSES] 31460 mvwinstr [LSB] mvwprintw [X-CURSES] mvwscanw [LSB] mvwvline 31461 [X-CURSES] 31462 napms [X-CURSES] newpad [X-CURSES] newterm [X-CURSES] newwin 31463 [X-CURSES] 31464 nl [X-CURSES] nocbreak [X-CURSES] nodelay [X-CURSES] noecho 31465 [X-CURSES] 31466 nonl [X-CURSES] noqiflush [X-CURSES] noraw [X-CURSES] notimeout 31467 [X-CURSES] 31468 overlay [X-CURSES] overwrite [X-CURSES] pair_content [X-CURSES] 31469 pechochar [X-CURSES] 31470 pnoutrefresh [X-CURSES] prefresh [X-CURSES] printw [X-CURSES] 31471 putp [X-CURSES] 31472 putwin [X-CURSES] qiflush [X-CURSES] raw [X-CURSES] redrawwin 31473 [X-CURSES] 31474 refresh [X-CURSES] reset_prog_mode [X-CURSES] reset_shell_mode 31475 [X-CURSES] resetty [X-CURSES] 31476 restartterm [X-CURSES] ripoffline [LSB] savetty [X-CURSES] 31477 scanw [LSB] 31478 scr_dump [X-CURSES] scr_init [X-CURSES] scr_restore [X-CURSES] 31479 scr_set [X-CURSES] 31480 scrl [X-CURSES] scroll [X-CURSES] scrollok [X-CURSES] 31481 set_curterm [X-CURSES] 31482 set_term [X-CURSES] setscrreg [X-CURSES] setupterm [X-CURSES] 31483 slk_attr_set [X-CURSES] 31484 slk_attroff [X-CURSES] slk_attron [X-CURSES] slk_attrset 31485 [X-CURSES] slk_clear [X-CURSES] 31486 slk_color [X-CURSES] slk_init [X-CURSES] slk_label [X-CURSES] 31487 slk_noutrefresh [X-CURSES] 31488 slk_refresh [X-CURSES] slk_restore [X-CURSES] slk_set 31489 [X-CURSES] slk_touch [X-CURSES] 31490 standend [X-CURSES] standout [X-CURSES] start_color [X-CURSES] 31491 subpad [X-CURSES] 31492 subwin [X-CURSES] syncok [X-CURSES] termattrs [X-CURSES] 31493 termname [X-CURSES] 31494 tgetent [X-CURSES] tgetflag [X-CURSES] tgetnum [X-CURSES] 31495 tgetstr [X-CURSES] 31496 tgoto [X-CURSES] tigetflag [X-CURSES] tigetnum [X-CURSES] 31497 tigetstr [X-CURSES] 31498 timeout [X-CURSES] touchline [X-CURSES] touchwin [X-CURSES] 31499 tparm [X-CURSES] 31500 tputs [X-CURSES] typeahead [X-CURSES] unctrl [X-CURSES] ungetch 31501 [X-CURSES] 31502 untouchwin [X-CURSES] use_env [X-CURSES] vidattr [X-CURSES] 31503 vidputs [X-CURSES] 31504 vline [X-CURSES] vw_printw [X-CURSES] vw_scanw [LSB] vwprintw 31505 [X-CURSES] 31506 vwscanw [LSB] waddch [X-CURSES] waddchnstr [X-CURSES] waddchstr 31507 [X-CURSES] 31508 waddnstr [X-CURSES] waddstr [X-CURSES] wattr_get [X-CURSES] 31509 wattr_off [X-CURSES] 31510 wattr_on [X-CURSES] wattr_set [X-CURSES] wattroff [X-CURSES] 31511 wattron [X-CURSES] 31512 wattrset [X-CURSES] wbkgd [X-CURSES] wbkgdset [X-CURSES] 31513 wborder [X-CURSES] 31514 wchgat [X-CURSES] wclear [X-CURSES] wclrtobot [X-CURSES] 31515 wclrtoeol [X-CURSES] 31516 wcolor_set [X-CURSES] wcursyncup [X-CURSES] wdelch [X-CURSES] 31517 wdeleteln [X-CURSES] 31518 wechochar [X-CURSES] werase [X-CURSES] wgetch [X-CURSES] 31519 wgetnstr [X-CURSES] 31520 wgetstr [X-CURSES] whline [X-CURSES] winch [X-CURSES] winchnstr 31521 [LSB] 31522 winchstr [LSB] winnstr [X-CURSES] winsch [X-CURSES] winsdelln 31523 [X-CURSES] 31524 winsertln [X-CURSES] winsnstr [X-CURSES] winsstr [X-CURSES] 31525 winstr [LSB] 31526 wmove [X-CURSES] wnoutrefresh [X-CURSES] wprintw [X-CURSES] 31527 wredrawln [X-CURSES] 31528 wrefresh [X-CURSES] wscanw [LSB] wscrl [X-CURSES] wsetscrreg 31529 [X-CURSES] 31530 wstandend [X-CURSES] wstandout [X-CURSES] wsyncdown [X-CURSES] 31531 wsyncup [X-CURSES] 31532 wtimeout [X-CURSES] wtouchln [X-CURSES] wvline [X-CURSES] 31533 31534 An LSB conforming implementation shall provide the generic 31535 deprecated functions for Curses specified in Table 15-5, with 31536 the full mandatory functionality as described in the referenced 31537 underlying specification. 31538 31539 Note: These interfaces are deprecated, and applications 31540 should avoid using them. These interfaces may be withdrawn 31541 in future releases of this specification. 31542 31543 Table 15-5. libncurses - Curses Deprecated Function Interfaces 31544 tgetent [X-CURSES] tgetflag [X-CURSES] tgetnum [X-CURSES] 31545 tgetstr [X-CURSES] 31546 tgoto [X-CURSES] 31547 31548 An LSB conforming implementation shall provide the generic data 31549 interfaces for Curses specified in Table 15-6, with the full 31550 mandatory functionality as described in the referenced 31551 underlying specification. 31552 31553 Table 15-6. libncurses - Curses Data Interfaces 31554 COLORS [X-CURSES] COLOR_PAIRS [X-CURSES] COLS [X-CURSES] LINES 31555 [X-CURSES] 31556 acs_map [X-CURSES] cur_term [X-CURSES] curscr [X-CURSES] newscr 31557 [LSB] 31558 stdscr [X-CURSES] ttytype [X-CURSES] 31559 __________________________________________________________ 31560 31561 15.6. Data Definitions for libncurses 31562 31563 This section defines global identifiers and their values that 31564 are associated with interfaces contained in libncurses. These 31565 definitions are organized into groups that correspond to system 31566 headers. This convention is used as a convenience for the 31567 reader, and does not imply the existence of these headers, or 31568 their content. Where an interface is defined as requiring a 31569 particular system header file all of the data definitions for 31570 that system header file presented here shall be in effect. 31571 31572 This section gives data definitions to promote binary 31573 application portability, not to repeat source interface 31574 definitions available elsewhere. System providers and 31575 application developers should use this ABI to supplement - not 31576 to replace - source interface definition specifications. 31577 31578 This specification uses the ISO C (1999) C Language as the 31579 reference programming language, and data definitions are 31580 specified in ISO C format. The C language is used here as a 31581 convenient notation. Using a C language description of these 31582 data objects does not preclude their use by other programming 31583 languages. 31584 __________________________________________________________ 31585 31586 15.6.1. curses.h 31587 31588 #define getattrs(win) ((win)?(win)->_attrs:A_NORMAL) 31589 #define ERR (-1) 31590 #define OK (0) 31591 #define ACS_RARROW (acs_map['+']) 31592 #define ACS_LARROW (acs_map[',']) 31593 #define ACS_UARROW (acs_map['-']) 31594 #define ACS_DARROW (acs_map['.']) 31595 #define ACS_BLOCK (acs_map['0']) 31596 #define ACS_CKBOARD (acs_map['a']) 31597 #define ACS_DEGREE (acs_map['f']) 31598 #define ACS_PLMINUS (acs_map['g']) 31599 #define ACS_BOARD (acs_map['h']) 31600 #define ACS_LANTERN (acs_map['i']) 31601 #define ACS_LRCORNER (acs_map['j']) 31602 #define ACS_URCORNER (acs_map['k']) 31603 #define ACS_ULCORNER (acs_map['l']) 31604 #define ACS_LLCORNER (acs_map['m']) 31605 #define ACS_PLUS (acs_map['n']) 31606 #define ACS_S1 (acs_map['o']) 31607 #define ACS_HLINE (acs_map['q']) 31608 #define ACS_S9 (acs_map['s']) 31609 #define ACS_LTEE (acs_map['t']) 31610 #define ACS_RTEE (acs_map['u']) 31611 #define ACS_BTEE (acs_map['v']) 31612 #define ACS_TTEE (acs_map['w']) 31613 #define ACS_VLINE (acs_map['x']) 31614 #define ACS_DIAMOND (acs_map['`']) 31615 #define ACS_BULLET (acs_map['~']) 31616 #define setsyx(y,x) do{if((y)==-1&&(x)==-1)newscr->_leaveok=TRUE;else{newscr->_leaveok=FALSE;wmove(newscr,(y),(x));}}while(0) 31617 #define getsyx(y,x) do{if(newscr->_leaveok)(y)=(x)=-1;elsegetyx(newscr,(y),(x));}while(0) 31618 #define vid_attr(a,pair,opts) vidattr(a) 31619 #define getmaxyx(win,y,x) \ 31620 (y=(win)?((win)->_maxy+1):ERR,x=(win)?((win)->_maxx+1):ERR) 31621 #define getbegyx(win,y,x) \ 31622 (y=(win)?(win)->_begy:ERR,x=(win)?(win)->_begx:ERR) 31623 #define getyx(win,y,x) \ 31624 (y=(win)?(win)->_cury:ERR,x=(win)?(win)->_curx:ERR) 31625 #define getparyx(win,y,x) \ 31626 (y=(win)?(win)->_pary:ERR,x=(win)?(win)->_parx:ERR) 31627 31628 #define __NCURSES_H 1 31629 #define NCURSES_EXPORT(type) type 31630 #define NCURSES_EXPORT_VAR(type) type 31631 31632 #define WA_ALTCHARSET A_ALTCHARSET 31633 #define WA_ATTRIBUTES A_ATTRIBUTES 31634 #define WA_BLINK A_BLINK 31635 #define WA_BOLD A_BOLD 31636 #define WA_DIM A_DIM 31637 #define WA_HORIZONTAL A_HORIZONTAL 31638 #define WA_INVIS A_INVIS 31639 #define WA_LEFT A_LEFT 31640 #define WA_LOW A_LOW 31641 #define WA_NORMAL A_NORMAL 31642 #define WA_PROTECT A_PROTECT 31643 #define WA_REVERSE A_REVERSE 31644 #define WA_RIGHT A_RIGHT 31645 #define WA_STANDOUT A_STANDOUT 31646 #define WA_TOP A_TOP 31647 #define WA_UNDERLINE A_UNDERLINE 31648 #define WA_VERTICAL A_VERTICAL 31649 #define A_REVERSE NCURSES_BITS(1UL,10) 31650 31651 #define COLOR_BLACK 0 31652 #define COLOR_RED 1 31653 #define COLOR_GREEN 2 31654 #define COLOR_YELLOW 3 31655 #define COLOR_BLUE 4 31656 #define COLOR_MAGENTA 5 31657 #define COLOR_CYAN 6 31658 #define COLOR_WHITE 7 31659 31660 #define _SUBWIN 0x01 31661 #define _ENDLINE 0x02 31662 #define _FULLWIN 0x04 31663 #define _SCROLLWIN 0x08 31664 #define _ISPAD 0x10 31665 #define _HASMOVED 0x20 31666 31667 typedef unsigned char bool; 31668 31669 typedef unsigned long int chtype; 31670 typedef struct screen SCREEN; 31671 typedef struct _win_st WINDOW; 31672 typedef chtype attr_t; 31673 typedef struct { 31674 attr_t attr; 31675 wchar_t chars[5]; 31676 } cchar_t; 31677 struct pdat { 31678 short _pad_y; 31679 short _pad_x; 31680 short _pad_top; 31681 short _pad_left; 31682 short _pad_bottom; 31683 short _pad_right; 31684 }; 31685 31686 struct _win_st { 31687 short _cury; /* current cursor position */ 31688 short _curx; 31689 short _maxy; /* maximums of x and y, NOT window size*/ 31690 short _maxx; 31691 short _begy; /* screen coords of upper-left-hand corner */ 31692 short _begx; 31693 short _flags; /* window state flags */ 31694 attr_t _attrs; /* current attribute for non-space character */ 31695 chtype _bkgd; /* current background char/attribute pair */ 31696 bool _notimeout; /* no time out on function-key entry? */ 31697 bool _clear; /* consider all data in the window invalid? */ 31698 bool _leaveok; /* OK to not reset cursor on exit? */ 31699 bool _scroll; /* OK to scroll this window? */ 31700 bool _idlok; /* OK to use insert/delete line? */ 31701 bool _idcok; /* OK to use insert/delete char? */ 31702 bool _immed; /* window in immed mode? (not yet used)*/ 31703 bool _sync; /* window in sync mode? */ 31704 bool _use_keypad; /* process function keys into KEY_ symbols? */ 31705 int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ 31706 struct ldat *_line; /* the actual line data */ 31707 short _regtop; /* top line of scrolling region */ 31708 short _regbottom; /* bottom line of scrolling region */ 31709 int _parx; /* x coordinate of this window in parent */ 31710 int _pary; /* y coordinate of this window in parent */ 31711 WINDOW *_parent; /* pointer to parent if a sub-window */ 31712 struct pdat _pad; 31713 short _yoffset; /* real begy is _begy + _yoffset */ 31714 cchar_t _bkgrnd; /* current background char/attribute pair */ 31715 }; 31716 31717 #define KEY_F(n) (KEY_F0+(n)) 31718 #define KEY_CODE_YES 0400 31719 #define KEY_BREAK 0401 31720 #define KEY_MIN 0401 31721 #define KEY_DOWN 0402 31722 #define KEY_UP 0403 31723 #define KEY_LEFT 0404 31724 #define KEY_RIGHT 0405 31725 #define KEY_HOME 0406 31726 #define KEY_BACKSPACE 0407 31727 #define KEY_F0 0410 31728 #define KEY_DL 0510 31729 #define KEY_IL 0511 31730 #define KEY_DC 0512 31731 #define KEY_IC 0513 31732 #define KEY_EIC 0514 31733 #define KEY_CLEAR 0515 31734 #define KEY_EOS 0516 31735 #define KEY_EOL 0517 31736 #define KEY_SF 0520 31737 #define KEY_SR 0521 31738 #define KEY_NPAGE 0522 31739 #define KEY_PPAGE 0523 31740 #define KEY_STAB 0524 31741 #define KEY_CTAB 0525 31742 #define KEY_CATAB 0526 31743 #define KEY_ENTER 0527 31744 #define KEY_SRESET 0530 31745 #define KEY_RESET 0531 31746 #define KEY_PRINT 0532 31747 #define KEY_LL 0533 31748 #define KEY_A1 0534 31749 #define KEY_A3 0535 31750 #define KEY_B2 0536 31751 #define KEY_C1 0537 31752 #define KEY_C3 0540 31753 #define KEY_BTAB 0541 31754 #define KEY_BEG 0542 31755 #define KEY_CANCEL 0543 31756 #define KEY_CLOSE 0544 31757 #define KEY_COMMAND 0545 31758 #define KEY_COPY 0546 31759 #define KEY_CREATE 0547 31760 #define KEY_END 0550 31761 #define KEY_EXIT 0551 31762 #define KEY_FIND 0552 31763 #define KEY_HELP 0553 31764 #define KEY_MARK 0554 31765 #define KEY_MESSAGE 0555 31766 #define KEY_MOVE 0556 31767 #define KEY_NEXT 0557 31768 #define KEY_OPEN 0560 31769 #define KEY_OPTIONS 0561 31770 #define KEY_PREVIOUS 0562 31771 #define KEY_REDO 0563 31772 #define KEY_REFERENCE 0564 31773 #define KEY_REFRESH 0565 31774 #define KEY_REPLACE 0566 31775 #define KEY_RESTART 0567 31776 #define KEY_RESUME 0570 31777 #define KEY_SAVE 0571 31778 #define KEY_SBEG 0572 31779 #define KEY_SCANCEL 0573 31780 #define KEY_SCOMMAND 0574 31781 #define KEY_SCOPY 0575 31782 #define KEY_SCREATE 0576 31783 #define KEY_SDC 0577 31784 #define KEY_SDL 0600 31785 #define KEY_SELECT 0601 31786 #define KEY_SEND 0602 31787 #define KEY_SEOL 0603 31788 #define KEY_SEXIT 0604 31789 #define KEY_SFIND 0605 31790 #define KEY_SHELP 0606 31791 #define KEY_SHOME 0607 31792 #define KEY_SIC 0610 31793 #define KEY_SLEFT 0611 31794 #define KEY_SMESSAGE 0612 31795 #define KEY_SMOVE 0613 31796 #define KEY_SNEXT 0614 31797 #define KEY_SOPTIONS 0615 31798 #define KEY_SPREVIOUS 0616 31799 #define KEY_SPRINT 0617 31800 #define KEY_SREDO 0620 31801 #define KEY_SREPLACE 0621 31802 #define KEY_SRIGHT 0622 31803 #define KEY_SRSUME 0623 31804 #define KEY_SSAVE 0624 31805 #define KEY_SSUSPEND 0625 31806 #define KEY_SUNDO 0626 31807 #define KEY_SUSPEND 0627 31808 #define KEY_UNDO 0630 31809 #define KEY_MOUSE 0631 31810 #define KEY_RESIZE 0632 31811 #define KEY_MAX 0777 31812 31813 #define PAIR_NUMBER(a) (((a)&A_COLOR)>>8) 31814 #define NCURSES_BITS(mask,shift) ((mask)<<((shift)+8)) 31815 #define A_CHARTEXT (NCURSES_BITS(1UL,0)-1UL) 31816 #define A_NORMAL 0L 31817 #define NCURSES_ATTR_SHIFT 8 31818 #define A_COLOR NCURSES_BITS(((1UL)<<8)-1UL,0) 31819 #define A_BLINK NCURSES_BITS(1UL,11) 31820 #define A_DIM NCURSES_BITS(1UL,12) 31821 #define A_BOLD NCURSES_BITS(1UL,13) 31822 #define A_ALTCHARSET NCURSES_BITS(1UL,14) 31823 #define A_INVIS NCURSES_BITS(1UL,15) 31824 #define A_PROTECT NCURSES_BITS(1UL,16) 31825 #define A_HORIZONTAL NCURSES_BITS(1UL,17) 31826 #define A_LEFT NCURSES_BITS(1UL,18) 31827 #define A_LOW NCURSES_BITS(1UL,19) 31828 #define A_RIGHT NCURSES_BITS(1UL,20) 31829 #define A_TOP NCURSES_BITS(1UL,21) 31830 #define A_VERTICAL NCURSES_BITS(1UL,22) 31831 #define A_STANDOUT NCURSES_BITS(1UL,8) 31832 #define A_UNDERLINE NCURSES_BITS(1UL,9) 31833 #define COLOR_PAIR(n) NCURSES_BITS(n,0) 31834 #define A_ATTRIBUTES NCURSES_BITS(~(1UL-1UL),0) 31835 31836 extern int COLORS; 31837 extern int COLOR_PAIRS; 31838 extern int COLS; 31839 extern int LINES; 31840 extern chtype acs_map[]; 31841 extern int addch(const chtype); 31842 extern int addchnstr(const chtype *, int); 31843 extern int addchstr(const chtype *); 31844 extern int addnstr(const char *, int); 31845 extern int addstr(const char *); 31846 extern int attr_get(attr_t *, short *, void *); 31847 extern int attr_off(attr_t, void *); 31848 extern int attr_on(attr_t, void *); 31849 extern int attr_set(attr_t, short, void *); 31850 extern int attroff(int); 31851 extern int attron(int); 31852 extern int attrset(int); 31853 extern int baudrate(void); 31854 extern int beep(void); 31855 extern int bkgd(chtype); 31856 extern void bkgdset(chtype); 31857 extern int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, 31858 chtype); 31859 extern int box(WINDOW *, chtype, chtype); 31860 extern bool can_change_color(void); 31861 extern int cbreak(void); 31862 extern int chgat(int, attr_t, short, const void *); 31863 extern int clear(void); 31864 extern int clearok(WINDOW *, bool); 31865 extern int clrtobot(void); 31866 extern int clrtoeol(void); 31867 extern int color_content(short, short *, short *, short *); 31868 extern int color_set(short, void *); 31869 extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, 31870 int); 31871 extern int curs_set(int); 31872 extern WINDOW *curscr; 31873 extern int def_prog_mode(void); 31874 extern int def_shell_mode(void); 31875 extern int delay_output(int); 31876 extern int delch(void); 31877 extern int deleteln(void); 31878 extern void delscreen(SCREEN *); 31879 extern int delwin(WINDOW *); 31880 extern WINDOW *derwin(WINDOW *, int, int, int, int); 31881 extern int doupdate(void); 31882 extern WINDOW *dupwin(WINDOW *); 31883 extern int echo(void); 31884 extern int echochar(const chtype); 31885 extern int endwin(void); 31886 extern int erase(void); 31887 extern char erasechar(void); 31888 extern void filter(void); 31889 extern int flash(void); 31890 extern int flushinp(void); 31891 extern chtype getbkgd(WINDOW *); 31892 extern int getch(void); 31893 extern int getnstr(char *, int); 31894 extern int getstr(char *); 31895 extern WINDOW *getwin(FILE *); 31896 extern int halfdelay(int); 31897 extern bool has_colors(void); 31898 extern bool has_ic(void); 31899 extern bool has_il(void); 31900 extern int hline(chtype, int); 31901 extern void idcok(WINDOW *, bool); 31902 extern int idlok(WINDOW *, bool); 31903 extern void immedok(WINDOW *, bool); 31904 extern chtype inch(void); 31905 extern int inchnstr(chtype *, int); 31906 extern int inchstr(chtype *); 31907 extern int init_color(short, short, short, short); 31908 extern int init_pair(short, short, short); 31909 extern WINDOW *initscr(void); 31910 extern int innstr(char *, int); 31911 extern int insch(chtype); 31912 extern int insdelln(int); 31913 extern int insertln(void); 31914 extern int insnstr(const char *, int); 31915 extern int insstr(const char *); 31916 extern int instr(char *); 31917 extern int intrflush(WINDOW *, bool); 31918 extern bool is_linetouched(WINDOW *, int); 31919 extern bool is_wintouched(WINDOW *); 31920 extern bool isendwin(void); 31921 extern const char *keyname(int); 31922 extern int keypad(WINDOW *, bool); 31923 extern char killchar(void); 31924 extern int leaveok(WINDOW *, bool); 31925 extern char *longname(void); 31926 extern int meta(WINDOW *, bool); 31927 extern int move(int, int); 31928 extern int mvaddch(int, int, const chtype); 31929 extern int mvaddchnstr(int, int, const chtype *, int); 31930 extern int mvaddchstr(int, int, const chtype *); 31931 extern int mvaddnstr(int, int, const char *, int); 31932 extern int mvaddstr(int, int, const char *); 31933 extern int mvchgat(int, int, int, attr_t, short, const void *); 31934 extern int mvcur(int, int, int, int); 31935 extern int mvdelch(int, int); 31936 extern int mvderwin(WINDOW *, int, int); 31937 extern int mvgetch(int, int); 31938 extern int mvgetnstr(int, int, char *, int); 31939 extern int mvgetstr(int, int, char *); 31940 extern int mvhline(int, int, chtype, int); 31941 extern chtype mvinch(int, int); 31942 extern int mvinchnstr(int, int, chtype *, int); 31943 extern int mvinchstr(int, int, chtype *); 31944 extern int mvinnstr(int, int, char *, int); 31945 extern int mvinsch(int, int, chtype); 31946 extern int mvinsnstr(int, int, const char *, int); 31947 extern int mvinsstr(int, int, const char *); 31948 extern int mvinstr(int, int, char *); 31949 extern int mvprintw(int, int, const char *, ...); 31950 extern int mvscanw(int, int, const char *, ...); 31951 extern int mvvline(int, int, chtype, int); 31952 extern int mvwaddch(WINDOW *, int, int, const chtype); 31953 extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 31954 extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 31955 extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 31956 extern int mvwaddstr(WINDOW *, int, int, const char *); 31957 extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); 31958 extern int mvwdelch(WINDOW *, int, int); 31959 extern int mvwgetch(WINDOW *, int, int); 31960 extern int mvwgetnstr(WINDOW *, int, int, char *, int); 31961 extern int mvwgetstr(WINDOW *, int, int, char *); 31962 extern int mvwhline(WINDOW *, int, int, chtype, int); 31963 extern int mvwin(WINDOW *, int, int); 31964 extern chtype mvwinch(WINDOW *, int, int); 31965 extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 31966 extern int mvwinchstr(WINDOW *, int, int, chtype *); 31967 extern int mvwinnstr(WINDOW *, int, int, char *, int); 31968 extern int mvwinsch(WINDOW *, int, int, chtype); 31969 extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 31970 extern int mvwinsstr(WINDOW *, int, int, const char *); 31971 extern int mvwinstr(WINDOW *, int, int, char *); 31972 extern int mvwprintw(WINDOW *, int, int, const char *, ...); 31973 extern int mvwscanw(WINDOW *, int, int, const char *, ...); 31974 extern int mvwvline(WINDOW *, int, int, chtype, int); 31975 extern int napms(int); 31976 extern WINDOW *newpad(int, int); 31977 extern WINDOW *newscr; 31978 extern SCREEN *newterm(const char *, FILE *, FILE *); 31979 extern WINDOW *newwin(int, int, int, int); 31980 extern int nl(void); 31981 extern int nocbreak(void); 31982 extern int nodelay(WINDOW *, bool); 31983 extern int noecho(void); 31984 extern int nonl(void); 31985 extern void noqiflush(void); 31986 extern int noraw(void); 31987 extern int notimeout(WINDOW *, bool); 31988 extern int overlay(const WINDOW *, WINDOW *); 31989 extern int overwrite(const WINDOW *, WINDOW *); 31990 extern int pair_content(short, short *, short *); 31991 extern int pechochar(WINDOW *, chtype); 31992 extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 31993 extern int prefresh(WINDOW *, int, int, int, int, int, int); 31994 extern int printw(const char *, ...); 31995 extern int putwin(WINDOW *, FILE *); 31996 extern void qiflush(void); 31997 extern int raw(void); 31998 extern int redrawwin(WINDOW *); 31999 extern int refresh(void); 32000 extern int reset_prog_mode(void); 32001 extern int reset_shell_mode(void); 32002 extern int resetty(void); 32003 extern int ripoffline(int, int (*)(WINDOW *, int)); 32004 extern int savetty(void); 32005 extern int scanw(const char *, ...); 32006 extern int scr_dump(const char *); 32007 extern int scr_init(const char *); 32008 extern int scr_restore(const char *); 32009 extern int scr_set(const char *); 32010 extern int scrl(int); 32011 extern int scroll(WINDOW *); 32012 extern int scrollok(WINDOW *, bool); 32013 extern SCREEN *set_term(SCREEN *); 32014 extern int setscrreg(int, int); 32015 extern attr_t slk_attr(void); 32016 extern int slk_attr_set(const attr_t, short, void *); 32017 extern int slk_attroff(const chtype); 32018 extern int slk_attron(const chtype); 32019 extern int slk_attrset(const chtype); 32020 extern int slk_clear(void); 32021 extern int slk_color(short); 32022 extern int slk_init(int); 32023 extern char *slk_label(int); 32024 extern int slk_noutrefresh(void); 32025 extern int slk_refresh(void); 32026 extern int slk_restore(void); 32027 extern int slk_set(int, const char *, int); 32028 extern int slk_touch(void); 32029 extern int standend(void); 32030 extern int standout(void); 32031 extern int start_color(void); 32032 extern WINDOW *stdscr; 32033 extern WINDOW *subpad(WINDOW *, int, int, int, int); 32034 extern WINDOW *subwin(WINDOW *, int, int, int, int); 32035 extern int syncok(WINDOW *, bool); 32036 extern chtype termattrs(void); 32037 extern char *termname(void); 32038 extern void timeout(int); 32039 extern int touchline(WINDOW *, int, int); 32040 extern int touchwin(WINDOW *); 32041 extern int typeahead(int); 32042 extern const char *unctrl(chtype); 32043 extern int ungetch(int); 32044 extern int untouchwin(WINDOW *); 32045 extern void use_env(bool); 32046 extern int vidattr(chtype); 32047 extern int vidputs(chtype, int (*)(int)); 32048 extern int vline(chtype, int); 32049 extern int vw_printw(WINDOW *, const char *, va_list); 32050 extern int vw_scanw(WINDOW *, const char *, va_list); 32051 extern int vwprintw(WINDOW *, const char *, va_list); 32052 extern int vwscanw(WINDOW *, const char *, va_list); 32053 extern int waddch(WINDOW *, const chtype); 32054 extern int waddchnstr(WINDOW *, const chtype *, int); 32055 extern int waddchstr(WINDOW *, const chtype *); 32056 extern int waddnstr(WINDOW *, const char *, int); 32057 extern int waddstr(WINDOW *, const char *); 32058 extern int wattr_get(WINDOW *, attr_t *, short *, void *); 32059 extern int wattr_off(WINDOW *, attr_t, void *); 32060 extern int wattr_on(WINDOW *, attr_t, void *); 32061 extern int wattr_set(WINDOW *, attr_t, short, void *); 32062 extern int wattroff(WINDOW *, int); 32063 extern int wattron(WINDOW *, int); 32064 extern int wattrset(WINDOW *, int); 32065 extern int wbkgd(WINDOW *, chtype); 32066 extern void wbkgdset(WINDOW *, chtype); 32067 extern int wborder(WINDOW *, chtype, chtype, chtype, chtype, chtype, 32068 chtype, chtype, chtype); 32069 extern int wchgat(WINDOW *, int, attr_t, short, const void *); 32070 extern int wclear(WINDOW *); 32071 extern int wclrtobot(WINDOW *); 32072 extern int wclrtoeol(WINDOW *); 32073 extern int wcolor_set(WINDOW *, short, void *); 32074 extern void wcursyncup(WINDOW *); 32075 extern int wdelch(WINDOW *); 32076 extern int wdeleteln(WINDOW *); 32077 extern int wechochar(WINDOW *, const chtype); 32078 extern int werase(WINDOW *); 32079 extern int wgetch(WINDOW *); 32080 extern int wgetnstr(WINDOW *, char *, int); 32081 extern int wgetstr(WINDOW *, char *); 32082 extern int whline(WINDOW *, chtype, int); 32083 extern chtype winch(WINDOW *); 32084 extern int winchnstr(WINDOW *, chtype *, int); 32085 extern int winchstr(WINDOW *, chtype *); 32086 extern int winnstr(WINDOW *, char *, int); 32087 extern int winsch(WINDOW *, chtype); 32088 extern int winsdelln(WINDOW *, int); 32089 extern int winsertln(WINDOW *); 32090 extern int winsnstr(WINDOW *, const char *, int); 32091 extern int winsstr(WINDOW *, const char *); 32092 extern int winstr(WINDOW *, char *); 32093 extern int wmove(WINDOW *, int, int); 32094 extern int wnoutrefresh(WINDOW *); 32095 extern int wprintw(WINDOW *, const char *, ...); 32096 extern int wredrawln(WINDOW *, int, int); 32097 extern int wrefresh(WINDOW *); 32098 extern int wscanw(WINDOW *, const char *, ...); 32099 extern int wscrl(WINDOW *, int); 32100 extern int wsetscrreg(WINDOW *, int, int); 32101 extern int wstandend(WINDOW *); 32102 extern int wstandout(WINDOW *); 32103 extern void wsyncdown(WINDOW *); 32104 extern void wsyncup(WINDOW *); 32105 extern void wtimeout(WINDOW *, int); 32106 extern int wtouchln(WINDOW *, int, int, int); 32107 extern int wvline(WINDOW *, chtype, int); 32108 __________________________________________________________ 32109 32110 15.6.2. term.h 32111 32112 extern TERMINAL *cur_term; 32113 extern int del_curterm(TERMINAL *); 32114 extern int putp(const char *); 32115 extern int restartterm(char *, int, int *); 32116 extern TERMINAL *set_curterm(TERMINAL *); 32117 extern int setupterm(char *, int, int *); 32118 extern int tgetent(char *, const char *); 32119 extern int tgetflag(char *); 32120 extern int tgetnum(char *); 32121 extern char *tgetstr(char *, char **); 32122 extern char *tgoto(const char *, int, int); 32123 extern int tigetflag(const char *); 32124 extern int tigetnum(const char *); 32125 extern char *tigetstr(const char *); 32126 extern char *tparm(const char *, ...); 32127 extern int tputs(const char *, int, int (*)(int)); 32128 extern char ttytype[]; 32129 __________________________________________________________ 32130 32131 15.7. Interface Definitions for libncurses 32132 32133 Table of Contents 32134 inchnstr -- obtain a string of characters and their attributes 32135 from a curses window 32136 32137 inchstr -- obtain a string of characters and their attributes 32138 from a curses window 32139 32140 instr -- obtain a string of characters from a curses window 32141 mvcur -- send cursor movement commands to terminal 32142 mvinchnstr -- obtain a string of characters and their 32143 attributes from a curses window 32144 32145 mvinchstr -- obtain a string of characters and their attributes 32146 from a curses window 32147 32148 mvinstr -- obtain a string of characters from a curses window 32149 mvscanw -- convert formatted input from a curses window 32150 mvwinchnstr -- obtain a string of characters and their 32151 attributes from a curses window 32152 32153 mvwinchstr -- obtain a string of characters and their 32154 attributes from a curses window 32155 32156 mvwinstr -- obtain a string of characters from a curses window 32157 mvwscanw -- convert formatted input from a curses window 32158 ripoffline -- obtain a string of characters and their 32159 attributes from a curses window 32160 32161 scanw -- convert formatted input from a curses window 32162 vw_scanw -- convert formatted input from a curses window 32163 vwscanw -- convert formatted input from a curses window 32164 winchnstr -- obtain a string of characters and their attributes 32165 from a curses window 32166 32167 winchstr -- obtain a string of characters and their attributes 32168 from a curses window 32169 32170 winstr -- obtain a string of characters from a curses window 32171 wscanw -- convert formatted input from a curses window 32172 32173 The interfaces defined on the following pages are included in 32174 libncurses and are defined by this specification. Unless 32175 otherwise noted, these interfaces shall be included in the 32176 source standard. 32177 32178 Other interfaces listed in Section 15.5 shall behave as 32179 described in the referenced base document. 32180 32181 inchnstr 32182 32183 Name 32184 32185 inchnstr -- obtain a string of characters and their attributes 32186 from a curses window 32187 32188 Synopsis 32189 32190 #include 32191 32192 int inchnstr(chtype * chstr, int n); 32193 32194 Description 32195 32196 The interface inchnstr() shall behave as specified in X/Open 32197 Curses, Issue 7, except that inchnstr() shall return the number 32198 of characters that were read. 32199 32200 inchstr 32201 32202 Name 32203 32204 inchstr -- obtain a string of characters and their attributes 32205 from a curses window 32206 32207 Synopsis 32208 32209 #include 32210 32211 int inchstr(chtype * chstr); 32212 32213 Description 32214 32215 The interface inchstr() shall behave as specified in X/Open 32216 Curses, Issue 7, except that inchstr() shall return the number 32217 of characters that were read. 32218 32219 instr 32220 32221 Name 32222 32223 instr -- obtain a string of characters from a curses window 32224 32225 Synopsis 32226 32227 #include 32228 32229 int instr(char * str); 32230 32231 Description 32232 32233 The interface instr() shall behave as specified in X/Open 32234 Curses, Issue 7, except that instr() shall return the number of 32235 characters that were read. 32236 32237 mvcur 32238 32239 Name 32240 32241 mvcur -- send cursor movement commands to terminal 32242 32243 Synopsis 32244 32245 #include 32246 32247 int mvcur(int oldrow, int oldcol, int newrow, int newcol); 32248 32249 Description 32250 32251 The interface mvcur() shall behave as described in X/Open 32252 Curses, Issue 7, except that if (newrow, newcol) is not a valid 32253 address for the terminal in use, the results of the mvcur() 32254 function are unspecified. 32255 32256 mvinchnstr 32257 32258 Name 32259 32260 mvinchnstr -- obtain a string of characters and their 32261 attributes from a curses window 32262 32263 Synopsis 32264 32265 #include 32266 32267 int mvinchnstr(int y, int x, chtype * chstr, int n); 32268 32269 Description 32270 32271 The interface mvinchnstr() shall behave as specified in X/Open 32272 Curses, Issue 7, except that mvinchnstr() shall return the 32273 number of characters that were read. 32274 32275 mvinchstr 32276 32277 Name 32278 32279 mvinchstr -- obtain a string of characters and their attributes 32280 from a curses window 32281 32282 Synopsis 32283 32284 #include 32285 32286 int mvinchstr(int y, int x, chtype * chstr); 32287 32288 Description 32289 32290 The interface mvinchstr() shall behave as specified in X/Open 32291 Curses, Issue 7, except that mvinchstr() shall return the 32292 number of characters that were read. 32293 32294 mvinstr 32295 32296 Name 32297 32298 mvinstr -- obtain a string of characters from a curses window 32299 32300 Synopsis 32301 32302 #include 32303 32304 int mvinstr(int y, int x, char * str); 32305 32306 Description 32307 32308 The interface mvinstr() shall behave as specified in X/Open 32309 Curses, Issue 7, except that mvinstr() shall return the number 32310 of characters that were read. 32311 32312 mvscanw 32313 32314 Name 32315 32316 mvscanw -- convert formatted input from a curses window 32317 32318 Synopsis 32319 32320 #include 32321 32322 int mvscanw(int y, int x, const char *fmt, ...); 32323 32324 Description 32325 32326 The scanw family of functions shall behave as described in 32327 X/Open Curses, Issue 7, except as noted below. 32328 32329 Differences 32330 32331 This function returns ERR on failure. On success it returns the 32332 number of successfully matched and assigned input items. This 32333 differs from X/Open Curses, Issue 7, which indicates this 32334 function returns OK on success. 32335 32336 mvwinchnstr 32337 32338 Name 32339 32340 mvwinchnstr -- obtain a string of characters and their 32341 attributes from a curses window 32342 32343 Synopsis 32344 32345 #include 32346 32347 int mvwinchnstr(WINDOW * win, int y, int x, chtype * chstr, int 32348 n); 32349 32350 Description 32351 32352 The interface mvwinchnstr() shall behave as specified in X/Open 32353 Curses, Issue 7, except that mvwinchnstr() shall return the 32354 number of characters that were read. 32355 32356 mvwinchstr 32357 32358 Name 32359 32360 mvwinchstr -- obtain a string of characters and their 32361 attributes from a curses window 32362 32363 Synopsis 32364 32365 #include 32366 32367 int mvwinchstr(WINDOW * win, int y, int x, chtype * chstr); 32368 32369 Description 32370 32371 The interface mvwinchstr() shall behave as specified in X/Open 32372 Curses, Issue 7, except that mvwinchstr() shall return the 32373 number of characters that were read. 32374 32375 mvwinstr 32376 32377 Name 32378 32379 mvwinstr -- obtain a string of characters from a curses window 32380 32381 Synopsis 32382 32383 #include 32384 32385 int mvwinstr(WINDOW * win, int y, int x, char * str); 32386 32387 Description 32388 32389 The interface mvwinstr() shall behave as specified in X/Open 32390 Curses, Issue 7, except that mvwinstr() shall return the number 32391 of characters that were read. 32392 32393 mvwscanw 32394 32395 Name 32396 32397 mvwscanw -- convert formatted input from a curses window 32398 32399 Synopsis 32400 32401 #include 32402 32403 int mvwscanw(WINDOW *win, int y, int x, const char *fmt, ...); 32404 32405 Description 32406 32407 The scanw family of functions shall behave as described in 32408 X/Open Curses, Issue 7, except as noted below. 32409 32410 Differences 32411 32412 This function returns ERR on failure. On success it returns the 32413 number of successfully matched and assigned input items. This 32414 differs from X/Open Curses, Issue 7, which indicates this 32415 function returns OK on success. 32416 32417 ripoffline 32418 32419 Name 32420 32421 ripoffline -- obtain a string of characters and their 32422 attributes from a curses window 32423 32424 Synopsis 32425 32426 #include 32427 32428 int ripoffline(int line, int (*init) (WINDOW *, int)); 32429 32430 Description 32431 32432 The interface ripoffline() shall behave as specified in X/Open 32433 Curses, Issue 7, except that ripoffline() shall return -1 if 32434 the number of lines that were ripped off exceeds five. 32435 32436 scanw 32437 32438 Name 32439 32440 scanw -- convert formatted input from a curses window 32441 32442 Synopsis 32443 32444 #include 32445 32446 int scanw(const char *fmt, ...); 32447 32448 Description 32449 32450 The scanw family of functions shall behave as described in 32451 X/Open Curses, Issue 7, except as noted below. 32452 32453 Differences 32454 32455 This function returns ERR on failure. On success it returns the 32456 number of successfully matched and assigned input items. This 32457 differs from X/Open Curses, Issue 7, which indicates this 32458 function returns OK on success. 32459 32460 vw_scanw 32461 32462 Name 32463 32464 vw_scanw -- convert formatted input from a curses window 32465 32466 Synopsis 32467 32468 #include 32469 32470 int vw_scanw(WINDOW *win, const char *fmt, va_list vararglist); 32471 32472 Description 32473 32474 The scanw family of functions shall behave as described in 32475 X/Open Curses, Issue 7, except as noted below. 32476 32477 Differences 32478 32479 This function returns ERR on failure. On success it returns the 32480 number of successfully matched and assigned input items. This 32481 differs from X/Open Curses, Issue 7, which indicates this 32482 function returns OK on success. 32483 32484 vwscanw 32485 32486 Name 32487 32488 vwscanw -- convert formatted input from a curses window 32489 32490 Synopsis 32491 32492 #include 32493 32494 int vw_scanw(WINDOW *win, const char *fmt, va_list vararglist); 32495 32496 Description 32497 32498 The scanw family of functions shall behave as described in 32499 X/Open Curses, Issue 7, except as noted below. 32500 32501 Differences 32502 32503 This function returns ERR on failure. On success it returns the 32504 number of successfully matched and assigned input items. This 32505 differs from X/Open Curses, Issue 7, which indicates this 32506 function returns OK on success. 32507 32508 winchnstr 32509 32510 Name 32511 32512 winchnstr -- obtain a string of characters and their attributes 32513 from a curses window 32514 32515 Synopsis 32516 32517 #include 32518 32519 int winchnstr(WINDOW * win, chtype * chstr, int n); 32520 32521 Description 32522 32523 The interface winchnstr() shall behave as specified in X/Open 32524 Curses, Issue 7, except that winchnstr() shall return the 32525 number of characters that were read. 32526 32527 winchstr 32528 32529 Name 32530 32531 winchstr -- obtain a string of characters and their attributes 32532 from a curses window 32533 32534 Synopsis 32535 32536 #include 32537 32538 int winchstr(WINDOW * win, chtype * chstr); 32539 32540 Description 32541 32542 The interface winchstr() shall behave as specified in X/Open 32543 Curses, Issue 7, except that winchstr() shall return the number 32544 of characters that were read. 32545 32546 winstr 32547 32548 Name 32549 32550 winstr -- obtain a string of characters from a curses window 32551 32552 Synopsis 32553 32554 #include 32555 32556 int winstr(WINDOW * win, char * str); 32557 32558 Description 32559 32560 The interface winstr() shall behave as specified in POSIX 32561 1003.1-2008 (ISO/IEC 9945-2009), except that winstr() shall 32562 return the number of characters that were read. 32563 32564 wscanw 32565 32566 Name 32567 32568 wscanw -- convert formatted input from a curses window 32569 32570 Synopsis 32571 32572 #include 32573 32574 int wscanw(WINDOW *win, const char *fmt, ...); 32575 32576 Description 32577 32578 The scanw family of functions shall behave as described in 32579 X/Open Curses, Issue 7, except as noted below. 32580 32581 Differences 32582 32583 This function returns ERR on failure. On success it returns the 32584 number of successfully matched and assigned input items. This 32585 differs from X/Open Curses, Issue 7, which indicates this 32586 function returns OK on success. 32587 __________________________________________________________ 32588 32589 15.8. Interfaces for libncursesw 32590 32591 Table 15-7 defines the library name and shared object name for 32592 the libncursesw library 32593 32594 Table 15-7. libncursesw Definition 32595 Library: libncursesw 32596 SONAME: libncursesw.so.5 32597 32598 The behavior of the interfaces in this library is specified by 32599 the following specifications: 32600 32601 [Libncursesw] Libncursesw API 32602 [LSB] This Specification 32603 [ncursesw] Libncursesw Placeholder 32604 [X-CURSES] X/Open Curses, Issue 7 32605 __________________________________________________________ 32606 32607 15.8.1. Curses Wide 32608 __________________________________________________________ 32609 32610 15.8.1.1. Interfaces for Curses Wide 32611 32612 An LSB conforming implementation shall provide the generic 32613 functions for Curses Wide specified in Table 15-8, with the 32614 full mandatory functionality as described in the referenced 32615 underlying specification. 32616 32617 Table 15-8. libncursesw - Curses Wide Function Interfaces 32618 add_wch [Libncursesw] add_wchnstr [Libncursesw] add_wchstr 32619 [Libncursesw] addch [Libncursesw] 32620 addchnstr [Libncursesw] addchstr [Libncursesw] addnstr 32621 [Libncursesw] addnwstr [Libncursesw] 32622 addstr [Libncursesw] addwstr [Libncursesw] 32623 assume_default_colors [Libncursesw] attr_get [Libncursesw] 32624 attr_off [Libncursesw] attr_on [Libncursesw] attr_set 32625 [Libncursesw] attroff [Libncursesw] 32626 attron [Libncursesw] attrset [Libncursesw] baudrate 32627 [Libncursesw] beep [Libncursesw] 32628 bkgd [Libncursesw] bkgdset [Libncursesw] bkgrnd [Libncursesw] 32629 bkgrndset [Libncursesw] 32630 border [Libncursesw] border_set [Libncursesw] box [Libncursesw] 32631 box_set [Libncursesw] 32632 can_change_color [Libncursesw] cbreak [Libncursesw] chgat 32633 [Libncursesw] clear [Libncursesw] 32634 clearok [Libncursesw] clrtobot [Libncursesw] clrtoeol 32635 [Libncursesw] color_content [Libncursesw] 32636 color_set [Libncursesw] copywin [Libncursesw] curs_set 32637 [Libncursesw] curses_version [Libncursesw] 32638 def_prog_mode [Libncursesw] def_shell_mode [Libncursesw] 32639 define_key [Libncursesw] del_curterm [Libncursesw] 32640 delay_output [Libncursesw] delch [Libncursesw] deleteln 32641 [Libncursesw] delscreen [Libncursesw] 32642 delwin [Libncursesw] derwin [Libncursesw] doupdate 32643 [Libncursesw] dupwin [Libncursesw] 32644 echo [Libncursesw] echo_wchar [Libncursesw] echochar 32645 [Libncursesw] endwin [Libncursesw] 32646 erase [Libncursesw] erasechar [Libncursesw] erasewchar 32647 [Libncursesw] filter [Libncursesw] 32648 flash [Libncursesw] flushinp [Libncursesw] get_wch 32649 [Libncursesw] get_wstr [Libncursesw] 32650 getbkgd [Libncursesw] getbkgrnd [Libncursesw] getcchar 32651 [Libncursesw] getch [Libncursesw] 32652 getmouse [Libncursesw] getn_wstr [Libncursesw] getnstr 32653 [Libncursesw] getstr [Libncursesw] 32654 getwin [Libncursesw] halfdelay [Libncursesw] has_colors 32655 [Libncursesw] has_ic [Libncursesw] 32656 has_il [Libncursesw] has_key [Libncursesw] has_mouse [LSB] 32657 hline [Libncursesw] 32658 hline_set [Libncursesw] idcok [Libncursesw] idlok [Libncursesw] 32659 immedok [Libncursesw] 32660 in_wch [Libncursesw] in_wchnstr [Libncursesw] in_wchstr 32661 [Libncursesw] inch [Libncursesw] 32662 inchnstr [Libncursesw] inchstr [Libncursesw] init_color 32663 [Libncursesw] init_pair [Libncursesw] 32664 initscr [Libncursesw] innstr [Libncursesw] innwstr 32665 [Libncursesw] ins_nwstr [Libncursesw] 32666 ins_wch [Libncursesw] ins_wstr [Libncursesw] insch 32667 [Libncursesw] insdelln [Libncursesw] 32668 insertln [Libncursesw] insnstr [Libncursesw] insstr 32669 [Libncursesw] instr [Libncursesw] 32670 intrflush [Libncursesw] inwstr [Libncursesw] is_linetouched 32671 [Libncursesw] is_wintouched [Libncursesw] 32672 isendwin [Libncursesw] key_name [Libncursesw] keybound 32673 [Libncursesw] keyname [Libncursesw] 32674 keyok [Libncursesw] keypad [LSB] killchar [Libncursesw] 32675 killwchar [Libncursesw] 32676 leaveok [Libncursesw] longname [Libncursesw] mcprint 32677 [Libncursesw] meta [Libncursesw] 32678 mouse_trafo [Libncursesw] mouseinterval [Libncursesw] mousemask 32679 [Libncursesw] move [Libncursesw] 32680 mvadd_wch [Libncursesw] mvadd_wchnstr [Libncursesw] 32681 mvadd_wchstr [Libncursesw] mvaddch [Libncursesw] 32682 mvaddchnstr [Libncursesw] mvaddchstr [Libncursesw] mvaddnstr 32683 [Libncursesw] mvaddnwstr [Libncursesw] 32684 mvaddstr [Libncursesw] mvaddwstr [Libncursesw] mvchgat 32685 [Libncursesw] mvcur [Libncursesw] 32686 mvdelch [Libncursesw] mvderwin [Libncursesw] mvget_wch 32687 [Libncursesw] mvget_wstr [Libncursesw] 32688 mvgetch [Libncursesw] mvgetn_wstr [Libncursesw] mvgetnstr 32689 [Libncursesw] mvgetstr [Libncursesw] 32690 mvhline [Libncursesw] mvhline_set [Libncursesw] mvin_wch 32691 [Libncursesw] mvin_wchnstr [Libncursesw] 32692 mvin_wchstr [Libncursesw] mvinch [Libncursesw] mvinchnstr 32693 [Libncursesw] mvinchstr [Libncursesw] 32694 mvinnstr [Libncursesw] mvinnwstr [Libncursesw] mvins_nwstr 32695 [Libncursesw] mvins_wch [Libncursesw] 32696 mvins_wstr [Libncursesw] mvinsch [Libncursesw] mvinsnstr 32697 [Libncursesw] mvinsstr [Libncursesw] 32698 mvinstr [Libncursesw] mvinwstr [Libncursesw] mvprintw 32699 [Libncursesw] mvscanw [Libncursesw] 32700 mvvline [Libncursesw] mvvline_set [Libncursesw] mvwadd_wch 32701 [Libncursesw] mvwadd_wchnstr [Libncursesw] 32702 mvwadd_wchstr [Libncursesw] mvwaddch [Libncursesw] mvwaddchnstr 32703 [Libncursesw] mvwaddchstr [Libncursesw] 32704 mvwaddnstr [Libncursesw] mvwaddnwstr [Libncursesw] mvwaddstr 32705 [Libncursesw] mvwaddwstr [Libncursesw] 32706 mvwchgat [Libncursesw] mvwdelch [Libncursesw] mvwget_wch 32707 [Libncursesw] mvwget_wstr [Libncursesw] 32708 mvwgetch [Libncursesw] mvwgetn_wstr [Libncursesw] mvwgetnstr 32709 [Libncursesw] mvwgetstr [Libncursesw] 32710 mvwhline [Libncursesw] mvwhline_set [Libncursesw] mvwin 32711 [Libncursesw] mvwin_wch [Libncursesw] 32712 mvwin_wchnstr [Libncursesw] mvwin_wchstr [Libncursesw] mvwinch 32713 [Libncursesw] mvwinchnstr [Libncursesw] 32714 mvwinchstr [Libncursesw] mvwinnstr [Libncursesw] mvwinnwstr 32715 [Libncursesw] mvwins_nwstr [Libncursesw] 32716 mvwins_wch [Libncursesw] mvwins_wstr [Libncursesw] mvwinsch 32717 [Libncursesw] mvwinsnstr [Libncursesw] 32718 mvwinsstr [Libncursesw] mvwinstr [Libncursesw] mvwinwstr 32719 [Libncursesw] mvwprintw [Libncursesw] 32720 mvwscanw [Libncursesw] mvwvline [Libncursesw] mvwvline_set 32721 [Libncursesw] napms [Libncursesw] 32722 newpad [Libncursesw] newterm [Libncursesw] newwin [Libncursesw] 32723 nl [Libncursesw] 32724 nocbreak [Libncursesw] nodelay [Libncursesw] noecho 32725 [Libncursesw] nonl [Libncursesw] 32726 noqiflush [Libncursesw] noraw [Libncursesw] notimeout 32727 [Libncursesw] overlay [Libncursesw] 32728 overwrite [Libncursesw] pair_content [Libncursesw] pecho_wchar 32729 [Libncursesw] pechochar [Libncursesw] 32730 pnoutrefresh [Libncursesw] prefresh [Libncursesw] printw 32731 [Libncursesw] putp [Libncursesw] 32732 putwin [Libncursesw] qiflush [Libncursesw] raw [Libncursesw] 32733 redrawwin [Libncursesw] 32734 refresh [Libncursesw] reset_prog_mode [Libncursesw] 32735 reset_shell_mode [Libncursesw] resetty [Libncursesw] 32736 resizeterm [Libncursesw] restartterm [Libncursesw] ripoffline 32737 [Libncursesw] savetty [Libncursesw] 32738 scanw [Libncursesw] scr_dump [Libncursesw] scr_init 32739 [Libncursesw] scr_restore [Libncursesw] 32740 scr_set [Libncursesw] scrl [Libncursesw] scroll [Libncursesw] 32741 scrollok [Libncursesw] 32742 set_curterm [Libncursesw] set_term [Libncursesw] setcchar 32743 [Libncursesw] setscrreg [Libncursesw] 32744 setupterm [Libncursesw] slk_attr [X-CURSES] slk_attr_off 32745 [X-CURSES] slk_attr_on [X-CURSES] 32746 slk_attr_set [Libncursesw] slk_attroff [Libncursesw] slk_attron 32747 [Libncursesw] slk_attrset [Libncursesw] 32748 slk_clear [Libncursesw] slk_color [Libncursesw] slk_init 32749 [Libncursesw] slk_label [Libncursesw] 32750 slk_noutrefresh [Libncursesw] slk_refresh [Libncursesw] 32751 slk_restore [Libncursesw] slk_set [Libncursesw] 32752 slk_touch [Libncursesw] slk_wset [Libncursesw] standend 32753 [Libncursesw] standout [Libncursesw] 32754 start_color [Libncursesw] subpad [Libncursesw] subwin 32755 [Libncursesw] syncok [Libncursesw] 32756 term_attrs [X-CURSES] termattrs [Libncursesw] termname 32757 [Libncursesw] tgetent [Libncursesw] 32758 tgetflag [Libncursesw] tgetnum [Libncursesw] tgetstr 32759 [Libncursesw] tgoto [Libncursesw] 32760 tigetflag [Libncursesw] tigetnum [Libncursesw] tigetstr 32761 [Libncursesw] timeout [Libncursesw] 32762 touchline [Libncursesw] touchwin [Libncursesw] tparm 32763 [Libncursesw] tputs [Libncursesw] 32764 typeahead [Libncursesw] unctrl [Libncursesw] unget_wch 32765 [Libncursesw] ungetch [Libncursesw] 32766 ungetmouse [Libncursesw] untouchwin [Libncursesw] 32767 use_default_colors [Libncursesw] use_env [Libncursesw] 32768 use_extended_names [Libncursesw] vid_attr [X-CURSES] vid_puts 32769 [Libncursesw] vidattr [Libncursesw] 32770 vidputs [Libncursesw] vline [Libncursesw] vline_set 32771 [Libncursesw] vw_printw [Libncursesw] 32772 vw_scanw [Libncursesw] vwprintw [Libncursesw] vwscanw 32773 [Libncursesw] wadd_wch [Libncursesw] 32774 wadd_wchnstr [Libncursesw] wadd_wchstr [Libncursesw] waddch 32775 [Libncursesw] waddchnstr [Libncursesw] 32776 waddchstr [Libncursesw] waddnstr [Libncursesw] waddnwstr 32777 [Libncursesw] waddstr [Libncursesw] 32778 waddwstr [Libncursesw] wattr_get [Libncursesw] wattr_off 32779 [Libncursesw] wattr_on [Libncursesw] 32780 wattr_set [Libncursesw] wattroff [Libncursesw] wattron 32781 [Libncursesw] wattrset [Libncursesw] 32782 wbkgd [Libncursesw] wbkgdset [Libncursesw] wbkgrnd 32783 [Libncursesw] wbkgrndset [Libncursesw] 32784 wborder [Libncursesw] wborder_set [Libncursesw] wchgat 32785 [Libncursesw] wclear [Libncursesw] 32786 wclrtobot [Libncursesw] wclrtoeol [Libncursesw] wcolor_set 32787 [Libncursesw] wcursyncup [Libncursesw] 32788 wdelch [Libncursesw] wdeleteln [Libncursesw] wecho_wchar 32789 [Libncursesw] wechochar [Libncursesw] 32790 werase [Libncursesw] wget_wch [Libncursesw] wget_wstr 32791 [Libncursesw] wgetbkgrnd [Libncursesw] 32792 wgetch [Libncursesw] wgetn_wstr [Libncursesw] wgetnstr 32793 [Libncursesw] wgetstr [Libncursesw] 32794 whline [Libncursesw] whline_set [Libncursesw] win_wch 32795 [Libncursesw] win_wchnstr [Libncursesw] 32796 win_wchstr [Libncursesw] winch [Libncursesw] winchnstr 32797 [Libncursesw] winchstr [Libncursesw] 32798 winnstr [Libncursesw] winnwstr [Libncursesw] wins_nwstr 32799 [Libncursesw] wins_wch [Libncursesw] 32800 wins_wstr [Libncursesw] winsch [Libncursesw] winsdelln 32801 [Libncursesw] winsertln [Libncursesw] 32802 winsnstr [Libncursesw] winsstr [Libncursesw] winstr 32803 [Libncursesw] winwstr [Libncursesw] 32804 wmouse_trafo [Libncursesw] wmove [Libncursesw] wnoutrefresh 32805 [Libncursesw] wprintw [Libncursesw] 32806 wredrawln [Libncursesw] wrefresh [Libncursesw] wresize 32807 [Libncursesw] wscanw [Libncursesw] 32808 wscrl [Libncursesw] wsetscrreg [Libncursesw] wstandend 32809 [Libncursesw] wstandout [Libncursesw] 32810 wsyncdown [Libncursesw] wsyncup [Libncursesw] wtimeout 32811 [Libncursesw] wtouchln [Libncursesw] 32812 wunctrl [Libncursesw] wvline [Libncursesw] wvline_set 32813 [Libncursesw] 32814 32815 An LSB conforming implementation shall provide the generic 32816 deprecated functions for Curses Wide specified in Table 15-9, 32817 with the full mandatory functionality as described in the 32818 referenced underlying specification. 32819 32820 Note: These interfaces are deprecated, and applications 32821 should avoid using them. These interfaces may be withdrawn 32822 in future releases of this specification. 32823 32824 Table 15-9. libncursesw - Curses Wide Deprecated Function 32825 Interfaces 32826 tgetent [Libncursesw] tgetflag [Libncursesw] tgetnum 32827 [Libncursesw] tgetstr [Libncursesw] 32828 tgoto [Libncursesw] 32829 32830 An LSB conforming implementation shall provide the generic data 32831 interfaces for Curses Wide specified in Table 15-10, with the 32832 full mandatory functionality as described in the referenced 32833 underlying specification. 32834 32835 Table 15-10. libncursesw - Curses Wide Data Interfaces 32836 COLORS [ncursesw] COLOR_PAIRS [ncursesw] COLS [ncursesw] LINES 32837 [ncursesw] 32838 acs_map [LSB] cur_term [LSB] curscr [ncursesw] newscr 32839 [ncursesw] 32840 stdscr [ncursesw] ttytype [ncursesw] 32841 __________________________________________________________ 32842 32843 15.9. Data Definitions for libncursesw 32844 32845 This section defines global identifiers and their values that 32846 are associated with interfaces contained in libncursesw. These 32847 definitions are organized into groups that correspond to system 32848 headers. This convention is used as a convenience for the 32849 reader, and does not imply the existence of these headers, or 32850 their content. Where an interface is defined as requiring a 32851 particular system header file all of the data definitions for 32852 that system header file presented here shall be in effect. 32853 32854 This section gives data definitions to promote binary 32855 application portability, not to repeat source interface 32856 definitions available elsewhere. System providers and 32857 application developers should use this ABI to supplement - not 32858 to replace - source interface definition specifications. 32859 32860 This specification uses the ISO C (1999) C Language as the 32861 reference programming language, and data definitions are 32862 specified in ISO C format. The C language is used here as a 32863 convenient notation. Using a C language description of these 32864 data objects does not preclude their use by other programming 32865 languages. 32866 __________________________________________________________ 32867 32868 15.9.1. ncursesw/curses.h 32869 32870 #define CURSES 1 32871 #define setsyx(y,x) do { if (newscr) { \ 32872 if ((y) == -1 && (x) == -1) \ 32873 leaveok(newscr, TRUE); \ 32874 else { \ 32875 leaveok(newscr, FALSE); \ 32876 wmove(newscr, (y), (x)); \ 32877 } \ 32878 } \ 32879 } while(0) 32880 #define getsyx(y,x) do { if (newscr) { \ 32881 if (is_leaveok(newscr)) \ 32882 (y) = (x) = -1; \ 32883 else \ 32884 getyx(newscr,(y), (x)); \ 32885 } \ 32886 } while(0) 32887 #define CURSES_H 1 32888 #define NCURSES_VERSION_MAJOR 5 32889 #define NCURSES_VERSION_MINOR 9 32890 #define NCURSES_VERSION_PATCH 20110404 32891 #define NCURSES_VERSION "5.9" 32892 #define NCURSES_MOUSE_VERSION 1 32893 #define NCURSES_ENABLE_STDBOOL_H 1 32894 #define NCURSES_INLINE inline 32895 #define NCURSES_TPARM_VARARGS 1 32896 #ifndef TRUE 32897 #define TRUE 1 32898 #endif 32899 #define NCURSES_BOOL bool 32900 #ifdef __cplusplus 32901 # define NCURSES_CAST(type,value) static_cast(value) 32902 #else 32903 # define NCURSES_CAST(type,value) (type)(value) 32904 #endif 32905 #define WA_ATTRIBUTES A_ATTRIBUTES 32906 #define WA_NORMAL A_NORMAL 32907 #define WA_STANDOUT A_STANDOUT 32908 #define WA_UNDERLINE A_UNDERLINE 32909 #define WA_REVERSE A_REVERSE 32910 #define WA_BLINK A_BLINK 32911 #define WA_DIM A_DIM 32912 #define WA_BOLD A_BOLD 32913 #define WA_ALTCHARSET A_ALTCHARSET 32914 #define WA_INVIS A_INVIS 32915 #define WA_PROTECT A_PROTECT 32916 #define WA_HORIZONTAL A_HORIZONTAL 32917 #define WA_LEFT A_LEFT 32918 #define WA_LOW A_LOW 32919 #define WA_RIGHT A_RIGHT 32920 #define WA_TOP A_TOP 32921 #define WA_VERTICAL A_VERTICAL 32922 #define COLOR_BLACK 0 32923 #define COLOR_RED 1 32924 #define COLOR_GREEN 2 32925 #define COLOR_YELLOW 3 32926 #define COLOR_BLUE 4 32927 #define COLOR_MAGENTA 5 32928 #define COLOR_CYAN 6 32929 #define COLOR_WHITE 7 32930 #define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)]) 32931 #define ACS_ULCORNER NCURSES_ACS('l') 32932 #define ACS_LLCORNER NCURSES_ACS('m') 32933 #define ACS_URCORNER NCURSES_ACS('k') 32934 #define ACS_LRCORNER NCURSES_ACS('j') 32935 #define ACS_LTEE NCURSES_ACS('t') 32936 #define ACS_RTEE NCURSES_ACS('u') 32937 #define ACS_BTEE NCURSES_ACS('v') 32938 #define ACS_TTEE NCURSES_ACS('w') 32939 #define ACS_HLINE NCURSES_ACS('q') 32940 #define ACS_VLINE NCURSES_ACS('x') 32941 #define ACS_PLUS NCURSES_ACS('n') 32942 #define ACS_S1 NCURSES_ACS('o') 32943 #define ACS_S9 NCURSES_ACS('s') 32944 #define ACS_DIAMOND NCURSES_ACS('`') 32945 #define ACS_CKBOARD NCURSES_ACS('a') 32946 #define ACS_DEGREE NCURSES_ACS('f') 32947 #define ACS_PLMINUS NCURSES_ACS('g') 32948 #define ACS_BULLET NCURSES_ACS('~') 32949 #define ACS_LARROW NCURSES_ACS(',') 32950 #define ACS_RARROW NCURSES_ACS('+') 32951 #define ACS_DARROW NCURSES_ACS('.') 32952 #define ACS_UARROW NCURSES_ACS('-') 32953 #define ACS_BOARD NCURSES_ACS('h') 32954 #define ACS_LANTERN NCURSES_ACS('i') 32955 #define ACS_BLOCK NCURSES_ACS('0') 32956 #define ACS_S3 NCURSES_ACS('p') 32957 #define ACS_S7 NCURSES_ACS('r') 32958 #define ACS_LEQUAL NCURSES_ACS('y') 32959 #define ACS_GEQUAL NCURSES_ACS('z') 32960 #define ACS_PI NCURSES_ACS('{') 32961 #define ACS_NEQUAL NCURSES_ACS('|') 32962 #define ACS_STERLING NCURSES_ACS('}') 32963 #define ACS_BSSB ACS_ULCORNER 32964 #define ACS_SSBB ACS_LLCORNER 32965 #define ACS_BBSS ACS_URCORNER 32966 #define ACS_SBBS ACS_LRCORNER 32967 #define ACS_SBSS ACS_RTEE 32968 #define ACS_SSSB ACS_LTEE 32969 #define ACS_SSBS ACS_BTEE 32970 #define ACS_BSSS ACS_TTEE 32971 #define ACS_BSBS ACS_HLINE 32972 #define ACS_SBSB ACS_VLINE 32973 #define ACS_SSSS ACS_PLUS 32974 #define ERR (-1) 32975 #define OK (0) 32976 #define _SUBWIN 0x01 32977 #define _ENDLINE 0x02 32978 #define _FULLWIN 0x04 32979 #define _SCROLLWIN 0x08 32980 #define _ISPAD 0x10 32981 #define _HASMOVED 0x20 32982 #define _WRAPPED 0x40 32983 #define _NOCHANGE -1 32984 #define _NEWINDEX -1 32985 #define CCHARW_MAX 5 32986 #define NCURSES_EXT_COLORS 20110404 32987 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) 32988 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) 32989 #define NCURSES_EXT_FUNCS 20110404 32990 #define curses_version() NCURSES_VERSION 32991 #define NCURSES_SP_FUNCS 20110404 32992 #define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) 32993 #define NCURSES_SP_NAME(name) name 32994 #define NCURSES_ATTR_SHIFT 8 32995 #define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT)) 32996 #define A_NORMAL (1UL - 1UL) 32997 #define A_ATTRIBUTES NCURSES_BITS(~(1UL - 1UL),0) 32998 #define A_CHARTEXT (NCURSES_BITS(1UL,0) - 1UL) 32999 #define A_COLOR NCURSES_BITS(((1UL) << 8) - 1UL,0) 33000 #define A_STANDOUT NCURSES_BITS(1UL,8) 33001 #define A_UNDERLINE NCURSES_BITS(1UL,9) 33002 #define A_REVERSE NCURSES_BITS(1UL,10) 33003 #define A_BLINK NCURSES_BITS(1UL,11) 33004 #define A_DIM NCURSES_BITS(1UL,12) 33005 #define A_BOLD NCURSES_BITS(1UL,13) 33006 #define A_ALTCHARSET NCURSES_BITS(1UL,14) 33007 #define A_INVIS NCURSES_BITS(1UL,15) 33008 #define A_PROTECT NCURSES_BITS(1UL,16) 33009 #define A_HORIZONTAL NCURSES_BITS(1UL,17) 33010 #define A_LEFT NCURSES_BITS(1UL,18) 33011 #define A_LOW NCURSES_BITS(1UL,19) 33012 #define A_RIGHT NCURSES_BITS(1UL,20) 33013 #define A_TOP NCURSES_BITS(1UL,21) 33014 #define A_VERTICAL NCURSES_BITS(1UL,22) 33015 #define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) 33016 #define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) 33017 #define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) 33018 #define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) 33019 #define wgetstr(w, s) wgetnstr(w, s, -1) 33020 #define getnstr(s, n) wgetnstr(stdscr, s, n) 33021 #define setterm(term) setupterm(term, 1, (int *)0) 33022 #define fixterm() reset_prog_mode() 33023 #define resetterm() reset_shell_mode() 33024 #define saveterm() def_prog_mode() 33025 #define crmode() cbreak() 33026 #define nocrmode() nocbreak() 33027 #define getattrs(win) NCURSES_CAST(int, (win) ? (win)->_attrs : A_NORMAL) 33028 #define getcurx(win) ((win) ? (win)->_curx : ERR) 33029 #define getcury(win) ((win) ? (win)->_cury : ERR) 33030 #define getbegx(win) ((win) ? (win)->_begx : ERR) 33031 #define getbegy(win) ((win) ? (win)->_begy : ERR) 33032 #define getmaxx(win) ((win) ? ((win)->_maxx + 1) : ERR) 33033 #define getmaxy(win) ((win) ? ((win)->_maxy + 1) : ERR) 33034 #define getparx(win) ((win) ? (win)->_parx : ERR) 33035 #define getpary(win) ((win) ? (win)->_pary : ERR) 33036 #define wstandout(win) (wattrset(win,A_STANDOUT)) 33037 #define wstandend(win) (wattrset(win,A_NORMAL)) 33038 #define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) 33039 #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) 33040 #define scroll(win) wscrl(win,1) 33041 #define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) 33042 #define touchline(win, s, c) wtouchln((win), s, c, 1) 33043 #define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) 33044 #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) 33045 #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs,ts, bs, tl, tr, bl, br) 33046 #define hline(ch, n) whline(stdscr, ch, n) 33047 #define vline(ch, n) wvline(stdscr, ch, n) 33048 #define winstr(w, s) winnstr(w, s, -1) 33049 #define winchstr(w, s) winchnstr(w, s, -1) 33050 #define winsstr(w, s) winsnstr(w, s, -1) 33051 #define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1) 33052 #define waddstr(win,str) waddnstr(win,str,-1) 33053 #define waddchstr(win,str) waddchnstr(win,str,-1) 33054 #define COLOR_PAIR(n) NCURSES_BITS(n, 0) 33055 #define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) & A_COLOR) >> NCURSES_ATTR_SHIFT))) 33056 #define addch(ch) waddch(stdscr,ch) 33057 #define addchnstr(str,n) waddchnstr(stdscr,str,n) 33058 #define addchstr(str) waddchstr(stdscr,str) 33059 #define addnstr(str,n) waddnstr(stdscr,str,n) 33060 #define addstr(str) waddnstr(stdscr,str,-1) 33061 #define attroff(at) wattroff(stdscr,at) 33062 #define attron(at) wattron(stdscr,at) 33063 #define attrset(at) wattrset(stdscr,at) 33064 #define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o) 33065 #define attr_off(a,o) wattr_off(stdscr,a,o) 33066 #define attr_on(a,o) wattr_on(stdscr,a,o) 33067 #define attr_set(a,c,o) wattr_set(stdscr,a,c,o) 33068 #define bkgd(ch) wbkgd(stdscr,ch) 33069 #define bkgdset(ch) wbkgdset(stdscr,ch) 33070 #define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o) 33071 #define clear() wclear(stdscr) 33072 #define clrtobot() wclrtobot(stdscr) 33073 #define clrtoeol() wclrtoeol(stdscr) 33074 #define color_set(c,o) wcolor_set(stdscr,c,o) 33075 #define delch() wdelch(stdscr) 33076 #define deleteln() winsdelln(stdscr,-1) 33077 #define echochar(c) wechochar(stdscr,c) 33078 #define erase() werase(stdscr) 33079 #define getch() wgetch(stdscr) 33080 #define getstr(str) wgetstr(stdscr,str) 33081 #define inch() winch(stdscr) 33082 #define inchnstr(s,n) winchnstr(stdscr,s,n) 33083 #define inchstr(s) winchstr(stdscr,s) 33084 #define innstr(s,n) winnstr(stdscr,s,n) 33085 #define insch(c) winsch(stdscr,c) 33086 #define insdelln(n) winsdelln(stdscr,n) 33087 #define insertln() winsdelln(stdscr,1) 33088 #define insnstr(s,n) winsnstr(stdscr,s,n) 33089 #define insstr(s) winsstr(stdscr,s) 33090 #define instr(s) winstr(stdscr,s) 33091 #define move(y,x) wmove(stdscr,y,x) 33092 #define refresh() wrefresh(stdscr) 33093 #define scrl(n) wscrl(stdscr,n) 33094 #define setscrreg(t,b) wsetscrreg(stdscr,t,b) 33095 #define standend() wstandend(stdscr) 33096 #define standout() wstandout(stdscr) 33097 #define timeout(delay) wtimeout(stdscr,delay) 33098 #define wdeleteln(win) winsdelln(win,-1) 33099 #define winsertln(win) winsdelln(win,1) 33100 #define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch)) 33101 #define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n)) 33102 #define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1)) 33103 #define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n)) 33104 #define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1)) 33105 #define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win)) 33106 #define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o)) 33107 #define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win)) 33108 #define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n)) 33109 #define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str)) 33110 #define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n)) 33111 #define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) 33112 #define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n)) 33113 #define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s)) 33114 #define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n)) 33115 #define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c)) 33116 #define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n)) 33117 #define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s)) 33118 #define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s)) 33119 #define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n)) 33120 #define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch) 33121 #define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n) 33122 #define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str) 33123 #define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n) 33124 #define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str) 33125 #define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o) 33126 #define mvdelch(y,x) mvwdelch(stdscr,y,x) 33127 #define mvgetch(y,x) mvwgetch(stdscr,y,x) 33128 #define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n) 33129 #define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str) 33130 #define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n) 33131 #define mvinch(y,x) mvwinch(stdscr,y,x) 33132 #define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n) 33133 #define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s) 33134 #define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n) 33135 #define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c) 33136 #define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n) 33137 #define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s) 33138 #define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s) 33139 #define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n) 33140 #define getbkgd(win) ((win)->_bkgd) 33141 #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) 33142 #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) 33143 #define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p)), OK) 33144 #define vw_printw vwprintw 33145 #define vw_scanw vwscanw 33146 #define vsscanf(a,b,c) _nc_vsscanf(a,b,c) 33147 #define is_cleared(win) ((win) ? (win)->_clear : FALSE) 33148 #define is_idcok(win) ((win) ? (win)->_idcok : FALSE) 33149 #define is_idlok(win) ((win) ? (win)->_idlok : FALSE) 33150 #define is_immedok(win) ((win) ? (win)->_immed : FALSE) 33151 #define is_keypad(win) ((win) ? (win)->_use_keypad : FALSE) 33152 #define is_leaveok(win) ((win) ? (win)->_leaveok : FALSE) 33153 #define is_nodelay(win) ((win) ? ((win)->_delay == 0) : FALSE) 33154 #define is_notimeout(win) ((win) ? (win)->_notimeout : FALSE) 33155 #define is_pad(win) ((win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) 33156 #define is_scrollok(win) ((win) ? (win)->_scroll : FALSE) 33157 #define is_subwin(win) ((win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) 33158 #define is_syncok(win) ((win) ? (win)->_sync : FALSE) 33159 #define wgetparent(win) ((win) ? (win)->_parent : 0) 33160 #define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) =(win)->_regbottom, OK) : ERR) 33161 #define KEY_CODE_YES 0400 33162 #define KEY_MIN 0401 33163 #define KEY_BREAK 0401 33164 #define KEY_SRESET 0530 33165 #define KEY_RESET 0531 33166 #define KEY_DOWN 0402 33167 #define KEY_UP 0403 33168 #define KEY_LEFT 0404 33169 #define KEY_RIGHT 0405 33170 #define KEY_HOME 0406 33171 #define KEY_BACKSPACE 0407 33172 #define KEY_F0 0410 33173 #define KEY_F(n) (KEY_F0+(n)) 33174 #define KEY_DL 0510 33175 #define KEY_IL 0511 33176 #define KEY_DC 0512 33177 #define KEY_IC 0513 33178 #define KEY_EIC 0514 33179 #define KEY_CLEAR 0515 33180 #define KEY_EOS 0516 33181 #define KEY_EOL 0517 33182 #define KEY_SF 0520 33183 #define KEY_SR 0521 33184 #define KEY_NPAGE 0522 33185 #define KEY_PPAGE 0523 33186 #define KEY_STAB 0524 33187 #define KEY_CTAB 0525 33188 #define KEY_CATAB 0526 33189 #define KEY_ENTER 0527 33190 #define KEY_PRINT 0532 33191 #define KEY_LL 0533 33192 #define KEY_A1 0534 33193 #define KEY_A3 0535 33194 #define KEY_B2 0536 33195 #define KEY_C1 0537 33196 #define KEY_C3 0540 33197 #define KEY_BTAB 0541 33198 #define KEY_BEG 0542 33199 #define KEY_CANCEL 0543 33200 #define KEY_CLOSE 0544 33201 #define KEY_COMMAND 0545 33202 #define KEY_COPY 0546 33203 #define KEY_CREATE 0547 33204 #define KEY_END 0550 33205 #define KEY_EXIT 0551 33206 #define KEY_FIND 0552 33207 #define KEY_HELP 0553 33208 #define KEY_MARK 0554 33209 #define KEY_MESSAGE 0555 33210 #define KEY_MOVE 0556 33211 #define KEY_NEXT 0557 33212 #define KEY_OPEN 0560 33213 #define KEY_OPTIONS 0561 33214 #define KEY_PREVIOUS 0562 33215 #define KEY_REDO 0563 33216 #define KEY_REFERENCE 0564 33217 #define KEY_REFRESH 0565 33218 #define KEY_REPLACE 0566 33219 #define KEY_RESTART 0567 33220 #define KEY_RESUME 0570 33221 #define KEY_SAVE 0571 33222 #define KEY_SBEG 0572 33223 #define KEY_SCANCEL 0573 33224 #define KEY_SCOMMAND 0574 33225 #define KEY_SCOPY 0575 33226 #define KEY_SCREATE 0576 33227 #define KEY_SDC 0577 33228 #define KEY_SDL 0600 33229 #define KEY_SELECT 0601 33230 #define KEY_SEND 0602 33231 #define KEY_SEOL 0603 33232 #define KEY_SEXIT 0604 33233 #define KEY_SFIND 0605 33234 #define KEY_SHELP 0606 33235 #define KEY_SHOME 0607 33236 #define KEY_SIC 0610 33237 #define KEY_SLEFT 0611 33238 #define KEY_SMESSAGE 0612 33239 #define KEY_SMOVE 0613 33240 #define KEY_SNEXT 0614 33241 #define KEY_SOPTIONS 0615 33242 #define KEY_SPREVIOUS 0616 33243 #define KEY_SPRINT 0617 33244 #define KEY_SREDO 0620 33245 #define KEY_SREPLACE 0621 33246 #define KEY_SRIGHT 0622 33247 #define KEY_SRSUME 0623 33248 #define KEY_SSAVE 0624 33249 #define KEY_SSUSPEND 0625 33250 #define KEY_SUNDO 0626 33251 #define KEY_SUSPEND 0627 33252 #define KEY_UNDO 0630 33253 #define KEY_MOUSE 0631 33254 #define KEY_RESIZE 0632 33255 #define KEY_EVENT 0633 33256 #define KEY_MAX 0777 33257 #define _XOPEN_CURSES 1 33258 #define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c]) 33259 #define WACS_BSSB NCURSES_WACS('l') 33260 #define WACS_SSBB NCURSES_WACS('m') 33261 #define WACS_BBSS NCURSES_WACS('k') 33262 #define WACS_SBBS NCURSES_WACS('j') 33263 #define WACS_SBSS NCURSES_WACS('u') 33264 #define WACS_SSSB NCURSES_WACS('t') 33265 #define WACS_SSBS NCURSES_WACS('v') 33266 #define WACS_BSSS NCURSES_WACS('w') 33267 #define WACS_BSBS NCURSES_WACS('q') 33268 #define WACS_SBSB NCURSES_WACS('x') 33269 #define WACS_SSSS NCURSES_WACS('n') 33270 #define WACS_ULCORNER WACS_BSSB 33271 #define WACS_LLCORNER WACS_SSBB 33272 #define WACS_URCORNER WACS_BBSS 33273 #define WACS_LRCORNER WACS_SBBS 33274 #define WACS_RTEE WACS_SBSS 33275 #define WACS_LTEE WACS_SSSB 33276 #define WACS_BTEE WACS_SSBS 33277 #define WACS_TTEE WACS_BSSS 33278 #define WACS_HLINE WACS_BSBS 33279 #define WACS_VLINE WACS_SBSB 33280 #define WACS_PLUS WACS_SSSS 33281 #define WACS_S1 NCURSES_WACS('o') 33282 #define WACS_S9 NCURSES_WACS('s') 33283 #define WACS_DIAMOND NCURSES_WACS('`') 33284 #define WACS_CKBOARD NCURSES_WACS('a') 33285 #define WACS_DEGREE NCURSES_WACS('f') 33286 #define WACS_PLMINUS NCURSES_WACS('g') 33287 #define WACS_BULLET NCURSES_WACS('~') 33288 #define WACS_LARROW NCURSES_WACS(',') 33289 #define WACS_RARROW NCURSES_WACS('+') 33290 #define WACS_DARROW NCURSES_WACS('.') 33291 #define WACS_UARROW NCURSES_WACS('-') 33292 #define WACS_BOARD NCURSES_WACS('h') 33293 #define WACS_LANTERN NCURSES_WACS('i') 33294 #define WACS_BLOCK NCURSES_WACS('0') 33295 #define WACS_S3 NCURSES_WACS('p') 33296 #define WACS_S7 NCURSES_WACS('r') 33297 #define WACS_LEQUAL NCURSES_WACS('y') 33298 #define WACS_GEQUAL NCURSES_WACS('z') 33299 #define WACS_PI NCURSES_WACS('{') 33300 #define WACS_NEQUAL NCURSES_WACS('|') 33301 #define WACS_STERLING NCURSES_WACS('}') 33302 #define WACS_BDDB NCURSES_WACS('C') 33303 #define WACS_DDBB NCURSES_WACS('D') 33304 #define WACS_BBDD NCURSES_WACS('B') 33305 #define WACS_DBBD NCURSES_WACS('A') 33306 #define WACS_DBDD NCURSES_WACS('G') 33307 #define WACS_DDDB NCURSES_WACS('F') 33308 #define WACS_DDBD NCURSES_WACS('H') 33309 #define WACS_BDDD NCURSES_WACS('I') 33310 #define WACS_BDBD NCURSES_WACS('R') 33311 #define WACS_DBDB NCURSES_WACS('Y') 33312 #define WACS_DDDD NCURSES_WACS('E') 33313 #define WACS_D_ULCORNER WACS_BDDB 33314 #define WACS_D_LLCORNER WACS_DDBB 33315 #define WACS_D_URCORNER WACS_BBDD 33316 #define WACS_D_LRCORNER WACS_DBBD 33317 #define WACS_D_RTEE WACS_DBDD 33318 #define WACS_D_LTEE WACS_DDDB 33319 #define WACS_D_BTEE WACS_DDBD 33320 #define WACS_D_TTEE WACS_BDDD 33321 #define WACS_D_HLINE WACS_BDBD 33322 #define WACS_D_VLINE WACS_DBDB 33323 #define WACS_D_PLUS WACS_DDDD 33324 #define WACS_BTTB NCURSES_WACS('L') 33325 #define WACS_TTBB NCURSES_WACS('M') 33326 #define WACS_BBTT NCURSES_WACS('K') 33327 #define WACS_TBBT NCURSES_WACS('J') 33328 #define WACS_TBTT NCURSES_WACS('U') 33329 #define WACS_TTTB NCURSES_WACS('T') 33330 #define WACS_TTBT NCURSES_WACS('V') 33331 #define WACS_BTTT NCURSES_WACS('W') 33332 #define WACS_BTBT NCURSES_WACS('Q') 33333 #define WACS_TBTB NCURSES_WACS('X') 33334 #define WACS_TTTT NCURSES_WACS('N') 33335 #define WACS_T_ULCORNER WACS_BTTB 33336 #define WACS_T_LLCORNER WACS_TTBB 33337 #define WACS_T_URCORNER WACS_BBTT 33338 #define WACS_T_LRCORNER WACS_TBBT 33339 #define WACS_T_RTEE WACS_TBTT 33340 #define WACS_T_LTEE WACS_TTTB 33341 #define WACS_T_BTEE WACS_TTBT 33342 #define WACS_T_TTEE WACS_BTTT 33343 #define WACS_T_HLINE WACS_BTBT 33344 #define WACS_T_VLINE WACS_TBTB 33345 #define WACS_T_PLUS WACS_TTTT 33346 #define add_wch(c) wadd_wch(stdscr,c) 33347 #define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n) 33348 #define add_wchstr(str) wadd_wchstr(stdscr,str) 33349 #define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n) 33350 #define addwstr(wstr) waddwstr(stdscr,wstr) 33351 #define bkgrnd(c) wbkgrnd(stdscr,c) 33352 #define bkgrndset(c) wbkgrndset(stdscr,c) 33353 #define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br) 33354 #define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0) 33355 #define echo_wchar(c) wecho_wchar(stdscr,c) 33356 #define get_wch(c) wget_wch(stdscr,c) 33357 #define get_wstr(t) wget_wstr(stdscr,t) 33358 #define getbkgrnd(wch) wgetbkgrnd(stdscr,wch) 33359 #define getn_wstr(t,n) wgetn_wstr(stdscr,t,n) 33360 #define hline_set(c,n) whline_set(stdscr,c,n) 33361 #define in_wch(c) win_wch(stdscr,c) 33362 #define in_wchnstr(c,n) win_wchnstr(stdscr,c,n) 33363 #define in_wchstr(c) win_wchstr(stdscr,c) 33364 #define innwstr(c,n) winnwstr(stdscr,c,n) 33365 #define ins_nwstr(t,n) wins_nwstr(stdscr,t,n) 33366 #define ins_wch(c) wins_wch(stdscr,c) 33367 #define ins_wstr(t) wins_wstr(stdscr,t) 33368 #define inwstr(c) winwstr(stdscr,c) 33369 #define vline_set(c,n) wvline_set(stdscr,c,n) 33370 #define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1) 33371 #define waddwstr(win,wstr) waddnwstr(win,wstr,-1) 33372 #define wget_wstr(w,t) wgetn_wstr(w,t,-1) 33373 #define win_wchstr(w,c) win_wchnstr(w,c,-1) 33374 #define wins_wstr(w,t) wins_nwstr(w,t,-1) 33375 #define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK) 33376 #define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c) 33377 #define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n) 33378 #define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s) 33379 #define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n) 33380 #define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr) 33381 #define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c) 33382 #define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t) 33383 #define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n) 33384 #define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n) 33385 #define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c) 33386 #define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n) 33387 #define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c) 33388 #define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n) 33389 #define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n) 33390 #define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c) 33391 #define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t) 33392 #define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c) 33393 #define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n) 33394 #define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c)) 33395 #define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n)) 33396 #define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s)) 33397 #define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n)) 33398 #define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr)) 33399 #define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c)) 33400 #define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t)) 33401 #define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n)) 33402 #define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n)) 33403 #define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c)) 33404 #define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n)) 33405 #define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c)) 33406 #define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n)) 33407 #define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n)) 33408 #define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c)) 33409 #define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t)) 33410 #define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c)) 33411 #define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n)) 33412 #define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) 33413 #define NCURSES_BUTTON_RELEASED 001L 33414 #define NCURSES_BUTTON_PRESSED 002L 33415 #define NCURSES_BUTTON_CLICKED 004L 33416 #define NCURSES_DOUBLE_CLICKED 010L 33417 #define NCURSES_TRIPLE_CLICKED 020L 33418 #define NCURSES_RESERVED_EVENT 040L 33419 #define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) 33420 #define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) 33421 #define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) 33422 #define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) 33423 #define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) 33424 #define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) 33425 #define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) 33426 #define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) 33427 #define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) 33428 #define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) 33429 #define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) 33430 #define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) 33431 #define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) 33432 #define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) 33433 #define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) 33434 #define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) 33435 #define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) 33436 #define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) 33437 #define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) 33438 #define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) 33439 #define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) 33440 #define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) 33441 #define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) 33442 #define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) 33443 #define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) 33444 #define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) 33445 #define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) 33446 #define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) 33447 #define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) 33448 #define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) 33449 #define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) 33450 #define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) 33451 #define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) 33452 #define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) 33453 #define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) 33454 #define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) 33455 #define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) 33456 #define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) 33457 #define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) 33458 #define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x,040)) 33459 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) 33460 #define _tracech_t _tracecchar_t 33461 #define _tracech_t2 _tracecchar_t2 33462 #define TRACE_DISABLE 0x0000 33463 #define TRACE_TIMES 0x0001 33464 #define TRACE_TPUTS 0x0002 33465 #define TRACE_UPDATE 0x0004 33466 #define TRACE_MOVE 0x0008 33467 #define TRACE_CHARPUT 0x0010 33468 #define TRACE_ORDINARY 0x001F 33469 #define TRACE_CALLS 0x0020 33470 #define TRACE_VIRTPUT 0x0040 33471 #define TRACE_IEVENT 0x0080 33472 #define TRACE_BITS 0x0100 33473 #define TRACE_ICALLS 0x0200 33474 #define TRACE_CCALLS 0x0400 33475 #define TRACE_DATABASE 0x0800 33476 #define TRACE_ATTRS 0x1000 33477 #define TRACE_SHIFT 13 33478 #define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) 33479 #define OPTIMIZE_MVCUR 0x01 33480 #define OPTIMIZE_HASHMAP 0x02 33481 #define OPTIMIZE_SCROLL 0x04 33482 #define OPTIMIZE_ALL 0xff 33483 33484 typedef unsigned long int chtype; 33485 typedef chtype attr_t; 33486 33487 struct pdat { 33488 short _pad_y; 33489 short _pad_x; 33490 short _pad_top; 33491 short _pad_left; 33492 short _pad_bottom; 33493 short _pad_right; 33494 }; 33495 typedef struct screen SCREEN; 33496 typedef struct _win_st WINDOW; 33497 typedef unsigned long int mmask_t; 33498 typedef unsigned char bool; 33499 33500 typedef unsigned char NCURSES_BOOL; 33501 typedef int (*NCURSES_OUTC) (int); 33502 typedef int (*NCURSES_WINDOW_CB) (WINDOW *, void *); 33503 typedef int (*NCURSES_SCREEN_CB) (SCREEN *, void *); 33504 struct _win_st { 33505 short _cury; /* current cursor position */ 33506 short _curx; 33507 short _maxy; /* maximums of x and y, NOT window size*/ 33508 short _maxx; 33509 short _begy; /* screen coords of upper-left-hand corner */ 33510 short _begx; 33511 short _flags; /* window state flags */ 33512 attr_t _attrs; /* current attribute for non-space character */ 33513 chtype _bkgd; /* current background char/attribute pair */ 33514 bool _notimeout; /* no time out on function-key entry? */ 33515 bool _clear; /* consider all data in the window invalid? */ 33516 bool _leaveok; /* OK to not reset cursor on exit? */ 33517 bool _scroll; /* OK to scroll this window? */ 33518 bool _idlok; /* OK to use insert/delete line? */ 33519 bool _idcok; /* OK to use insert/delete char? */ 33520 bool _immed; /* window in immed mode? (not yet used)*/ 33521 bool _sync; /* window in sync mode? */ 33522 bool _use_keypad; /* process function keys into KEY_ symbols? */ 33523 int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ 33524 struct ldat *_line; /* the actual line data */ 33525 short _regtop; /* top line of scrolling region */ 33526 short _regbottom; /* bottom line of scrolling region */ 33527 int _parx; /* x coordinate of this window in parent */ 33528 int _pary; /* y coordinate of this window in parent */ 33529 WINDOW *_parent; /* pointer to parent if a sub-window */ 33530 struct pdat _pad; 33531 short _yoffset; /* real begy is _begy + _yoffset */ 33532 cchar_t _bkgrnd; /* current background char/attribute pair */ 33533 }; 33534 extern int COLORS; 33535 extern int COLOR_PAIRS; 33536 extern int COLS; 33537 extern int LINES; 33538 extern chtype acs_map[]; 33539 extern int add_wch(cchar_t *); 33540 extern int add_wchnstr(cchar_t *, int); 33541 extern int add_wchstr(cchar_t *); 33542 extern int addch(const chtype); 33543 extern int addchnstr(const chtype *, int); 33544 extern int addchstr(const chtype *); 33545 extern int addnstr(const char *, int); 33546 extern int addnwstr(wchar_t *, int); 33547 extern int addstr(const char *); 33548 extern int addwstr(wchar_t *); 33549 extern int assume_default_colors(int, int); 33550 extern int attr_get(attr_t *, short *, void *); 33551 extern int attr_off(attr_t, void *); 33552 extern int attr_on(attr_t, void *); 33553 extern int attr_set(attr_t, short, void *); 33554 extern int attroff(int); 33555 extern int attron(int); 33556 extern int attrset(int); 33557 extern int baudrate(void); 33558 extern int beep(void); 33559 extern int bkgd(chtype); 33560 extern void bkgdset(chtype); 33561 extern int bkgrnd(cchar_t *); 33562 extern void bkgrndset(cchar_t *); 33563 extern int border(chtype, chtype, chtype, chtype, chtype, chtype, chtype, 33564 chtype); 33565 extern int border_set(cchar_t *, cchar_t *, cchar_t *, cchar_t *, 33566 cchar_t *, cchar_t *, cchar_t *, cchar_t *); 33567 extern int box(WINDOW *, chtype, chtype); 33568 extern int box_set(WINDOW *, cchar_t *, cchar_t *); 33569 extern unsigned char can_change_color(void); 33570 extern int cbreak(void); 33571 extern int chgat(int, attr_t, short, const void *); 33572 extern int clear(void); 33573 extern int clearok(WINDOW *, unsigned char); 33574 extern int clrtobot(void); 33575 extern int clrtoeol(void); 33576 extern int color_content(short, short *, short *, short *); 33577 extern int color_set(short, void *); 33578 extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, 33579 int); 33580 extern int curs_set(int); 33581 extern WINDOW *curscr; 33582 extern const char *curses_version(void); 33583 extern int def_prog_mode(void); 33584 extern int def_shell_mode(void); 33585 extern int define_key(const char *, int); 33586 extern int delay_output(int); 33587 extern int delch(void); 33588 extern int deleteln(void); 33589 extern void delscreen(SCREEN *); 33590 extern int delwin(WINDOW *); 33591 extern WINDOW *derwin(WINDOW *, int, int, int, int); 33592 extern int doupdate(void); 33593 extern WINDOW *dupwin(WINDOW *); 33594 extern int echo(void); 33595 extern int echo_wchar(cchar_t *); 33596 extern int echochar(const chtype); 33597 extern int endwin(void); 33598 extern int erase(void); 33599 extern char erasechar(void); 33600 extern int erasewchar(wchar_t *); 33601 extern void filter(void); 33602 extern int flash(void); 33603 extern int flushinp(void); 33604 extern int get_wch(wint_t *); 33605 extern int get_wstr(wint_t *); 33606 extern chtype getbkgd(WINDOW *); 33607 extern int getbkgrnd(cchar_t *); 33608 extern int getcchar(cchar_t *, wchar_t *, attr_t *, short *, void *); 33609 extern int getch(void); 33610 extern int getmouse(MEVENT *); 33611 extern int getn_wstr(wint_t *, int); 33612 extern int getnstr(char *, int); 33613 extern int getstr(char *); 33614 extern WINDOW *getwin(FILE *); 33615 extern int halfdelay(int); 33616 extern unsigned char has_colors(void); 33617 extern unsigned char has_ic(void); 33618 extern unsigned char has_il(void); 33619 extern int has_key(void); 33620 extern bool has_mouse(void); 33621 extern int hline(chtype, int); 33622 extern int hline_set(cchar_t *, int); 33623 extern void idcok(WINDOW *, unsigned char); 33624 extern int idlok(WINDOW *, unsigned char); 33625 extern void immedok(WINDOW *, unsigned char); 33626 extern int in_wch(cchar_t *); 33627 extern int in_wchnstr(cchar_t *, int); 33628 extern int in_wchstr(cchar_t *); 33629 extern chtype inch(void); 33630 extern int inchnstr(chtype *, int); 33631 extern int inchstr(chtype *); 33632 extern int init_color(short, short, short, short); 33633 extern int init_pair(short, short, short); 33634 extern WINDOW *initscr(void); 33635 extern int innstr(char *, int); 33636 extern int innwstr(wchar_t *, int); 33637 extern int ins_nwstr(wchar_t *, int); 33638 extern int ins_wch(cchar_t *); 33639 extern int ins_wstr(wchar_t *); 33640 extern int insch(chtype); 33641 extern int insdelln(int); 33642 extern int insertln(void); 33643 extern int insnstr(const char *, int); 33644 extern int insstr(const char *); 33645 extern int instr(char *); 33646 extern int intrflush(WINDOW *, unsigned char); 33647 extern int inwstr(wchar_t *); 33648 extern unsigned char is_linetouched(WINDOW *, int); 33649 extern unsigned char is_wintouched(WINDOW *); 33650 extern unsigned char isendwin(void); 33651 extern char *key_name(wchar_t); 33652 extern char *keybound(int, int); 33653 extern char *keyname(int); 33654 extern int keyok(int, unsigned char); 33655 extern int keypad(WINDOW *, unsigned char); 33656 extern char killchar(void); 33657 extern int killwchar(wchar_t *); 33658 extern int leaveok(WINDOW *, unsigned char); 33659 extern char *longname(void); 33660 extern int mcprint(void); 33661 extern int meta(WINDOW *, unsigned char); 33662 extern bool mouse_trafo(int *, int *, bool); 33663 extern int mouseinterval(int); 33664 extern mmask_t mousemask(mmask_t, mmask_t *); 33665 extern int move(int, int); 33666 extern int mvadd_wch(int, int, cchar_t *); 33667 extern int mvadd_wchnstr(int, int, cchar_t *, int); 33668 extern int mvadd_wchstr(int, int, cchar_t *); 33669 extern int mvaddch(const chtype, const chtype, const chtype); 33670 extern int mvaddchnstr(int, int, const chtype *, int); 33671 extern int mvaddchstr(int, int, const chtype *); 33672 extern int mvaddnstr(int, int, const char *, int); 33673 extern int mvaddnwstr(int, int, wchar_t *, int); 33674 extern int mvaddstr(int, int, const char *); 33675 extern int mvaddwstr(int, int, wchar_t *); 33676 extern int mvchgat(int, int, int, attr_t, short, const void *); 33677 extern int mvcur(int, int, int, int); 33678 extern int mvdelch(int, int); 33679 extern int mvderwin(WINDOW *, int, int); 33680 extern int mvget_wch(int, int, wint_t *); 33681 extern int mvget_wstr(int, int, wint_t *); 33682 extern int mvgetch(int, int); 33683 extern int mvgetn_wstr(int, int, wint_t *, int); 33684 extern int mvgetnstr(int, int, char *, int); 33685 extern int mvgetstr(int, int, char *); 33686 extern int mvhline(int, int, chtype, int); 33687 extern int mvhline_set(int, int, cchar_t *, int); 33688 extern int mvin_wch(int, int, cchar_t *); 33689 extern int mvin_wchnstr(int, int, cchar_t *, int); 33690 extern int mvin_wchstr(int, int, cchar_t *); 33691 extern chtype mvinch(int, int); 33692 extern int mvinchnstr(int, int, chtype *, int); 33693 extern int mvinchstr(int, int, chtype *); 33694 extern int mvinnstr(int, int, char *, int); 33695 extern int mvinnwstr(int, int, wchar_t *, int); 33696 extern int mvins_nwstr(int, int, wchar_t *, int); 33697 extern int mvins_wch(int, int, cchar_t *); 33698 extern int mvins_wstr(int, int, wchar_t *); 33699 extern int mvinsch(int, int, chtype); 33700 extern int mvinsnstr(int, int, const char *, int); 33701 extern int mvinsstr(int, int, const char *); 33702 extern int mvinstr(int, int, char *); 33703 extern int mvinwstr(int, int, wchar_t *); 33704 extern int mvprintw(int, int, const char *, ...); 33705 extern int mvscanw(int, int, char *, ...); 33706 extern int mvvline(int, int, chtype, int); 33707 extern int mvvline_set(int, int, cchar_t *, int); 33708 extern int mvwadd_wch(WINDOW *, int, int, cchar_t *); 33709 extern int mvwadd_wchnstr(WINDOW *, int, int, cchar_t *, int); 33710 extern int mvwadd_wchstr(WINDOW *, int, int, cchar_t *); 33711 extern int mvwaddch(const chtype, const chtype, const chtype, 33712 const chtype); 33713 extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 33714 extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 33715 extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 33716 extern int mvwaddnwstr(WINDOW *, int, int, wchar_t *, int); 33717 extern int mvwaddstr(WINDOW *, int, int, const char *); 33718 extern int mvwaddwstr(WINDOW *, int, int, wchar_t *); 33719 extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); 33720 extern int mvwdelch(WINDOW *, int, int); 33721 extern int mvwget_wch(WINDOW *, int, int, wint_t *); 33722 extern int mvwget_wstr(WINDOW *, int, int, wint_t *); 33723 extern int mvwgetch(WINDOW *, int, int); 33724 extern int mvwgetn_wstr(WINDOW *, int, int, wint_t *, int); 33725 extern int mvwgetnstr(WINDOW *, int, int, char *, int); 33726 extern int mvwgetstr(WINDOW *, int, int, char *); 33727 extern int mvwhline(WINDOW *, int, int, chtype, int); 33728 extern int mvwhline_set(WINDOW *, int, int, cchar_t *, int); 33729 extern int mvwin(WINDOW *, int, int); 33730 extern int mvwin_wch(WINDOW *, int, int, cchar_t *); 33731 extern int mvwin_wchnstr(WINDOW *, int, int, cchar_t *, int); 33732 extern int mvwin_wchstr(WINDOW *, int, int, cchar_t *); 33733 extern chtype mvwinch(WINDOW *, int, int); 33734 extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 33735 extern int mvwinchstr(WINDOW *, int, int, chtype *); 33736 extern int mvwinnstr(WINDOW *, int, int, char *, int); 33737 extern int mvwinnwstr(WINDOW *, int, int, wchar_t *, int); 33738 extern int mvwins_nwstr(WINDOW *, int, int, wchar_t *, int); 33739 extern int mvwins_wch(WINDOW *, int, int, cchar_t *); 33740 extern int mvwins_wstr(WINDOW *, int, int, wchar_t *); 33741 extern int mvwinsch(WINDOW *, int, int, chtype); 33742 extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 33743 extern int mvwinsstr(WINDOW *, int, int, const char *); 33744 extern int mvwinstr(WINDOW *, int, int, char *); 33745 extern int mvwinwstr(WINDOW *, int, int, wchar_t *); 33746 extern int mvwprintw(WINDOW *, int, int, const char *, ...); 33747 extern int mvwscanw(WINDOW *, int, int, char *, ...); 33748 extern int mvwvline(WINDOW *, int, int, chtype, int); 33749 extern int mvwvline_set(WINDOW *, int, int, cchar_t *, int); 33750 extern int napms(int); 33751 extern WINDOW *newpad(int, int); 33752 extern WINDOW *newscr; 33753 extern SCREEN *newterm(char *, FILE *, FILE *); 33754 extern WINDOW *newwin(int, int, int, int); 33755 extern int nl(void); 33756 extern int nocbreak(void); 33757 extern int nodelay(WINDOW *, unsigned char); 33758 extern int noecho(void); 33759 extern int nonl(void); 33760 extern void noqiflush(void); 33761 extern int noraw(void); 33762 extern int notimeout(WINDOW *, unsigned char); 33763 extern int overlay(const WINDOW *, WINDOW *); 33764 extern int overwrite(const WINDOW *, WINDOW *); 33765 extern int pair_content(short, short *, short *); 33766 extern int pecho_wchar(WINDOW *, cchar_t *); 33767 extern int pechochar(const chtype, const chtype); 33768 extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 33769 extern int prefresh(WINDOW *, int, int, int, int, int, int); 33770 extern int printw(const char *, ...); 33771 extern int putwin(WINDOW *, FILE *); 33772 extern void qiflush(void); 33773 extern int raw(void); 33774 extern int redrawwin(WINDOW *); 33775 extern int refresh(void); 33776 extern int reset_prog_mode(void); 33777 extern int reset_shell_mode(void); 33778 extern int resetty(void); 33779 extern int resizeterm(int, int); 33780 extern int ripoffline(int, int (*)(WINDOW *, int)); 33781 extern int savetty(void); 33782 extern int scanw(char *, ...); 33783 extern int scr_dump(const char *); 33784 extern int scr_init(const char *); 33785 extern int scr_restore(const char *); 33786 extern int scr_set(const char *); 33787 extern int scrl(int); 33788 extern int scroll(WINDOW *); 33789 extern int scrollok(WINDOW *, unsigned char); 33790 extern SCREEN *set_term(SCREEN *); 33791 extern int setcchar(cchar_t *, wchar_t *, attr_t, short, void *); 33792 extern int setscrreg(int, int); 33793 extern attr_t slk_attr(void); 33794 extern int slk_attr_off(const attr_t, void *); 33795 extern int slk_attr_on(attr_t, void *); 33796 extern int slk_attr_set(const attr_t, short, void *); 33797 extern int slk_attroff(const chtype); 33798 extern int slk_attron(const chtype); 33799 extern int slk_attrset(const chtype); 33800 extern int slk_clear(void); 33801 extern int slk_color(short); 33802 extern int slk_init(int); 33803 extern char *slk_label(int); 33804 extern int slk_noutrefresh(void); 33805 extern int slk_refresh(void); 33806 extern int slk_restore(void); 33807 extern int slk_set(int, const char *, int); 33808 extern int slk_touch(void); 33809 extern int slk_wset(int, const wchar_t *, int); 33810 extern int standend(void); 33811 extern int standout(void); 33812 extern int start_color(void); 33813 extern WINDOW *stdscr; 33814 extern WINDOW *subpad(WINDOW *, int, int, int, int); 33815 extern WINDOW *subwin(WINDOW *, int, int, int, int); 33816 extern int syncok(WINDOW *, unsigned char); 33817 extern attr_t term_attrs(void); 33818 extern chtype termattrs(void); 33819 extern char *termname(void); 33820 extern void timeout(int); 33821 extern int touchline(WINDOW *, int, int); 33822 extern int touchwin(WINDOW *); 33823 extern int typeahead(int); 33824 extern char *unctrl(chtype); 33825 extern int unget_wch(wchar_t); 33826 extern int ungetch(int); 33827 extern int ungetmouse(MEVENT *); 33828 extern int untouchwin(WINDOW *); 33829 extern int use_default_colors(void); 33830 extern void use_env(unsigned char); 33831 extern int use_extended_names(unsigned char); 33832 extern int vid_attr(attr_t, short, void *); 33833 extern int vid_puts(attr_t, short, void *, int); 33834 extern int vidattr(chtype); 33835 extern int vidputs(chtype, NCURSES_OUTC); 33836 extern int vline(chtype, int); 33837 extern int vline_set(cchar_t *, int); 33838 extern int vw_printw(WINDOW *, const char *, va_list); 33839 extern int vw_scanw(WINDOW *, char *, va_list); 33840 extern int vwprintw(WINDOW *, const char *, va_list); 33841 extern int vwscanw(WINDOW *, char *, va_list); 33842 extern int wadd_wch(WINDOW *, cchar_t *); 33843 extern int wadd_wchnstr(WINDOW *, cchar_t *, int); 33844 extern int wadd_wchstr(WINDOW *, cchar_t *); 33845 extern int waddch(WINDOW *, chtype); 33846 extern int waddchnstr(WINDOW *, const chtype *, int); 33847 extern int waddchstr(WINDOW *, const chtype *); 33848 extern int waddnstr(WINDOW *, const char *, int); 33849 extern int waddnwstr(WINDOW *, wchar_t *, int); 33850 extern int waddstr(WINDOW *, const char *); 33851 extern int waddwstr(WINDOW *, wchar_t *); 33852 extern int wattr_get(WINDOW *, attr_t *, short *, void *); 33853 extern int wattr_off(WINDOW *, attr_t, void *); 33854 extern int wattr_on(WINDOW *, attr_t, void *); 33855 extern int wattr_set(WINDOW *, attr_t, short, void *); 33856 extern int wattroff(WINDOW *, int); 33857 extern int wattron(WINDOW *, int); 33858 extern int wattrset(WINDOW *, int); 33859 extern int wbkgd(WINDOW *, chtype); 33860 extern void wbkgdset(WINDOW *, chtype); 33861 extern int wbkgrnd(WINDOW *, cchar_t *); 33862 extern void wbkgrndset(WINDOW *, cchar_t *); 33863 extern int wborder(WINDOW *, chtype, chtype, chtype, chtype, chtype, 33864 chtype, chtype, chtype); 33865 extern int wborder_set(WINDOW *, cchar_t *, cchar_t *, cchar_t *, 33866 cchar_t *, cchar_t *, cchar_t *, cchar_t *, 33867 cchar_t *); 33868 extern int wchgat(WINDOW *, int, attr_t, short, const void *); 33869 extern int wclear(WINDOW *); 33870 extern int wclrtobot(WINDOW *); 33871 extern int wclrtoeol(WINDOW *); 33872 extern int wcolor_set(WINDOW *, short, void *); 33873 extern void wcursyncup(WINDOW *); 33874 extern int wdelch(WINDOW *); 33875 extern int wdeleteln(WINDOW *); 33876 extern int wecho_wchar(WINDOW *, cchar_t *); 33877 extern int wechochar(const chtype, const chtype); 33878 extern int werase(WINDOW *); 33879 extern int wget_wch(WINDOW *, wint_t *); 33880 extern int wget_wstr(WINDOW *, wint_t *); 33881 extern int wgetbkgrnd(WINDOW *, cchar_t *); 33882 extern int wgetch(WINDOW *); 33883 extern int wgetn_wstr(WINDOW *, wint_t *, int); 33884 extern int wgetnstr(WINDOW *, char *, int); 33885 extern int wgetstr(WINDOW *, char *); 33886 extern int whline(WINDOW *, chtype, int); 33887 extern int whline_set(WINDOW *, cchar_t *, int); 33888 extern int win_wch(WINDOW *, cchar_t *); 33889 extern int win_wchnstr(WINDOW *, cchar_t *, int); 33890 extern int win_wchstr(WINDOW *, cchar_t *); 33891 extern chtype winch(WINDOW *); 33892 extern int winchnstr(WINDOW *, chtype *, int); 33893 extern int winchstr(WINDOW *, chtype *); 33894 extern int winnstr(WINDOW *, char *, int); 33895 extern int winnwstr(WINDOW *, wchar_t *, int); 33896 extern int wins_nwstr(WINDOW *, wchar_t *, int); 33897 extern int wins_wch(WINDOW *, cchar_t *); 33898 extern int wins_wstr(WINDOW *, wchar_t *); 33899 extern int winsch(WINDOW *, chtype); 33900 extern int winsdelln(WINDOW *, int); 33901 extern int winsertln(WINDOW *); 33902 extern int winsnstr(WINDOW *, const char *, int); 33903 extern int winsstr(WINDOW *, const char *); 33904 extern int winstr(WINDOW *, char *); 33905 extern int winwstr(WINDOW *, wchar_t *); 33906 extern unsigned char wmouse_trafo(const WINDOW *, int *, int *, bool); 33907 extern int wmove(WINDOW *, int, int); 33908 extern int wnoutrefresh(WINDOW *); 33909 extern int wprintw(WINDOW *, const char *, ...); 33910 extern int wredrawln(WINDOW *, int, int); 33911 extern int wrefresh(WINDOW *); 33912 extern int wresize(WINDOW *, int, int); 33913 extern int wscanw(WINDOW *, char *, ...); 33914 extern int wscrl(WINDOW *, int); 33915 extern int wsetscrreg(WINDOW *, int, int); 33916 extern int wstandend(WINDOW *); 33917 extern int wstandout(WINDOW *); 33918 extern void wsyncdown(WINDOW *); 33919 extern void wsyncup(WINDOW *); 33920 extern void wtimeout(WINDOW *, int); 33921 extern int wtouchln(WINDOW *, int, int, int); 33922 extern wchar_t *wunctrl(cchar_t *); 33923 extern int wvline(WINDOW *, chtype, int); 33924 extern int wvline_set(WINDOW *, cchar_t *, int); 33925 __________________________________________________________ 33926 33927 15.9.2. ncursesw/ncurses_dll.h 33928 33929 #define NCURSES_API 33930 #define NCURSES_IMPEXP 33931 #define NCURSES_STATIC 33932 #define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void) 33933 #define NCURSES_PUBLIC_VAR(name) _nc_ ##name 33934 __________________________________________________________ 33935 33936 15.9.3. ncursesw/term.h 33937 33938 #define NCURSES_TERM_H_incl 1 33939 #define NCURSES_VERSION "5.9" 33940 #define NCURSES_SBOOL char 33941 #define NCURSES_XNAMES 1 33942 #define TERMIOS 1 33943 #define TTY struct termios 33944 #define TCSANOW TCSETA 33945 #define TCSADRAIN TCSETAW 33946 #define TCSAFLUSH TCSETAF 33947 #define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg) 33948 #define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg) 33949 #define cfgetospeed(t) ((t)->c_cflag & CBAUD) 33950 #define TCOFLUSH 1 33951 #define TCIOFLUSH 2 33952 #define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) 33953 #define GET_TTY(fd, buf) tcgetattr(fd, buf) 33954 #define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf) 33955 #define NAMESIZE 256 33956 #define CUR cur_term->type. 33957 #define auto_left_margin CUR Booleans[0] 33958 #define auto_right_margin CUR Booleans[1] 33959 #define no_esc_ctlc CUR Booleans[2] 33960 #define ceol_standout_glitch CUR Booleans[3] 33961 #define eat_newline_glitch CUR Booleans[4] 33962 #define erase_overstrike CUR Booleans[5] 33963 #define generic_type CUR Booleans[6] 33964 #define hard_copy CUR Booleans[7] 33965 #define has_meta_key CUR Booleans[8] 33966 #define has_status_line CUR Booleans[9] 33967 #define insert_null_glitch CUR Booleans[10] 33968 #define memory_above CUR Booleans[11] 33969 #define memory_below CUR Booleans[12] 33970 #define move_insert_mode CUR Booleans[13] 33971 #define move_standout_mode CUR Booleans[14] 33972 #define over_strike CUR Booleans[15] 33973 #define status_line_esc_ok CUR Booleans[16] 33974 #define dest_tabs_magic_smso CUR Booleans[17] 33975 #define tilde_glitch CUR Booleans[18] 33976 #define transparent_underline CUR Booleans[19] 33977 #define xon_xoff CUR Booleans[20] 33978 #define needs_xon_xoff CUR Booleans[21] 33979 #define prtr_silent CUR Booleans[22] 33980 #define hard_cursor CUR Booleans[23] 33981 #define non_rev_rmcup CUR Booleans[24] 33982 #define no_pad_char CUR Booleans[25] 33983 #define non_dest_scroll_region CUR Booleans[26] 33984 #define can_change CUR Booleans[27] 33985 #define back_color_erase CUR Booleans[28] 33986 #define hue_lightness_saturation CUR Booleans[29] 33987 #define col_addr_glitch CUR Booleans[30] 33988 #define cr_cancels_micro_mode CUR Booleans[31] 33989 #define has_print_wheel CUR Booleans[32] 33990 #define row_addr_glitch CUR Booleans[33] 33991 #define semi_auto_right_margin CUR Booleans[34] 33992 #define cpi_changes_res CUR Booleans[35] 33993 #define lpi_changes_res CUR Booleans[36] 33994 #define columns CUR Numbers[0] 33995 #define init_tabs CUR Numbers[1] 33996 #define lines CUR Numbers[2] 33997 #define lines_of_memory CUR Numbers[3] 33998 #define magic_cookie_glitch CUR Numbers[4] 33999 #define padding_baud_rate CUR Numbers[5] 34000 #define virtual_terminal CUR Numbers[6] 34001 #define width_status_line CUR Numbers[7] 34002 #define num_labels CUR Numbers[8] 34003 #define label_height CUR Numbers[9] 34004 #define label_width CUR Numbers[10] 34005 #define max_attributes CUR Numbers[11] 34006 #define maximum_windows CUR Numbers[12] 34007 #define max_colors CUR Numbers[13] 34008 #define max_pairs CUR Numbers[14] 34009 #define no_color_video CUR Numbers[15] 34010 #define buffer_capacity CUR Numbers[16] 34011 #define dot_vert_spacing CUR Numbers[17] 34012 #define dot_horz_spacing CUR Numbers[18] 34013 #define max_micro_address CUR Numbers[19] 34014 #define max_micro_jump CUR Numbers[20] 34015 #define micro_col_size CUR Numbers[21] 34016 #define micro_line_size CUR Numbers[22] 34017 #define number_of_pins CUR Numbers[23] 34018 #define output_res_char CUR Numbers[24] 34019 #define output_res_line CUR Numbers[25] 34020 #define output_res_horz_inch CUR Numbers[26] 34021 #define output_res_vert_inch CUR Numbers[27] 34022 #define print_rate CUR Numbers[28] 34023 #define wide_char_size CUR Numbers[29] 34024 #define buttons CUR Numbers[30] 34025 #define bit_image_entwining CUR Numbers[31] 34026 #define bit_image_type CUR Numbers[32] 34027 #define back_tab CUR Strings[0] 34028 #define bell CUR Strings[1] 34029 #define carriage_return CUR Strings[2] 34030 #define change_scroll_region CUR Strings[3] 34031 #define clear_all_tabs CUR Strings[4] 34032 #define clear_screen CUR Strings[5] 34033 #define clr_eol CUR Strings[6] 34034 #define clr_eos CUR Strings[7] 34035 #define column_address CUR Strings[8] 34036 #define command_character CUR Strings[9] 34037 #define cursor_address CUR Strings[10] 34038 #define cursor_down CUR Strings[11] 34039 #define cursor_home CUR Strings[12] 34040 #define cursor_invisible CUR Strings[13] 34041 #define cursor_left CUR Strings[14] 34042 #define cursor_mem_address CUR Strings[15] 34043 #define cursor_normal CUR Strings[16] 34044 #define cursor_right CUR Strings[17] 34045 #define cursor_to_ll CUR Strings[18] 34046 #define cursor_up CUR Strings[19] 34047 #define cursor_visible CUR Strings[20] 34048 #define delete_character CUR Strings[21] 34049 #define delete_line CUR Strings[22] 34050 #define dis_status_line CUR Strings[23] 34051 #define down_half_line CUR Strings[24] 34052 #define enter_alt_charset_mode CUR Strings[25] 34053 #define enter_blink_mode CUR Strings[26] 34054 #define enter_bold_mode CUR Strings[27] 34055 #define enter_ca_mode CUR Strings[28] 34056 #define enter_delete_mode CUR Strings[29] 34057 #define enter_dim_mode CUR Strings[30] 34058 #define enter_insert_mode CUR Strings[31] 34059 #define enter_secure_mode CUR Strings[32] 34060 #define enter_protected_mode CUR Strings[33] 34061 #define enter_reverse_mode CUR Strings[34] 34062 #define enter_standout_mode CUR Strings[35] 34063 #define enter_underline_mode CUR Strings[36] 34064 #define erase_chars CUR Strings[37] 34065 #define exit_alt_charset_mode CUR Strings[38] 34066 #define exit_attribute_mode CUR Strings[39] 34067 #define exit_ca_mode CUR Strings[40] 34068 #define exit_delete_mode CUR Strings[41] 34069 #define exit_insert_mode CUR Strings[42] 34070 #define exit_standout_mode CUR Strings[43] 34071 #define exit_underline_mode CUR Strings[44] 34072 #define flash_screen CUR Strings[45] 34073 #define form_feed CUR Strings[46] 34074 #define from_status_line CUR Strings[47] 34075 #define init_1string CUR Strings[48] 34076 #define init_2string CUR Strings[49] 34077 #define init_3string CUR Strings[50] 34078 #define init_file CUR Strings[51] 34079 #define insert_character CUR Strings[52] 34080 #define insert_line CUR Strings[53] 34081 #define insert_padding CUR Strings[54] 34082 #define key_backspace CUR Strings[55] 34083 #define key_catab CUR Strings[56] 34084 #define key_clear CUR Strings[57] 34085 #define key_ctab CUR Strings[58] 34086 #define key_dc CUR Strings[59] 34087 #define key_dl CUR Strings[60] 34088 #define key_down CUR Strings[61] 34089 #define key_eic CUR Strings[62] 34090 #define key_eol CUR Strings[63] 34091 #define key_eos CUR Strings[64] 34092 #define key_f0 CUR Strings[65] 34093 #define key_f1 CUR Strings[66] 34094 #define key_f10 CUR Strings[67] 34095 #define key_f2 CUR Strings[68] 34096 #define key_f3 CUR Strings[69] 34097 #define key_f4 CUR Strings[70] 34098 #define key_f5 CUR Strings[71] 34099 #define key_f6 CUR Strings[72] 34100 #define key_f7 CUR Strings[73] 34101 #define key_f8 CUR Strings[74] 34102 #define key_f9 CUR Strings[75] 34103 #define key_home CUR Strings[76] 34104 #define key_ic CUR Strings[77] 34105 #define key_il CUR Strings[78] 34106 #define key_left CUR Strings[79] 34107 #define key_ll CUR Strings[80] 34108 #define key_npage CUR Strings[81] 34109 #define key_ppage CUR Strings[82] 34110 #define key_right CUR Strings[83] 34111 #define key_sf CUR Strings[84] 34112 #define key_sr CUR Strings[85] 34113 #define key_stab CUR Strings[86] 34114 #define key_up CUR Strings[87] 34115 #define keypad_local CUR Strings[88] 34116 #define keypad_xmit CUR Strings[89] 34117 #define lab_f0 CUR Strings[90] 34118 #define lab_f1 CUR Strings[91] 34119 #define lab_f10 CUR Strings[92] 34120 #define lab_f2 CUR Strings[93] 34121 #define lab_f3 CUR Strings[94] 34122 #define lab_f4 CUR Strings[95] 34123 #define lab_f5 CUR Strings[96] 34124 #define lab_f6 CUR Strings[97] 34125 #define lab_f7 CUR Strings[98] 34126 #define lab_f8 CUR Strings[99] 34127 #define lab_f9 CUR Strings[100] 34128 #define meta_off CUR Strings[101] 34129 #define meta_on CUR Strings[102] 34130 #define newline CUR Strings[103] 34131 #define pad_char CUR Strings[104] 34132 #define parm_dch CUR Strings[105] 34133 #define parm_delete_line CUR Strings[106] 34134 #define parm_down_cursor CUR Strings[107] 34135 #define parm_ich CUR Strings[108] 34136 #define parm_index CUR Strings[109] 34137 #define parm_insert_line CUR Strings[110] 34138 #define parm_left_cursor CUR Strings[111] 34139 #define parm_right_cursor CUR Strings[112] 34140 #define parm_rindex CUR Strings[113] 34141 #define parm_up_cursor CUR Strings[114] 34142 #define pkey_key CUR Strings[115] 34143 #define pkey_local CUR Strings[116] 34144 #define pkey_xmit CUR Strings[117] 34145 #define print_screen CUR Strings[118] 34146 #define prtr_off CUR Strings[119] 34147 #define prtr_on CUR Strings[120] 34148 #define repeat_char CUR Strings[121] 34149 #define reset_1string CUR Strings[122] 34150 #define reset_2string CUR Strings[123] 34151 #define reset_3string CUR Strings[124] 34152 #define reset_file CUR Strings[125] 34153 #define restore_cursor CUR Strings[126] 34154 #define row_address CUR Strings[127] 34155 #define save_cursor CUR Strings[128] 34156 #define scroll_forward CUR Strings[129] 34157 #define scroll_reverse CUR Strings[130] 34158 #define set_attributes CUR Strings[131] 34159 #define set_tab CUR Strings[132] 34160 #define set_window CUR Strings[133] 34161 #define tab CUR Strings[134] 34162 #define to_status_line CUR Strings[135] 34163 #define underline_char CUR Strings[136] 34164 #define up_half_line CUR Strings[137] 34165 #define init_prog CUR Strings[138] 34166 #define key_a1 CUR Strings[139] 34167 #define key_a3 CUR Strings[140] 34168 #define key_b2 CUR Strings[141] 34169 #define key_c1 CUR Strings[142] 34170 #define key_c3 CUR Strings[143] 34171 #define prtr_non CUR Strings[144] 34172 #define char_padding CUR Strings[145] 34173 #define acs_chars CUR Strings[146] 34174 #define plab_norm CUR Strings[147] 34175 #define key_btab CUR Strings[148] 34176 #define enter_xon_mode CUR Strings[149] 34177 #define exit_xon_mode CUR Strings[150] 34178 #define enter_am_mode CUR Strings[151] 34179 #define exit_am_mode CUR Strings[152] 34180 #define xon_character CUR Strings[153] 34181 #define xoff_character CUR Strings[154] 34182 #define ena_acs CUR Strings[155] 34183 #define label_on CUR Strings[156] 34184 #define label_off CUR Strings[157] 34185 #define key_beg CUR Strings[158] 34186 #define key_cancel CUR Strings[159] 34187 #define key_close CUR Strings[160] 34188 #define key_command CUR Strings[161] 34189 #define key_copy CUR Strings[162] 34190 #define key_create CUR Strings[163] 34191 #define key_end CUR Strings[164] 34192 #define key_enter CUR Strings[165] 34193 #define key_exit CUR Strings[166] 34194 #define key_find CUR Strings[167] 34195 #define key_help CUR Strings[168] 34196 #define key_mark CUR Strings[169] 34197 #define key_message CUR Strings[170] 34198 #define key_move CUR Strings[171] 34199 #define key_next CUR Strings[172] 34200 #define key_open CUR Strings[173] 34201 #define key_options CUR Strings[174] 34202 #define key_previous CUR Strings[175] 34203 #define key_print CUR Strings[176] 34204 #define key_redo CUR Strings[177] 34205 #define key_reference CUR Strings[178] 34206 #define key_refresh CUR Strings[179] 34207 #define key_replace CUR Strings[180] 34208 #define key_restart CUR Strings[181] 34209 #define key_resume CUR Strings[182] 34210 #define key_save CUR Strings[183] 34211 #define key_suspend CUR Strings[184] 34212 #define key_undo CUR Strings[185] 34213 #define key_sbeg CUR Strings[186] 34214 #define key_scancel CUR Strings[187] 34215 #define key_scommand CUR Strings[188] 34216 #define key_scopy CUR Strings[189] 34217 #define key_screate CUR Strings[190] 34218 #define key_sdc CUR Strings[191] 34219 #define key_sdl CUR Strings[192] 34220 #define key_select CUR Strings[193] 34221 #define key_send CUR Strings[194] 34222 #define key_seol CUR Strings[195] 34223 #define key_sexit CUR Strings[196] 34224 #define key_sfind CUR Strings[197] 34225 #define key_shelp CUR Strings[198] 34226 #define key_shome CUR Strings[199] 34227 #define key_sic CUR Strings[200] 34228 #define key_sleft CUR Strings[201] 34229 #define key_smessage CUR Strings[202] 34230 #define key_smove CUR Strings[203] 34231 #define key_snext CUR Strings[204] 34232 #define key_soptions CUR Strings[205] 34233 #define key_sprevious CUR Strings[206] 34234 #define key_sprint CUR Strings[207] 34235 #define key_sredo CUR Strings[208] 34236 #define key_sreplace CUR Strings[209] 34237 #define key_sright CUR Strings[210] 34238 #define key_srsume CUR Strings[211] 34239 #define key_ssave CUR Strings[212] 34240 #define key_ssuspend CUR Strings[213] 34241 #define key_sundo CUR Strings[214] 34242 #define req_for_input CUR Strings[215] 34243 #define key_f11 CUR Strings[216] 34244 #define key_f12 CUR Strings[217] 34245 #define key_f13 CUR Strings[218] 34246 #define key_f14 CUR Strings[219] 34247 #define key_f15 CUR Strings[220] 34248 #define key_f16 CUR Strings[221] 34249 #define key_f17 CUR Strings[222] 34250 #define key_f18 CUR Strings[223] 34251 #define key_f19 CUR Strings[224] 34252 #define key_f20 CUR Strings[225] 34253 #define key_f21 CUR Strings[226] 34254 #define key_f22 CUR Strings[227] 34255 #define key_f23 CUR Strings[228] 34256 #define key_f24 CUR Strings[229] 34257 #define key_f25 CUR Strings[230] 34258 #define key_f26 CUR Strings[231] 34259 #define key_f27 CUR Strings[232] 34260 #define key_f28 CUR Strings[233] 34261 #define key_f29 CUR Strings[234] 34262 #define key_f30 CUR Strings[235] 34263 #define key_f31 CUR Strings[236] 34264 #define key_f32 CUR Strings[237] 34265 #define key_f33 CUR Strings[238] 34266 #define key_f34 CUR Strings[239] 34267 #define key_f35 CUR Strings[240] 34268 #define key_f36 CUR Strings[241] 34269 #define key_f37 CUR Strings[242] 34270 #define key_f38 CUR Strings[243] 34271 #define key_f39 CUR Strings[244] 34272 #define key_f40 CUR Strings[245] 34273 #define key_f41 CUR Strings[246] 34274 #define key_f42 CUR Strings[247] 34275 #define key_f43 CUR Strings[248] 34276 #define key_f44 CUR Strings[249] 34277 #define key_f45 CUR Strings[250] 34278 #define key_f46 CUR Strings[251] 34279 #define key_f47 CUR Strings[252] 34280 #define key_f48 CUR Strings[253] 34281 #define key_f49 CUR Strings[254] 34282 #define key_f50 CUR Strings[255] 34283 #define key_f51 CUR Strings[256] 34284 #define key_f52 CUR Strings[257] 34285 #define key_f53 CUR Strings[258] 34286 #define key_f54 CUR Strings[259] 34287 #define key_f55 CUR Strings[260] 34288 #define key_f56 CUR Strings[261] 34289 #define key_f57 CUR Strings[262] 34290 #define key_f58 CUR Strings[263] 34291 #define key_f59 CUR Strings[264] 34292 #define key_f60 CUR Strings[265] 34293 #define key_f61 CUR Strings[266] 34294 #define key_f62 CUR Strings[267] 34295 #define key_f63 CUR Strings[268] 34296 #define clr_bol CUR Strings[269] 34297 #define clear_margins CUR Strings[270] 34298 #define set_left_margin CUR Strings[271] 34299 #define set_right_margin CUR Strings[272] 34300 #define label_format CUR Strings[273] 34301 #define set_clock CUR Strings[274] 34302 #define display_clock CUR Strings[275] 34303 #define remove_clock CUR Strings[276] 34304 #define create_window CUR Strings[277] 34305 #define goto_window CUR Strings[278] 34306 #define hangup CUR Strings[279] 34307 #define dial_phone CUR Strings[280] 34308 #define quick_dial CUR Strings[281] 34309 #define tone CUR Strings[282] 34310 #define pulse CUR Strings[283] 34311 #define flash_hook CUR Strings[284] 34312 #define fixed_pause CUR Strings[285] 34313 #define wait_tone CUR Strings[286] 34314 #define user0 CUR Strings[287] 34315 #define user1 CUR Strings[288] 34316 #define user2 CUR Strings[289] 34317 #define user3 CUR Strings[290] 34318 #define user4 CUR Strings[291] 34319 #define user5 CUR Strings[292] 34320 #define user6 CUR Strings[293] 34321 #define user7 CUR Strings[294] 34322 #define user8 CUR Strings[295] 34323 #define user9 CUR Strings[296] 34324 #define orig_pair CUR Strings[297] 34325 #define orig_colors CUR Strings[298] 34326 #define initialize_color CUR Strings[299] 34327 #define initialize_pair CUR Strings[300] 34328 #define set_color_pair CUR Strings[301] 34329 #define set_foreground CUR Strings[302] 34330 #define set_background CUR Strings[303] 34331 #define change_char_pitch CUR Strings[304] 34332 #define change_line_pitch CUR Strings[305] 34333 #define change_res_horz CUR Strings[306] 34334 #define change_res_vert CUR Strings[307] 34335 #define define_char CUR Strings[308] 34336 #define enter_doublewide_mode CUR Strings[309] 34337 #define enter_draft_quality CUR Strings[310] 34338 #define enter_italics_mode CUR Strings[311] 34339 #define enter_leftward_mode CUR Strings[312] 34340 #define enter_micro_mode CUR Strings[313] 34341 #define enter_near_letter_quality CUR Strings[314] 34342 #define enter_normal_quality CUR Strings[315] 34343 #define enter_shadow_mode CUR Strings[316] 34344 #define enter_subscript_mode CUR Strings[317] 34345 #define enter_superscript_mode CUR Strings[318] 34346 #define enter_upward_mode CUR Strings[319] 34347 #define exit_doublewide_mode CUR Strings[320] 34348 #define exit_italics_mode CUR Strings[321] 34349 #define exit_leftward_mode CUR Strings[322] 34350 #define exit_micro_mode CUR Strings[323] 34351 #define exit_shadow_mode CUR Strings[324] 34352 #define exit_subscript_mode CUR Strings[325] 34353 #define exit_superscript_mode CUR Strings[326] 34354 #define exit_upward_mode CUR Strings[327] 34355 #define micro_column_address CUR Strings[328] 34356 #define micro_down CUR Strings[329] 34357 #define micro_left CUR Strings[330] 34358 #define micro_right CUR Strings[331] 34359 #define micro_row_address CUR Strings[332] 34360 #define micro_up CUR Strings[333] 34361 #define order_of_pins CUR Strings[334] 34362 #define parm_down_micro CUR Strings[335] 34363 #define parm_left_micro CUR Strings[336] 34364 #define parm_right_micro CUR Strings[337] 34365 #define parm_up_micro CUR Strings[338] 34366 #define select_char_set CUR Strings[339] 34367 #define set_bottom_margin CUR Strings[340] 34368 #define set_bottom_margin_parm CUR Strings[341] 34369 #define set_left_margin_parm CUR Strings[342] 34370 #define set_right_margin_parm CUR Strings[343] 34371 #define set_top_margin CUR Strings[344] 34372 #define set_top_margin_parm CUR Strings[345] 34373 #define start_bit_image CUR Strings[346] 34374 #define start_char_set_def CUR Strings[347] 34375 #define stop_bit_image CUR Strings[348] 34376 #define stop_char_set_def CUR Strings[349] 34377 #define subscript_characters CUR Strings[350] 34378 #define superscript_characters CUR Strings[351] 34379 #define these_cause_cr CUR Strings[352] 34380 #define zero_motion CUR Strings[353] 34381 #define char_set_names CUR Strings[354] 34382 #define key_mouse CUR Strings[355] 34383 #define mouse_info CUR Strings[356] 34384 #define req_mouse_pos CUR Strings[357] 34385 #define get_mouse CUR Strings[358] 34386 #define set_a_foreground CUR Strings[359] 34387 #define set_a_background CUR Strings[360] 34388 #define pkey_plab CUR Strings[361] 34389 #define device_type CUR Strings[362] 34390 #define code_set_init CUR Strings[363] 34391 #define set0_des_seq CUR Strings[364] 34392 #define set1_des_seq CUR Strings[365] 34393 #define set2_des_seq CUR Strings[366] 34394 #define set3_des_seq CUR Strings[367] 34395 #define set_lr_margin CUR Strings[368] 34396 #define set_tb_margin CUR Strings[369] 34397 #define bit_image_repeat CUR Strings[370] 34398 #define bit_image_newline CUR Strings[371] 34399 #define bit_image_carriage_return CUR Strings[372] 34400 #define color_names CUR Strings[373] 34401 #define define_bit_image_region CUR Strings[374] 34402 #define end_bit_image_region CUR Strings[375] 34403 #define set_color_band CUR Strings[376] 34404 #define set_page_length CUR Strings[377] 34405 #define display_pc_char CUR Strings[378] 34406 #define enter_pc_charset_mode CUR Strings[379] 34407 #define exit_pc_charset_mode CUR Strings[380] 34408 #define enter_scancode_mode CUR Strings[381] 34409 #define exit_scancode_mode CUR Strings[382] 34410 #define pc_term_options CUR Strings[383] 34411 #define scancode_escape CUR Strings[384] 34412 #define alt_scancode_esc CUR Strings[385] 34413 #define enter_horizontal_hl_mode CUR Strings[386] 34414 #define enter_left_hl_mode CUR Strings[387] 34415 #define enter_low_hl_mode CUR Strings[388] 34416 #define enter_right_hl_mode CUR Strings[389] 34417 #define enter_top_hl_mode CUR Strings[390] 34418 #define enter_vertical_hl_mode CUR Strings[391] 34419 #define set_a_attributes CUR Strings[392] 34420 #define set_pglen_inch CUR Strings[393] 34421 #define BOOLWRITE 37 34422 #define NUMWRITE 33 34423 #define STRWRITE 394 34424 #define beehive_glitch no_esc_ctlc 34425 #define teleray_glitch dest_tabs_magic_smso 34426 #define micro_char_size micro_col_size 34427 #define termcap_init2 CUR Strings[394] 34428 #define termcap_reset CUR Strings[395] 34429 #define magic_cookie_glitch_ul CUR Numbers[33] 34430 #define backspaces_with_bs CUR Booleans[37] 34431 #define crt_no_scrolling CUR Booleans[38] 34432 #define no_correctly_working_cr CUR Booleans[39] 34433 #define carriage_return_delay CUR Numbers[34] 34434 #define new_line_delay CUR Numbers[35] 34435 #define linefeed_if_not_lf CUR Strings[396] 34436 #define backspace_if_not_bs CUR Strings[397] 34437 #define gnu_has_meta_key CUR Booleans[40] 34438 #define linefeed_is_newline CUR Booleans[41] 34439 #define backspace_delay CUR Numbers[36] 34440 #define horizontal_tab_delay CUR Numbers[37] 34441 #define number_of_function_keys CUR Numbers[38] 34442 #define other_non_function_keys CUR Strings[398] 34443 #define arrow_key_map CUR Strings[399] 34444 #define has_hardware_tabs CUR Booleans[42] 34445 #define return_does_clr_eol CUR Booleans[43] 34446 #define acs_ulcorner CUR Strings[400] 34447 #define acs_llcorner CUR Strings[401] 34448 #define acs_urcorner CUR Strings[402] 34449 #define acs_lrcorner CUR Strings[403] 34450 #define acs_ltee CUR Strings[404] 34451 #define acs_rtee CUR Strings[405] 34452 #define acs_btee CUR Strings[406] 34453 #define acs_ttee CUR Strings[407] 34454 #define acs_hline CUR Strings[408] 34455 #define acs_vline CUR Strings[409] 34456 #define acs_plus CUR Strings[410] 34457 #define memory_lock CUR Strings[411] 34458 #define memory_unlock CUR Strings[412] 34459 #define box_chars_1 CUR Strings[413] 34460 #define BOOLCOUNT 44 34461 #define NUMCOUNT 39 34462 #define STRCOUNT 414 34463 #define acs_chars_index 146 34464 #define cur_term NCURSES_PUBLIC_VAR(cur_term()) 34465 #define boolnames NCURSES_PUBLIC_VAR(boolnames()) 34466 #define boolcodes NCURSES_PUBLIC_VAR(boolcodes()) 34467 #define boolfnames NCURSES_PUBLIC_VAR(boolfnames()) 34468 #define numnames NCURSES_PUBLIC_VAR(numnames()) 34469 #define numcodes NCURSES_PUBLIC_VAR(numcodes()) 34470 #define numfnames NCURSES_PUBLIC_VAR(numfnames()) 34471 #define strnames NCURSES_PUBLIC_VAR(strnames()) 34472 #define strcodes NCURSES_PUBLIC_VAR(strcodes()) 34473 #define strfnames NCURSES_PUBLIC_VAR(strfnames()) 34474 34475 typedef struct termtype { 34476 char *term_names; 34477 char *str_table; 34478 char *Booleans; 34479 short *Numbers; 34480 char **Strings; 34481 char *ext_str_table; 34482 char **ext_Names; 34483 unsigned short num_Booleans; 34484 unsigned short num_Numbers; 34485 unsigned short num_Strings; 34486 unsigned short ext_Booleans; 34487 unsigned short ext_Numbers; 34488 unsigned short ext_Strings; 34489 } TERMTYPE; 34490 typedef struct term { 34491 TERMTYPE type; 34492 short Filedes; 34493 struct termios Ottyb; 34494 struct termios Nttyb; 34495 int _baudrate; 34496 char *_termname; 34497 } TERMINAL; 34498 extern TERMINAL *cur_term; 34499 extern int del_curterm(TERMINAL *); 34500 extern int putp(const char *); 34501 extern int restartterm(char *, int, int *); 34502 extern TERMINAL *set_curterm(TERMINAL *); 34503 extern int setupterm(char *, int, int *); 34504 extern int tgetent(char *, const char *); 34505 extern int tgetflag(char *); 34506 extern int tgetnum(char *); 34507 extern char *tgetstr(char *, char **); 34508 extern char *tgoto(const char *, int, int); 34509 extern int tigetflag(char *); 34510 extern int tigetnum(char *); 34511 extern char *tigetstr(char *); 34512 extern char *tparm(char *, ...); 34513 extern int tputs(const char *, int, int (*)(int)); 34514 extern char ttytype[]; 34515 __________________________________________________________ 34516 34517 15.9.4. ncursesw/unctrl.h 34518 34519 #define NCURSES_UNCTRL_H_incl 1 34520 #define NCURSES_VERSION "5.9" 34521 __________________________________________________________ 34522 34523 15.10. Interface Definitions for libncursesw 34524 34525 The interfaces defined on the following pages are included in 34526 libncursesw and are defined by this specification. Unless 34527 otherwise noted, these interfaces shall be included in the 34528 source standard. 34529 34530 Other interfaces listed in Section 15.8 shall behave as 34531 described in the referenced base document. 34532 __________________________________________________________ 34533 34534 15.11. Interfaces for libutil 34535 34536 Table 15-11 defines the library name and shared object name for 34537 the libutil library 34538 34539 Table 15-11. libutil Definition 34540 Library: libutil 34541 SONAME: libutil.so.1 34542 34543 The behavior of the interfaces in this library is specified by 34544 the following specifications: 34545 34546 [LSB] This Specification 34547 __________________________________________________________ 34548 34549 15.11.1. Utility Functions 34550 __________________________________________________________ 34551 34552 15.11.1.1. Interfaces for Utility Functions 34553 34554 An LSB conforming implementation shall provide the generic 34555 functions for Utility Functions specified in Table 15-12, with 34556 the full mandatory functionality as described in the referenced 34557 underlying specification. 34558 34559 Table 15-12. libutil - Utility Functions Function Interfaces 34560 forkpty [LSB] login [LSB] login_tty [LSB] logout [LSB] 34561 logwtmp [LSB] openpty [LSB] 34562 __________________________________________________________ 34563 34564 15.12. Data Definitions for libutil 34565 34566 This section defines global identifiers and their values that 34567 are associated with interfaces contained in libutil. These 34568 definitions are organized into groups that correspond to system 34569 headers. This convention is used as a convenience for the 34570 reader, and does not imply the existence of these headers, or 34571 their content. Where an interface is defined as requiring a 34572 particular system header file all of the data definitions for 34573 that system header file presented here shall be in effect. 34574 34575 This section gives data definitions to promote binary 34576 application portability, not to repeat source interface 34577 definitions available elsewhere. System providers and 34578 application developers should use this ABI to supplement - not 34579 to replace - source interface definition specifications. 34580 34581 This specification uses the ISO C (1999) C Language as the 34582 reference programming language, and data definitions are 34583 specified in ISO C format. The C language is used here as a 34584 convenient notation. Using a C language description of these 34585 data objects does not preclude their use by other programming 34586 languages. 34587 __________________________________________________________ 34588 34589 15.12.1. pty.h 34590 34591 extern int forkpty(int *__amaster, char *__name, 34592 const struct termios *__termp, 34593 const struct winsize *__winp); 34594 extern int openpty(int *__amaster, int *__aslave, char *__name, 34595 const struct termios *__termp, 34596 const struct winsize *__winp); 34597 __________________________________________________________ 34598 34599 15.13. Interface Definitions for libutil 34600 34601 Table of Contents 34602 forkpty -- Create a new process attached to an available 34603 pseudo-terminal 34604 34605 login -- login utility function 34606 login_tty -- Prepare a terminal for login 34607 logout -- logout utility function 34608 logwtmp -- append an entry to the wtmp file 34609 openpty -- find and open an available pseudo-terminal 34610 34611 The interfaces defined on the following pages are included in 34612 libutil and are defined by this specification. Unless otherwise 34613 noted, these interfaces shall be included in the source 34614 standard. 34615 34616 Other interfaces listed in Section 15.11 shall behave as 34617 described in the referenced base document. 34618 34619 forkpty 34620 34621 Name 34622 34623 forkpty -- Create a new process attached to an available 34624 pseudo-terminal 34625 34626 Synopsis 34627 34628 #include 34629 34630 int forkpty(int * amaster, char * name, const struct termios * 34631 termp, const struct winsize * winp); 34632 34633 Description 34634 34635 The forkpty() function shall find and open a pseudo-terminal 34636 device pair in the same manner as the openpty() function. If a 34637 pseudo-terminal is available, forkpty() shall create a new 34638 process in the same manner as the fork() function, and prepares 34639 the new process for login in the same manner as login_tty(). 34640 34641 If termp is not null, it shall refer to a termios structure 34642 that shall be used to initialize the characteristics of the 34643 slave device. If winp is not null, it shall refer to a winsize 34644 structure used to initialize the window size of the slave 34645 device. 34646 34647 Return Value 34648 34649 On success, the parent process shall return the process id of 34650 the child, and the child shall return 0. On error, no new 34651 process shall be created, -1 shall be returned, and errno shall 34652 be set appropriately. On success, the parent process shall 34653 receive the file descriptor of the master side of the 34654 pseudo-terminal in the location referenced by amaster, and, if 34655 name is not NULL, the filename of the slave device in name. 34656 34657 Errors 34658 34659 EAGAIN 34660 34661 Unable to create a new process. 34662 ENOENT 34663 34664 There are no available pseudo-terminals. 34665 ENOMEM 34666 34667 Insufficient memory was available. 34668 34669 login 34670 34671 Name 34672 34673 login -- login utility function 34674 34675 Synopsis 34676 34677 #include 34678 34679 void login (struct utmp * ut ); 34680 34681 Description 34682 34683 The login() function shall update the user accounting 34684 databases. The ut parameter shall reference a utmp structure 34685 for all fields except the following: 34686 34687 1. The ut_type field shall be set to USER_PROCESS. 34688 2. The ut_pid field shall be set to the process identifier for 34689 the current process. 34690 3. The ut_line field shall be set to the name of the 34691 controlling terminal device. The name shall be found by 34692 examining the device associated with the standard input, 34693 output and error streams in sequence, until one associated 34694 with a terminal device is found. If none of these streams 34695 refers to a terminal device, the ut_line field shall be set 34696 to "???". If the terminal device is in the /dev directory 34697 hierarchy, the ut_line field shall not contain the leading 34698 "/dev/", otherwise it shall be set to the final component 34699 of the pathname of the device. If the user accounting 34700 database imposes a limit on the size of the ut_line field, 34701 it shall truncate the name, but any such limit shall not be 34702 smaller than UT_LINESIZE (including a terminating null 34703 character). 34704 34705 Return Value 34706 34707 None 34708 34709 Errors 34710 34711 None 34712 34713 login_tty 34714 34715 Name 34716 34717 login_tty -- Prepare a terminal for login 34718 34719 Synopsis 34720 34721 #include 34722 34723 int login_tty (int fdr); 34724 34725 Description 34726 34727 The login_tty() function shall prepare the terminal device 34728 referenced by the file descriptor fdr. This function shall 34729 create a new session, make the terminal the controlling 34730 terminal for the current process, and set the standard input, 34731 output, and error streams of the current process to the 34732 terminal. If fdr is not the standard input, output or error 34733 stream, then login_tty() shall close fdr. 34734 34735 Return Value 34736 34737 On success, login_tty() shall return zero; otherwise -1 is 34738 returned, and errno shall be set appropriately. 34739 34740 Errors 34741 34742 ENOTTY 34743 34744 fdr does not refer to a terminal device. 34745 34746 logout 34747 34748 Name 34749 34750 logout -- logout utility function 34751 34752 Synopsis 34753 34754 #include 34755 34756 int logout (const char * line ); 34757 34758 Description 34759 34760 Given the device line, the logout() function shall search the 34761 user accounting database which is read by getutent() for an 34762 entry with the corresponding line, and with the type of 34763 USER_PROCESS. If a corresponding entry is located, it shall be 34764 updated as follows: 34765 34766 1. The ut_name field shall be set to zeroes (UT_NAMESIZE NUL 34767 bytes). 34768 2. The ut_host field shall be set to zeroes (UT_HOSTSIZE NUL 34769 bytes). 34770 3. The ut_tv shall be set to the current time of day. 34771 4. The ut_type field shall be set to DEAD_PROCESS. 34772 34773 Return Value 34774 34775 On success, the logout() function shall return non-zero. Zero 34776 is returned if there was no entry to remove, or if the utmp 34777 file could not be opened or updated. 34778 34779 logwtmp 34780 34781 Name 34782 34783 logwtmp -- append an entry to the wtmp file 34784 34785 Synopsis 34786 34787 #include 34788 34789 void logwtmp (const char * line , const char * name , const 34790 char * host ); 34791 34792 Description 34793 34794 If the process has permission to update the user accounting 34795 databases, the logwtmp() function shall append a record to the 34796 user accounting database that records all logins and logouts. 34797 The record to be appended shall be constructed as follows: 34798 34799 1. The ut_line field shall be initialized from line. If the 34800 user accounting database imposes a limit on the size of the 34801 ut_line field, it shall truncate the value, but any such 34802 limit shall not be smaller than UT_LINESIZE (including a 34803 terminating null character). 34804 2. The ut_name field shall be initialized from name. If the 34805 user accounting database imposes a limit on the size of the 34806 ut_name field, it shall truncate the value, but any such 34807 limit shall not be smaller than UT_NAMESIZE (including a 34808 terminating null character). 34809 3. The ut_host field shall be initialized from host. If the 34810 user accounting database imposes a limit on the size of the 34811 ut_host field, it shall truncate the value, but any such 34812 limit shall not be smaller than UT_HOSTSIZE (including a 34813 terminating null character). 34814 4. If the name parameter does not refer to an empty string 34815 (i.e. ""), the ut_type field shall be set to USER_PROCESS; 34816 otherwise the ut_type field shall be set to DEAD_PROCESS. 34817 5. The ut_id field shall be set to the process identifier for 34818 the current process. 34819 6. The ut_tv field shall be set to the current time of day. 34820 34821 Note: If a process does not have write access to the the 34822 user accounting database, the logwtmp() function will not 34823 update it. Since the function does not return any value, an 34824 application has no way of knowing whether it succeeded or 34825 failed. 34826 34827 Return Value 34828 34829 None. 34830 34831 openpty 34832 34833 Name 34834 34835 openpty -- find and open an available pseudo-terminal 34836 34837 Synopsis 34838 34839 #include 34840 34841 int openpty(int *amaster, int *aslave, char *name, const struct 34842 termios *termp, const struct winsize *winp); 34843 34844 Description 34845 34846 The openpty() function shall find an available pseudo-terminal 34847 and return file descriptors for the master and slave devices in 34848 the locations referenced by amaster and aslave respectively. If 34849 name is not NULL, the filename of the slave shall be placed in 34850 the user supplied buffer referenced by name. If termp is not 34851 NULL, it shall point to a termios structure used to initialize 34852 the terminal parameters of the slave pseudo-terminal device. If 34853 winp is not NULL, it shall point to a winsize structure used to 34854 initialize the window size parameters of the slave 34855 pseudo-terminal device. 34856 34857 Return Value 34858 34859 On success, zero is returned. On error, -1 is returned, and 34860 errno is set appropriately. 34861 34862 Errors 34863 34864 ENOENT 34865 34866 There are no available pseudo-terminals. 34867 34868 V. C++ Libraries 34869 34870 Table of Contents 34871 16. Libraries 34872 34873 16.1. Interfaces for libstdcxx 34874 34875 16.1.1. C++ Runtime Support 34876 16.1.2. C++ type descriptors for built-in types 34877 16.1.3. C++ _Rb_tree 34878 16.1.4. Class type_info 34879 16.1.5. Class __cxxabiv1::__enum_type_info 34880 16.1.6. Class __cxxabiv1::__array_type_info 34881 16.1.7. Class __cxxabiv1::__class_type_info 34882 16.1.8. Class __cxxabiv1::__pbase_type_info 34883 16.1.9. Class __cxxabiv1::__pointer_type_info 34884 16.1.10. Class __cxxabiv1::__function_type_info 34885 16.1.11. Class __cxxabiv1::__si_class_type_info 34886 16.1.12. Class __cxxabiv1::__vmi_class_type_info 34887 16.1.13. Class __cxxabiv1::__fundamental_type_info 34888 16.1.14. Class 34889 __cxxabiv1::__pointer_to_member_type_info 34890 34891 16.1.15. Class __gnu_cxx::stdio_filebuf > 34893 34894 16.1.16. Class __gnu_cxx::stdio_filebuf > 34896 34897 16.1.17. Class __gnu_cxx::__pool_alloc_base 34898 16.1.18. Class __gnu_cxx::stdio_sync_filebuf > 34900 34901 16.1.19. Class 34902 __gnu_cxx::stdio_sync_filebuf > 34904 34905 16.1.20. Class exception 34906 16.1.21. Class bad_typeid 34907 16.1.22. Class logic_error 34908 16.1.23. Class range_error 34909 16.1.24. Class domain_error 34910 16.1.25. Class length_error 34911 16.1.26. Class out_of_range 34912 16.1.27. Class bad_exception 34913 16.1.28. Class runtime_error 34914 16.1.29. Class overflow_error 34915 16.1.30. Class underflow_error 34916 16.1.31. Class invalid_argument 34917 16.1.32. Class bad_cast 34918 16.1.33. Class bad_alloc 34919 16.1.34. struct __numeric_limits_base 34920 16.1.35. struct numeric_limits 34921 16.1.36. struct numeric_limits 34922 16.1.37. struct numeric_limits 34923 16.1.38. struct numeric_limits 34924 16.1.39. struct numeric_limits 34925 16.1.40. struct numeric_limits 34926 16.1.41. struct numeric_limits 34927 16.1.42. struct numeric_limits 34928 16.1.43. struct numeric_limits 34929 16.1.44. struct numeric_limits 34930 16.1.45. struct numeric_limits 34931 16.1.46. struct numeric_limits 34932 16.1.47. struct numeric_limits 34933 16.1.48. struct numeric_limits 34934 16.1.49. struct numeric_limits 34935 16.1.50. struct numeric_limits 34936 16.1.51. Class ctype_base 34937 16.1.52. Class __ctype_abstract_base 34938 16.1.53. Class __ctype_abstract_base 34939 16.1.54. Class ctype 34940 16.1.55. Class ctype 34941 16.1.56. Class ctype_byname 34942 16.1.57. Class ctype_byname 34943 16.1.58. Class basic_string, 34944 allocator > 34945 34946 16.1.59. Class basic_string, allocator > 34948 34949 16.1.60. Class basic_stringstream, allocator > 34951 34952 16.1.61. Class basic_stringstream, allocator > 34954 34955 16.1.62. Class basic_istringstream, allocator > 34957 34958 16.1.63. Class basic_istringstream, allocator > 34960 34961 16.1.64. Class basic_ostringstream, allocator > 34963 34964 16.1.65. Class basic_ostringstream, allocator > 34966 34967 16.1.66. Class basic_stringbuf, allocator > 34969 34970 16.1.67. Class basic_stringbuf, allocator > 34972 34973 16.1.68. Class basic_iostream > 34975 34976 16.1.69. Class basic_iostream > 34978 34979 16.1.70. Class basic_istream 34980 > 34981 34982 16.1.71. Class basic_istream > 34984 34985 16.1.72. Class istreambuf_iterator > 34987 34988 16.1.73. Class istreambuf_iterator > 34990 34991 16.1.74. Class basic_ostream 34992 > 34993 34994 16.1.75. Class basic_ostream > 34996 34997 16.1.76. Class basic_fstream 34998 > 34999 35000 16.1.77. Class basic_fstream > 35002 35003 16.1.78. Class basic_ifstream > 35005 35006 16.1.79. Class basic_ifstream > 35008 35009 16.1.80. Class basic_ofstream > 35011 35012 16.1.81. Class basic_ofstream > 35014 35015 16.1.82. Class basic_streambuf > 35017 35018 16.1.83. Class basic_streambuf > 35020 35021 16.1.84. Class basic_filebuf 35022 > 35023 35024 16.1.85. Class basic_filebuf > 35026 35027 16.1.86. Class ios_base 35028 16.1.87. Class basic_ios > 35029 16.1.88. Class basic_ios > 35031 35032 16.1.89. Class ios_base::failure 35033 16.1.90. Class __timepunct 35034 16.1.91. Class __timepunct 35035 16.1.92. Class messages_base 35036 16.1.93. Class messages 35037 16.1.94. Class messages 35038 16.1.95. Class messages_byname 35039 16.1.96. Class messages_byname 35040 16.1.97. Class numpunct 35041 16.1.98. Class numpunct 35042 16.1.99. Class numpunct_byname 35043 16.1.100. Class numpunct_byname 35044 16.1.101. Class __codecvt_abstract_base 35046 35047 16.1.102. Class __codecvt_abstract_base 35049 35050 16.1.103. Class codecvt_base 35051 16.1.104. Class codecvt 35052 16.1.105. Class codecvt 35053 16.1.106. Class codecvt_byname 35055 35056 16.1.107. Class codecvt_byname 35058 35059 16.1.108. Class collate 35060 16.1.109. Class collate 35061 16.1.110. Class collate_byname 35062 16.1.111. Class collate_byname 35063 16.1.112. Class time_base 35064 16.1.113. Class time_get_byname 35066 > > 35067 35068 16.1.114. Class time_get_byname > > 35071 35072 16.1.115. Class time_put_byname 35074 > > 35075 35076 16.1.116. Class time_put_byname > > 35079 35080 16.1.117. Class time_get 35082 > > 35083 35084 16.1.118. Class time_get > > 35087 35088 16.1.119. Class time_put 35090 > > 35091 35092 16.1.120. Class time_put > > 35095 35096 16.1.121. Class moneypunct 35097 16.1.122. Class moneypunct 35098 16.1.123. Class moneypunct 35099 16.1.124. Class moneypunct 35100 16.1.125. Class moneypunct_byname 35101 16.1.126. Class moneypunct_byname 35102 16.1.127. Class moneypunct_byname 35103 16.1.128. Class moneypunct_byname 35104 16.1.129. Class money_base 35105 16.1.130. Class money_get 35107 > > 35108 35109 16.1.131. Class money_get > > 35112 35113 16.1.132. Class money_put 35115 > > 35116 35117 16.1.133. Class money_put > > 35120 35121 16.1.134. Class locale 35122 16.1.135. Class locale::facet 35123 16.1.136. facet functions 35124 16.1.137. Class __num_base 35125 16.1.138. Class num_get 35127 > > 35128 35129 16.1.139. Class num_get > > 35132 35133 16.1.140. Class num_put 35135 > > 35136 35137 16.1.141. Class num_put > > 35140 35141 16.1.142. Class __basic_file 35142 16.1.143. Class _List_node_base 35143 16.1.144. Class allocator 35144 16.1.145. Class allocator 35145 16.1.146. Class __gnu_cxx::__pool 35146 16.1.147. Class __gnu_cxx::__pool 35147 16.1.148. Class __gnu_cxx::free_list 35148 16.1.149. Class char_traits 35149 16.1.150. Class char_traits 35150 35151 16.2. Interface Definitions for libstdcxx 35152 __________________________________________________________ 35153 35154 Chapter 16. Libraries 35155 35156 An LSB-conforming implementation shall support some C++ 35157 libraries which provide interfaces for accessing the operating 35158 system, processor and other hardware in the system. 35159 __________________________________________________________ 35160 35161 16.1. Interfaces for libstdcxx 35162 35163 Table 16-1 defines the library name and shared object name for 35164 the libstdcxx library 35165 35166 Table 16-1. libstdcxx Definition 35167 Library: libstdcxx 35168 SONAME: libstdc++.so.6 35169 35170 Unless stated otherwise, all symbols are in the std:: 35171 namespace. 35172 35173 The behavior of the interfaces in this library is specified by 35174 the following specifications: 35175 35176 [CXXABI-1.86] Itanium(TM) C++ ABI 35177 [ISOCXX] ISO/IEC 14882: 2003 C++ Language 35178 [LSB] This Specification 35179 __________________________________________________________ 35180 35181 16.1.1. C++ Runtime Support 35182 __________________________________________________________ 35183 35184 16.1.1.1. Interfaces for C++ Runtime Support 35185 35186 An LSB conforming implementation shall provide the generic 35187 methods for C++ Runtime Support specified in Table 16-2, with 35188 the full mandatory functionality as described in the referenced 35189 underlying specification. 35190 35191 Table 16-2. libstdcxx - C++ Runtime Support Function Interfaces 35192 __gnu_cxx::__atomic_add(int volatile*, int)(GLIBCXX_3.4) 35193 [CXXABI-1.86] 35194 __gnu_cxx::__exchange_and_add(int volatile*, int)(GLIBCXX_3.4) 35195 [CXXABI-1.86] 35196 __gnu_cxx::__verbose_terminate_handler()(CXXABI_1.3) 35197 [CXXABI-1.86] 35198 unexpected()(GLIBCXX_3.4) [ISOCXX] 35199 set_terminate(void (*)())(GLIBCXX_3.4) [ISOCXX] 35200 set_unexpected(void (*)())(GLIBCXX_3.4) [ISOCXX] 35201 set_new_handler(void (*)())(GLIBCXX_3.4) [ISOCXX] 35202 __throw_bad_cast()(GLIBCXX_3.4) [ISOCXX] 35203 __throw_bad_alloc()(GLIBCXX_3.4) [ISOCXX] 35204 __throw_bad_typeid()(GLIBCXX_3.4) [ISOCXX] 35205 uncaught_exception()(GLIBCXX_3.4) [ISOCXX] 35206 __throw_ios_failure(char const*)(GLIBCXX_3.4) [ISOCXX] 35207 __throw_logic_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35208 __throw_range_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35209 __throw_domain_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35210 __throw_length_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35211 __throw_out_of_range(char const*)(GLIBCXX_3.4) [ISOCXX] 35212 __throw_bad_exception()(GLIBCXX_3.4) [ISOCXX] 35213 __throw_runtime_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35214 __throw_overflow_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35215 __throw_underflow_error(char const*)(GLIBCXX_3.4) [ISOCXX] 35216 __throw_invalid_argument(char const*)(GLIBCXX_3.4) [ISOCXX] 35217 terminate()(GLIBCXX_3.4) [ISOCXX] 35218 operator delete[](void*)(GLIBCXX_3.4) [ISOCXX] 35219 operator delete[](void*, nothrow_t const&)(GLIBCXX_3.4) 35220 [ISOCXX] 35221 operator delete(void*)(GLIBCXX_3.4) [ISOCXX] 35222 operator delete(void*, nothrow_t const&)(GLIBCXX_3.4) [ISOCXX] 35223 __cxa_allocate_exception(CXXABI_1.3) [CXXABI-1.86] 35224 __cxa_bad_cast(CXXABI_1.3) [CXXABI-1.86] 35225 __cxa_bad_typeid(CXXABI_1.3) [CXXABI-1.86] 35226 __cxa_begin_catch(CXXABI_1.3) [CXXABI-1.86] 35227 __cxa_call_unexpected(CXXABI_1.3) [CXXABI-1.86] 35228 __cxa_current_exception_type(CXXABI_1.3) [CXXABI-1.86] 35229 __cxa_demangle(CXXABI_1.3) [CXXABI-1.86] 35230 __cxa_end_catch(CXXABI_1.3) [CXXABI-1.86] 35231 __cxa_free_exception(CXXABI_1.3) [CXXABI-1.86] 35232 __cxa_get_exception_ptr(CXXABI_1.3.1) [CXXABI-1.86] 35233 __cxa_get_globals(CXXABI_1.3) [CXXABI-1.86] 35234 __cxa_get_globals_fast(CXXABI_1.3) [CXXABI-1.86] 35235 __cxa_guard_abort(CXXABI_1.3) [CXXABI-1.86] 35236 __cxa_guard_acquire(CXXABI_1.3) [CXXABI-1.86] 35237 __cxa_guard_release(CXXABI_1.3) [CXXABI-1.86] 35238 __cxa_pure_virtual(CXXABI_1.3) [CXXABI-1.86] 35239 __cxa_rethrow(CXXABI_1.3) [CXXABI-1.86] 35240 __cxa_throw(CXXABI_1.3) [CXXABI-1.86] 35241 __cxa_vec_cctor(CXXABI_1.3) [CXXABI-1.86] 35242 __cxa_vec_cleanup(CXXABI_1.3) [CXXABI-1.86] 35243 __cxa_vec_ctor(CXXABI_1.3) [CXXABI-1.86] 35244 __cxa_vec_delete(CXXABI_1.3) [CXXABI-1.86] 35245 __cxa_vec_delete2(CXXABI_1.3) [CXXABI-1.86] 35246 __cxa_vec_delete3(CXXABI_1.3) [CXXABI-1.86] 35247 __cxa_vec_dtor(CXXABI_1.3) [CXXABI-1.86] 35248 __cxa_vec_new(CXXABI_1.3) [CXXABI-1.86] 35249 __cxa_vec_new2(CXXABI_1.3) [CXXABI-1.86] 35250 __cxa_vec_new3(CXXABI_1.3) [CXXABI-1.86] 35251 __dynamic_cast(CXXABI_1.3) [CXXABI-1.86] 35252 __gxx_personality_v0(CXXABI_1.3) [CXXABI-1.86] 35253 35254 An LSB conforming implementation shall provide the generic data 35255 interfaces for C++ Runtime Support specified in Table 16-3, 35256 with the full mandatory functionality as described in the 35257 referenced underlying specification. 35258 35259 Table 16-3. libstdcxx - C++ Runtime Support Data Interfaces 35260 cin(GLIBCXX_3.4) [ISOCXX] 35261 cerr(GLIBCXX_3.4) [ISOCXX] 35262 clog(GLIBCXX_3.4) [ISOCXX] 35263 cout(GLIBCXX_3.4) [ISOCXX] 35264 wcin(GLIBCXX_3.4) [ISOCXX] 35265 wcerr(GLIBCXX_3.4) [ISOCXX] 35266 wclog(GLIBCXX_3.4) [ISOCXX] 35267 wcout(GLIBCXX_3.4) [ISOCXX] 35268 nothrow(GLIBCXX_3.4) [ISOCXX] 35269 __________________________________________________________ 35270 35271 16.1.2. C++ type descriptors for built-in types 35272 __________________________________________________________ 35273 35274 16.1.2.1. Interfaces for C++ type descriptors for built-in types 35275 35276 No external methods are defined for libstdcxx - C++ type 35277 descriptors for built-in types in this part of the 35278 specification. See also the relevant architecture specific part 35279 of this specification. 35280 35281 An LSB conforming implementation shall provide the generic data 35282 interfaces for C++ type descriptors for built-in types 35283 specified in Table 16-4, with the full mandatory functionality 35284 as described in the referenced underlying specification. 35285 35286 Table 16-4. libstdcxx - C++ type descriptors for built-in types 35287 Data Interfaces 35288 typeinfo for signed char const*(CXXABI_1.3) [CXXABI-1.86] 35289 typeinfo for bool const*(CXXABI_1.3) [CXXABI-1.86] 35290 typeinfo for char const*(CXXABI_1.3) [CXXABI-1.86] 35291 typeinfo for double const*(CXXABI_1.3) [CXXABI-1.86] 35292 typeinfo for long double const*(CXXABI_1.3) [CXXABI-1.86] 35293 typeinfo for float const*(CXXABI_1.3) [CXXABI-1.86] 35294 typeinfo for unsigned char const*(CXXABI_1.3) [CXXABI-1.86] 35295 typeinfo for int const*(CXXABI_1.3) [CXXABI-1.86] 35296 typeinfo for unsigned int const*(CXXABI_1.3) [CXXABI-1.86] 35297 typeinfo for long const*(CXXABI_1.3) [CXXABI-1.86] 35298 typeinfo for unsigned long const*(CXXABI_1.3) [CXXABI-1.86] 35299 typeinfo for short const*(CXXABI_1.3) [CXXABI-1.86] 35300 typeinfo for unsigned short const*(CXXABI_1.3) [CXXABI-1.86] 35301 typeinfo for void const*(CXXABI_1.3) [CXXABI-1.86] 35302 typeinfo for wchar_t const*(CXXABI_1.3) [CXXABI-1.86] 35303 typeinfo for long long const*(CXXABI_1.3) [CXXABI-1.86] 35304 typeinfo for unsigned long long const*(CXXABI_1.3) 35305 [CXXABI-1.86] 35306 typeinfo for signed char*(CXXABI_1.3) [CXXABI-1.86] 35307 typeinfo for bool*(CXXABI_1.3) [CXXABI-1.86] 35308 typeinfo for char*(CXXABI_1.3) [CXXABI-1.86] 35309 typeinfo for double*(CXXABI_1.3) [CXXABI-1.86] 35310 typeinfo for long double*(CXXABI_1.3) [CXXABI-1.86] 35311 typeinfo for float*(CXXABI_1.3) [CXXABI-1.86] 35312 typeinfo for unsigned char*(CXXABI_1.3) [CXXABI-1.86] 35313 typeinfo for int*(CXXABI_1.3) [CXXABI-1.86] 35314 typeinfo for unsigned int*(CXXABI_1.3) [CXXABI-1.86] 35315 typeinfo for long*(CXXABI_1.3) [CXXABI-1.86] 35316 typeinfo for unsigned long*(CXXABI_1.3) [CXXABI-1.86] 35317 typeinfo for short*(CXXABI_1.3) [CXXABI-1.86] 35318 typeinfo for unsigned short*(CXXABI_1.3) [CXXABI-1.86] 35319 typeinfo for void*(CXXABI_1.3) [CXXABI-1.86] 35320 typeinfo for wchar_t*(CXXABI_1.3) [CXXABI-1.86] 35321 typeinfo for long long*(CXXABI_1.3) [CXXABI-1.86] 35322 typeinfo for unsigned long long*(CXXABI_1.3) [CXXABI-1.86] 35323 typeinfo for signed char(CXXABI_1.3) [CXXABI-1.86] 35324 typeinfo for bool(CXXABI_1.3) [CXXABI-1.86] 35325 typeinfo for char(CXXABI_1.3) [CXXABI-1.86] 35326 typeinfo for double(CXXABI_1.3) [CXXABI-1.86] 35327 typeinfo for long double(CXXABI_1.3) [CXXABI-1.86] 35328 typeinfo for float(CXXABI_1.3) [CXXABI-1.86] 35329 typeinfo for unsigned char(CXXABI_1.3) [CXXABI-1.86] 35330 typeinfo for int(CXXABI_1.3) [CXXABI-1.86] 35331 typeinfo for unsigned int(CXXABI_1.3) [CXXABI-1.86] 35332 typeinfo for long(CXXABI_1.3) [CXXABI-1.86] 35333 typeinfo for unsigned long(CXXABI_1.3) [CXXABI-1.86] 35334 typeinfo for short(CXXABI_1.3) [CXXABI-1.86] 35335 typeinfo for unsigned short(CXXABI_1.3) [CXXABI-1.86] 35336 typeinfo for void(CXXABI_1.3) [CXXABI-1.86] 35337 typeinfo for wchar_t(CXXABI_1.3) [CXXABI-1.86] 35338 typeinfo for long long(CXXABI_1.3) [CXXABI-1.86] 35339 typeinfo for unsigned long long(CXXABI_1.3) [CXXABI-1.86] 35340 typeinfo name for signed char const*(CXXABI_1.3) [CXXABI-1.86] 35341 typeinfo name for bool const*(CXXABI_1.3) [CXXABI-1.86] 35342 typeinfo name for char const*(CXXABI_1.3) [CXXABI-1.86] 35343 typeinfo name for double const*(CXXABI_1.3) [CXXABI-1.86] 35344 typeinfo name for long double const*(CXXABI_1.3) [CXXABI-1.86] 35345 typeinfo name for float const*(CXXABI_1.3) [CXXABI-1.86] 35346 typeinfo name for unsigned char const*(CXXABI_1.3) 35347 [CXXABI-1.86] 35348 typeinfo name for int const*(CXXABI_1.3) [CXXABI-1.86] 35349 typeinfo name for unsigned int const*(CXXABI_1.3) [CXXABI-1.86] 35350 typeinfo name for long const*(CXXABI_1.3) [CXXABI-1.86] 35351 typeinfo name for unsigned long const*(CXXABI_1.3) 35352 [CXXABI-1.86] 35353 typeinfo name for short const*(CXXABI_1.3) [CXXABI-1.86] 35354 typeinfo name for unsigned short const*(CXXABI_1.3) 35355 [CXXABI-1.86] 35356 typeinfo name for void const*(CXXABI_1.3) [CXXABI-1.86] 35357 typeinfo name for wchar_t const*(CXXABI_1.3) [CXXABI-1.86] 35358 typeinfo name for long long const*(CXXABI_1.3) [CXXABI-1.86] 35359 typeinfo name for unsigned long long const*(CXXABI_1.3) 35360 [CXXABI-1.86] 35361 typeinfo name for signed char*(CXXABI_1.3) [CXXABI-1.86] 35362 typeinfo name for bool*(CXXABI_1.3) [CXXABI-1.86] 35363 typeinfo name for char*(CXXABI_1.3) [CXXABI-1.86] 35364 typeinfo name for double*(CXXABI_1.3) [CXXABI-1.86] 35365 typeinfo name for long double*(CXXABI_1.3) [CXXABI-1.86] 35366 typeinfo name for float*(CXXABI_1.3) [CXXABI-1.86] 35367 typeinfo name for unsigned char*(CXXABI_1.3) [CXXABI-1.86] 35368 typeinfo name for int*(CXXABI_1.3) [CXXABI-1.86] 35369 typeinfo name for unsigned int*(CXXABI_1.3) [CXXABI-1.86] 35370 typeinfo name for long*(CXXABI_1.3) [CXXABI-1.86] 35371 typeinfo name for unsigned long*(CXXABI_1.3) [CXXABI-1.86] 35372 typeinfo name for short*(CXXABI_1.3) [CXXABI-1.86] 35373 typeinfo name for unsigned short*(CXXABI_1.3) [CXXABI-1.86] 35374 typeinfo name for void*(CXXABI_1.3) [CXXABI-1.86] 35375 typeinfo name for wchar_t*(CXXABI_1.3) [CXXABI-1.86] 35376 typeinfo name for long long*(CXXABI_1.3) [CXXABI-1.86] 35377 typeinfo name for unsigned long long*(CXXABI_1.3) [CXXABI-1.86] 35378 typeinfo name for signed char(CXXABI_1.3) [CXXABI-1.86] 35379 typeinfo name for bool(CXXABI_1.3) [CXXABI-1.86] 35380 typeinfo name for char(CXXABI_1.3) [CXXABI-1.86] 35381 typeinfo name for double(CXXABI_1.3) [CXXABI-1.86] 35382 typeinfo name for long double(CXXABI_1.3) [CXXABI-1.86] 35383 typeinfo name for float(CXXABI_1.3) [CXXABI-1.86] 35384 typeinfo name for unsigned char(CXXABI_1.3) [CXXABI-1.86] 35385 typeinfo name for int(CXXABI_1.3) [CXXABI-1.86] 35386 typeinfo name for unsigned int(CXXABI_1.3) [CXXABI-1.86] 35387 typeinfo name for long(CXXABI_1.3) [CXXABI-1.86] 35388 typeinfo name for unsigned long(CXXABI_1.3) [CXXABI-1.86] 35389 typeinfo name for short(CXXABI_1.3) [CXXABI-1.86] 35390 typeinfo name for unsigned short(CXXABI_1.3) [CXXABI-1.86] 35391 typeinfo name for void(CXXABI_1.3) [CXXABI-1.86] 35392 typeinfo name for wchar_t(CXXABI_1.3) [CXXABI-1.86] 35393 typeinfo name for long long(CXXABI_1.3) [CXXABI-1.86] 35394 typeinfo name for unsigned long long(CXXABI_1.3) [CXXABI-1.86] 35395 __________________________________________________________ 35396 35397 16.1.3. C++ _Rb_tree 35398 __________________________________________________________ 35399 35400 16.1.3.1. Interfaces for C++ _Rb_tree 35401 35402 An LSB conforming implementation shall provide the generic 35403 methods for C++ _Rb_tree specified in Table 16-5, with the full 35404 mandatory functionality as described in the referenced 35405 underlying specification. 35406 35407 Table 16-5. libstdcxx - C++ _Rb_tree Function Interfaces 35408 _Rb_tree_decrement(_Rb_tree_node_base const*)(GLIBCXX_3.4) 35409 [LSB] 35410 _Rb_tree_decrement(_Rb_tree_node_base*)(GLIBCXX_3.4) [LSB] 35411 _Rb_tree_increment(_Rb_tree_node_base const*)(GLIBCXX_3.4) 35412 [LSB] 35413 _Rb_tree_increment(_Rb_tree_node_base*)(GLIBCXX_3.4) [LSB] 35414 _Rb_tree_black_count(_Rb_tree_node_base const*, 35415 _Rb_tree_node_base const*)(GLIBCXX_3.4) [LSB] 35416 _Rb_tree_rotate_left(_Rb_tree_node_base*, 35417 _Rb_tree_node_base*&)(GLIBCXX_3.4) [LSB] 35418 _Rb_tree_rotate_right(_Rb_tree_node_base*, 35419 _Rb_tree_node_base*&)(GLIBCXX_3.4) [LSB] 35420 _Rb_tree_rebalance_for_erase(_Rb_tree_node_base*, 35421 _Rb_tree_node_base&)(GLIBCXX_3.4) [LSB] 35422 _Rb_tree_insert_and_rebalance(bool, _Rb_tree_node_base*, 35423 _Rb_tree_node_base*, _Rb_tree_node_base&)(GLIBCXX_3.4) [LSB] 35424 __________________________________________________________ 35425 35426 16.1.4. Class type_info 35427 __________________________________________________________ 35428 35429 16.1.4.1. Class data for type_info 35430 35431 The virtual table for the std::type_info class is described by 35432 Table 16-6 35433 35434 Table 16-6. Primary vtable for type_info 35435 Base Offset 0 35436 Virtual Base Offset 0 35437 RTTI typeinfo for type_info 35438 vfunc[0]: type_info::~type_info() 35439 vfunc[1]: type_info::~type_info() 35440 vfunc[2]: type_info::__is_pointer_p() const 35441 vfunc[3]: type_info::__is_function_p() const 35442 vfunc[4]: type_info::__do_catch(type_info const*, void**, 35443 unsigned int) const 35444 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35445 const*, void**) const 35446 35447 The Run Time Type Information for the std::type_info class is 35448 described by Table 16-7 35449 35450 Table 16-7. typeinfo for type_info 35451 Base Vtable vtable for __cxxabiv1::__class_type_info 35452 Name typeinfo name for type_info 35453 __________________________________________________________ 35454 35455 16.1.4.2. Interfaces for Class type_info 35456 35457 An LSB conforming implementation shall provide the generic 35458 methods for Class std::type_info specified in Table 16-8, with 35459 the full mandatory functionality as described in the referenced 35460 underlying specification. 35461 35462 Table 16-8. libstdcxx - Class type_info Function Interfaces 35463 type_info::__do_catch(type_info const*, void**, unsigned int) 35464 const(GLIBCXX_3.4) [ISOCXX] 35465 type_info::__do_upcast(__cxxabiv1::__class_type_info const*, 35466 void**) const(GLIBCXX_3.4) [ISOCXX] 35467 type_info::__is_pointer_p() const(GLIBCXX_3.4) [ISOCXX] 35468 type_info::__is_function_p() const(GLIBCXX_3.4) [ISOCXX] 35469 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 35470 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 35471 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 35472 35473 An LSB conforming implementation shall provide the generic data 35474 interfaces for Class std::type_info specified in Table 16-9, 35475 with the full mandatory functionality as described in the 35476 referenced underlying specification. 35477 35478 Table 16-9. libstdcxx - Class type_info Data Interfaces 35479 typeinfo for type_info(GLIBCXX_3.4) [CXXABI-1.86] 35480 typeinfo name for type_info(GLIBCXX_3.4) [CXXABI-1.86] 35481 vtable for type_info(GLIBCXX_3.4) [CXXABI-1.86] 35482 __________________________________________________________ 35483 35484 16.1.5. Class __cxxabiv1::__enum_type_info 35485 __________________________________________________________ 35486 35487 16.1.5.1. Class data for __cxxabiv1::__enum_type_info 35488 35489 The virtual table for the __cxxabiv1::__enum_type_info class is 35490 described by Table 16-10 35491 35492 Table 16-10. Primary vtable for __cxxabiv1::__enum_type_info 35493 Base Offset 0 35494 Virtual Base Offset 0 35495 RTTI typeinfo for __cxxabiv1::__enum_type_info 35496 vfunc[0]: __cxxabiv1::__enum_type_info::~__enum_type_info() 35497 vfunc[1]: __cxxabiv1::__enum_type_info::~__enum_type_info() 35498 vfunc[2]: type_info::__is_pointer_p() const 35499 vfunc[3]: type_info::__is_function_p() const 35500 vfunc[4]: type_info::__do_catch(type_info const*, void**, 35501 unsigned int) const 35502 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35503 const*, void**) const 35504 35505 The Run Time Type Information for the 35506 __cxxabiv1::__enum_type_info class is described by Table 16-11 35507 35508 Table 16-11. typeinfo for __cxxabiv1::__enum_type_info 35509 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35510 Name typeinfo name for __cxxabiv1::__enum_type_info 35511 __________________________________________________________ 35512 35513 16.1.5.2. Interfaces for Class __cxxabiv1::__enum_type_info 35514 35515 An LSB conforming implementation shall provide the generic 35516 methods for Class __cxxabiv1::__enum_type_info specified in 35517 Table 16-12, with the full mandatory functionality as described 35518 in the referenced underlying specification. 35519 35520 Table 16-12. libstdcxx - Class __cxxabiv1::__enum_type_info 35521 Function Interfaces 35522 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 35523 [CXXABI-1.86] 35524 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 35525 [CXXABI-1.86] 35526 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 35527 [CXXABI-1.86] 35528 35529 An LSB conforming implementation shall provide the generic data 35530 interfaces for Class __cxxabiv1::__enum_type_info specified in 35531 Table 16-13, with the full mandatory functionality as described 35532 in the referenced underlying specification. 35533 35534 Table 16-13. libstdcxx - Class __cxxabiv1::__enum_type_info 35535 Data Interfaces 35536 typeinfo for __cxxabiv1::__enum_type_info(CXXABI_1.3) 35537 [CXXABI-1.86] 35538 typeinfo name for __cxxabiv1::__enum_type_info(CXXABI_1.3) 35539 [CXXABI-1.86] 35540 vtable for __cxxabiv1::__enum_type_info(CXXABI_1.3) 35541 [CXXABI-1.86] 35542 __________________________________________________________ 35543 35544 16.1.6. Class __cxxabiv1::__array_type_info 35545 __________________________________________________________ 35546 35547 16.1.6.1. Class data for __cxxabiv1::__array_type_info 35548 35549 The virtual table for the __cxxabiv1::__array_type_info class 35550 is described by Table 16-14 35551 35552 Table 16-14. Primary vtable for __cxxabiv1::__array_type_info 35553 Base Offset 0 35554 Virtual Base Offset 0 35555 RTTI typeinfo for __cxxabiv1::__array_type_info 35556 vfunc[0]: __cxxabiv1::__array_type_info::~__array_type_info() 35557 vfunc[1]: __cxxabiv1::__array_type_info::~__array_type_info() 35558 vfunc[2]: type_info::__is_pointer_p() const 35559 vfunc[3]: type_info::__is_function_p() const 35560 vfunc[4]: type_info::__do_catch(type_info const*, void**, 35561 unsigned int) const 35562 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35563 const*, void**) const 35564 35565 The Run Time Type Information for the 35566 __cxxabiv1::__array_type_info class is described by Table 16-15 35567 35568 Table 16-15. typeinfo for __cxxabiv1::__array_type_info 35569 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35570 Name typeinfo name for __cxxabiv1::__array_type_info 35571 __________________________________________________________ 35572 35573 16.1.6.2. Interfaces for Class __cxxabiv1::__array_type_info 35574 35575 An LSB conforming implementation shall provide the generic 35576 methods for Class __cxxabiv1::__array_type_info specified in 35577 Table 16-16, with the full mandatory functionality as described 35578 in the referenced underlying specification. 35579 35580 Table 16-16. libstdcxx - Class __cxxabiv1::__array_type_info 35581 Function Interfaces 35582 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 35583 [CXXABI-1.86] 35584 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 35585 [CXXABI-1.86] 35586 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 35587 [CXXABI-1.86] 35588 35589 An LSB conforming implementation shall provide the generic data 35590 interfaces for Class __cxxabiv1::__array_type_info specified in 35591 Table 16-17, with the full mandatory functionality as described 35592 in the referenced underlying specification. 35593 35594 Table 16-17. libstdcxx - Class __cxxabiv1::__array_type_info 35595 Data Interfaces 35596 typeinfo for __cxxabiv1::__array_type_info(CXXABI_1.3) 35597 [CXXABI-1.86] 35598 typeinfo name for __cxxabiv1::__array_type_info(CXXABI_1.3) 35599 [CXXABI-1.86] 35600 vtable for __cxxabiv1::__array_type_info(CXXABI_1.3) 35601 [CXXABI-1.86] 35602 __________________________________________________________ 35603 35604 16.1.7. Class __cxxabiv1::__class_type_info 35605 __________________________________________________________ 35606 35607 16.1.7.1. Class data for __cxxabiv1::__class_type_info 35608 35609 The virtual table for the __cxxabiv1::__class_type_info class 35610 is described by Table 16-18 35611 35612 Table 16-18. Primary vtable for __cxxabiv1::__class_type_info 35613 Base Offset 0 35614 Virtual Base Offset 0 35615 RTTI typeinfo for __cxxabiv1::__class_type_info 35616 vfunc[0]: __cxxabiv1::__class_type_info::~__class_type_info() 35617 vfunc[1]: __cxxabiv1::__class_type_info::~__class_type_info() 35618 vfunc[2]: type_info::__is_pointer_p() const 35619 vfunc[3]: type_info::__is_function_p() const 35620 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 35621 const*, void**, unsigned int) const 35622 vfunc[5]: 35623 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35624 type_info const*, void**) const 35625 vfunc[6]: 35626 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35627 type_info const*, void const*, 35628 __cxxabiv1::__class_type_info::__upcast_result&) const 35629 35630 The Run Time Type Information for the 35631 __cxxabiv1::__class_type_info class is described by Table 16-19 35632 35633 Table 16-19. typeinfo for __cxxabiv1::__class_type_info 35634 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35635 Name typeinfo name for __cxxabiv1::__class_type_info 35636 __________________________________________________________ 35637 35638 16.1.7.2. Interfaces for Class __cxxabiv1::__class_type_info 35639 35640 An LSB conforming implementation shall provide the generic 35641 methods for Class __cxxabiv1::__class_type_info specified in 35642 Table 16-20, with the full mandatory functionality as described 35643 in the referenced underlying specification. 35644 35645 Table 16-20. libstdcxx - Class __cxxabiv1::__class_type_info 35646 Function Interfaces 35647 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 35648 [CXXABI-1.86] 35649 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 35650 [CXXABI-1.86] 35651 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 35652 [CXXABI-1.86] 35653 __cxxabiv1::__class_type_info::__do_catch(type_info const*, 35654 void**, unsigned int) const(CXXABI_1.3) [CXXABI-1.86] 35655 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35656 type_info const*, void const*, 35657 __cxxabiv1::__class_type_info::__upcast_result&) 35658 const(CXXABI_1.3) [CXXABI-1.86] 35659 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35660 type_info const*, void**) const(CXXABI_1.3) [CXXABI-1.86] 35661 35662 An LSB conforming implementation shall provide the generic data 35663 interfaces for Class __cxxabiv1::__class_type_info specified in 35664 Table 16-21, with the full mandatory functionality as described 35665 in the referenced underlying specification. 35666 35667 Table 16-21. libstdcxx - Class __cxxabiv1::__class_type_info 35668 Data Interfaces 35669 typeinfo for __cxxabiv1::__class_type_info(CXXABI_1.3) 35670 [CXXABI-1.86] 35671 typeinfo name for __cxxabiv1::__class_type_info(CXXABI_1.3) 35672 [CXXABI-1.86] 35673 vtable for __cxxabiv1::__class_type_info(CXXABI_1.3) 35674 [CXXABI-1.86] 35675 __________________________________________________________ 35676 35677 16.1.8. Class __cxxabiv1::__pbase_type_info 35678 __________________________________________________________ 35679 35680 16.1.8.1. Class data for __cxxabiv1::__pbase_type_info 35681 35682 The virtual table for the __cxxabiv1::__pbase_type_info class 35683 is described by Table 16-22 35684 35685 Table 16-22. Primary vtable for __cxxabiv1::__pbase_type_info 35686 Base Offset 0 35687 Virtual Base Offset 0 35688 RTTI typeinfo for __cxxabiv1::__pbase_type_info 35689 vfunc[0]: __cxxabiv1::__pbase_type_info::~__pbase_type_info() 35690 vfunc[1]: __cxxabiv1::__pbase_type_info::~__pbase_type_info() 35691 vfunc[2]: type_info::__is_pointer_p() const 35692 vfunc[3]: type_info::__is_function_p() const 35693 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 35694 const*, void**, unsigned int) const 35695 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35696 const*, void**) const 35697 vfunc[6]: 35698 __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pb 35699 ase_type_info const*, void**, unsigned int) const 35700 35701 The Run Time Type Information for the 35702 __cxxabiv1::__pbase_type_info class is described by Table 16-23 35703 35704 Table 16-23. typeinfo for __cxxabiv1::__pbase_type_info 35705 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35706 Name typeinfo name for __cxxabiv1::__pbase_type_info 35707 __________________________________________________________ 35708 35709 16.1.8.2. Interfaces for Class __cxxabiv1::__pbase_type_info 35710 35711 An LSB conforming implementation shall provide the generic 35712 methods for Class __cxxabiv1::__pbase_type_info specified in 35713 Table 16-24, with the full mandatory functionality as described 35714 in the referenced underlying specification. 35715 35716 Table 16-24. libstdcxx - Class __cxxabiv1::__pbase_type_info 35717 Function Interfaces 35718 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 35719 [CXXABI-1.86] 35720 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 35721 [CXXABI-1.86] 35722 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 35723 [CXXABI-1.86] 35724 __cxxabiv1::__pbase_type_info::__do_catch(type_info const*, 35725 void**, unsigned int) const(CXXABI_1.3) [CXXABI-1.86] 35726 __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pb 35727 ase_type_info const*, void**, unsigned int) const(CXXABI_1.3) 35728 [CXXABI-1.86] 35729 35730 An LSB conforming implementation shall provide the generic data 35731 interfaces for Class __cxxabiv1::__pbase_type_info specified in 35732 Table 16-25, with the full mandatory functionality as described 35733 in the referenced underlying specification. 35734 35735 Table 16-25. libstdcxx - Class __cxxabiv1::__pbase_type_info 35736 Data Interfaces 35737 typeinfo for __cxxabiv1::__pbase_type_info(CXXABI_1.3) 35738 [CXXABI-1.86] 35739 typeinfo name for __cxxabiv1::__pbase_type_info(CXXABI_1.3) 35740 [CXXABI-1.86] 35741 vtable for __cxxabiv1::__pbase_type_info(CXXABI_1.3) 35742 [CXXABI-1.86] 35743 __________________________________________________________ 35744 35745 16.1.9. Class __cxxabiv1::__pointer_type_info 35746 __________________________________________________________ 35747 35748 16.1.9.1. Class data for __cxxabiv1::__pointer_type_info 35749 35750 The virtual table for the __cxxabiv1::__pointer_type_info class 35751 is described by Table 16-26 35752 35753 Table 16-26. Primary vtable for __cxxabiv1::__pointer_type_info 35754 Base Offset 0 35755 Virtual Base Offset 0 35756 RTTI typeinfo for __cxxabiv1::__pointer_type_info 35757 vfunc[0]: 35758 __cxxabiv1::__pointer_type_info::~__pointer_type_info() 35759 vfunc[1]: 35760 __cxxabiv1::__pointer_type_info::~__pointer_type_info() 35761 vfunc[2]: __cxxabiv1::__pointer_type_info::__is_pointer_p() 35762 const 35763 vfunc[3]: type_info::__is_function_p() const 35764 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 35765 const*, void**, unsigned int) const 35766 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35767 const*, void**) const 35768 vfunc[6]: 35769 __cxxabiv1::__pointer_type_info::__pointer_catch(__cxxabiv1::__ 35770 pbase_type_info const*, void**, unsigned int) const 35771 35772 The Run Time Type Information for the 35773 __cxxabiv1::__pointer_type_info class is described by Table 35774 16-27 35775 35776 Table 16-27. typeinfo for __cxxabiv1::__pointer_type_info 35777 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35778 Name typeinfo name for __cxxabiv1::__pointer_type_info 35779 __________________________________________________________ 35780 35781 16.1.9.2. Interfaces for Class __cxxabiv1::__pointer_type_info 35782 35783 An LSB conforming implementation shall provide the generic 35784 methods for Class __cxxabiv1::__pointer_type_info specified in 35785 Table 16-28, with the full mandatory functionality as described 35786 in the referenced underlying specification. 35787 35788 Table 16-28. libstdcxx - Class __cxxabiv1::__pointer_type_info 35789 Function Interfaces 35790 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 35791 1.3) [CXXABI-1.86] 35792 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 35793 1.3) [CXXABI-1.86] 35794 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 35795 1.3) [CXXABI-1.86] 35796 __cxxabiv1::__pointer_type_info::__is_pointer_p() 35797 const(CXXABI_1.3) [CXXABI-1.86] 35798 __cxxabiv1::__pointer_type_info::__pointer_catch(__cxxabiv1::__ 35799 pbase_type_info const*, void**, unsigned int) const(CXXABI_1.3) 35800 [CXXABI-1.86] 35801 35802 An LSB conforming implementation shall provide the generic data 35803 interfaces for Class __cxxabiv1::__pointer_type_info specified 35804 in Table 16-29, with the full mandatory functionality as 35805 described in the referenced underlying specification. 35806 35807 Table 16-29. libstdcxx - Class __cxxabiv1::__pointer_type_info 35808 Data Interfaces 35809 typeinfo for __cxxabiv1::__pointer_type_info(CXXABI_1.3) 35810 [CXXABI-1.86] 35811 typeinfo name for __cxxabiv1::__pointer_type_info(CXXABI_1.3) 35812 [CXXABI-1.86] 35813 vtable for __cxxabiv1::__pointer_type_info(CXXABI_1.3) 35814 [CXXABI-1.86] 35815 __________________________________________________________ 35816 35817 16.1.10. Class __cxxabiv1::__function_type_info 35818 __________________________________________________________ 35819 35820 16.1.10.1. Class data for __cxxabiv1::__function_type_info 35821 35822 The virtual table for the __cxxabiv1::__function_type_info 35823 class is described by Table 16-30 35824 35825 Table 16-30. Primary vtable for 35826 __cxxabiv1::__function_type_info 35827 Base Offset 0 35828 Virtual Base Offset 0 35829 RTTI typeinfo for __cxxabiv1::__function_type_info 35830 vfunc[0]: 35831 __cxxabiv1::__function_type_info::~__function_type_info() 35832 vfunc[1]: 35833 __cxxabiv1::__function_type_info::~__function_type_info() 35834 vfunc[2]: type_info::__is_pointer_p() const 35835 vfunc[3]: __cxxabiv1::__function_type_info::__is_function_p() 35836 const 35837 vfunc[4]: type_info::__do_catch(type_info const*, void**, 35838 unsigned int) const 35839 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 35840 const*, void**) const 35841 35842 The Run Time Type Information for the 35843 __cxxabiv1::__function_type_info class is described by Table 35844 16-31 35845 35846 Table 16-31. typeinfo for __cxxabiv1::__function_type_info 35847 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35848 Name typeinfo name for __cxxabiv1::__function_type_info 35849 __________________________________________________________ 35850 35851 16.1.10.2. Interfaces for Class __cxxabiv1::__function_type_info 35852 35853 An LSB conforming implementation shall provide the generic 35854 methods for Class __cxxabiv1::__function_type_info specified in 35855 Table 16-32, with the full mandatory functionality as described 35856 in the referenced underlying specification. 35857 35858 Table 16-32. libstdcxx - Class __cxxabiv1::__function_type_info 35859 Function Interfaces 35860 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 35861 I_1.3) [CXXABI-1.86] 35862 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 35863 I_1.3) [CXXABI-1.86] 35864 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 35865 I_1.3) [CXXABI-1.86] 35866 __cxxabiv1::__function_type_info::__is_function_p() 35867 const(CXXABI_1.3) [CXXABI-1.86] 35868 35869 An LSB conforming implementation shall provide the generic data 35870 interfaces for Class __cxxabiv1::__function_type_info specified 35871 in Table 16-33, with the full mandatory functionality as 35872 described in the referenced underlying specification. 35873 35874 Table 16-33. libstdcxx - Class __cxxabiv1::__function_type_info 35875 Data Interfaces 35876 typeinfo for __cxxabiv1::__function_type_info(CXXABI_1.3) 35877 [CXXABI-1.86] 35878 typeinfo name for __cxxabiv1::__function_type_info(CXXABI_1.3) 35879 [CXXABI-1.86] 35880 vtable for __cxxabiv1::__function_type_info(CXXABI_1.3) 35881 [CXXABI-1.86] 35882 __________________________________________________________ 35883 35884 16.1.11. Class __cxxabiv1::__si_class_type_info 35885 __________________________________________________________ 35886 35887 16.1.11.1. Class data for __cxxabiv1::__si_class_type_info 35888 35889 The virtual table for the __cxxabiv1::__si_class_type_info 35890 class is described by Table 16-34 35891 35892 Table 16-34. Primary vtable for 35893 __cxxabiv1::__si_class_type_info 35894 Base Offset 0 35895 Virtual Base Offset 0 35896 RTTI typeinfo for __cxxabiv1::__si_class_type_info 35897 vfunc[0]: 35898 __cxxabiv1::__si_class_type_info::~__si_class_type_info() 35899 vfunc[1]: 35900 __cxxabiv1::__si_class_type_info::~__si_class_type_info() 35901 vfunc[2]: type_info::__is_pointer_p() const 35902 vfunc[3]: type_info::__is_function_p() const 35903 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 35904 const*, void**, unsigned int) const 35905 vfunc[5]: 35906 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35907 type_info const*, void**) const 35908 vfunc[6]: 35909 __cxxabiv1::__si_class_type_info::__do_upcast(__cxxabiv1::__cla 35910 ss_type_info const*, void const*, 35911 __cxxabiv1::__class_type_info::__upcast_result&) const 35912 35913 The Run Time Type Information for the 35914 __cxxabiv1::__si_class_type_info class is described by Table 35915 16-35 35916 35917 Table 16-35. typeinfo for __cxxabiv1::__si_class_type_info 35918 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35919 Name typeinfo name for __cxxabiv1::__si_class_type_info 35920 __________________________________________________________ 35921 35922 16.1.11.2. Interfaces for Class __cxxabiv1::__si_class_type_info 35923 35924 An LSB conforming implementation shall provide the generic 35925 methods for Class __cxxabiv1::__si_class_type_info specified in 35926 Table 16-36, with the full mandatory functionality as described 35927 in the referenced underlying specification. 35928 35929 Table 16-36. libstdcxx - Class __cxxabiv1::__si_class_type_info 35930 Function Interfaces 35931 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 35932 I_1.3) [CXXABI-1.86] 35933 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 35934 I_1.3) [CXXABI-1.86] 35935 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 35936 I_1.3) [CXXABI-1.86] 35937 __cxxabiv1::__si_class_type_info::__do_upcast(__cxxabiv1::__cla 35938 ss_type_info const*, void const*, 35939 __cxxabiv1::__class_type_info::__upcast_result&) 35940 const(CXXABI_1.3) [CXXABI-1.86] 35941 35942 An LSB conforming implementation shall provide the generic data 35943 interfaces for Class __cxxabiv1::__si_class_type_info specified 35944 in Table 16-37, with the full mandatory functionality as 35945 described in the referenced underlying specification. 35946 35947 Table 16-37. libstdcxx - Class __cxxabiv1::__si_class_type_info 35948 Data Interfaces 35949 typeinfo for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 35950 [CXXABI-1.86] 35951 typeinfo name for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 35952 [CXXABI-1.86] 35953 vtable for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 35954 [CXXABI-1.86] 35955 __________________________________________________________ 35956 35957 16.1.12. Class __cxxabiv1::__vmi_class_type_info 35958 __________________________________________________________ 35959 35960 16.1.12.1. Class data for __cxxabiv1::__vmi_class_type_info 35961 35962 The virtual table for the __cxxabiv1::__vmi_class_type_info 35963 class is described by Table 16-38 35964 35965 Table 16-38. Primary vtable for 35966 __cxxabiv1::__vmi_class_type_info 35967 Base Offset 0 35968 Virtual Base Offset 0 35969 RTTI typeinfo for __cxxabiv1::__vmi_class_type_info 35970 vfunc[0]: 35971 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() 35972 vfunc[1]: 35973 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() 35974 vfunc[2]: type_info::__is_pointer_p() const 35975 vfunc[3]: type_info::__is_function_p() const 35976 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 35977 const*, void**, unsigned int) const 35978 vfunc[5]: 35979 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 35980 type_info const*, void**) const 35981 vfunc[6]: 35982 __cxxabiv1::__vmi_class_type_info::__do_upcast(__cxxabiv1::__cl 35983 ass_type_info const*, void const*, 35984 __cxxabiv1::__class_type_info::__upcast_result&) const 35985 35986 The Run Time Type Information for the 35987 __cxxabiv1::__vmi_class_type_info class is described by Table 35988 16-39 35989 35990 Table 16-39. typeinfo for __cxxabiv1::__vmi_class_type_info 35991 Base Vtable vtable for __cxxabiv1::__si_class_type_info 35992 Name typeinfo name for __cxxabiv1::__vmi_class_type_info 35993 __________________________________________________________ 35994 35995 16.1.12.2. Interfaces for Class __cxxabiv1::__vmi_class_type_info 35996 35997 An LSB conforming implementation shall provide the generic 35998 methods for Class __cxxabiv1::__vmi_class_type_info specified 35999 in Table 16-40, with the full mandatory functionality as 36000 described in the referenced underlying specification. 36001 36002 Table 16-40. libstdcxx - Class 36003 __cxxabiv1::__vmi_class_type_info Function Interfaces 36004 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 36005 ABI_1.3) [CXXABI-1.86] 36006 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 36007 ABI_1.3) [CXXABI-1.86] 36008 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 36009 ABI_1.3) [CXXABI-1.86] 36010 __cxxabiv1::__vmi_class_type_info::__do_upcast(__cxxabiv1::__cl 36011 ass_type_info const*, void const*, 36012 __cxxabiv1::__class_type_info::__upcast_result&) 36013 const(CXXABI_1.3) [CXXABI-1.86] 36014 36015 An LSB conforming implementation shall provide the generic data 36016 interfaces for Class __cxxabiv1::__vmi_class_type_info 36017 specified in Table 16-41, with the full mandatory functionality 36018 as described in the referenced underlying specification. 36019 36020 Table 16-41. libstdcxx - Class 36021 __cxxabiv1::__vmi_class_type_info Data Interfaces 36022 typeinfo for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 36023 [CXXABI-1.86] 36024 typeinfo name for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 36025 [CXXABI-1.86] 36026 vtable for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 36027 [CXXABI-1.86] 36028 __________________________________________________________ 36029 36030 16.1.13. Class __cxxabiv1::__fundamental_type_info 36031 __________________________________________________________ 36032 36033 16.1.13.1. Class data for __cxxabiv1::__fundamental_type_info 36034 36035 The virtual table for the __cxxabiv1::__fundamental_type_info 36036 class is described by Table 16-42 36037 36038 Table 16-42. Primary vtable for 36039 __cxxabiv1::__fundamental_type_info 36040 Base Offset 0 36041 Virtual Base Offset 0 36042 RTTI typeinfo for __cxxabiv1::__fundamental_type_info 36043 vfunc[0]: 36044 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 36045 vfunc[1]: 36046 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 36047 vfunc[2]: type_info::__is_pointer_p() const 36048 vfunc[3]: type_info::__is_function_p() const 36049 vfunc[4]: type_info::__do_catch(type_info const*, void**, 36050 unsigned int) const 36051 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 36052 const*, void**) const 36053 36054 The Run Time Type Information for the 36055 __cxxabiv1::__fundamental_type_info class is described by Table 36056 16-43 36057 36058 Table 16-43. typeinfo for __cxxabiv1::__fundamental_type_info 36059 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36060 Name typeinfo name for __cxxabiv1::__fundamental_type_info 36061 __________________________________________________________ 36062 36063 16.1.13.2. Interfaces for Class __cxxabiv1::__fundamental_type_info 36064 36065 An LSB conforming implementation shall provide the generic 36066 methods for Class __cxxabiv1::__fundamental_type_info specified 36067 in Table 16-44, with the full mandatory functionality as 36068 described in the referenced underlying specification. 36069 36070 Table 16-44. libstdcxx - Class 36071 __cxxabiv1::__fundamental_type_info Function Interfaces 36072 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 36073 (CXXABI_1.3) [CXXABI-1.86] 36074 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 36075 (CXXABI_1.3) [CXXABI-1.86] 36076 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 36077 (CXXABI_1.3) [CXXABI-1.86] 36078 36079 An LSB conforming implementation shall provide the generic data 36080 interfaces for Class __cxxabiv1::__fundamental_type_info 36081 specified in Table 16-45, with the full mandatory functionality 36082 as described in the referenced underlying specification. 36083 36084 Table 16-45. libstdcxx - Class 36085 __cxxabiv1::__fundamental_type_info Data Interfaces 36086 typeinfo for __cxxabiv1::__fundamental_type_info(CXXABI_1.3) 36087 [CXXABI-1.86] 36088 typeinfo name for 36089 __cxxabiv1::__fundamental_type_info(CXXABI_1.3) [CXXABI-1.86] 36090 vtable for __cxxabiv1::__fundamental_type_info(CXXABI_1.3) 36091 [CXXABI-1.86] 36092 __________________________________________________________ 36093 36094 16.1.14. Class __cxxabiv1::__pointer_to_member_type_info 36095 __________________________________________________________ 36096 36097 16.1.14.1. Class data for __cxxabiv1::__pointer_to_member_type_info 36098 36099 The virtual table for the 36100 __cxxabiv1::__pointer_to_member_type_info class is described by 36101 Table 16-46 36102 36103 Table 16-46. Primary vtable for 36104 __cxxabiv1::__pointer_to_member_type_info 36105 Base Offset 0 36106 Virtual Base Offset 0 36107 RTTI typeinfo for __cxxabiv1::__pointer_to_member_type_info 36108 vfunc[0]: 36109 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 36110 _type_info() 36111 vfunc[1]: 36112 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 36113 _type_info() 36114 vfunc[2]: type_info::__is_pointer_p() const 36115 vfunc[3]: type_info::__is_function_p() const 36116 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 36117 const*, void**, unsigned int) const 36118 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 36119 const*, void**) const 36120 vfunc[6]: 36121 __cxxabiv1::__pointer_to_member_type_info::__pointer_catch(__cx 36122 xabiv1::__pbase_type_info const*, void**, unsigned int) const 36123 36124 The Run Time Type Information for the 36125 __cxxabiv1::__pointer_to_member_type_info class is described by 36126 Table 16-47 36127 36128 Table 16-47. typeinfo for 36129 __cxxabiv1::__pointer_to_member_type_info 36130 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36131 Name typeinfo name for 36132 __cxxabiv1::__pointer_to_member_type_info 36133 __________________________________________________________ 36134 36135 16.1.14.2. Interfaces for Class __cxxabiv1::__pointer_to_member_type_info 36136 36137 An LSB conforming implementation shall provide the generic 36138 methods for Class __cxxabiv1::__pointer_to_member_type_info 36139 specified in Table 16-48, with the full mandatory functionality 36140 as described in the referenced underlying specification. 36141 36142 Table 16-48. libstdcxx - Class 36143 __cxxabiv1::__pointer_to_member_type_info Function Interfaces 36144 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 36145 _type_info()(CXXABI_1.3) [CXXABI-1.86] 36146 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 36147 _type_info()(CXXABI_1.3) [CXXABI-1.86] 36148 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 36149 _type_info()(CXXABI_1.3) [CXXABI-1.86] 36150 __cxxabiv1::__pointer_to_member_type_info::__pointer_catch(__cx 36151 xabiv1::__pbase_type_info const*, void**, unsigned int) 36152 const(CXXABI_1.3) [CXXABI-1.86] 36153 36154 An LSB conforming implementation shall provide the generic data 36155 interfaces for Class __cxxabiv1::__pointer_to_member_type_info 36156 specified in Table 16-49, with the full mandatory functionality 36157 as described in the referenced underlying specification. 36158 36159 Table 16-49. libstdcxx - Class 36160 __cxxabiv1::__pointer_to_member_type_info Data Interfaces 36161 typeinfo for 36162 __cxxabiv1::__pointer_to_member_type_info(CXXABI_1.3) 36163 [CXXABI-1.86] 36164 typeinfo name for 36165 __cxxabiv1::__pointer_to_member_type_info(CXXABI_1.3) 36166 [CXXABI-1.86] 36167 vtable for 36168 __cxxabiv1::__pointer_to_member_type_info(CXXABI_1.3) 36169 [CXXABI-1.86] 36170 __________________________________________________________ 36171 36172 16.1.15. Class __gnu_cxx::stdio_filebuf > 36173 __________________________________________________________ 36174 36175 16.1.15.1. Interfaces for Class __gnu_cxx::stdio_filebuf > 36176 36177 No external methods are defined for libstdcxx - Class 36178 __gnu_cxx::stdio_filebuf > in this 36179 part of the specification. See also the relevant architecture 36180 specific part of this specification. 36181 36182 An LSB conforming implementation shall provide the generic data 36183 interfaces for Class __gnu_cxx::stdio_filebuf > specified in Table 16-50, with the 36185 full mandatory functionality as described in the referenced 36186 underlying specification. 36187 36188 Table 16-50. libstdcxx - Class __gnu_cxx::stdio_filebuf > Data Interfaces 36190 typeinfo for __gnu_cxx::stdio_filebuf 36191 >(GLIBCXX_3.4) [CXXABI-1.86] 36192 typeinfo name for __gnu_cxx::stdio_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36194 __________________________________________________________ 36195 36196 16.1.16. Class __gnu_cxx::stdio_filebuf > 36197 __________________________________________________________ 36198 36199 16.1.16.1. Interfaces for Class __gnu_cxx::stdio_filebuf > 36200 36201 No external methods are defined for libstdcxx - Class 36202 __gnu_cxx::stdio_filebuf > 36203 in this part of the specification. See also the relevant 36204 architecture specific part of this specification. 36205 36206 An LSB conforming implementation shall provide the generic data 36207 interfaces for Class __gnu_cxx::stdio_filebuf > specified in Table 16-51, with the 36209 full mandatory functionality as described in the referenced 36210 underlying specification. 36211 36212 Table 16-51. libstdcxx - Class 36213 __gnu_cxx::stdio_filebuf > Data 36214 Interfaces 36215 typeinfo for __gnu_cxx::stdio_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36217 typeinfo name for __gnu_cxx::stdio_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36219 __________________________________________________________ 36220 36221 16.1.17. Class __gnu_cxx::__pool_alloc_base 36222 __________________________________________________________ 36223 36224 16.1.17.1. Interfaces for Class __gnu_cxx::__pool_alloc_base 36225 36226 An LSB conforming implementation shall provide the generic 36227 methods for Class __gnu_cxx::__pool_alloc_base specified in 36228 Table 16-52, with the full mandatory functionality as described 36229 in the referenced underlying specification. 36230 36231 Table 16-52. libstdcxx - Class __gnu_cxx::__pool_alloc_base 36232 Function Interfaces 36233 __gnu_cxx::__pool_alloc_base::_M_get_mutex()(GLIBCXX_3.4.2) 36234 [LSB] 36235 __________________________________________________________ 36236 36237 16.1.18. Class __gnu_cxx::stdio_sync_filebuf> 36238 __________________________________________________________ 36239 36240 16.1.18.1. Class data for __gnu_cxx::stdio_sync_filebuf > 36241 36242 The virtual table for the __gnu_cxx::stdio_sync_filebuf > class is described by Table 16-53 36244 36245 Table 16-53. Primary vtable for 36246 __gnu_cxx::stdio_sync_filebuf > 36247 Base Offset 0 36248 Virtual Base Offset 0 36249 RTTI typeinfo for __gnu_cxx::stdio_sync_filebuf > 36251 vfunc[0]: __gnu_cxx::stdio_sync_filebuf 36252 >::~stdio_sync_filebuf() 36253 vfunc[1]: __gnu_cxx::stdio_sync_filebuf 36254 >::~stdio_sync_filebuf() 36255 vfunc[2]: basic_streambuf 36256 >::imbue(locale const&) 36257 vfunc[3]: See architecture specific part. 36258 vfunc[4]: See architecture specific part. 36259 vfunc[5]: __gnu_cxx::stdio_sync_filebuf 36260 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 36261 vfunc[6]: __gnu_cxx::stdio_sync_filebuf 36262 >::sync() 36263 vfunc[7]: basic_streambuf 36264 >::showmanyc() 36265 vfunc[8]: See architecture specific part. 36266 vfunc[9]: __gnu_cxx::stdio_sync_filebuf 36267 >::underflow() 36268 vfunc[10]: __gnu_cxx::stdio_sync_filebuf >::uflow() 36270 vfunc[11]: __gnu_cxx::stdio_sync_filebuf >::pbackfail(int) 36272 vfunc[12]: See architecture specific part. 36273 vfunc[13]: __gnu_cxx::stdio_sync_filebuf >::overflow(int) 36275 __________________________________________________________ 36276 36277 16.1.18.2. Interfaces for Class __gnu_cxx::stdio_sync_filebuf > 36278 36279 An LSB conforming implementation shall provide the generic 36280 methods for Class __gnu_cxx::stdio_sync_filebuf > specified in Table 16-54, with the 36282 full mandatory functionality as described in the referenced 36283 underlying specification. 36284 36285 Table 16-54. libstdcxx - Class 36286 __gnu_cxx::stdio_sync_filebuf > 36287 Function Interfaces 36288 __gnu_cxx::stdio_sync_filebuf 36289 >::file()(GLIBCXX_3.4.2) [LSB] 36290 36291 An LSB conforming implementation shall provide the generic data 36292 interfaces for Class __gnu_cxx::stdio_sync_filebuf > specified in Table 16-55, with the 36294 full mandatory functionality as described in the referenced 36295 underlying specification. 36296 36297 Table 16-55. libstdcxx - Class 36298 __gnu_cxx::stdio_sync_filebuf > Data 36299 Interfaces 36300 typeinfo for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36302 typeinfo name for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36304 vtable for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36306 __________________________________________________________ 36307 36308 16.1.19. Class __gnu_cxx::stdio_sync_filebuf > 36309 __________________________________________________________ 36310 36311 16.1.19.1. Class data for __gnu_cxx::stdio_sync_filebuf > 36312 36313 The virtual table for the 36314 __gnu_cxx::stdio_sync_filebuf > class is described by Table 16-56 36316 36317 Table 16-56. Primary vtable for 36318 __gnu_cxx::stdio_sync_filebuf > 36319 Base Offset 0 36320 Virtual Base Offset 0 36321 RTTI typeinfo for __gnu_cxx::stdio_sync_filebuf > 36323 vfunc[0]: __gnu_cxx::stdio_sync_filebuf >::~stdio_sync_filebuf() 36325 vfunc[1]: __gnu_cxx::stdio_sync_filebuf >::~stdio_sync_filebuf() 36327 vfunc[2]: basic_streambuf 36328 >::imbue(locale const&) 36329 vfunc[3]: See architecture specific part. 36330 vfunc[4]: See architecture specific part. 36331 vfunc[5]: __gnu_cxx::stdio_sync_filebuf >::seekpos(fpos<__mbstate_t>, 36333 _Ios_Openmode) 36334 vfunc[6]: __gnu_cxx::stdio_sync_filebuf >::sync() 36336 vfunc[7]: basic_streambuf 36337 >::showmanyc() 36338 vfunc[8]: See architecture specific part. 36339 vfunc[9]: __gnu_cxx::stdio_sync_filebuf >::underflow() 36341 vfunc[10]: __gnu_cxx::stdio_sync_filebuf >::uflow() 36343 vfunc[11]: __gnu_cxx::stdio_sync_filebuf >::pbackfail(unsigned int) 36345 vfunc[12]: See architecture specific part. 36346 vfunc[13]: __gnu_cxx::stdio_sync_filebuf >::overflow(unsigned int) 36348 __________________________________________________________ 36349 36350 16.1.19.2. Interfaces for Class __gnu_cxx::stdio_sync_filebuf > 36351 36352 An LSB conforming implementation shall provide the generic 36353 methods for Class __gnu_cxx::stdio_sync_filebuf > specified in Table 16-57, with the 36355 full mandatory functionality as described in the referenced 36356 underlying specification. 36357 36358 Table 16-57. libstdcxx - Class 36359 __gnu_cxx::stdio_sync_filebuf > 36360 Function Interfaces 36361 __gnu_cxx::stdio_sync_filebuf 36362 >::file()(GLIBCXX_3.4.2) [LSB] 36363 36364 An LSB conforming implementation shall provide the generic data 36365 interfaces for Class __gnu_cxx::stdio_sync_filebuf > specified in Table 16-58, with the 36367 full mandatory functionality as described in the referenced 36368 underlying specification. 36369 36370 Table 16-58. libstdcxx - Class 36371 __gnu_cxx::stdio_sync_filebuf > 36372 Data Interfaces 36373 typeinfo for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36375 typeinfo name for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36377 vtable for __gnu_cxx::stdio_sync_filebuf >(GLIBCXX_3.4) [CXXABI-1.86] 36379 __________________________________________________________ 36380 36381 16.1.20. Class exception 36382 __________________________________________________________ 36383 36384 16.1.20.1. Class data for exception 36385 36386 The virtual table for the std::exception class is described by 36387 Table 16-59 36388 36389 Table 16-59. Primary vtable for exception 36390 Base Offset 0 36391 Virtual Base Offset 0 36392 RTTI typeinfo for exception 36393 vfunc[0]: exception::~exception() 36394 vfunc[1]: exception::~exception() 36395 vfunc[2]: exception::what() const 36396 36397 The Run Time Type Information for the std::exception class is 36398 described by Table 16-60 36399 36400 Table 16-60. typeinfo for exception 36401 Base Vtable vtable for __cxxabiv1::__class_type_info 36402 Name typeinfo name for exception 36403 __________________________________________________________ 36404 36405 16.1.20.2. Interfaces for Class exception 36406 36407 An LSB conforming implementation shall provide the generic 36408 methods for Class std::exception specified in Table 16-61, with 36409 the full mandatory functionality as described in the referenced 36410 underlying specification. 36411 36412 Table 16-61. libstdcxx - Class exception Function Interfaces 36413 exception::what() const(GLIBCXX_3.4) [ISOCXX] 36414 exception::~exception()(GLIBCXX_3.4) [ISOCXX] 36415 exception::~exception()(GLIBCXX_3.4) [ISOCXX] 36416 exception::~exception()(GLIBCXX_3.4) [ISOCXX] 36417 36418 An LSB conforming implementation shall provide the generic data 36419 interfaces for Class std::exception specified in Table 16-62, 36420 with the full mandatory functionality as described in the 36421 referenced underlying specification. 36422 36423 Table 16-62. libstdcxx - Class exception Data Interfaces 36424 typeinfo for exception(GLIBCXX_3.4) [CXXABI-1.86] 36425 typeinfo name for exception(GLIBCXX_3.4) [CXXABI-1.86] 36426 vtable for exception(GLIBCXX_3.4) [CXXABI-1.86] 36427 __________________________________________________________ 36428 36429 16.1.21. Class bad_typeid 36430 __________________________________________________________ 36431 36432 16.1.21.1. Class data for bad_typeid 36433 36434 The virtual table for the std::bad_typeid class is described by 36435 Table 16-63 36436 36437 Table 16-63. Primary vtable for bad_typeid 36438 Base Offset 0 36439 Virtual Base Offset 0 36440 RTTI typeinfo for bad_typeid 36441 vfunc[0]: bad_typeid::~bad_typeid() 36442 vfunc[1]: bad_typeid::~bad_typeid() 36443 vfunc[2]: exception::what() const 36444 36445 The Run Time Type Information for the std::bad_typeid class is 36446 described by Table 16-64 36447 36448 Table 16-64. typeinfo for bad_typeid 36449 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36450 Name typeinfo name for bad_typeid 36451 __________________________________________________________ 36452 36453 16.1.21.2. Interfaces for Class bad_typeid 36454 36455 An LSB conforming implementation shall provide the generic 36456 methods for Class std::bad_typeid specified in Table 16-65, 36457 with the full mandatory functionality as described in the 36458 referenced underlying specification. 36459 36460 Table 16-65. libstdcxx - Class bad_typeid Function Interfaces 36461 bad_typeid::~bad_typeid()(GLIBCXX_3.4) [ISOCXX] 36462 bad_typeid::~bad_typeid()(GLIBCXX_3.4) [ISOCXX] 36463 bad_typeid::~bad_typeid()(GLIBCXX_3.4) [ISOCXX] 36464 36465 An LSB conforming implementation shall provide the generic data 36466 interfaces for Class std::bad_typeid specified in Table 16-66, 36467 with the full mandatory functionality as described in the 36468 referenced underlying specification. 36469 36470 Table 16-66. libstdcxx - Class bad_typeid Data Interfaces 36471 typeinfo for bad_typeid(GLIBCXX_3.4) [CXXABI-1.86] 36472 typeinfo name for bad_typeid(GLIBCXX_3.4) [CXXABI-1.86] 36473 vtable for bad_typeid(GLIBCXX_3.4) [CXXABI-1.86] 36474 __________________________________________________________ 36475 36476 16.1.22. Class logic_error 36477 __________________________________________________________ 36478 36479 16.1.22.1. Class data for logic_error 36480 36481 The virtual table for the std::logic_error class is described 36482 by Table 16-67 36483 36484 Table 16-67. Primary vtable for logic_error 36485 Base Offset 0 36486 Virtual Base Offset 0 36487 RTTI typeinfo for logic_error 36488 vfunc[0]: logic_error::~logic_error() 36489 vfunc[1]: logic_error::~logic_error() 36490 vfunc[2]: logic_error::what() const 36491 36492 The Run Time Type Information for the std::logic_error class is 36493 described by Table 16-68 36494 36495 Table 16-68. typeinfo for logic_error 36496 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36497 Name typeinfo name for logic_error 36498 __________________________________________________________ 36499 36500 16.1.22.2. Interfaces for Class logic_error 36501 36502 An LSB conforming implementation shall provide the generic 36503 methods for Class std::logic_error specified in Table 16-69, 36504 with the full mandatory functionality as described in the 36505 referenced underlying specification. 36506 36507 Table 16-69. libstdcxx - Class logic_error Function Interfaces 36508 logic_error::what() const(GLIBCXX_3.4) [ISOCXX] 36509 logic_error::logic_error(basic_string, 36510 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 36511 logic_error::logic_error(basic_string, 36512 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 36513 logic_error::~logic_error()(GLIBCXX_3.4) [ISOCXX] 36514 logic_error::~logic_error()(GLIBCXX_3.4) [ISOCXX] 36515 logic_error::~logic_error()(GLIBCXX_3.4) [ISOCXX] 36516 36517 An LSB conforming implementation shall provide the generic data 36518 interfaces for Class std::logic_error specified in Table 16-70, 36519 with the full mandatory functionality as described in the 36520 referenced underlying specification. 36521 36522 Table 16-70. libstdcxx - Class logic_error Data Interfaces 36523 typeinfo for logic_error(GLIBCXX_3.4) [CXXABI-1.86] 36524 typeinfo name for logic_error(GLIBCXX_3.4) [CXXABI-1.86] 36525 vtable for logic_error(GLIBCXX_3.4) [CXXABI-1.86] 36526 __________________________________________________________ 36527 36528 16.1.23. Class range_error 36529 __________________________________________________________ 36530 36531 16.1.23.1. Class data for range_error 36532 36533 The virtual table for the std::range_error class is described 36534 by Table 16-71 36535 36536 Table 16-71. Primary vtable for range_error 36537 Base Offset 0 36538 Virtual Base Offset 0 36539 RTTI typeinfo for range_error 36540 vfunc[0]: range_error::~range_error() 36541 vfunc[1]: range_error::~range_error() 36542 vfunc[2]: runtime_error::what() const 36543 36544 The Run Time Type Information for the std::range_error class is 36545 described by Table 16-72 36546 36547 Table 16-72. typeinfo for range_error 36548 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36549 Name typeinfo name for range_error 36550 __________________________________________________________ 36551 36552 16.1.23.2. Interfaces for Class range_error 36553 36554 An LSB conforming implementation shall provide the generic 36555 methods for Class std::range_error specified in Table 16-73, 36556 with the full mandatory functionality as described in the 36557 referenced underlying specification. 36558 36559 Table 16-73. libstdcxx - Class range_error Function Interfaces 36560 range_error::range_error(basic_string, 36561 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 36562 range_error::range_error(basic_string, 36563 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 36564 range_error::~range_error()(GLIBCXX_3.4) [ISOCXX] 36565 range_error::~range_error()(GLIBCXX_3.4) [ISOCXX] 36566 36567 An LSB conforming implementation shall provide the generic data 36568 interfaces for Class std::range_error specified in Table 16-74, 36569 with the full mandatory functionality as described in the 36570 referenced underlying specification. 36571 36572 Table 16-74. libstdcxx - Class range_error Data Interfaces 36573 typeinfo for range_error(GLIBCXX_3.4) [CXXABI-1.86] 36574 typeinfo name for range_error(GLIBCXX_3.4) [CXXABI-1.86] 36575 vtable for range_error(GLIBCXX_3.4) [CXXABI-1.86] 36576 __________________________________________________________ 36577 36578 16.1.24. Class domain_error 36579 __________________________________________________________ 36580 36581 16.1.24.1. Class data for domain_error 36582 36583 The virtual table for the std::domain_error class is described 36584 by Table 16-75 36585 36586 Table 16-75. Primary vtable for domain_error 36587 Base Offset 0 36588 Virtual Base Offset 0 36589 RTTI typeinfo for domain_error 36590 vfunc[0]: domain_error::~domain_error() 36591 vfunc[1]: domain_error::~domain_error() 36592 vfunc[2]: logic_error::what() const 36593 36594 The Run Time Type Information for the std::domain_error class 36595 is described by Table 16-76 36596 36597 Table 16-76. typeinfo for domain_error 36598 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36599 Name typeinfo name for domain_error 36600 __________________________________________________________ 36601 36602 16.1.24.2. Interfaces for Class domain_error 36603 36604 An LSB conforming implementation shall provide the generic 36605 methods for Class std::domain_error specified in Table 16-77, 36606 with the full mandatory functionality as described in the 36607 referenced underlying specification. 36608 36609 Table 16-77. libstdcxx - Class domain_error Function Interfaces 36610 domain_error::domain_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36612 [ISOCXX] 36613 domain_error::domain_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36615 [ISOCXX] 36616 domain_error::~domain_error()(GLIBCXX_3.4) [ISOCXX] 36617 domain_error::~domain_error()(GLIBCXX_3.4) [ISOCXX] 36618 36619 An LSB conforming implementation shall provide the generic data 36620 interfaces for Class std::domain_error specified in Table 36621 16-78, with the full mandatory functionality as described in 36622 the referenced underlying specification. 36623 36624 Table 16-78. libstdcxx - Class domain_error Data Interfaces 36625 typeinfo for domain_error(GLIBCXX_3.4) [CXXABI-1.86] 36626 typeinfo name for domain_error(GLIBCXX_3.4) [CXXABI-1.86] 36627 vtable for domain_error(GLIBCXX_3.4) [CXXABI-1.86] 36628 __________________________________________________________ 36629 36630 16.1.25. Class length_error 36631 __________________________________________________________ 36632 36633 16.1.25.1. Class data for length_error 36634 36635 The virtual table for the std::length_error class is described 36636 by Table 16-79 36637 36638 Table 16-79. Primary vtable for length_error 36639 Base Offset 0 36640 Virtual Base Offset 0 36641 RTTI typeinfo for length_error 36642 vfunc[0]: length_error::~length_error() 36643 vfunc[1]: length_error::~length_error() 36644 vfunc[2]: logic_error::what() const 36645 36646 The Run Time Type Information for the std::length_error class 36647 is described by Table 16-80 36648 36649 Table 16-80. typeinfo for length_error 36650 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36651 Name typeinfo name for length_error 36652 __________________________________________________________ 36653 36654 16.1.25.2. Interfaces for Class length_error 36655 36656 An LSB conforming implementation shall provide the generic 36657 methods for Class std::length_error specified in Table 16-81, 36658 with the full mandatory functionality as described in the 36659 referenced underlying specification. 36660 36661 Table 16-81. libstdcxx - Class length_error Function Interfaces 36662 length_error::length_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36664 [ISOCXX] 36665 length_error::length_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36667 [ISOCXX] 36668 length_error::~length_error()(GLIBCXX_3.4) [ISOCXX] 36669 length_error::~length_error()(GLIBCXX_3.4) [ISOCXX] 36670 36671 An LSB conforming implementation shall provide the generic data 36672 interfaces for Class std::length_error specified in Table 36673 16-82, with the full mandatory functionality as described in 36674 the referenced underlying specification. 36675 36676 Table 16-82. libstdcxx - Class length_error Data Interfaces 36677 typeinfo for length_error(GLIBCXX_3.4) [CXXABI-1.86] 36678 typeinfo name for length_error(GLIBCXX_3.4) [CXXABI-1.86] 36679 vtable for length_error(GLIBCXX_3.4) [CXXABI-1.86] 36680 __________________________________________________________ 36681 36682 16.1.26. Class out_of_range 36683 __________________________________________________________ 36684 36685 16.1.26.1. Class data for out_of_range 36686 36687 The virtual table for the std::out_of_range class is described 36688 by Table 16-83 36689 36690 Table 16-83. Primary vtable for out_of_range 36691 Base Offset 0 36692 Virtual Base Offset 0 36693 RTTI typeinfo for out_of_range 36694 vfunc[0]: out_of_range::~out_of_range() 36695 vfunc[1]: out_of_range::~out_of_range() 36696 vfunc[2]: logic_error::what() const 36697 36698 The Run Time Type Information for the std::out_of_range class 36699 is described by Table 16-84 36700 36701 Table 16-84. typeinfo for out_of_range 36702 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36703 Name typeinfo name for out_of_range 36704 __________________________________________________________ 36705 36706 16.1.26.2. Interfaces for Class out_of_range 36707 36708 An LSB conforming implementation shall provide the generic 36709 methods for Class std::out_of_range specified in Table 16-85, 36710 with the full mandatory functionality as described in the 36711 referenced underlying specification. 36712 36713 Table 16-85. libstdcxx - Class out_of_range Function Interfaces 36714 out_of_range::out_of_range(basic_string, allocator > const&)(GLIBCXX_3.4) 36716 [ISOCXX] 36717 out_of_range::out_of_range(basic_string, allocator > const&)(GLIBCXX_3.4) 36719 [ISOCXX] 36720 out_of_range::~out_of_range()(GLIBCXX_3.4) [ISOCXX] 36721 out_of_range::~out_of_range()(GLIBCXX_3.4) [ISOCXX] 36722 36723 An LSB conforming implementation shall provide the generic data 36724 interfaces for Class std::out_of_range specified in Table 36725 16-86, with the full mandatory functionality as described in 36726 the referenced underlying specification. 36727 36728 Table 16-86. libstdcxx - Class out_of_range Data Interfaces 36729 typeinfo for out_of_range(GLIBCXX_3.4) [CXXABI-1.86] 36730 typeinfo name for out_of_range(GLIBCXX_3.4) [CXXABI-1.86] 36731 vtable for out_of_range(GLIBCXX_3.4) [CXXABI-1.86] 36732 __________________________________________________________ 36733 36734 16.1.27. Class bad_exception 36735 __________________________________________________________ 36736 36737 16.1.27.1. Class data for bad_exception 36738 36739 The virtual table for the std::bad_exception class is described 36740 by Table 16-87 36741 36742 Table 16-87. Primary vtable for bad_exception 36743 Base Offset 0 36744 Virtual Base Offset 0 36745 RTTI typeinfo for bad_exception 36746 vfunc[0]: bad_exception::~bad_exception() 36747 vfunc[1]: bad_exception::~bad_exception() 36748 vfunc[2]: exception::what() const 36749 36750 The Run Time Type Information for the std::bad_exception class 36751 is described by Table 16-88 36752 36753 Table 16-88. typeinfo for bad_exception 36754 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36755 Name typeinfo name for bad_exception 36756 __________________________________________________________ 36757 36758 16.1.27.2. Interfaces for Class bad_exception 36759 36760 An LSB conforming implementation shall provide the generic 36761 methods for Class std::bad_exception specified in Table 16-89, 36762 with the full mandatory functionality as described in the 36763 referenced underlying specification. 36764 36765 Table 16-89. libstdcxx - Class bad_exception Function 36766 Interfaces 36767 bad_exception::~bad_exception()(GLIBCXX_3.4) [ISOCXX] 36768 bad_exception::~bad_exception()(GLIBCXX_3.4) [ISOCXX] 36769 bad_exception::~bad_exception()(GLIBCXX_3.4) [ISOCXX] 36770 36771 An LSB conforming implementation shall provide the generic data 36772 interfaces for Class std::bad_exception specified in Table 36773 16-90, with the full mandatory functionality as described in 36774 the referenced underlying specification. 36775 36776 Table 16-90. libstdcxx - Class bad_exception Data Interfaces 36777 typeinfo for bad_exception(GLIBCXX_3.4) [CXXABI-1.86] 36778 typeinfo name for bad_exception(GLIBCXX_3.4) [CXXABI-1.86] 36779 vtable for bad_exception(GLIBCXX_3.4) [CXXABI-1.86] 36780 __________________________________________________________ 36781 36782 16.1.28. Class runtime_error 36783 __________________________________________________________ 36784 36785 16.1.28.1. Class data for runtime_error 36786 36787 The virtual table for the std::runtime_error class is described 36788 by Table 16-91 36789 36790 Table 16-91. Primary vtable for runtime_error 36791 Base Offset 0 36792 Virtual Base Offset 0 36793 RTTI typeinfo for runtime_error 36794 vfunc[0]: runtime_error::~runtime_error() 36795 vfunc[1]: runtime_error::~runtime_error() 36796 vfunc[2]: runtime_error::what() const 36797 36798 The Run Time Type Information for the std::runtime_error class 36799 is described by Table 16-92 36800 36801 Table 16-92. typeinfo for runtime_error 36802 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36803 Name typeinfo name for runtime_error 36804 __________________________________________________________ 36805 36806 16.1.28.2. Interfaces for Class runtime_error 36807 36808 An LSB conforming implementation shall provide the generic 36809 methods for Class std::runtime_error specified in Table 16-93, 36810 with the full mandatory functionality as described in the 36811 referenced underlying specification. 36812 36813 Table 16-93. libstdcxx - Class runtime_error Function 36814 Interfaces 36815 runtime_error::what() const(GLIBCXX_3.4) [ISOCXX] 36816 runtime_error::runtime_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36818 [ISOCXX] 36819 runtime_error::runtime_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36821 [ISOCXX] 36822 runtime_error::~runtime_error()(GLIBCXX_3.4) [ISOCXX] 36823 runtime_error::~runtime_error()(GLIBCXX_3.4) [ISOCXX] 36824 runtime_error::~runtime_error()(GLIBCXX_3.4) [ISOCXX] 36825 36826 An LSB conforming implementation shall provide the generic data 36827 interfaces for Class std::runtime_error specified in Table 36828 16-94, with the full mandatory functionality as described in 36829 the referenced underlying specification. 36830 36831 Table 16-94. libstdcxx - Class runtime_error Data Interfaces 36832 typeinfo for runtime_error(GLIBCXX_3.4) [CXXABI-1.86] 36833 typeinfo name for runtime_error(GLIBCXX_3.4) [CXXABI-1.86] 36834 vtable for runtime_error(GLIBCXX_3.4) [CXXABI-1.86] 36835 __________________________________________________________ 36836 36837 16.1.29. Class overflow_error 36838 __________________________________________________________ 36839 36840 16.1.29.1. Class data for overflow_error 36841 36842 The virtual table for the std::overflow_error class is 36843 described by Table 16-95 36844 36845 Table 16-95. Primary vtable for overflow_error 36846 Base Offset 0 36847 Virtual Base Offset 0 36848 RTTI typeinfo for overflow_error 36849 vfunc[0]: overflow_error::~overflow_error() 36850 vfunc[1]: overflow_error::~overflow_error() 36851 vfunc[2]: runtime_error::what() const 36852 36853 The Run Time Type Information for the std::overflow_error class 36854 is described by Table 16-96 36855 36856 Table 16-96. typeinfo for overflow_error 36857 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36858 Name typeinfo name for overflow_error 36859 __________________________________________________________ 36860 36861 16.1.29.2. Interfaces for Class overflow_error 36862 36863 An LSB conforming implementation shall provide the generic 36864 methods for Class std::overflow_error specified in Table 16-97, 36865 with the full mandatory functionality as described in the 36866 referenced underlying specification. 36867 36868 Table 16-97. libstdcxx - Class overflow_error Function 36869 Interfaces 36870 overflow_error::overflow_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36872 [ISOCXX] 36873 overflow_error::overflow_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36875 [ISOCXX] 36876 overflow_error::~overflow_error()(GLIBCXX_3.4) [ISOCXX] 36877 overflow_error::~overflow_error()(GLIBCXX_3.4) [ISOCXX] 36878 36879 An LSB conforming implementation shall provide the generic data 36880 interfaces for Class std::overflow_error specified in Table 36881 16-98, with the full mandatory functionality as described in 36882 the referenced underlying specification. 36883 36884 Table 16-98. libstdcxx - Class overflow_error Data Interfaces 36885 typeinfo for overflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36886 typeinfo name for overflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36887 vtable for overflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36888 __________________________________________________________ 36889 36890 16.1.30. Class underflow_error 36891 __________________________________________________________ 36892 36893 16.1.30.1. Class data for underflow_error 36894 36895 The virtual table for the std::underflow_error class is 36896 described by Table 16-99 36897 36898 Table 16-99. Primary vtable for underflow_error 36899 Base Offset 0 36900 Virtual Base Offset 0 36901 RTTI typeinfo for underflow_error 36902 vfunc[0]: underflow_error::~underflow_error() 36903 vfunc[1]: underflow_error::~underflow_error() 36904 vfunc[2]: runtime_error::what() const 36905 36906 The Run Time Type Information for the std::underflow_error 36907 class is described by Table 16-100 36908 36909 Table 16-100. typeinfo for underflow_error 36910 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36911 Name typeinfo name for underflow_error 36912 __________________________________________________________ 36913 36914 16.1.30.2. Interfaces for Class underflow_error 36915 36916 An LSB conforming implementation shall provide the generic 36917 methods for Class std::underflow_error specified in Table 36918 16-101, with the full mandatory functionality as described in 36919 the referenced underlying specification. 36920 36921 Table 16-101. libstdcxx - Class underflow_error Function 36922 Interfaces 36923 underflow_error::underflow_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36925 [ISOCXX] 36926 underflow_error::underflow_error(basic_string, allocator > const&)(GLIBCXX_3.4) 36928 [ISOCXX] 36929 underflow_error::~underflow_error()(GLIBCXX_3.4) [ISOCXX] 36930 underflow_error::~underflow_error()(GLIBCXX_3.4) [ISOCXX] 36931 36932 An LSB conforming implementation shall provide the generic data 36933 interfaces for Class std::underflow_error specified in Table 36934 16-102, with the full mandatory functionality as described in 36935 the referenced underlying specification. 36936 36937 Table 16-102. libstdcxx - Class underflow_error Data Interfaces 36938 typeinfo for underflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36939 typeinfo name for underflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36940 vtable for underflow_error(GLIBCXX_3.4) [CXXABI-1.86] 36941 __________________________________________________________ 36942 36943 16.1.31. Class invalid_argument 36944 __________________________________________________________ 36945 36946 16.1.31.1. Class data for invalid_argument 36947 36948 The virtual table for the std::invalid_argument class is 36949 described by Table 16-103 36950 36951 Table 16-103. Primary vtable for invalid_argument 36952 Base Offset 0 36953 Virtual Base Offset 0 36954 RTTI typeinfo for invalid_argument 36955 vfunc[0]: invalid_argument::~invalid_argument() 36956 vfunc[1]: invalid_argument::~invalid_argument() 36957 vfunc[2]: logic_error::what() const 36958 36959 The Run Time Type Information for the std::invalid_argument 36960 class is described by Table 16-104 36961 36962 Table 16-104. typeinfo for invalid_argument 36963 Base Vtable vtable for __cxxabiv1::__si_class_type_info 36964 Name typeinfo name for invalid_argument 36965 __________________________________________________________ 36966 36967 16.1.31.2. Interfaces for Class invalid_argument 36968 36969 An LSB conforming implementation shall provide the generic 36970 methods for Class std::invalid_argument specified in Table 36971 16-105, with the full mandatory functionality as described in 36972 the referenced underlying specification. 36973 36974 Table 16-105. libstdcxx - Class invalid_argument Function 36975 Interfaces 36976 invalid_argument::invalid_argument(basic_string, allocator > const&)(GLIBCXX_3.4) 36978 [ISOCXX] 36979 invalid_argument::invalid_argument(basic_string, allocator > const&)(GLIBCXX_3.4) 36981 [ISOCXX] 36982 invalid_argument::~invalid_argument()(GLIBCXX_3.4) [ISOCXX] 36983 invalid_argument::~invalid_argument()(GLIBCXX_3.4) [ISOCXX] 36984 36985 An LSB conforming implementation shall provide the generic data 36986 interfaces for Class std::invalid_argument specified in Table 36987 16-106, with the full mandatory functionality as described in 36988 the referenced underlying specification. 36989 36990 Table 16-106. libstdcxx - Class invalid_argument Data 36991 Interfaces 36992 typeinfo for invalid_argument(GLIBCXX_3.4) [CXXABI-1.86] 36993 typeinfo name for invalid_argument(GLIBCXX_3.4) [CXXABI-1.86] 36994 vtable for invalid_argument(GLIBCXX_3.4) [CXXABI-1.86] 36995 __________________________________________________________ 36996 36997 16.1.32. Class bad_cast 36998 __________________________________________________________ 36999 37000 16.1.32.1. Class data for bad_cast 37001 37002 The virtual table for the std::bad_cast class is described by 37003 Table 16-107 37004 37005 Table 16-107. Primary vtable for bad_cast 37006 Base Offset 0 37007 Virtual Base Offset 0 37008 RTTI typeinfo for bad_cast 37009 vfunc[0]: bad_cast::~bad_cast() 37010 vfunc[1]: bad_cast::~bad_cast() 37011 vfunc[2]: exception::what() const 37012 37013 The Run Time Type Information for the std::bad_cast class is 37014 described by Table 16-108 37015 37016 Table 16-108. typeinfo for bad_cast 37017 Base Vtable vtable for __cxxabiv1::__si_class_type_info 37018 Name typeinfo name for bad_cast 37019 __________________________________________________________ 37020 37021 16.1.32.2. Interfaces for Class bad_cast 37022 37023 An LSB conforming implementation shall provide the generic 37024 methods for Class std::bad_cast specified in Table 16-109, with 37025 the full mandatory functionality as described in the referenced 37026 underlying specification. 37027 37028 Table 16-109. libstdcxx - Class bad_cast Function Interfaces 37029 bad_cast::~bad_cast()(GLIBCXX_3.4) [ISOCXX] 37030 bad_cast::~bad_cast()(GLIBCXX_3.4) [ISOCXX] 37031 bad_cast::~bad_cast()(GLIBCXX_3.4) [ISOCXX] 37032 37033 An LSB conforming implementation shall provide the generic data 37034 interfaces for Class std::bad_cast specified in Table 16-110, 37035 with the full mandatory functionality as described in the 37036 referenced underlying specification. 37037 37038 Table 16-110. libstdcxx - Class bad_cast Data Interfaces 37039 typeinfo for bad_cast(GLIBCXX_3.4) [CXXABI-1.86] 37040 typeinfo name for bad_cast(GLIBCXX_3.4) [CXXABI-1.86] 37041 vtable for bad_cast(GLIBCXX_3.4) [CXXABI-1.86] 37042 __________________________________________________________ 37043 37044 16.1.33. Class bad_alloc 37045 __________________________________________________________ 37046 37047 16.1.33.1. Class data for bad_alloc 37048 37049 The virtual table for the std::bad_alloc class is described by 37050 Table 16-111 37051 37052 Table 16-111. Primary vtable for bad_alloc 37053 Base Offset 0 37054 Virtual Base Offset 0 37055 RTTI typeinfo for bad_alloc 37056 vfunc[0]: bad_alloc::~bad_alloc() 37057 vfunc[1]: bad_alloc::~bad_alloc() 37058 vfunc[2]: exception::what() const 37059 37060 The Run Time Type Information for the std::bad_alloc class is 37061 described by Table 16-112 37062 37063 Table 16-112. typeinfo for bad_alloc 37064 Base Vtable vtable for __cxxabiv1::__si_class_type_info 37065 Name typeinfo name for bad_alloc 37066 __________________________________________________________ 37067 37068 16.1.33.2. Interfaces for Class bad_alloc 37069 37070 An LSB conforming implementation shall provide the generic 37071 methods for Class std::bad_alloc specified in Table 16-113, 37072 with the full mandatory functionality as described in the 37073 referenced underlying specification. 37074 37075 Table 16-113. libstdcxx - Class bad_alloc Function Interfaces 37076 bad_alloc::~bad_alloc()(GLIBCXX_3.4) [ISOCXX] 37077 bad_alloc::~bad_alloc()(GLIBCXX_3.4) [ISOCXX] 37078 bad_alloc::~bad_alloc()(GLIBCXX_3.4) [ISOCXX] 37079 37080 An LSB conforming implementation shall provide the generic data 37081 interfaces for Class std::bad_alloc specified in Table 16-114, 37082 with the full mandatory functionality as described in the 37083 referenced underlying specification. 37084 37085 Table 16-114. libstdcxx - Class bad_alloc Data Interfaces 37086 typeinfo for bad_alloc(GLIBCXX_3.4) [CXXABI-1.86] 37087 typeinfo name for bad_alloc(GLIBCXX_3.4) [CXXABI-1.86] 37088 vtable for bad_alloc(GLIBCXX_3.4) [CXXABI-1.86] 37089 __________________________________________________________ 37090 37091 16.1.34. struct __numeric_limits_base 37092 __________________________________________________________ 37093 37094 16.1.34.1. Interfaces for struct __numeric_limits_base 37095 37096 No external methods are defined for libstdcxx - struct 37097 __numeric_limits_base in this part of the specification. See 37098 also the relevant architecture specific part of this 37099 specification. 37100 37101 An LSB conforming implementation shall provide the generic data 37102 interfaces for struct __numeric_limits_base specified in Table 37103 16-115, with the full mandatory functionality as described in 37104 the referenced underlying specification. 37105 37106 Table 16-115. libstdcxx - struct __numeric_limits_base Data 37107 Interfaces 37108 __numeric_limits_base::has_denorm(GLIBCXX_3.4) [ISOCXX] 37109 __numeric_limits_base::is_bounded(GLIBCXX_3.4) [ISOCXX] 37110 __numeric_limits_base::is_integer(GLIBCXX_3.4) [ISOCXX] 37111 __numeric_limits_base::round_style(GLIBCXX_3.4) [ISOCXX] 37112 __numeric_limits_base::has_infinity(GLIBCXX_3.4) [ISOCXX] 37113 __numeric_limits_base::max_exponent(GLIBCXX_3.4) [ISOCXX] 37114 __numeric_limits_base::min_exponent(GLIBCXX_3.4) [ISOCXX] 37115 __numeric_limits_base::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37116 __numeric_limits_base::is_specialized(GLIBCXX_3.4) [ISOCXX] 37117 __numeric_limits_base::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37118 __numeric_limits_base::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37119 __numeric_limits_base::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37120 __numeric_limits_base::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37121 __numeric_limits_base::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37122 __numeric_limits_base::radix(GLIBCXX_3.4) [ISOCXX] 37123 __numeric_limits_base::traps(GLIBCXX_3.4) [ISOCXX] 37124 __numeric_limits_base::digits(GLIBCXX_3.4) [ISOCXX] 37125 __numeric_limits_base::digits10(GLIBCXX_3.4) [ISOCXX] 37126 __numeric_limits_base::is_exact(GLIBCXX_3.4) [ISOCXX] 37127 __numeric_limits_base::is_iec559(GLIBCXX_3.4) [ISOCXX] 37128 __numeric_limits_base::is_modulo(GLIBCXX_3.4) [ISOCXX] 37129 __numeric_limits_base::is_signed(GLIBCXX_3.4) [ISOCXX] 37130 __________________________________________________________ 37131 37132 16.1.35. struct numeric_limits 37133 __________________________________________________________ 37134 37135 16.1.35.1. Interfaces for struct numeric_limits 37136 37137 No external methods are defined for libstdcxx - struct 37138 numeric_limits in this part of the specification. 37139 See also the relevant architecture specific part of this 37140 specification. 37141 37142 An LSB conforming implementation shall provide the generic data 37143 interfaces for struct numeric_limits specified in 37144 Table 16-116, with the full mandatory functionality as 37145 described in the referenced underlying specification. 37146 37147 Table 16-116. libstdcxx - struct numeric_limits 37148 Data Interfaces 37149 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37150 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37151 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37152 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37153 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37154 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37155 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37156 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37157 [ISOCXX] 37158 numeric_limits::is_specialized(GLIBCXX_3.4) 37159 [ISOCXX] 37160 numeric_limits::max_exponent10(GLIBCXX_3.4) 37161 [ISOCXX] 37162 numeric_limits::min_exponent10(GLIBCXX_3.4) 37163 [ISOCXX] 37164 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37165 [ISOCXX] 37166 numeric_limits::tinyness_before(GLIBCXX_3.4) 37167 [ISOCXX] 37168 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37169 [ISOCXX] 37170 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37171 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37172 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37173 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37174 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37175 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37176 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37177 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37178 __________________________________________________________ 37179 37180 16.1.36. struct numeric_limits 37181 __________________________________________________________ 37182 37183 16.1.36.1. Interfaces for struct numeric_limits 37184 37185 No external methods are defined for libstdcxx - struct 37186 numeric_limits in this part of the specification. 37187 See also the relevant architecture specific part of this 37188 specification. 37189 37190 An LSB conforming implementation shall provide the generic data 37191 interfaces for struct numeric_limits specified in 37192 Table 16-117, with the full mandatory functionality as 37193 described in the referenced underlying specification. 37194 37195 Table 16-117. libstdcxx - struct numeric_limits Data 37196 Interfaces 37197 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37198 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37199 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37200 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37201 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37202 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37203 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37204 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37205 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37206 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37207 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37208 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37209 [ISOCXX] 37210 numeric_limits::tinyness_before(GLIBCXX_3.4) 37211 [ISOCXX] 37212 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37213 [ISOCXX] 37214 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37215 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37216 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37217 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37218 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37219 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37220 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37221 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37222 __________________________________________________________ 37223 37224 16.1.37. struct numeric_limits 37225 __________________________________________________________ 37226 37227 16.1.37.1. Interfaces for struct numeric_limits 37228 37229 No external methods are defined for libstdcxx - struct 37230 numeric_limits in this part of the 37231 specification. See also the relevant architecture specific part 37232 of this specification. 37233 37234 An LSB conforming implementation shall provide the generic data 37235 interfaces for struct numeric_limits 37236 specified in Table 16-118, with the full mandatory 37237 functionality as described in the referenced underlying 37238 specification. 37239 37240 Table 16-118. libstdcxx - struct numeric_limits Data Interfaces 37242 numeric_limits::has_denorm(GLIBCXX_3.4) 37243 [ISOCXX] 37244 numeric_limits::is_bounded(GLIBCXX_3.4) 37245 [ISOCXX] 37246 numeric_limits::is_integer(GLIBCXX_3.4) 37247 [ISOCXX] 37248 numeric_limits::round_style(GLIBCXX_3.4) 37249 [ISOCXX] 37250 numeric_limits::has_infinity(GLIBCXX_3.4) 37251 [ISOCXX] 37252 numeric_limits::max_exponent(GLIBCXX_3.4) 37253 [ISOCXX] 37254 numeric_limits::min_exponent(GLIBCXX_3.4) 37255 [ISOCXX] 37256 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37257 [ISOCXX] 37258 numeric_limits::is_specialized(GLIBCXX_3.4) 37259 [ISOCXX] 37260 numeric_limits::max_exponent10(GLIBCXX_3.4) 37261 [ISOCXX] 37262 numeric_limits::min_exponent10(GLIBCXX_3.4) 37263 [ISOCXX] 37264 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37266 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37268 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37270 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37271 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37272 numeric_limits::digits(GLIBCXX_3.4) 37273 [ISOCXX] 37274 numeric_limits::digits10(GLIBCXX_3.4) 37275 [ISOCXX] 37276 numeric_limits::is_exact(GLIBCXX_3.4) 37277 [ISOCXX] 37278 numeric_limits::is_iec559(GLIBCXX_3.4) 37279 [ISOCXX] 37280 numeric_limits::is_modulo(GLIBCXX_3.4) 37281 [ISOCXX] 37282 numeric_limits::is_signed(GLIBCXX_3.4) 37283 [ISOCXX] 37284 __________________________________________________________ 37285 37286 16.1.38. struct numeric_limits 37287 __________________________________________________________ 37288 37289 16.1.38.1. Interfaces for struct numeric_limits 37290 37291 No external methods are defined for libstdcxx - struct 37292 numeric_limits in this part of the specification. See 37293 also the relevant architecture specific part of this 37294 specification. 37295 37296 An LSB conforming implementation shall provide the generic data 37297 interfaces for struct numeric_limits specified in Table 37298 16-119, with the full mandatory functionality as described in 37299 the referenced underlying specification. 37300 37301 Table 16-119. libstdcxx - struct numeric_limits Data 37302 Interfaces 37303 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37304 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37305 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37306 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37307 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37308 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37309 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37310 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37311 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37312 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37313 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37314 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37315 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37316 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37317 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37318 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37319 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37320 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37321 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37322 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37323 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37324 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37325 __________________________________________________________ 37326 37327 16.1.39. struct numeric_limits 37328 __________________________________________________________ 37329 37330 16.1.39.1. Interfaces for struct numeric_limits 37331 37332 No external methods are defined for libstdcxx - struct 37333 numeric_limits in this part of the specification. See 37334 also the relevant architecture specific part of this 37335 specification. 37336 37337 An LSB conforming implementation shall provide the generic data 37338 interfaces for struct numeric_limits specified in Table 37339 16-120, with the full mandatory functionality as described in 37340 the referenced underlying specification. 37341 37342 Table 16-120. libstdcxx - struct numeric_limits Data 37343 Interfaces 37344 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37345 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37346 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37347 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37348 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37349 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37350 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37351 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37352 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37353 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37354 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37355 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37356 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37357 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37358 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37359 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37360 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37361 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37362 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37363 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37364 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37365 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37366 __________________________________________________________ 37367 37368 16.1.40. struct numeric_limits 37369 __________________________________________________________ 37370 37371 16.1.40.1. Interfaces for struct numeric_limits 37372 37373 No external methods are defined for libstdcxx - struct 37374 numeric_limits in this part of the specification. See 37375 also the relevant architecture specific part of this 37376 specification. 37377 37378 An LSB conforming implementation shall provide the generic data 37379 interfaces for struct numeric_limits specified in Table 37380 16-121, with the full mandatory functionality as described in 37381 the referenced underlying specification. 37382 37383 Table 16-121. libstdcxx - struct numeric_limits Data 37384 Interfaces 37385 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37386 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37387 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37388 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37389 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37390 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37391 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37392 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37393 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37394 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37395 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37396 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37397 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37398 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37399 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37400 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37401 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37402 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37403 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37404 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37405 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37406 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37407 __________________________________________________________ 37408 37409 16.1.41. struct numeric_limits 37410 __________________________________________________________ 37411 37412 16.1.41.1. Interfaces for struct numeric_limits 37413 37414 No external methods are defined for libstdcxx - struct 37415 numeric_limits in this part of the 37416 specification. See also the relevant architecture specific part 37417 of this specification. 37418 37419 An LSB conforming implementation shall provide the generic data 37420 interfaces for struct numeric_limits specified 37421 in Table 16-122, with the full mandatory functionality as 37422 described in the referenced underlying specification. 37423 37424 Table 16-122. libstdcxx - struct numeric_limits 37425 Data Interfaces 37426 numeric_limits::has_denorm(GLIBCXX_3.4) 37427 [ISOCXX] 37428 numeric_limits::is_bounded(GLIBCXX_3.4) 37429 [ISOCXX] 37430 numeric_limits::is_integer(GLIBCXX_3.4) 37431 [ISOCXX] 37432 numeric_limits::round_style(GLIBCXX_3.4) 37433 [ISOCXX] 37434 numeric_limits::has_infinity(GLIBCXX_3.4) 37435 [ISOCXX] 37436 numeric_limits::max_exponent(GLIBCXX_3.4) 37437 [ISOCXX] 37438 numeric_limits::min_exponent(GLIBCXX_3.4) 37439 [ISOCXX] 37440 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37441 [ISOCXX] 37442 numeric_limits::is_specialized(GLIBCXX_3.4) 37443 [ISOCXX] 37444 numeric_limits::max_exponent10(GLIBCXX_3.4) 37445 [ISOCXX] 37446 numeric_limits::min_exponent10(GLIBCXX_3.4) 37447 [ISOCXX] 37448 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37449 [ISOCXX] 37450 numeric_limits::tinyness_before(GLIBCXX_3.4) 37451 [ISOCXX] 37452 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37453 [ISOCXX] 37454 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37455 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37456 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37457 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37458 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37459 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37460 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37461 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37462 __________________________________________________________ 37463 37464 16.1.42. struct numeric_limits 37465 __________________________________________________________ 37466 37467 16.1.42.1. Interfaces for struct numeric_limits 37468 37469 No external methods are defined for libstdcxx - struct 37470 numeric_limits in this part of the specification. See also 37471 the relevant architecture specific part of this specification. 37472 37473 An LSB conforming implementation shall provide the generic data 37474 interfaces for struct numeric_limits specified in Table 37475 16-123, with the full mandatory functionality as described in 37476 the referenced underlying specification. 37477 37478 Table 16-123. libstdcxx - struct numeric_limits Data 37479 Interfaces 37480 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37481 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37482 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37483 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37484 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37485 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37486 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37487 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37488 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37489 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37490 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37491 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37492 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37493 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37494 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37495 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37496 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37497 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37498 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37499 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37500 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37501 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37502 __________________________________________________________ 37503 37504 16.1.43. struct numeric_limits 37505 __________________________________________________________ 37506 37507 16.1.43.1. Interfaces for struct numeric_limits 37508 37509 No external methods are defined for libstdcxx - struct 37510 numeric_limits in this part of the specification. 37511 See also the relevant architecture specific part of this 37512 specification. 37513 37514 An LSB conforming implementation shall provide the generic data 37515 interfaces for struct numeric_limits specified in 37516 Table 16-124, with the full mandatory functionality as 37517 described in the referenced underlying specification. 37518 37519 Table 16-124. libstdcxx - struct numeric_limits 37520 Data Interfaces 37521 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37522 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37523 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37524 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37525 numeric_limits::has_infinity(GLIBCXX_3.4) 37526 [ISOCXX] 37527 numeric_limits::max_exponent(GLIBCXX_3.4) 37528 [ISOCXX] 37529 numeric_limits::min_exponent(GLIBCXX_3.4) 37530 [ISOCXX] 37531 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37532 [ISOCXX] 37533 numeric_limits::is_specialized(GLIBCXX_3.4) 37534 [ISOCXX] 37535 numeric_limits::max_exponent10(GLIBCXX_3.4) 37536 [ISOCXX] 37537 numeric_limits::min_exponent10(GLIBCXX_3.4) 37538 [ISOCXX] 37539 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37540 [ISOCXX] 37541 numeric_limits::tinyness_before(GLIBCXX_3.4) 37542 [ISOCXX] 37543 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37544 [ISOCXX] 37545 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37546 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37547 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37548 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37549 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37550 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37551 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37552 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37553 __________________________________________________________ 37554 37555 16.1.44. struct numeric_limits 37556 __________________________________________________________ 37557 37558 16.1.44.1. Interfaces for struct numeric_limits 37559 37560 No external methods are defined for libstdcxx - struct 37561 numeric_limits in this part of the specification. See 37562 also the relevant architecture specific part of this 37563 specification. 37564 37565 An LSB conforming implementation shall provide the generic data 37566 interfaces for struct numeric_limits specified in Table 37567 16-125, with the full mandatory functionality as described in 37568 the referenced underlying specification. 37569 37570 Table 16-125. libstdcxx - struct numeric_limits Data 37571 Interfaces 37572 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37573 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37574 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37575 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37576 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37577 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37578 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37579 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37580 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37581 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37582 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37583 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37584 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37585 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37586 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37587 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37588 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37589 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37590 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37591 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37592 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37593 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37594 __________________________________________________________ 37595 37596 16.1.45. struct numeric_limits 37597 __________________________________________________________ 37598 37599 16.1.45.1. Interfaces for struct numeric_limits 37600 37601 No external methods are defined for libstdcxx - struct 37602 numeric_limits in this part of the 37603 specification. See also the relevant architecture specific part 37604 of this specification. 37605 37606 An LSB conforming implementation shall provide the generic data 37607 interfaces for struct numeric_limits specified 37608 in Table 16-126, with the full mandatory functionality as 37609 described in the referenced underlying specification. 37610 37611 Table 16-126. libstdcxx - struct numeric_limits 37612 Data Interfaces 37613 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37614 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37615 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37616 numeric_limits::round_style(GLIBCXX_3.4) 37617 [ISOCXX] 37618 numeric_limits::has_infinity(GLIBCXX_3.4) 37619 [ISOCXX] 37620 numeric_limits::max_exponent(GLIBCXX_3.4) 37621 [ISOCXX] 37622 numeric_limits::min_exponent(GLIBCXX_3.4) 37623 [ISOCXX] 37624 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37625 [ISOCXX] 37626 numeric_limits::is_specialized(GLIBCXX_3.4) 37627 [ISOCXX] 37628 numeric_limits::max_exponent10(GLIBCXX_3.4) 37629 [ISOCXX] 37630 numeric_limits::min_exponent10(GLIBCXX_3.4) 37631 [ISOCXX] 37632 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37633 [ISOCXX] 37634 numeric_limits::tinyness_before(GLIBCXX_3.4) 37635 [ISOCXX] 37636 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37637 [ISOCXX] 37638 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37639 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37640 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37641 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37642 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37643 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37644 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37645 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37646 __________________________________________________________ 37647 37648 16.1.46. struct numeric_limits 37649 __________________________________________________________ 37650 37651 16.1.46.1. Interfaces for struct numeric_limits 37652 37653 No external methods are defined for libstdcxx - struct 37654 numeric_limits in this part of the specification. See 37655 also the relevant architecture specific part of this 37656 specification. 37657 37658 An LSB conforming implementation shall provide the generic data 37659 interfaces for struct numeric_limits specified in 37660 Table 16-127, with the full mandatory functionality as 37661 described in the referenced underlying specification. 37662 37663 Table 16-127. libstdcxx - struct numeric_limits Data 37664 Interfaces 37665 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37666 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37667 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37668 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37669 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37670 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37671 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37672 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37673 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37674 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37675 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37676 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37677 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37678 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37679 [ISOCXX] 37680 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37681 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37682 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37683 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37684 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37685 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37686 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37687 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37688 __________________________________________________________ 37689 37690 16.1.47. struct numeric_limits 37691 __________________________________________________________ 37692 37693 16.1.47.1. Interfaces for struct numeric_limits 37694 37695 No external methods are defined for libstdcxx - struct 37696 numeric_limits in this part of the 37697 specification. See also the relevant architecture specific part 37698 of this specification. 37699 37700 An LSB conforming implementation shall provide the generic data 37701 interfaces for struct numeric_limits specified 37702 in Table 16-128, with the full mandatory functionality as 37703 described in the referenced underlying specification. 37704 37705 Table 16-128. libstdcxx - struct numeric_limits 37706 Data Interfaces 37707 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37708 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37709 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37710 numeric_limits::round_style(GLIBCXX_3.4) 37711 [ISOCXX] 37712 numeric_limits::has_infinity(GLIBCXX_3.4) 37713 [ISOCXX] 37714 numeric_limits::max_exponent(GLIBCXX_3.4) 37715 [ISOCXX] 37716 numeric_limits::min_exponent(GLIBCXX_3.4) 37717 [ISOCXX] 37718 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37719 [ISOCXX] 37720 numeric_limits::is_specialized(GLIBCXX_3.4) 37721 [ISOCXX] 37722 numeric_limits::max_exponent10(GLIBCXX_3.4) 37723 [ISOCXX] 37724 numeric_limits::min_exponent10(GLIBCXX_3.4) 37725 [ISOCXX] 37726 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37727 [ISOCXX] 37728 numeric_limits::tinyness_before(GLIBCXX_3.4) 37729 [ISOCXX] 37730 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37731 [ISOCXX] 37732 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37733 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37734 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37735 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37736 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37737 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37738 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37739 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37740 __________________________________________________________ 37741 37742 16.1.48. struct numeric_limits 37743 __________________________________________________________ 37744 37745 16.1.48.1. Interfaces for struct numeric_limits 37746 37747 No external methods are defined for libstdcxx - struct 37748 numeric_limits in this part of the specification. 37749 See also the relevant architecture specific part of this 37750 specification. 37751 37752 An LSB conforming implementation shall provide the generic data 37753 interfaces for struct numeric_limits specified in 37754 Table 16-129, with the full mandatory functionality as 37755 described in the referenced underlying specification. 37756 37757 Table 16-129. libstdcxx - struct numeric_limits 37758 Data Interfaces 37759 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37760 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37761 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37762 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37763 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37764 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37765 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37766 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) 37767 [ISOCXX] 37768 numeric_limits::is_specialized(GLIBCXX_3.4) 37769 [ISOCXX] 37770 numeric_limits::max_exponent10(GLIBCXX_3.4) 37771 [ISOCXX] 37772 numeric_limits::min_exponent10(GLIBCXX_3.4) 37773 [ISOCXX] 37774 numeric_limits::has_denorm_loss(GLIBCXX_3.4) 37775 [ISOCXX] 37776 numeric_limits::tinyness_before(GLIBCXX_3.4) 37777 [ISOCXX] 37778 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) 37779 [ISOCXX] 37780 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37781 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37782 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37783 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37784 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37785 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37786 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37787 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37788 __________________________________________________________ 37789 37790 16.1.49. struct numeric_limits 37791 __________________________________________________________ 37792 37793 16.1.49.1. Interfaces for struct numeric_limits 37794 37795 No external methods are defined for libstdcxx - struct 37796 numeric_limits in this part of the specification. See 37797 also the relevant architecture specific part of this 37798 specification. 37799 37800 An LSB conforming implementation shall provide the generic data 37801 interfaces for struct numeric_limits specified in Table 37802 16-130, with the full mandatory functionality as described in 37803 the referenced underlying specification. 37804 37805 Table 16-130. libstdcxx - struct numeric_limits Data 37806 Interfaces 37807 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37808 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37809 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37810 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37811 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37812 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37813 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37814 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37815 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37816 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37817 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37818 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37819 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37820 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37821 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37822 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37823 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37824 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37825 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37826 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37827 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37828 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37829 __________________________________________________________ 37830 37831 16.1.50. struct numeric_limits 37832 __________________________________________________________ 37833 37834 16.1.50.1. Interfaces for struct numeric_limits 37835 37836 No external methods are defined for libstdcxx - struct 37837 numeric_limits in this part of the specification. See 37838 also the relevant architecture specific part of this 37839 specification. 37840 37841 An LSB conforming implementation shall provide the generic data 37842 interfaces for struct numeric_limits specified in Table 37843 16-131, with the full mandatory functionality as described in 37844 the referenced underlying specification. 37845 37846 Table 16-131. libstdcxx - struct numeric_limits Data 37847 Interfaces 37848 numeric_limits::has_denorm(GLIBCXX_3.4) [ISOCXX] 37849 numeric_limits::is_bounded(GLIBCXX_3.4) [ISOCXX] 37850 numeric_limits::is_integer(GLIBCXX_3.4) [ISOCXX] 37851 numeric_limits::round_style(GLIBCXX_3.4) [ISOCXX] 37852 numeric_limits::has_infinity(GLIBCXX_3.4) [ISOCXX] 37853 numeric_limits::max_exponent(GLIBCXX_3.4) [ISOCXX] 37854 numeric_limits::min_exponent(GLIBCXX_3.4) [ISOCXX] 37855 numeric_limits::has_quiet_NaN(GLIBCXX_3.4) [ISOCXX] 37856 numeric_limits::is_specialized(GLIBCXX_3.4) [ISOCXX] 37857 numeric_limits::max_exponent10(GLIBCXX_3.4) [ISOCXX] 37858 numeric_limits::min_exponent10(GLIBCXX_3.4) [ISOCXX] 37859 numeric_limits::has_denorm_loss(GLIBCXX_3.4) [ISOCXX] 37860 numeric_limits::tinyness_before(GLIBCXX_3.4) [ISOCXX] 37861 numeric_limits::has_signaling_NaN(GLIBCXX_3.4) [ISOCXX] 37862 numeric_limits::radix(GLIBCXX_3.4) [ISOCXX] 37863 numeric_limits::traps(GLIBCXX_3.4) [ISOCXX] 37864 numeric_limits::digits(GLIBCXX_3.4) [ISOCXX] 37865 numeric_limits::digits10(GLIBCXX_3.4) [ISOCXX] 37866 numeric_limits::is_exact(GLIBCXX_3.4) [ISOCXX] 37867 numeric_limits::is_iec559(GLIBCXX_3.4) [ISOCXX] 37868 numeric_limits::is_modulo(GLIBCXX_3.4) [ISOCXX] 37869 numeric_limits::is_signed(GLIBCXX_3.4) [ISOCXX] 37870 __________________________________________________________ 37871 37872 16.1.51. Class ctype_base 37873 __________________________________________________________ 37874 37875 16.1.51.1. Class data for ctype_base 37876 37877 The Run Time Type Information for the std::ctype_base class is 37878 described by Table 16-132 37879 37880 Table 16-132. typeinfo for ctype_base 37881 Base Vtable vtable for __cxxabiv1::__class_type_info 37882 Name typeinfo name for ctype_base 37883 __________________________________________________________ 37884 37885 16.1.51.2. Interfaces for Class ctype_base 37886 37887 No external methods are defined for libstdcxx - Class 37888 std::ctype_base in this part of the specification. See also the 37889 relevant architecture specific part of this specification. 37890 37891 An LSB conforming implementation shall provide the generic data 37892 interfaces for Class std::ctype_base specified in Table 16-133, 37893 with the full mandatory functionality as described in the 37894 referenced underlying specification. 37895 37896 Table 16-133. libstdcxx - Class ctype_base Data Interfaces 37897 ctype_base::alnum(GLIBCXX_3.4) [ISOCXX] 37898 ctype_base::alpha(GLIBCXX_3.4) [ISOCXX] 37899 ctype_base::cntrl(GLIBCXX_3.4) [ISOCXX] 37900 ctype_base::digit(GLIBCXX_3.4) [ISOCXX] 37901 ctype_base::graph(GLIBCXX_3.4) [ISOCXX] 37902 ctype_base::lower(GLIBCXX_3.4) [ISOCXX] 37903 ctype_base::print(GLIBCXX_3.4) [ISOCXX] 37904 ctype_base::punct(GLIBCXX_3.4) [ISOCXX] 37905 ctype_base::space(GLIBCXX_3.4) [ISOCXX] 37906 ctype_base::upper(GLIBCXX_3.4) [ISOCXX] 37907 ctype_base::xdigit(GLIBCXX_3.4) [ISOCXX] 37908 typeinfo for ctype_base(GLIBCXX_3.4) [CXXABI-1.86] 37909 typeinfo name for ctype_base(GLIBCXX_3.4) [CXXABI-1.86] 37910 __________________________________________________________ 37911 37912 16.1.52. Class __ctype_abstract_base 37913 __________________________________________________________ 37914 37915 16.1.52.1. Class data for __ctype_abstract_base 37916 37917 The virtual table for the std::__ctype_abstract_base 37918 class is described by Table 16-134 37919 37920 Table 16-134. Primary vtable for __ctype_abstract_base 37921 Base Offset 0 37922 Virtual Base Offset 0 37923 RTTI typeinfo for __ctype_abstract_base 37924 vfunc[0]: NULL or 37925 __ctype_abstract_base::~__ctype_abstract_base() 37926 vfunc[1]: NULL or 37927 __ctype_abstract_base::~__ctype_abstract_base() 37928 vfunc[2]: __cxa_pure_virtual 37929 vfunc[3]: __cxa_pure_virtual 37930 vfunc[4]: __cxa_pure_virtual 37931 vfunc[5]: __cxa_pure_virtual 37932 vfunc[6]: __cxa_pure_virtual 37933 vfunc[7]: __cxa_pure_virtual 37934 vfunc[8]: __cxa_pure_virtual 37935 vfunc[9]: __cxa_pure_virtual 37936 vfunc[10]: __cxa_pure_virtual 37937 vfunc[11]: __cxa_pure_virtual 37938 vfunc[12]: __cxa_pure_virtual 37939 vfunc[13]: __cxa_pure_virtual 37940 __________________________________________________________ 37941 37942 16.1.52.2. Interfaces for Class __ctype_abstract_base 37943 37944 No external methods are defined for libstdcxx - Class 37945 std::__ctype_abstract_base in this part of the 37946 specification. See also the relevant architecture specific part 37947 of this specification. 37948 37949 An LSB conforming implementation shall provide the generic data 37950 interfaces for Class std::__ctype_abstract_base specified 37951 in Table 16-135, with the full mandatory functionality as 37952 described in the referenced underlying specification. 37953 37954 Table 16-135. libstdcxx - Class __ctype_abstract_base 37955 Data Interfaces 37956 typeinfo for __ctype_abstract_base(GLIBCXX_3.4) 37957 [CXXABI-1.86] 37958 typeinfo name for __ctype_abstract_base(GLIBCXX_3.4) 37959 [CXXABI-1.86] 37960 vtable for __ctype_abstract_base(GLIBCXX_3.4) 37961 [CXXABI-1.86] 37962 __________________________________________________________ 37963 37964 16.1.53. Class __ctype_abstract_base 37965 __________________________________________________________ 37966 37967 16.1.53.1. Class data for __ctype_abstract_base 37968 37969 The virtual table for the std::__ctype_abstract_base 37970 class is described by Table 16-136 37971 37972 Table 16-136. Primary vtable for __ctype_abstract_base 37973 Base Offset 0 37974 Virtual Base Offset 0 37975 RTTI typeinfo for __ctype_abstract_base 37976 vfunc[0]: NULL or 37977 __ctype_abstract_base::~__ctype_abstract_base() 37978 vfunc[1]: NULL or 37979 __ctype_abstract_base::~__ctype_abstract_base() 37980 vfunc[2]: __cxa_pure_virtual 37981 vfunc[3]: __cxa_pure_virtual 37982 vfunc[4]: __cxa_pure_virtual 37983 vfunc[5]: __cxa_pure_virtual 37984 vfunc[6]: __cxa_pure_virtual 37985 vfunc[7]: __cxa_pure_virtual 37986 vfunc[8]: __cxa_pure_virtual 37987 vfunc[9]: __cxa_pure_virtual 37988 vfunc[10]: __cxa_pure_virtual 37989 vfunc[11]: __cxa_pure_virtual 37990 vfunc[12]: __cxa_pure_virtual 37991 vfunc[13]: __cxa_pure_virtual 37992 __________________________________________________________ 37993 37994 16.1.53.2. Interfaces for Class __ctype_abstract_base 37995 37996 No external methods are defined for libstdcxx - Class 37997 std::__ctype_abstract_base in this part of the 37998 specification. See also the relevant architecture specific part 37999 of this specification. 38000 38001 An LSB conforming implementation shall provide the generic data 38002 interfaces for Class std::__ctype_abstract_base 38003 specified in Table 16-137, with the full mandatory 38004 functionality as described in the referenced underlying 38005 specification. 38006 38007 Table 16-137. libstdcxx - Class __ctype_abstract_base 38008 Data Interfaces 38009 typeinfo for __ctype_abstract_base(GLIBCXX_3.4) 38010 [CXXABI-1.86] 38011 typeinfo name for __ctype_abstract_base(GLIBCXX_3.4) 38012 [CXXABI-1.86] 38013 vtable for __ctype_abstract_base(GLIBCXX_3.4) 38014 [CXXABI-1.86] 38015 __________________________________________________________ 38016 38017 16.1.54. Class ctype 38018 __________________________________________________________ 38019 38020 16.1.54.1. Class data for ctype 38021 38022 The virtual table for the std::ctype class is described 38023 by Table 16-138 38024 38025 Table 16-138. Primary vtable for ctype 38026 Base Offset 0 38027 Virtual Base Offset 0 38028 RTTI typeinfo for ctype 38029 vfunc[0]: ctype::~ctype() 38030 vfunc[1]: ctype::~ctype() 38031 vfunc[2]: ctype::do_toupper(char) const 38032 vfunc[3]: ctype::do_toupper(char*, char const*) const 38033 vfunc[4]: ctype::do_tolower(char) const 38034 vfunc[5]: ctype::do_tolower(char*, char const*) const 38035 vfunc[6]: ctype::do_widen(char) const 38036 vfunc[7]: ctype::do_widen(char const*, char const*, 38037 char*) const 38038 vfunc[8]: ctype::do_narrow(char, char) const 38039 vfunc[9]: ctype::do_narrow(char const*, char const*, 38040 char, char*) const 38041 __________________________________________________________ 38042 38043 16.1.54.2. Interfaces for Class ctype 38044 38045 An LSB conforming implementation shall provide the generic 38046 methods for Class std::ctype specified in Table 16-139, 38047 with the full mandatory functionality as described in the 38048 referenced underlying specification. 38049 38050 Table 16-139. libstdcxx - Class ctype Function Interfaces 38051 ctype::do_tolower(char*, char const*) const(GLIBCXX_3.4) 38052 [ISOCXX] 38053 ctype::do_tolower(char) const(GLIBCXX_3.4) [ISOCXX] 38054 ctype::do_toupper(char*, char const*) const(GLIBCXX_3.4) 38055 [ISOCXX] 38056 ctype::do_toupper(char) const(GLIBCXX_3.4) [ISOCXX] 38057 ctype::do_widen(char const*, char const*, char*) 38058 const(GLIBCXX_3.4) [ISOCXX] 38059 ctype::do_widen(char) const(GLIBCXX_3.4) [ISOCXX] 38060 ctype::do_narrow(char const*, char const*, char, char*) 38061 const(GLIBCXX_3.4) [ISOCXX] 38062 ctype::do_narrow(char, char) const(GLIBCXX_3.4) [ISOCXX] 38063 ctype::classic_table()(GLIBCXX_3.4) [ISOCXX] 38064 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38065 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38066 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38067 bool has_facet >(locale const&)(GLIBCXX_3.4) 38068 [ISOCXX] 38069 38070 An LSB conforming implementation shall provide the generic data 38071 interfaces for Class std::ctype specified in Table 38072 16-140, with the full mandatory functionality as described in 38073 the referenced underlying specification. 38074 38075 Table 16-140. libstdcxx - Class ctype Data Interfaces 38076 ctype::table_size(GLIBCXX_3.4) [ISOCXX] 38077 ctype::id(GLIBCXX_3.4) [ISOCXX] 38078 typeinfo for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38079 typeinfo name for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38080 vtable for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38081 __________________________________________________________ 38082 38083 16.1.55. Class ctype 38084 __________________________________________________________ 38085 38086 16.1.55.1. Class data for ctype 38087 38088 The virtual table for the std::ctype class is 38089 described by Table 16-141 38090 38091 Table 16-141. Primary vtable for ctype 38092 Base Offset 0 38093 Virtual Base Offset 0 38094 RTTI typeinfo for ctype 38095 vfunc[0]: ctype::~ctype() 38096 vfunc[1]: ctype::~ctype() 38097 vfunc[2]: ctype::do_is(unsigned short, wchar_t) const 38098 vfunc[3]: ctype::do_is(wchar_t const*, wchar_t const*, 38099 unsigned short*) const 38100 vfunc[4]: ctype::do_scan_is(unsigned short, wchar_t 38101 const*, wchar_t const*) const 38102 vfunc[5]: ctype::do_scan_not(unsigned short, wchar_t 38103 const*, wchar_t const*) const 38104 vfunc[6]: ctype::do_toupper(wchar_t) const 38105 vfunc[7]: ctype::do_toupper(wchar_t*, wchar_t const*) 38106 const 38107 vfunc[8]: ctype::do_tolower(wchar_t) const 38108 vfunc[9]: ctype::do_tolower(wchar_t*, wchar_t const*) 38109 const 38110 vfunc[10]: ctype::do_widen(char) const 38111 vfunc[11]: ctype::do_widen(char const*, char const*, 38112 wchar_t*) const 38113 vfunc[12]: ctype::do_narrow(wchar_t, char) const 38114 vfunc[13]: ctype::do_narrow(wchar_t const*, wchar_t 38115 const*, char, char*) const 38116 38117 The Run Time Type Information for the std::ctype class 38118 is described by Table 16-142 38119 38120 Table 16-142. typeinfo for ctype 38121 Base Vtable vtable for __cxxabiv1::__si_class_type_info 38122 Name typeinfo name for ctype 38123 __________________________________________________________ 38124 38125 16.1.55.2. Interfaces for Class ctype 38126 38127 An LSB conforming implementation shall provide the generic 38128 methods for Class std::ctype specified in Table 38129 16-143, with the full mandatory functionality as described in 38130 the referenced underlying specification. 38131 38132 Table 16-143. libstdcxx - Class ctype Function 38133 Interfaces 38134 ctype::do_scan_is(unsigned short, wchar_t const*, 38135 wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 38136 ctype::do_tolower(wchar_t*, wchar_t const*) 38137 const(GLIBCXX_3.4) [ISOCXX] 38138 ctype::do_tolower(wchar_t) const(GLIBCXX_3.4) [ISOCXX] 38139 ctype::do_toupper(wchar_t*, wchar_t const*) 38140 const(GLIBCXX_3.4) [ISOCXX] 38141 ctype::do_toupper(wchar_t) const(GLIBCXX_3.4) [ISOCXX] 38142 ctype::do_scan_not(unsigned short, wchar_t const*, 38143 wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 38144 ctype::_M_convert_to_wmask(unsigned short) 38145 const(GLIBCXX_3.4) [ISOCXX] 38146 ctype::do_is(wchar_t const*, wchar_t const*, unsigned 38147 short*) const(GLIBCXX_3.4) [ISOCXX] 38148 ctype::do_is(unsigned short, wchar_t) 38149 const(GLIBCXX_3.4) [ISOCXX] 38150 ctype::do_widen(char const*, char const*, wchar_t*) 38151 const(GLIBCXX_3.4) [ISOCXX] 38152 ctype::do_widen(char) const(GLIBCXX_3.4) [ISOCXX] 38153 ctype::do_narrow(wchar_t const*, wchar_t const*, char, 38154 char*) const(GLIBCXX_3.4) [ISOCXX] 38155 ctype::do_narrow(wchar_t, char) const(GLIBCXX_3.4) 38156 [ISOCXX] 38157 ctype::_M_initialize_ctype()(GLIBCXX_3.4) [ISOCXX] 38158 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38159 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38160 ctype::~ctype()(GLIBCXX_3.4) [ISOCXX] 38161 38162 An LSB conforming implementation shall provide the generic data 38163 interfaces for Class std::ctype specified in Table 38164 16-144, with the full mandatory functionality as described in 38165 the referenced underlying specification. 38166 38167 Table 16-144. libstdcxx - Class ctype Data Interfaces 38168 ctype::id(GLIBCXX_3.4) [ISOCXX] 38169 typeinfo for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38170 typeinfo name for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38171 vtable for ctype(GLIBCXX_3.4) [CXXABI-1.86] 38172 __________________________________________________________ 38173 38174 16.1.56. Class ctype_byname 38175 __________________________________________________________ 38176 38177 16.1.56.1. Class data for ctype_byname 38178 38179 The virtual table for the std::ctype_byname class is 38180 described by Table 16-145 38181 38182 Table 16-145. Primary vtable for ctype_byname 38183 Base Offset 0 38184 Virtual Base Offset 0 38185 RTTI typeinfo for ctype_byname 38186 vfunc[0]: ctype_byname::~ctype_byname() 38187 vfunc[1]: ctype_byname::~ctype_byname() 38188 vfunc[2]: ctype::do_toupper(char) const 38189 vfunc[3]: ctype::do_toupper(char*, char const*) const 38190 vfunc[4]: ctype::do_tolower(char) const 38191 vfunc[5]: ctype::do_tolower(char*, char const*) const 38192 vfunc[6]: ctype::do_widen(char) const 38193 vfunc[7]: ctype::do_widen(char const*, char const*, 38194 char*) const 38195 vfunc[8]: ctype::do_narrow(char, char) const 38196 vfunc[9]: ctype::do_narrow(char const*, char const*, 38197 char, char*) const 38198 38199 The Run Time Type Information for the std::ctype_byname 38200 class is described by Table 16-146 38201 38202 Table 16-146. typeinfo for ctype_byname 38203 Base Vtable vtable for __cxxabiv1::__si_class_type_info 38204 Name typeinfo name for ctype_byname 38205 __________________________________________________________ 38206 38207 16.1.56.2. Interfaces for Class ctype_byname 38208 38209 An LSB conforming implementation shall provide the generic 38210 methods for Class std::ctype_byname specified in Table 38211 16-147, with the full mandatory functionality as described in 38212 the referenced underlying specification. 38213 38214 Table 16-147. libstdcxx - Class ctype_byname Function 38215 Interfaces 38216 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38217 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38218 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38219 38220 An LSB conforming implementation shall provide the generic data 38221 interfaces for Class std::ctype_byname specified in Table 38222 16-148, with the full mandatory functionality as described in 38223 the referenced underlying specification. 38224 38225 Table 16-148. libstdcxx - Class ctype_byname Data 38226 Interfaces 38227 typeinfo for ctype_byname(GLIBCXX_3.4) [CXXABI-1.86] 38228 typeinfo name for ctype_byname(GLIBCXX_3.4) [CXXABI-1.86] 38229 vtable for ctype_byname(GLIBCXX_3.4) [CXXABI-1.86] 38230 __________________________________________________________ 38231 38232 16.1.57. Class ctype_byname 38233 __________________________________________________________ 38234 38235 16.1.57.1. Class data for ctype_byname 38236 38237 The virtual table for the std::ctype_byname class is 38238 described by Table 16-149 38239 38240 Table 16-149. Primary vtable for ctype_byname 38241 Base Offset 0 38242 Virtual Base Offset 0 38243 RTTI typeinfo for ctype_byname 38244 vfunc[0]: ctype_byname::~ctype_byname() 38245 vfunc[1]: ctype_byname::~ctype_byname() 38246 vfunc[2]: ctype::do_is(unsigned short, wchar_t) const 38247 vfunc[3]: ctype::do_is(wchar_t const*, wchar_t const*, 38248 unsigned short*) const 38249 vfunc[4]: ctype::do_scan_is(unsigned short, wchar_t 38250 const*, wchar_t const*) const 38251 vfunc[5]: ctype::do_scan_not(unsigned short, wchar_t 38252 const*, wchar_t const*) const 38253 vfunc[6]: ctype::do_toupper(wchar_t) const 38254 vfunc[7]: ctype::do_toupper(wchar_t*, wchar_t const*) 38255 const 38256 vfunc[8]: ctype::do_tolower(wchar_t) const 38257 vfunc[9]: ctype::do_tolower(wchar_t*, wchar_t const*) 38258 const 38259 vfunc[10]: ctype::do_widen(char) const 38260 vfunc[11]: ctype::do_widen(char const*, char const*, 38261 wchar_t*) const 38262 vfunc[12]: ctype::do_narrow(wchar_t, char) const 38263 vfunc[13]: ctype::do_narrow(wchar_t const*, wchar_t 38264 const*, char, char*) const 38265 38266 The Run Time Type Information for the 38267 std::ctype_byname class is described by Table 16-150 38268 38269 Table 16-150. typeinfo for ctype_byname 38270 Base Vtable vtable for __cxxabiv1::__si_class_type_info 38271 Name typeinfo name for ctype_byname 38272 __________________________________________________________ 38273 38274 16.1.57.2. Interfaces for Class ctype_byname 38275 38276 An LSB conforming implementation shall provide the generic 38277 methods for Class std::ctype_byname specified in Table 38278 16-151, with the full mandatory functionality as described in 38279 the referenced underlying specification. 38280 38281 Table 16-151. libstdcxx - Class ctype_byname Function 38282 Interfaces 38283 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38284 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38285 ctype_byname::~ctype_byname()(GLIBCXX_3.4) [ISOCXX] 38286 38287 An LSB conforming implementation shall provide the generic data 38288 interfaces for Class std::ctype_byname specified in 38289 Table 16-152, with the full mandatory functionality as 38290 described in the referenced underlying specification. 38291 38292 Table 16-152. libstdcxx - Class ctype_byname Data 38293 Interfaces 38294 typeinfo for ctype_byname(GLIBCXX_3.4) [CXXABI-1.86] 38295 typeinfo name for ctype_byname(GLIBCXX_3.4) 38296 [CXXABI-1.86] 38297 vtable for ctype_byname(GLIBCXX_3.4) [CXXABI-1.86] 38298 __________________________________________________________ 38299 38300 16.1.58. Class basic_string, allocator> 38301 __________________________________________________________ 38302 38303 16.1.58.1. Interfaces for Class basic_string, allocator > 38304 38305 An LSB conforming implementation shall provide the generic 38306 methods for Class std::basic_string, std::allocator > specified in 38308 Table 16-153, with the full mandatory functionality as 38309 described in the referenced underlying specification. 38310 38311 Table 16-153. libstdcxx - Class basic_string, allocator > Function Interfaces 38313 basic_string, allocator 38314 >::_M_disjunct(char const*) const(GLIBCXX_3.4.5) [ISOCXX] 38315 basic_string, allocator 38316 >::get_allocator() const(GLIBCXX_3.4) [ISOCXX] 38317 basic_string, allocator >::end() 38318 const(GLIBCXX_3.4) [ISOCXX] 38319 basic_string, allocator 38320 >::_Rep::_M_is_leaked() const(GLIBCXX_3.4) [ISOCXX] 38321 basic_string, allocator 38322 >::_Rep::_M_is_shared() const(GLIBCXX_3.4) [ISOCXX] 38323 basic_string, allocator >::data() 38324 const(GLIBCXX_3.4) [ISOCXX] 38325 basic_string, allocator >::rend() 38326 const(GLIBCXX_3.4) [ISOCXX] 38327 basic_string, allocator >::size() 38328 const(GLIBCXX_3.4) [ISOCXX] 38329 basic_string, allocator 38330 >::begin() const(GLIBCXX_3.4) [ISOCXX] 38331 basic_string, allocator 38332 >::c_str() const(GLIBCXX_3.4) [ISOCXX] 38333 basic_string, allocator 38334 >::empty() const(GLIBCXX_3.4) [ISOCXX] 38335 basic_string, allocator 38336 >::_M_rep() const(GLIBCXX_3.4) [ISOCXX] 38337 basic_string, allocator 38338 >::length() const(GLIBCXX_3.4) [ISOCXX] 38339 basic_string, allocator 38340 >::rbegin() const(GLIBCXX_3.4) [ISOCXX] 38341 basic_string, allocator 38342 >::_M_data() const(GLIBCXX_3.4) [ISOCXX] 38343 basic_string, allocator 38344 >::_M_iend() const(GLIBCXX_3.4) [ISOCXX] 38345 basic_string, allocator 38346 >::compare(char const*) const(GLIBCXX_3.4) [ISOCXX] 38347 basic_string, allocator 38348 >::compare(basic_string, 38349 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 38350 basic_string, allocator 38351 >::capacity() const(GLIBCXX_3.4) [ISOCXX] 38352 basic_string, allocator 38353 >::max_size() const(GLIBCXX_3.4) [ISOCXX] 38354 basic_string, allocator 38355 >::_M_ibegin() const(GLIBCXX_3.4) [ISOCXX] 38356 basic_string, allocator 38357 >::_Alloc_hider::_Alloc_hider(char*, allocator 38358 const&)(GLIBCXX_3.4) [ISOCXX] 38359 basic_string, allocator 38360 >::_Alloc_hider::_Alloc_hider(char*, allocator 38361 const&)(GLIBCXX_3.4) [ISOCXX] 38362 basic_string, allocator 38363 >::_M_leak_hard()(GLIBCXX_3.4) [ISOCXX] 38364 basic_string, allocator 38365 >::_S_empty_rep()(GLIBCXX_3.4) [ISOCXX] 38366 basic_string, allocator 38367 >::_S_copy_chars(char*, __gnu_cxx::__normal_iterator, allocator > 38369 >, __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38371 basic_string, allocator 38372 >::_S_copy_chars(char*, __gnu_cxx::__normal_iterator, allocator > >, 38374 __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38376 basic_string, allocator 38377 >::_S_copy_chars(char*, char const*, char const*)(GLIBCXX_3.4) 38378 [ISOCXX] 38379 basic_string, allocator 38380 >::_S_copy_chars(char*, char*, char*)(GLIBCXX_3.4) [ISOCXX] 38381 basic_string, allocator 38382 >::end()(GLIBCXX_3.4) [ISOCXX] 38383 basic_string, allocator 38384 >::_Rep::_M_destroy(allocator const&)(GLIBCXX_3.4) 38385 [ISOCXX] 38386 basic_string, allocator 38387 >::_Rep::_M_dispose(allocator const&)(GLIBCXX_3.4) 38388 [ISOCXX] 38389 basic_string, allocator 38390 >::_Rep::_M_refcopy()(GLIBCXX_3.4) [ISOCXX] 38391 basic_string, allocator 38392 >::_Rep::_M_refdata()(GLIBCXX_3.4) [ISOCXX] 38393 basic_string, allocator 38394 >::_Rep::_S_empty_rep()(GLIBCXX_3.4) [ISOCXX] 38395 basic_string, allocator 38396 >::_Rep::_M_set_leaked()(GLIBCXX_3.4) [ISOCXX] 38397 basic_string, allocator 38398 >::_Rep::_M_set_sharable()(GLIBCXX_3.4) [ISOCXX] 38399 basic_string, allocator 38400 >::_Rep::_M_grab(allocator const&, allocator 38401 const&)(GLIBCXX_3.4) [ISOCXX] 38402 basic_string, allocator 38403 >::rend()(GLIBCXX_3.4) [ISOCXX] 38404 basic_string, allocator 38405 >::swap(basic_string, allocator 38406 >&)(GLIBCXX_3.4) [ISOCXX] 38407 basic_string, allocator 38408 >::begin()(GLIBCXX_3.4) [ISOCXX] 38409 basic_string, allocator 38410 >::clear()(GLIBCXX_3.4) [ISOCXX] 38411 basic_string, allocator 38412 >::erase(__gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38414 basic_string, allocator 38415 >::erase(__gnu_cxx::__normal_iterator, allocator > >, 38417 __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38419 basic_string, allocator 38420 >::append(char const*)(GLIBCXX_3.4) [ISOCXX] 38421 basic_string, allocator 38422 >::append(basic_string, allocator 38423 > const&)(GLIBCXX_3.4) [ISOCXX] 38424 basic_string, allocator 38425 >::assign(char const*)(GLIBCXX_3.4) [ISOCXX] 38426 basic_string, allocator 38427 >::assign(basic_string, allocator 38428 > const&)(GLIBCXX_3.4) [ISOCXX] 38429 basic_string, allocator 38430 >::insert(__gnu_cxx::__normal_iterator, allocator > >, 38432 char)(GLIBCXX_3.4) [ISOCXX] 38433 basic_string, allocator 38434 >::rbegin()(GLIBCXX_3.4) [ISOCXX] 38435 basic_string, allocator 38436 >::_M_data(char*)(GLIBCXX_3.4) [ISOCXX] 38437 basic_string, allocator 38438 >::_M_leak()(GLIBCXX_3.4) [ISOCXX] 38439 basic_string, allocator 38440 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38442 __gnu_cxx::__normal_iterator, allocator > >, 38444 __gnu_cxx::__normal_iterator, allocator > >, 38446 __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38448 basic_string, allocator 38449 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38451 __gnu_cxx::__normal_iterator, allocator > >, char 38453 const*)(GLIBCXX_3.4) [ISOCXX] 38454 basic_string, allocator 38455 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38457 __gnu_cxx::__normal_iterator, allocator > >, char const*, char 38459 const*)(GLIBCXX_3.4) [ISOCXX] 38460 basic_string, allocator 38461 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38463 __gnu_cxx::__normal_iterator, allocator > >, basic_string, allocator > const&)(GLIBCXX_3.4) 38466 [ISOCXX] 38467 basic_string, allocator 38468 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38470 __gnu_cxx::__normal_iterator, allocator > >, char*, 38472 char*)(GLIBCXX_3.4) [ISOCXX] 38473 basic_string, allocator 38474 >::replace(__gnu_cxx::__normal_iterator, allocator > >, 38476 __gnu_cxx::__normal_iterator, allocator > >, 38478 __gnu_cxx::__normal_iterator, allocator > >, 38480 __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) [ISOCXX] 38482 basic_string, allocator 38483 >::push_back(char)(GLIBCXX_3.4) [ISOCXX] 38484 basic_string, allocator 38485 >::basic_string(char const*, allocator 38486 const&)(GLIBCXX_3.4) [ISOCXX] 38487 basic_string, allocator 38488 >::basic_string(allocator const&)(GLIBCXX_3.4) [ISOCXX] 38489 basic_string, allocator 38490 >::basic_string(basic_string, 38491 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38492 basic_string, allocator 38493 >::basic_string()(GLIBCXX_3.4) [ISOCXX] 38494 basic_string, allocator 38495 >::basic_string<__gnu_cxx::__normal_iterator, allocator > > 38497 >(__gnu_cxx::__normal_iterator, allocator > >, 38499 __gnu_cxx::__normal_iterator, allocator > >, allocator 38501 const&)(GLIBCXX_3.4) [ISOCXX] 38502 basic_string, allocator 38503 >::basic_string(char const*, char const*, 38504 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38505 basic_string, allocator 38506 >::basic_string(char*, char*, allocator 38507 const&)(GLIBCXX_3.4) [ISOCXX] 38508 basic_string, allocator 38509 >::basic_string(char const*, allocator 38510 const&)(GLIBCXX_3.4) [ISOCXX] 38511 basic_string, allocator 38512 >::basic_string(allocator const&)(GLIBCXX_3.4) [ISOCXX] 38513 basic_string, allocator 38514 >::basic_string(basic_string, 38515 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38516 basic_string, allocator 38517 >::basic_string()(GLIBCXX_3.4) [ISOCXX] 38518 basic_string, allocator 38519 >::basic_string<__gnu_cxx::__normal_iterator, allocator > > 38521 >(__gnu_cxx::__normal_iterator, allocator > >, 38523 __gnu_cxx::__normal_iterator, allocator > >, allocator 38525 const&)(GLIBCXX_3.4) [ISOCXX] 38526 basic_string, allocator 38527 >::basic_string(char const*, char const*, 38528 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38529 basic_string, allocator 38530 >::basic_string(char*, char*, allocator 38531 const&)(GLIBCXX_3.4) [ISOCXX] 38532 basic_string, allocator 38533 >::~basic_string()(GLIBCXX_3.4) [ISOCXX] 38534 basic_string, allocator 38535 >::~basic_string()(GLIBCXX_3.4) [ISOCXX] 38536 basic_string, allocator 38537 >::operator=(char const*)(GLIBCXX_3.4) [ISOCXX] 38538 basic_string, allocator 38539 >::operator=(basic_string, 38540 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38541 basic_string, allocator 38542 >::operator=(char)(GLIBCXX_3.4) [ISOCXX] 38543 basic_string, allocator 38544 >::operator+=(char const*)(GLIBCXX_3.4) [ISOCXX] 38545 basic_string, allocator 38546 >::operator+=(basic_string, 38547 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38548 basic_string, allocator 38549 >::operator+=(char)(GLIBCXX_3.4) [ISOCXX] 38550 38551 An LSB conforming implementation shall provide the generic data 38552 interfaces for Class std::basic_string, std::allocator > specified in 38554 Table 16-154, with the full mandatory functionality as 38555 described in the referenced underlying specification. 38556 38557 Table 16-154. libstdcxx - Class basic_string, allocator > Data Interfaces 38559 basic_string, allocator 38560 >::_Rep::_S_max_size(GLIBCXX_3.4) [ISOCXX] 38561 basic_string, allocator 38562 >::_Rep::_S_terminal(GLIBCXX_3.4) [ISOCXX] 38563 basic_string, allocator 38564 >::_Rep::_S_empty_rep_storage(GLIBCXX_3.4) [ISOCXX] 38565 basic_string, allocator 38566 >::npos(GLIBCXX_3.4) [ISOCXX] 38567 __________________________________________________________ 38568 38569 16.1.59. Class basic_string, allocator > 38570 __________________________________________________________ 38571 38572 16.1.59.1. Interfaces for Class basic_string, allocator > 38573 38574 An LSB conforming implementation shall provide the generic 38575 methods for Class std::basic_string, std::allocator > specified 38577 in Table 16-155, with the full mandatory functionality as 38578 described in the referenced underlying specification. 38579 38580 Table 16-155. libstdcxx - Class basic_string, allocator > Function Interfaces 38582 basic_string, allocator 38583 >::_M_disjunct(wchar_t const*) const(GLIBCXX_3.4.5) [ISOCXX] 38584 basic_string, allocator 38585 >::get_allocator() const(GLIBCXX_3.4) [ISOCXX] 38586 basic_string, allocator 38587 >::end() const(GLIBCXX_3.4) [ISOCXX] 38588 basic_string, allocator 38589 >::_Rep::_M_is_leaked() const(GLIBCXX_3.4) [ISOCXX] 38590 basic_string, allocator 38591 >::_Rep::_M_is_shared() const(GLIBCXX_3.4) [ISOCXX] 38592 basic_string, allocator 38593 >::data() const(GLIBCXX_3.4) [ISOCXX] 38594 basic_string, allocator 38595 >::rend() const(GLIBCXX_3.4) [ISOCXX] 38596 basic_string, allocator 38597 >::size() const(GLIBCXX_3.4) [ISOCXX] 38598 basic_string, allocator 38599 >::begin() const(GLIBCXX_3.4) [ISOCXX] 38600 basic_string, allocator 38601 >::c_str() const(GLIBCXX_3.4) [ISOCXX] 38602 basic_string, allocator 38603 >::empty() const(GLIBCXX_3.4) [ISOCXX] 38604 basic_string, allocator 38605 >::_M_rep() const(GLIBCXX_3.4) [ISOCXX] 38606 basic_string, allocator 38607 >::length() const(GLIBCXX_3.4) [ISOCXX] 38608 basic_string, allocator 38609 >::rbegin() const(GLIBCXX_3.4) [ISOCXX] 38610 basic_string, allocator 38611 >::_M_data() const(GLIBCXX_3.4) [ISOCXX] 38612 basic_string, allocator 38613 >::_M_iend() const(GLIBCXX_3.4) [ISOCXX] 38614 basic_string, allocator 38615 >::compare(wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 38616 basic_string, allocator 38617 >::compare(basic_string, 38618 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 38619 basic_string, allocator 38620 >::capacity() const(GLIBCXX_3.4) [ISOCXX] 38621 basic_string, allocator 38622 >::max_size() const(GLIBCXX_3.4) [ISOCXX] 38623 basic_string, allocator 38624 >::_M_ibegin() const(GLIBCXX_3.4) [ISOCXX] 38625 basic_string, allocator 38626 >::_Alloc_hider::_Alloc_hider(wchar_t*, allocator 38627 const&)(GLIBCXX_3.4) [ISOCXX] 38628 basic_string, allocator 38629 >::_Alloc_hider::_Alloc_hider(wchar_t*, allocator 38630 const&)(GLIBCXX_3.4) [ISOCXX] 38631 basic_string, allocator 38632 >::_M_leak_hard()(GLIBCXX_3.4) [ISOCXX] 38633 basic_string, allocator 38634 >::_S_empty_rep()(GLIBCXX_3.4) [ISOCXX] 38635 basic_string, allocator 38636 >::_S_copy_chars(wchar_t*, __gnu_cxx::__normal_iterator, 38638 allocator > >, __gnu_cxx::__normal_iterator, 38640 allocator > >)(GLIBCXX_3.4) [ISOCXX] 38641 basic_string, allocator 38642 >::_S_copy_chars(wchar_t*, 38643 __gnu_cxx::__normal_iterator, allocator > >, 38645 __gnu_cxx::__normal_iterator, allocator > >)(GLIBCXX_3.4) 38647 [ISOCXX] 38648 basic_string, allocator 38649 >::_S_copy_chars(wchar_t*, wchar_t const*, wchar_t 38650 const*)(GLIBCXX_3.4) [ISOCXX] 38651 basic_string, allocator 38652 >::_S_copy_chars(wchar_t*, wchar_t*, wchar_t*)(GLIBCXX_3.4) 38653 [ISOCXX] 38654 basic_string, allocator 38655 >::end()(GLIBCXX_3.4) [ISOCXX] 38656 basic_string, allocator 38657 >::_Rep::_M_destroy(allocator const&)(GLIBCXX_3.4) 38658 [ISOCXX] 38659 basic_string, allocator 38660 >::_Rep::_M_dispose(allocator const&)(GLIBCXX_3.4) 38661 [ISOCXX] 38662 basic_string, allocator 38663 >::_Rep::_M_refcopy()(GLIBCXX_3.4) [ISOCXX] 38664 basic_string, allocator 38665 >::_Rep::_M_refdata()(GLIBCXX_3.4) [ISOCXX] 38666 basic_string, allocator 38667 >::_Rep::_S_empty_rep()(GLIBCXX_3.4) [ISOCXX] 38668 basic_string, allocator 38669 >::_Rep::_M_set_leaked()(GLIBCXX_3.4) [ISOCXX] 38670 basic_string, allocator 38671 >::_Rep::_M_set_sharable()(GLIBCXX_3.4) [ISOCXX] 38672 basic_string, allocator 38673 >::_Rep::_M_grab(allocator const&, allocator 38674 const&)(GLIBCXX_3.4) [ISOCXX] 38675 basic_string, allocator 38676 >::rend()(GLIBCXX_3.4) [ISOCXX] 38677 basic_string, allocator 38678 >::swap(basic_string, 38679 allocator >&)(GLIBCXX_3.4) [ISOCXX] 38680 basic_string, allocator 38681 >::begin()(GLIBCXX_3.4) [ISOCXX] 38682 basic_string, allocator 38683 >::clear()(GLIBCXX_3.4) [ISOCXX] 38684 basic_string, allocator 38685 >::erase(__gnu_cxx::__normal_iterator, allocator 38687 > >)(GLIBCXX_3.4) [ISOCXX] 38688 basic_string, allocator 38689 >::erase(__gnu_cxx::__normal_iterator, allocator 38691 > >, __gnu_cxx::__normal_iterator, allocator 38693 > >)(GLIBCXX_3.4) [ISOCXX] 38694 basic_string, allocator 38695 >::append(wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38696 basic_string, allocator 38697 >::append(basic_string, 38698 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38699 basic_string, allocator 38700 >::assign(wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38701 basic_string, allocator 38702 >::assign(basic_string, 38703 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38704 basic_string, allocator 38705 >::insert(__gnu_cxx::__normal_iterator, allocator 38707 > >, wchar_t)(GLIBCXX_3.4) [ISOCXX] 38708 basic_string, allocator 38709 >::rbegin()(GLIBCXX_3.4) [ISOCXX] 38710 basic_string, allocator 38711 >::_M_data(wchar_t*)(GLIBCXX_3.4) [ISOCXX] 38712 basic_string, allocator 38713 >::_M_leak()(GLIBCXX_3.4) [ISOCXX] 38714 basic_string, allocator 38715 >::replace(__gnu_cxx::__normal_iterator, allocator 38717 > >, __gnu_cxx::__normal_iterator, allocator 38719 > >, __gnu_cxx::__normal_iterator, allocator 38721 > >, __gnu_cxx::__normal_iterator, allocator 38723 > >)(GLIBCXX_3.4) [ISOCXX] 38724 basic_string, allocator 38725 >::replace(__gnu_cxx::__normal_iterator, allocator 38727 > >, __gnu_cxx::__normal_iterator, allocator 38729 > >, wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38730 basic_string, allocator 38731 >::replace(__gnu_cxx::__normal_iterator, allocator 38733 > >, __gnu_cxx::__normal_iterator, allocator 38735 > >, wchar_t const*, wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38736 basic_string, allocator 38737 >::replace(__gnu_cxx::__normal_iterator, allocator 38739 > >, __gnu_cxx::__normal_iterator, allocator 38741 > >, basic_string, 38742 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38743 basic_string, allocator 38744 >::replace(__gnu_cxx::__normal_iterator, allocator 38746 > >, __gnu_cxx::__normal_iterator, allocator 38748 > >, wchar_t*, wchar_t*)(GLIBCXX_3.4) [ISOCXX] 38749 basic_string, allocator 38750 >::replace(__gnu_cxx::__normal_iterator, allocator 38752 > >, __gnu_cxx::__normal_iterator, allocator 38754 > >, __gnu_cxx::__normal_iterator, allocator 38756 > >, __gnu_cxx::__normal_iterator, allocator 38758 > >)(GLIBCXX_3.4) [ISOCXX] 38759 basic_string, allocator 38760 >::push_back(wchar_t)(GLIBCXX_3.4) [ISOCXX] 38761 basic_string, allocator 38762 >::basic_string(wchar_t const*, allocator 38763 const&)(GLIBCXX_3.4) [ISOCXX] 38764 basic_string, allocator 38765 >::basic_string(allocator const&)(GLIBCXX_3.4) 38766 [ISOCXX] 38767 basic_string, allocator 38768 >::basic_string(basic_string, 38769 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38770 basic_string, allocator 38771 >::basic_string()(GLIBCXX_3.4) [ISOCXX] 38772 basic_string, allocator 38773 >::basic_string<__gnu_cxx::__normal_iterator, allocator 38775 > > >(__gnu_cxx::__normal_iterator, allocator 38777 > >, __gnu_cxx::__normal_iterator, allocator 38779 > >, allocator const&)(GLIBCXX_3.4) [ISOCXX] 38780 basic_string, allocator 38781 >::basic_string(wchar_t const*, wchar_t const*, 38782 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38783 basic_string, allocator 38784 >::basic_string(wchar_t*, wchar_t*, 38785 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38786 basic_string, allocator 38787 >::basic_string(wchar_t const*, allocator 38788 const&)(GLIBCXX_3.4) [ISOCXX] 38789 basic_string, allocator 38790 >::basic_string(allocator const&)(GLIBCXX_3.4) 38791 [ISOCXX] 38792 basic_string, allocator 38793 >::basic_string(basic_string, 38794 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38795 basic_string, allocator 38796 >::basic_string()(GLIBCXX_3.4) [ISOCXX] 38797 basic_string, allocator 38798 >::basic_string<__gnu_cxx::__normal_iterator, allocator 38800 > > >(__gnu_cxx::__normal_iterator, allocator 38802 > >, __gnu_cxx::__normal_iterator, allocator 38804 > >, allocator const&)(GLIBCXX_3.4) [ISOCXX] 38805 basic_string, allocator 38806 >::basic_string(wchar_t const*, wchar_t const*, 38807 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38808 basic_string, allocator 38809 >::basic_string(wchar_t*, wchar_t*, 38810 allocator const&)(GLIBCXX_3.4) [ISOCXX] 38811 basic_string, allocator 38812 >::~basic_string()(GLIBCXX_3.4) [ISOCXX] 38813 basic_string, allocator 38814 >::~basic_string()(GLIBCXX_3.4) [ISOCXX] 38815 basic_string, allocator 38816 >::operator=(wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38817 basic_string, allocator 38818 >::operator=(basic_string, 38819 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38820 basic_string, allocator 38821 >::operator=(wchar_t)(GLIBCXX_3.4) [ISOCXX] 38822 basic_string, allocator 38823 >::operator+=(wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 38824 basic_string, allocator 38825 >::operator+=(basic_string, 38826 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38827 basic_string, allocator 38828 >::operator+=(wchar_t)(GLIBCXX_3.4) [ISOCXX] 38829 basic_string, allocator > 38830 operator+, allocator >(char 38831 const*, basic_string, allocator > 38832 const&)(GLIBCXX_3.4) [ISOCXX] 38833 basic_string, allocator > 38834 operator+, allocator 38835 >(basic_string, allocator > 38836 const&, basic_string, allocator > 38837 const&)(GLIBCXX_3.4) [ISOCXX] 38838 basic_string, allocator > 38839 operator+, allocator >(char, 38840 basic_string, allocator > 38841 const&)(GLIBCXX_3.4) [ISOCXX] 38842 basic_string, allocator 38843 > operator+, allocator 38844 >(wchar_t const*, basic_string, 38845 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38846 basic_string, allocator 38847 > operator+, allocator 38848 >(basic_string, 38849 allocator > const&, basic_string, allocator > const&)(GLIBCXX_3.4) 38851 [ISOCXX] 38852 basic_string, allocator 38853 > operator+, allocator 38854 >(wchar_t, basic_string, 38855 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 38856 38857 An LSB conforming implementation shall provide the generic data 38858 interfaces for Class std::basic_string, std::allocator > specified 38860 in Table 16-156, with the full mandatory functionality as 38861 described in the referenced underlying specification. 38862 38863 Table 16-156. libstdcxx - Class basic_string, allocator > Data Interfaces 38865 basic_string, allocator 38866 >::_Rep::_S_max_size(GLIBCXX_3.4) [ISOCXX] 38867 basic_string, allocator 38868 >::_Rep::_S_terminal(GLIBCXX_3.4) [ISOCXX] 38869 basic_string, allocator 38870 >::_Rep::_S_empty_rep_storage(GLIBCXX_3.4) [ISOCXX] 38871 basic_string, allocator 38872 >::npos(GLIBCXX_3.4) [ISOCXX] 38873 __________________________________________________________ 38874 38875 16.1.60. Class basic_stringstream, allocator > 38876 __________________________________________________________ 38877 38878 16.1.60.1. Class data for basic_stringstream, allocator > 38879 38880 The virtual table for the std::basic_stringstream, std::allocator > class is 38882 described in the relevant architecture specific part of this 38883 specification. 38884 38885 The VTT for the std::basic_stringstream, std::allocator > class is 38887 described by Table 16-157 38888 38889 Table 16-157. VTT for basic_stringstream, allocator > 38891 VTT Name _ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE 38892 Number of Entries 10 38893 __________________________________________________________ 38894 38895 16.1.60.2. Interfaces for Class basic_stringstream, allocator > 38896 38897 An LSB conforming implementation shall provide the generic 38898 methods for Class std::basic_stringstream, std::allocator > specified in 38900 Table 16-158, with the full mandatory functionality as 38901 described in the referenced underlying specification. 38902 38903 Table 16-158. libstdcxx - Class basic_stringstream, allocator > Function Interfaces 38905 basic_stringstream, allocator 38906 >::str() const(GLIBCXX_3.4) [ISOCXX] 38907 basic_stringstream, allocator 38908 >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 38909 basic_stringstream, allocator 38910 >::str(basic_string, allocator > 38911 const&)(GLIBCXX_3.4) [ISOCXX] 38912 basic_stringstream, allocator 38913 >::basic_stringstream(basic_string, 38914 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38915 basic_stringstream, allocator 38916 >::basic_stringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38917 basic_stringstream, allocator 38918 >::basic_stringstream(basic_string, 38919 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38920 basic_stringstream, allocator 38921 >::basic_stringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38922 basic_stringstream, allocator 38923 >::~basic_stringstream()(GLIBCXX_3.4) [ISOCXX] 38924 basic_stringstream, allocator 38925 >::~basic_stringstream()(GLIBCXX_3.4) [ISOCXX] 38926 basic_stringstream, allocator 38927 >::~basic_stringstream()(GLIBCXX_3.4) [ISOCXX] 38928 38929 An LSB conforming implementation shall provide the generic data 38930 interfaces for Class std::basic_stringstream, std::allocator > specified in 38932 Table 16-159, with the full mandatory functionality as 38933 described in the referenced underlying specification. 38934 38935 Table 16-159. libstdcxx - Class basic_stringstream, allocator > Data Interfaces 38937 typeinfo for basic_stringstream, 38938 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 38939 typeinfo name for basic_stringstream, 38940 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 38941 VTT for basic_stringstream, 38942 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 38943 vtable for basic_stringstream, 38944 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 38945 __________________________________________________________ 38946 38947 16.1.61. Class basic_stringstream, allocator > 38948 __________________________________________________________ 38949 38950 16.1.61.1. Class data for basic_stringstream, allocator > 38951 38952 The virtual table for the std::basic_stringstream, std::allocator > class is 38954 described in the relevant architecture specific part of this 38955 specification. 38956 38957 The VTT for the std::basic_stringstream, std::allocator > class is 38959 described by Table 16-160 38960 38961 Table 16-160. VTT for basic_stringstream, allocator > 38963 VTT Name _ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE 38964 Number of Entries 10 38965 __________________________________________________________ 38966 38967 16.1.61.2. Interfaces for Class basic_stringstream, allocator > 38968 38969 An LSB conforming implementation shall provide the generic 38970 methods for Class std::basic_stringstream, std::allocator > specified 38972 in Table 16-161, with the full mandatory functionality as 38973 described in the referenced underlying specification. 38974 38975 Table 16-161. libstdcxx - Class basic_stringstream, allocator > Function Interfaces 38977 basic_stringstream, 38978 allocator >::str() const(GLIBCXX_3.4) [ISOCXX] 38979 basic_stringstream, 38980 allocator >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 38981 basic_stringstream, 38982 allocator >::str(basic_string, allocator > const&)(GLIBCXX_3.4) 38984 [ISOCXX] 38985 basic_stringstream, 38986 allocator >::basic_stringstream(basic_string, allocator > const&, 38988 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38989 basic_stringstream, 38990 allocator 38991 >::basic_stringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38992 basic_stringstream, 38993 allocator >::basic_stringstream(basic_string, allocator > const&, 38995 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38996 basic_stringstream, 38997 allocator 38998 >::basic_stringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 38999 basic_stringstream, 39000 allocator >::~basic_stringstream()(GLIBCXX_3.4) 39001 [ISOCXX] 39002 basic_stringstream, 39003 allocator >::~basic_stringstream()(GLIBCXX_3.4) 39004 [ISOCXX] 39005 basic_stringstream, 39006 allocator >::~basic_stringstream()(GLIBCXX_3.4) 39007 [ISOCXX] 39008 39009 An LSB conforming implementation shall provide the generic data 39010 interfaces for Class std::basic_stringstream, std::allocator > specified 39012 in Table 16-162, with the full mandatory functionality as 39013 described in the referenced underlying specification. 39014 39015 Table 16-162. libstdcxx - Class basic_stringstream, allocator > Data Interfaces 39017 typeinfo for basic_stringstream, 39018 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39019 typeinfo name for basic_stringstream, allocator >(GLIBCXX_3.4) 39021 [CXXABI-1.86] 39022 VTT for basic_stringstream, 39023 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39024 vtable for basic_stringstream, 39025 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39026 __________________________________________________________ 39027 39028 16.1.62. Class basic_istringstream, allocator > 39029 __________________________________________________________ 39030 39031 16.1.62.1. Class data for basic_istringstream, allocator > 39032 39033 The virtual table for the std::basic_istringstream, std::allocator > class is 39035 described in the relevant architecture specific part of this 39036 specification. 39037 39038 The VTT for the std::basic_istringstream, std::allocator > class is 39040 described by Table 16-163 39041 39042 Table 16-163. VTT for basic_istringstream, allocator > 39044 VTT Name _ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE 39045 Number of Entries 4 39046 __________________________________________________________ 39047 39048 16.1.62.2. Interfaces for Class basic_istringstream, allocator > 39049 39050 An LSB conforming implementation shall provide the generic 39051 methods for Class std::basic_istringstream, std::allocator > specified in 39053 Table 16-164, with the full mandatory functionality as 39054 described in the referenced underlying specification. 39055 39056 Table 16-164. libstdcxx - Class basic_istringstream, allocator > Function Interfaces 39058 basic_istringstream, allocator 39059 >::str() const(GLIBCXX_3.4) [ISOCXX] 39060 basic_istringstream, allocator 39061 >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 39062 basic_istringstream, allocator 39063 >::str(basic_string, allocator > 39064 const&)(GLIBCXX_3.4) [ISOCXX] 39065 basic_istringstream, allocator 39066 >::basic_istringstream(basic_string, 39067 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39068 basic_istringstream, allocator 39069 >::basic_istringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39070 basic_istringstream, allocator 39071 >::basic_istringstream(basic_string, 39072 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39073 basic_istringstream, allocator 39074 >::basic_istringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39075 basic_istringstream, allocator 39076 >::~basic_istringstream()(GLIBCXX_3.4) [ISOCXX] 39077 basic_istringstream, allocator 39078 >::~basic_istringstream()(GLIBCXX_3.4) [ISOCXX] 39079 basic_istringstream, allocator 39080 >::~basic_istringstream()(GLIBCXX_3.4) [ISOCXX] 39081 39082 An LSB conforming implementation shall provide the generic data 39083 interfaces for Class std::basic_istringstream, std::allocator > specified in 39085 Table 16-165, with the full mandatory functionality as 39086 described in the referenced underlying specification. 39087 39088 Table 16-165. libstdcxx - Class basic_istringstream, allocator > Data Interfaces 39090 typeinfo for basic_istringstream, 39091 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39092 typeinfo name for basic_istringstream, 39093 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39094 VTT for basic_istringstream, 39095 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39096 vtable for basic_istringstream, 39097 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39098 __________________________________________________________ 39099 39100 16.1.63. Class basic_istringstream, allocator > 39101 __________________________________________________________ 39102 39103 16.1.63.1. Class data for basic_istringstream, allocator > 39104 39105 The virtual table for the std::basic_istringstream, std::allocator > class is 39107 described in the relevant architecture specific part of this 39108 specification. 39109 39110 The VTT for the std::basic_istringstream, std::allocator > class is 39112 described by Table 16-166 39113 39114 Table 16-166. VTT for basic_istringstream, allocator > 39116 VTT Name _ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE 39117 Number of Entries 4 39118 __________________________________________________________ 39119 39120 16.1.63.2. Interfaces for Class basic_istringstream, allocator > 39121 39122 An LSB conforming implementation shall provide the generic 39123 methods for Class std::basic_istringstream, std::allocator > specified 39125 in Table 16-167, with the full mandatory functionality as 39126 described in the referenced underlying specification. 39127 39128 Table 16-167. libstdcxx - Class basic_istringstream, allocator > Function Interfaces 39130 basic_istringstream, 39131 allocator >::str() const(GLIBCXX_3.4) [ISOCXX] 39132 basic_istringstream, 39133 allocator >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 39134 basic_istringstream, 39135 allocator >::str(basic_string, allocator > const&)(GLIBCXX_3.4) 39137 [ISOCXX] 39138 basic_istringstream, 39139 allocator >::basic_istringstream(basic_string, allocator > const&, 39141 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39142 basic_istringstream, 39143 allocator 39144 >::basic_istringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39145 basic_istringstream, 39146 allocator >::basic_istringstream(basic_string, allocator > const&, 39148 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39149 basic_istringstream, 39150 allocator 39151 >::basic_istringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39152 basic_istringstream, 39153 allocator >::~basic_istringstream()(GLIBCXX_3.4) 39154 [ISOCXX] 39155 basic_istringstream, 39156 allocator >::~basic_istringstream()(GLIBCXX_3.4) 39157 [ISOCXX] 39158 basic_istringstream, 39159 allocator >::~basic_istringstream()(GLIBCXX_3.4) 39160 [ISOCXX] 39161 39162 An LSB conforming implementation shall provide the generic data 39163 interfaces for Class std::basic_istringstream, std::allocator > specified 39165 in Table 16-168, with the full mandatory functionality as 39166 described in the referenced underlying specification. 39167 39168 Table 16-168. libstdcxx - Class basic_istringstream, allocator > Data Interfaces 39170 typeinfo for basic_istringstream, 39171 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39172 typeinfo name for basic_istringstream, allocator >(GLIBCXX_3.4) 39174 [CXXABI-1.86] 39175 VTT for basic_istringstream, 39176 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39177 vtable for basic_istringstream, 39178 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39179 __________________________________________________________ 39180 39181 16.1.64. Class basic_ostringstream, allocator > 39182 __________________________________________________________ 39183 39184 16.1.64.1. Class data for basic_ostringstream, allocator > 39185 39186 The virtual table for the std::basic_ostringstream, std::allocator > class is 39188 described in the relevant architecture specific part of this 39189 specification. 39190 39191 The VTT for the std::basic_ostringstream, std::allocator > class is 39193 described by Table 16-169 39194 39195 Table 16-169. VTT for basic_ostringstream, allocator > 39197 VTT Name _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE 39198 Number of Entries 4 39199 __________________________________________________________ 39200 39201 16.1.64.2. Interfaces for Class basic_ostringstream, allocator > 39202 39203 An LSB conforming implementation shall provide the generic 39204 methods for Class std::basic_ostringstream, std::allocator > specified in 39206 Table 16-170, with the full mandatory functionality as 39207 described in the referenced underlying specification. 39208 39209 Table 16-170. libstdcxx - Class basic_ostringstream, allocator > Function Interfaces 39211 basic_ostringstream, allocator 39212 >::str() const(GLIBCXX_3.4) [ISOCXX] 39213 basic_ostringstream, allocator 39214 >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 39215 basic_ostringstream, allocator 39216 >::str(basic_string, allocator > 39217 const&)(GLIBCXX_3.4) [ISOCXX] 39218 basic_ostringstream, allocator 39219 >::basic_ostringstream(basic_string, 39220 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39221 basic_ostringstream, allocator 39222 >::basic_ostringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39223 basic_ostringstream, allocator 39224 >::basic_ostringstream(basic_string, 39225 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39226 basic_ostringstream, allocator 39227 >::basic_ostringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39228 basic_ostringstream, allocator 39229 >::~basic_ostringstream()(GLIBCXX_3.4) [ISOCXX] 39230 basic_ostringstream, allocator 39231 >::~basic_ostringstream()(GLIBCXX_3.4) [ISOCXX] 39232 basic_ostringstream, allocator 39233 >::~basic_ostringstream()(GLIBCXX_3.4) [ISOCXX] 39234 39235 An LSB conforming implementation shall provide the generic data 39236 interfaces for Class std::basic_ostringstream, std::allocator > specified in 39238 Table 16-171, with the full mandatory functionality as 39239 described in the referenced underlying specification. 39240 39241 Table 16-171. libstdcxx - Class basic_ostringstream, allocator > Data Interfaces 39243 typeinfo for basic_ostringstream, 39244 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39245 typeinfo name for basic_ostringstream, 39246 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39247 VTT for basic_ostringstream, 39248 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39249 vtable for basic_ostringstream, 39250 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39251 __________________________________________________________ 39252 39253 16.1.65. Class basic_ostringstream, allocator > 39254 __________________________________________________________ 39255 39256 16.1.65.1. Class data for basic_ostringstream, allocator > 39257 39258 The virtual table for the std::basic_ostringstream, std::allocator > class is 39260 described in the relevant architecture specific part of this 39261 specification. 39262 39263 The VTT for the std::basic_ostringstream, std::allocator > class is 39265 described by Table 16-172 39266 39267 Table 16-172. VTT for basic_ostringstream, allocator > 39269 VTT Name _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE 39270 Number of Entries 4 39271 __________________________________________________________ 39272 39273 16.1.65.2. Interfaces for Class basic_ostringstream, allocator > 39274 39275 An LSB conforming implementation shall provide the generic 39276 methods for Class std::basic_ostringstream, std::allocator > specified 39278 in Table 16-173, with the full mandatory functionality as 39279 described in the referenced underlying specification. 39280 39281 Table 16-173. libstdcxx - Class basic_ostringstream, allocator > Function Interfaces 39283 basic_ostringstream, 39284 allocator >::str() const(GLIBCXX_3.4) [ISOCXX] 39285 basic_ostringstream, 39286 allocator >::rdbuf() const(GLIBCXX_3.4) [ISOCXX] 39287 basic_ostringstream, 39288 allocator >::str(basic_string, allocator > const&)(GLIBCXX_3.4) 39290 [ISOCXX] 39291 basic_ostringstream, 39292 allocator >::basic_ostringstream(basic_string, allocator > const&, 39294 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39295 basic_ostringstream, 39296 allocator 39297 >::basic_ostringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39298 basic_ostringstream, 39299 allocator >::basic_ostringstream(basic_string, allocator > const&, 39301 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39302 basic_ostringstream, 39303 allocator 39304 >::basic_ostringstream(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39305 basic_ostringstream, 39306 allocator >::~basic_ostringstream()(GLIBCXX_3.4) 39307 [ISOCXX] 39308 basic_ostringstream, 39309 allocator >::~basic_ostringstream()(GLIBCXX_3.4) 39310 [ISOCXX] 39311 basic_ostringstream, 39312 allocator >::~basic_ostringstream()(GLIBCXX_3.4) 39313 [ISOCXX] 39314 39315 An LSB conforming implementation shall provide the generic data 39316 interfaces for Class std::basic_ostringstream, std::allocator > specified 39318 in Table 16-174, with the full mandatory functionality as 39319 described in the referenced underlying specification. 39320 39321 Table 16-174. libstdcxx - Class basic_ostringstream, allocator > Data Interfaces 39323 typeinfo for basic_ostringstream, 39324 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39325 typeinfo name for basic_ostringstream, allocator >(GLIBCXX_3.4) 39327 [CXXABI-1.86] 39328 VTT for basic_ostringstream, 39329 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39330 vtable for basic_ostringstream, 39331 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39332 __________________________________________________________ 39333 39334 16.1.66. Class basic_stringbuf, allocator > 39335 __________________________________________________________ 39336 39337 16.1.66.1. Class data for basic_stringbuf, allocator > 39338 39339 The virtual table for the std::basic_stringbuf, std::allocator > class is 39341 described by Table 16-175 39342 39343 Table 16-175. Primary vtable for basic_stringbuf, allocator > 39345 Base Offset 0 39346 Virtual Base Offset 0 39347 RTTI typeinfo for basic_stringbuf, 39348 allocator > 39349 vfunc[0]: basic_stringbuf, 39350 allocator >::~basic_stringbuf() 39351 vfunc[1]: basic_stringbuf, 39352 allocator >::~basic_stringbuf() 39353 vfunc[2]: basic_streambuf 39354 >::imbue(locale const&) 39355 vfunc[3]: See architecture specific part. 39356 vfunc[4]: See architecture specific part. 39357 vfunc[5]: basic_stringbuf, 39358 allocator >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 39359 vfunc[6]: basic_streambuf >::sync() 39360 vfunc[7]: basic_streambuf 39361 >::showmanyc() 39362 vfunc[8]: See architecture specific part. 39363 vfunc[9]: basic_stringbuf, 39364 allocator >::underflow() 39365 vfunc[10]: basic_streambuf >::uflow() 39366 vfunc[11]: basic_stringbuf, 39367 allocator >::pbackfail(int) 39368 vfunc[12]: See architecture specific part. 39369 vfunc[13]: basic_stringbuf, 39370 allocator >::overflow(int) 39371 39372 The Run Time Type Information for the 39373 std::basic_stringbuf, 39374 std::allocator > class is described by Table 16-176 39375 39376 Table 16-176. typeinfo for basic_stringbuf, allocator > 39378 Base Vtable vtable for __cxxabiv1::__si_class_type_info 39379 Name typeinfo name for basic_stringbuf, 39380 allocator > 39381 __________________________________________________________ 39382 39383 16.1.66.2. Interfaces for Class basic_stringbuf, allocator > 39384 39385 An LSB conforming implementation shall provide the generic 39386 methods for Class std::basic_stringbuf, std::allocator > specified in 39388 Table 16-177, with the full mandatory functionality as 39389 described in the referenced underlying specification. 39390 39391 Table 16-177. libstdcxx - Class basic_stringbuf, allocator > Function Interfaces 39393 basic_stringbuf, allocator 39394 >::str() const(GLIBCXX_3.4) [ISOCXX] 39395 basic_stringbuf, allocator 39396 >::_M_update_egptr()(GLIBCXX_3.4) [ISOCXX] 39397 basic_stringbuf, allocator 39398 >::_M_stringbuf_init(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39399 basic_stringbuf, allocator 39400 >::str(basic_string, allocator > 39401 const&)(GLIBCXX_3.4) [ISOCXX] 39402 basic_stringbuf, allocator 39403 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 39404 [ISOCXX] 39405 basic_stringbuf, allocator 39406 >::overflow(int)(GLIBCXX_3.4) [ISOCXX] 39407 basic_stringbuf, allocator 39408 >::pbackfail(int)(GLIBCXX_3.4) [ISOCXX] 39409 basic_stringbuf, allocator 39410 >::showmanyc()(GLIBCXX_3.4.6) [ISOCXX] 39411 basic_stringbuf, allocator 39412 >::underflow()(GLIBCXX_3.4) [ISOCXX] 39413 basic_stringbuf, allocator 39414 >::basic_stringbuf(basic_string, 39415 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39416 basic_stringbuf, allocator 39417 >::basic_stringbuf(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39418 basic_stringbuf, allocator 39419 >::basic_stringbuf(basic_string, 39420 allocator > const&, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39421 basic_stringbuf, allocator 39422 >::basic_stringbuf(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39423 basic_stringbuf, allocator 39424 >::~basic_stringbuf()(GLIBCXX_3.4) [ISOCXX] 39425 basic_stringbuf, allocator 39426 >::~basic_stringbuf()(GLIBCXX_3.4) [ISOCXX] 39427 39428 An LSB conforming implementation shall provide the generic data 39429 interfaces for Class std::basic_stringbuf, std::allocator > specified in 39431 Table 16-178, with the full mandatory functionality as 39432 described in the referenced underlying specification. 39433 39434 Table 16-178. libstdcxx - Class basic_stringbuf, allocator > Data Interfaces 39436 typeinfo for basic_stringbuf, 39437 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39438 typeinfo name for basic_stringbuf, 39439 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39440 vtable for basic_stringbuf, 39441 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39442 __________________________________________________________ 39443 39444 16.1.67. Class basic_stringbuf, allocator > 39445 __________________________________________________________ 39446 39447 16.1.67.1. Class data for basic_stringbuf, allocator > 39448 39449 The virtual table for the std::basic_stringbuf, std::allocator > class is 39451 described by Table 16-179 39452 39453 Table 16-179. Primary vtable for basic_stringbuf, allocator > 39455 Base Offset 0 39456 Virtual Base Offset 0 39457 RTTI typeinfo for basic_stringbuf, allocator > 39459 vfunc[0]: basic_stringbuf, 39460 allocator >::~basic_stringbuf() 39461 vfunc[1]: basic_stringbuf, 39462 allocator >::~basic_stringbuf() 39463 vfunc[2]: basic_streambuf 39464 >::imbue(locale const&) 39465 vfunc[3]: See architecture specific part. 39466 vfunc[4]: See architecture specific part. 39467 vfunc[5]: basic_stringbuf, 39468 allocator >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 39469 vfunc[6]: basic_streambuf 39470 >::sync() 39471 vfunc[7]: basic_streambuf 39472 >::showmanyc() 39473 vfunc[8]: See architecture specific part. 39474 vfunc[9]: basic_stringbuf, 39475 allocator >::underflow() 39476 vfunc[10]: basic_streambuf 39477 >::uflow() 39478 vfunc[11]: basic_stringbuf, 39479 allocator >::pbackfail(unsigned int) 39480 vfunc[12]: See architecture specific part. 39481 vfunc[13]: basic_stringbuf, 39482 allocator >::overflow(unsigned int) 39483 39484 The Run Time Type Information for the 39485 std::basic_stringbuf, 39486 std::allocator > class is described by Table 16-180 39487 39488 Table 16-180. typeinfo for basic_stringbuf, allocator > 39490 Base Vtable vtable for __cxxabiv1::__si_class_type_info 39491 Name typeinfo name for basic_stringbuf, allocator > 39493 __________________________________________________________ 39494 39495 16.1.67.2. Interfaces for Class basic_stringbuf, allocator > 39496 39497 An LSB conforming implementation shall provide the generic 39498 methods for Class std::basic_stringbuf, std::allocator > specified 39500 in Table 16-181, with the full mandatory functionality as 39501 described in the referenced underlying specification. 39502 39503 Table 16-181. libstdcxx - Class basic_stringbuf, allocator > Function Interfaces 39505 basic_stringbuf, 39506 allocator >::str() const(GLIBCXX_3.4) [ISOCXX] 39507 basic_stringbuf, 39508 allocator >::_M_update_egptr()(GLIBCXX_3.4) [ISOCXX] 39509 basic_stringbuf, 39510 allocator 39511 >::_M_stringbuf_init(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39512 basic_stringbuf, 39513 allocator >::str(basic_string, allocator > const&)(GLIBCXX_3.4) 39515 [ISOCXX] 39516 basic_stringbuf, 39517 allocator >::seekpos(fpos<__mbstate_t>, 39518 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39519 basic_stringbuf, 39520 allocator >::overflow(unsigned int)(GLIBCXX_3.4) 39521 [ISOCXX] 39522 basic_stringbuf, 39523 allocator >::pbackfail(unsigned int)(GLIBCXX_3.4) 39524 [ISOCXX] 39525 basic_stringbuf, 39526 allocator >::showmanyc()(GLIBCXX_3.4.6) [ISOCXX] 39527 basic_stringbuf, 39528 allocator >::underflow()(GLIBCXX_3.4) [ISOCXX] 39529 basic_stringbuf, 39530 allocator >::basic_stringbuf(basic_string, allocator > const&, 39532 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39533 basic_stringbuf, 39534 allocator 39535 >::basic_stringbuf(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39536 basic_stringbuf, 39537 allocator >::basic_stringbuf(basic_string, allocator > const&, 39539 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39540 basic_stringbuf, 39541 allocator 39542 >::basic_stringbuf(_Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 39543 basic_stringbuf, 39544 allocator >::~basic_stringbuf()(GLIBCXX_3.4) [ISOCXX] 39545 basic_stringbuf, 39546 allocator >::~basic_stringbuf()(GLIBCXX_3.4) [ISOCXX] 39547 39548 An LSB conforming implementation shall provide the generic data 39549 interfaces for Class std::basic_stringbuf, std::allocator > specified 39551 in Table 16-182, with the full mandatory functionality as 39552 described in the referenced underlying specification. 39553 39554 Table 16-182. libstdcxx - Class basic_stringbuf, allocator > Data Interfaces 39556 typeinfo for basic_stringbuf, 39557 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39558 typeinfo name for basic_stringbuf, allocator >(GLIBCXX_3.4) 39560 [CXXABI-1.86] 39561 vtable for basic_stringbuf, 39562 allocator >(GLIBCXX_3.4) [CXXABI-1.86] 39563 __________________________________________________________ 39564 39565 16.1.68. Class basic_iostream > 39566 __________________________________________________________ 39567 39568 16.1.68.1. Class data for basic_iostream > 39569 39570 The virtual table for the std::basic_iostream > class is described in the relevant 39572 architecture specific part of this specification. 39573 39574 The VTT for the std::basic_iostream > class is described by Table 16-183 39576 39577 Table 16-183. VTT for basic_iostream > 39578 VTT Name _ZTTSd 39579 Number of Entries 7 39580 __________________________________________________________ 39581 39582 16.1.68.2. Interfaces for Class basic_iostream > 39583 39584 An LSB conforming implementation shall provide the generic 39585 methods for Class std::basic_iostream > specified in Table 16-184, with the 39587 full mandatory functionality as described in the referenced 39588 underlying specification. 39589 39590 Table 16-184. libstdcxx - Class basic_iostream > Function Interfaces 39592 basic_iostream 39593 >::basic_iostream(basic_streambuf 39594 >*)(GLIBCXX_3.4) [ISOCXX] 39595 basic_iostream 39596 >::basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39597 basic_iostream 39598 >::basic_iostream(basic_streambuf 39599 >*)(GLIBCXX_3.4) [ISOCXX] 39600 basic_iostream 39601 >::basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39602 basic_iostream 39603 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39604 basic_iostream 39605 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39606 basic_iostream 39607 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39608 basic_istream >& 39609 operator>> >(basic_istream >&, signed char*)(GLIBCXX_3.4) [ISOCXX] 39611 39612 An LSB conforming implementation shall provide the generic data 39613 interfaces for Class std::basic_iostream > specified in Table 16-185, with the 39615 full mandatory functionality as described in the referenced 39616 underlying specification. 39617 39618 Table 16-185. libstdcxx - Class basic_iostream > Data Interfaces 39620 typeinfo for basic_iostream 39621 >(GLIBCXX_3.4) [CXXABI-1.86] 39622 typeinfo name for basic_iostream 39623 >(GLIBCXX_3.4) [CXXABI-1.86] 39624 VTT for basic_iostream >(GLIBCXX_3.4) 39625 [CXXABI-1.86] 39626 vtable for basic_iostream 39627 >(GLIBCXX_3.4) [CXXABI-1.86] 39628 __________________________________________________________ 39629 39630 16.1.69. Class basic_iostream > 39631 __________________________________________________________ 39632 39633 16.1.69.1. Class data for basic_iostream > 39634 39635 The virtual table for the std::basic_iostream > class is described in the relevant 39637 architecture specific part of this specification. 39638 39639 The VTT for the std::basic_iostream > class is described by Table 16-186 39641 39642 Table 16-186. VTT for basic_iostream > 39644 VTT Name _ZTTSt14basic_iostreamIwSt11char_traitsIwEE 39645 Number of Entries 7 39646 __________________________________________________________ 39647 39648 16.1.69.2. Interfaces for Class basic_iostream > 39649 39650 An LSB conforming implementation shall provide the generic 39651 methods for Class std::basic_iostream > specified in Table 16-187, with the 39653 full mandatory functionality as described in the referenced 39654 underlying specification. 39655 39656 Table 16-187. libstdcxx - Class basic_iostream > Function Interfaces 39658 basic_iostream 39659 >::basic_iostream(basic_streambuf 39660 >*)(GLIBCXX_3.4) [ISOCXX] 39661 basic_iostream 39662 >::basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39663 basic_iostream 39664 >::basic_iostream(basic_streambuf 39665 >*)(GLIBCXX_3.4) [ISOCXX] 39666 basic_iostream 39667 >::basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39668 basic_iostream 39669 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39670 basic_iostream 39671 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39672 basic_iostream 39673 >::~basic_iostream()(GLIBCXX_3.4) [ISOCXX] 39674 39675 An LSB conforming implementation shall provide the generic data 39676 interfaces for Class std::basic_iostream > specified in Table 16-188, with the 39678 full mandatory functionality as described in the referenced 39679 underlying specification. 39680 39681 Table 16-188. libstdcxx - Class basic_iostream > Data Interfaces 39683 typeinfo for basic_iostream 39684 >(GLIBCXX_3.4) [CXXABI-1.86] 39685 typeinfo name for basic_iostream 39686 >(GLIBCXX_3.4) [CXXABI-1.86] 39687 VTT for basic_iostream 39688 >(GLIBCXX_3.4) [CXXABI-1.86] 39689 vtable for basic_iostream 39690 >(GLIBCXX_3.4) [CXXABI-1.86] 39691 __________________________________________________________ 39692 39693 16.1.70. Class basic_istream > 39694 __________________________________________________________ 39695 39696 16.1.70.1. Class data for basic_istream > 39697 39698 The virtual table for the std::basic_istream > class is described in the relevant 39700 architecture specific part of this specification. 39701 39702 The VTT for the std::basic_istream 39703 > class is described by Table 16-189 39704 39705 Table 16-189. VTT for basic_istream > 39706 VTT Name _ZTTSi 39707 Number of Entries 2 39708 __________________________________________________________ 39709 39710 16.1.70.2. Interfaces for Class basic_istream > 39711 39712 An LSB conforming implementation shall provide the generic 39713 methods for Class std::basic_istream > specified in Table 16-190, with the 39715 full mandatory functionality as described in the referenced 39716 underlying specification. 39717 39718 Table 16-190. libstdcxx - Class basic_istream > Function Interfaces 39720 basic_istream >::gcount() 39721 const(GLIBCXX_3.4) [ISOCXX] 39722 basic_istream >::sentry::operator 39723 bool() const(GLIBCXX_3.4) [ISOCXX] 39724 basic_istream 39725 >::get(basic_streambuf >&)(GLIBCXX_3.4) 39726 [ISOCXX] 39727 basic_istream 39728 >::get(basic_streambuf >&, 39729 char)(GLIBCXX_3.4) [ISOCXX] 39730 basic_istream 39731 >::get(char&)(GLIBCXX_3.4) [ISOCXX] 39732 basic_istream >::get()(GLIBCXX_3.4) 39733 [ISOCXX] 39734 basic_istream >::peek()(GLIBCXX_3.4) 39735 [ISOCXX] 39736 basic_istream >::sync()(GLIBCXX_3.4) 39737 [ISOCXX] 39738 basic_istream 39739 >::seekg(fpos<__mbstate_t>)(GLIBCXX_3.4) [ISOCXX] 39740 basic_istream >::tellg()(GLIBCXX_3.4) 39741 [ISOCXX] 39742 basic_istream >::unget()(GLIBCXX_3.4) 39743 [ISOCXX] 39744 basic_istream 39745 >::ignore()(GLIBCXX_3.4.5) [ISOCXX] 39746 basic_istream 39747 >::sentry::sentry(basic_istream >&, 39748 bool)(GLIBCXX_3.4) [ISOCXX] 39749 basic_istream 39750 >::sentry::sentry(basic_istream >&, 39751 bool)(GLIBCXX_3.4) [ISOCXX] 39752 basic_istream 39753 >::putback(char)(GLIBCXX_3.4) [ISOCXX] 39754 basic_istream 39755 >::basic_istream(basic_streambuf 39756 >*)(GLIBCXX_3.4) [ISOCXX] 39757 basic_istream 39758 >::basic_istream()(GLIBCXX_3.4) [ISOCXX] 39759 basic_istream 39760 >::basic_istream(basic_streambuf 39761 >*)(GLIBCXX_3.4) [ISOCXX] 39762 basic_istream 39763 >::basic_istream()(GLIBCXX_3.4) [ISOCXX] 39764 basic_istream 39765 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39766 basic_istream 39767 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39768 basic_istream 39769 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39770 basic_istream 39771 >::operator>>(basic_istream >& 39772 (*)(basic_istream >&))(GLIBCXX_3.4) 39773 [ISOCXX] 39774 basic_istream >::operator>>(ios_base& 39775 (*)(ios_base&))(GLIBCXX_3.4) [ISOCXX] 39776 basic_istream 39777 >::operator>>(basic_ios >& 39778 (*)(basic_ios >&))(GLIBCXX_3.4) 39779 [ISOCXX] 39780 basic_istream 39781 >::operator>>(basic_streambuf 39782 >*)(GLIBCXX_3.4) [ISOCXX] 39783 basic_istream 39784 >::operator>>(void*&)(GLIBCXX_3.4) [ISOCXX] 39785 basic_istream 39786 >::operator>>(bool&)(GLIBCXX_3.4) [ISOCXX] 39787 basic_istream 39788 >::operator>>(double&)(GLIBCXX_3.4) [ISOCXX] 39789 basic_istream >::operator>>(long 39790 double&)(GLIBCXX_3.4) [ISOCXX] 39791 basic_istream 39792 >::operator>>(float&)(GLIBCXX_3.4) [ISOCXX] 39793 basic_istream 39794 >::operator>>(int&)(GLIBCXX_3.4) [ISOCXX] 39795 basic_istream >::operator>>(unsigned 39796 int&)(GLIBCXX_3.4) [ISOCXX] 39797 basic_istream 39798 >::operator>>(long&)(GLIBCXX_3.4) [ISOCXX] 39799 basic_istream >::operator>>(unsigned 39800 long&)(GLIBCXX_3.4) [ISOCXX] 39801 basic_istream 39802 >::operator>>(short&)(GLIBCXX_3.4) [ISOCXX] 39803 basic_istream >::operator>>(unsigned 39804 short&)(GLIBCXX_3.4) [ISOCXX] 39805 basic_istream >::operator>>(long 39806 long&)(GLIBCXX_3.4) [ISOCXX] 39807 basic_istream >::operator>>(unsigned 39808 long long&)(GLIBCXX_3.4) [ISOCXX] 39809 basic_istream >& ws >(basic_istream 39811 >&)(GLIBCXX_3.4) [ISOCXX] 39812 basic_istream >& getline, allocator >(basic_istream >&, basic_string, 39815 allocator >&)(GLIBCXX_3.4) [ISOCXX] 39816 basic_istream >& getline, allocator >(basic_istream >&, basic_string, 39819 allocator >&, char)(GLIBCXX_3.4) [ISOCXX] 39820 basic_istream >& 39821 operator>> >(basic_istream >&, unsigned char*)(GLIBCXX_3.4) [ISOCXX] 39823 basic_istream >& 39824 operator>> >(basic_istream >&, signed char&)(GLIBCXX_3.4) [ISOCXX] 39826 basic_istream >& 39827 operator>> >(basic_istream >&, unsigned char&)(GLIBCXX_3.4) [ISOCXX] 39829 basic_istream >& operator>> >(basic_istream >&, 39831 char*)(GLIBCXX_3.4) [ISOCXX] 39832 basic_istream >& operator>> >(basic_istream >&, 39834 char&)(GLIBCXX_3.4) [ISOCXX] 39835 basic_istream >& operator>> >(basic_istream >&, 39837 _Setiosflags)(GLIBCXX_3.4) [ISOCXX] 39838 basic_istream >& operator>> >(basic_istream >&, 39840 _Setprecision)(GLIBCXX_3.4) [ISOCXX] 39841 basic_istream >& operator>> >(basic_istream >&, 39843 _Resetiosflags)(GLIBCXX_3.4) [ISOCXX] 39844 basic_istream >& operator>> >(basic_istream >&, 39846 _Setw)(GLIBCXX_3.4) [ISOCXX] 39847 basic_istream >& operator>> >(basic_istream >&, 39849 _Setbase)(GLIBCXX_3.4) [ISOCXX] 39850 basic_istream >& operator>> >(basic_istream >&, 39852 _Setfill)(GLIBCXX_3.4) [ISOCXX] 39853 basic_istream >& operator>>, allocator >(basic_istream >&, basic_string, 39856 allocator >&)(GLIBCXX_3.4) [ISOCXX] 39857 basic_istream >& operator>> >(basic_istream 39859 >&, complex&)(GLIBCXX_3.4) [ISOCXX] 39860 basic_istream >& operator>> >(basic_istream >&, complex&)(GLIBCXX_3.4) 39863 [ISOCXX] 39864 basic_istream >& operator>> >(basic_istream 39866 >&, complex&)(GLIBCXX_3.4) [ISOCXX] 39867 39868 An LSB conforming implementation shall provide the generic data 39869 interfaces for Class std::basic_istream > specified in Table 16-191, with the 39871 full mandatory functionality as described in the referenced 39872 underlying specification. 39873 39874 Table 16-191. libstdcxx - Class basic_istream > Data Interfaces 39876 typeinfo for basic_istream 39877 >(GLIBCXX_3.4) [CXXABI-1.86] 39878 typeinfo name for basic_istream 39879 >(GLIBCXX_3.4) [CXXABI-1.86] 39880 VTT for basic_istream >(GLIBCXX_3.4) 39881 [CXXABI-1.86] 39882 vtable for basic_istream >(GLIBCXX_3.4) 39883 [CXXABI-1.86] 39884 __________________________________________________________ 39885 39886 16.1.71. Class basic_istream > 39887 __________________________________________________________ 39888 39889 16.1.71.1. Class data for basic_istream > 39890 39891 The virtual table for the std::basic_istream > class is described in the relevant 39893 architecture specific part of this specification. 39894 39895 The VTT for the std::basic_istream > class is described by Table 16-192 39897 39898 Table 16-192. VTT for basic_istream > 39900 VTT Name _ZTTSt13basic_istreamIwSt11char_traitsIwEE 39901 Number of Entries 2 39902 __________________________________________________________ 39903 39904 16.1.71.2. Interfaces for Class basic_istream > 39905 39906 An LSB conforming implementation shall provide the generic 39907 methods for Class std::basic_istream > specified in Table 16-193, with the 39909 full mandatory functionality as described in the referenced 39910 underlying specification. 39911 39912 Table 16-193. libstdcxx - Class basic_istream > Function Interfaces 39914 basic_istream >::gcount() 39915 const(GLIBCXX_3.4) [ISOCXX] 39916 basic_istream >::sentry::operator 39917 bool() const(GLIBCXX_3.4) [ISOCXX] 39918 basic_istream 39919 >::get(basic_streambuf 39920 >&)(GLIBCXX_3.4) [ISOCXX] 39921 basic_istream 39922 >::get(basic_streambuf >&, 39923 wchar_t)(GLIBCXX_3.4) [ISOCXX] 39924 basic_istream 39925 >::get(wchar_t&)(GLIBCXX_3.4) [ISOCXX] 39926 basic_istream 39927 >::get()(GLIBCXX_3.4) [ISOCXX] 39928 basic_istream 39929 >::peek()(GLIBCXX_3.4) [ISOCXX] 39930 basic_istream 39931 >::sync()(GLIBCXX_3.4) [ISOCXX] 39932 basic_istream 39933 >::seekg(fpos<__mbstate_t>)(GLIBCXX_3.4) [ISOCXX] 39934 basic_istream 39935 >::tellg()(GLIBCXX_3.4) [ISOCXX] 39936 basic_istream 39937 >::unget()(GLIBCXX_3.4) [ISOCXX] 39938 basic_istream 39939 >::ignore()(GLIBCXX_3.4.5) [ISOCXX] 39940 basic_istream 39941 >::sentry::sentry(basic_istream 39942 >&, bool)(GLIBCXX_3.4) [ISOCXX] 39943 basic_istream 39944 >::sentry::sentry(basic_istream 39945 >&, bool)(GLIBCXX_3.4) [ISOCXX] 39946 basic_istream 39947 >::putback(wchar_t)(GLIBCXX_3.4) [ISOCXX] 39948 basic_istream 39949 >::basic_istream(basic_streambuf 39950 >*)(GLIBCXX_3.4) [ISOCXX] 39951 basic_istream 39952 >::basic_istream(basic_streambuf 39953 >*)(GLIBCXX_3.4) [ISOCXX] 39954 basic_istream 39955 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39956 basic_istream 39957 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39958 basic_istream 39959 >::~basic_istream()(GLIBCXX_3.4) [ISOCXX] 39960 basic_istream 39961 >::operator>>(basic_istream >& 39962 (*)(basic_istream 39963 >&))(GLIBCXX_3.4) [ISOCXX] 39964 basic_istream 39965 >::operator>>(ios_base& (*)(ios_base&))(GLIBCXX_3.4) [ISOCXX] 39966 basic_istream 39967 >::operator>>(basic_ios >& 39968 (*)(basic_ios >&))(GLIBCXX_3.4) 39969 [ISOCXX] 39970 basic_istream 39971 >::operator>>(basic_streambuf 39972 >*)(GLIBCXX_3.4) [ISOCXX] 39973 basic_istream 39974 >::operator>>(void*&)(GLIBCXX_3.4) [ISOCXX] 39975 basic_istream 39976 >::operator>>(bool&)(GLIBCXX_3.4) [ISOCXX] 39977 basic_istream 39978 >::operator>>(double&)(GLIBCXX_3.4) [ISOCXX] 39979 basic_istream >::operator>>(long 39980 double&)(GLIBCXX_3.4) [ISOCXX] 39981 basic_istream 39982 >::operator>>(float&)(GLIBCXX_3.4) [ISOCXX] 39983 basic_istream 39984 >::operator>>(int&)(GLIBCXX_3.4) [ISOCXX] 39985 basic_istream 39986 >::operator>>(unsigned int&)(GLIBCXX_3.4) [ISOCXX] 39987 basic_istream 39988 >::operator>>(long&)(GLIBCXX_3.4) [ISOCXX] 39989 basic_istream 39990 >::operator>>(unsigned long&)(GLIBCXX_3.4) [ISOCXX] 39991 basic_istream 39992 >::operator>>(short&)(GLIBCXX_3.4) [ISOCXX] 39993 basic_istream 39994 >::operator>>(unsigned short&)(GLIBCXX_3.4) [ISOCXX] 39995 basic_istream >::operator>>(long 39996 long&)(GLIBCXX_3.4) [ISOCXX] 39997 basic_istream 39998 >::operator>>(unsigned long long&)(GLIBCXX_3.4) [ISOCXX] 39999 basic_istream >& ws >(basic_istream >&)(GLIBCXX_3.4) [ISOCXX] 40002 basic_istream >& getline, allocator 40004 >(basic_istream >&, 40005 basic_string, allocator 40006 >&)(GLIBCXX_3.4) [ISOCXX] 40007 basic_istream >& getline, allocator 40009 >(basic_istream >&, 40010 basic_string, allocator 40011 >&, wchar_t)(GLIBCXX_3.4) [ISOCXX] 40012 basic_istream >& 40013 operator>> 40014 >(basic_istream >&, 40015 complex&)(GLIBCXX_3.4) [ISOCXX] 40016 basic_istream >& operator>> >(basic_istream >&, complex&)(GLIBCXX_3.4) 40019 [ISOCXX] 40020 basic_istream >& 40021 operator>> 40022 >(basic_istream >&, 40023 complex&)(GLIBCXX_3.4) [ISOCXX] 40024 basic_istream >& 40025 operator>> 40026 >(basic_istream >&, 40027 wchar_t*)(GLIBCXX_3.4) [ISOCXX] 40028 basic_istream >& 40029 operator>> 40030 >(basic_istream >&, 40031 wchar_t&)(GLIBCXX_3.4) [ISOCXX] 40032 basic_istream >& 40033 operator>> 40034 >(basic_istream >&, 40035 _Setiosflags)(GLIBCXX_3.4) [ISOCXX] 40036 basic_istream >& 40037 operator>> 40038 >(basic_istream >&, 40039 _Setprecision)(GLIBCXX_3.4) [ISOCXX] 40040 basic_istream >& 40041 operator>> 40042 >(basic_istream >&, 40043 _Resetiosflags)(GLIBCXX_3.4) [ISOCXX] 40044 basic_istream >& 40045 operator>> 40046 >(basic_istream >&, 40047 _Setw)(GLIBCXX_3.4) [ISOCXX] 40048 basic_istream >& 40049 operator>> 40050 >(basic_istream >&, 40051 _Setbase)(GLIBCXX_3.4) [ISOCXX] 40052 basic_istream >& 40053 operator>> 40054 >(basic_istream >&, 40055 _Setfill)(GLIBCXX_3.4) [ISOCXX] 40056 basic_istream >& 40057 operator>>, allocator 40058 >(basic_istream >&, 40059 basic_string, allocator 40060 >&)(GLIBCXX_3.4) [ISOCXX] 40061 40062 An LSB conforming implementation shall provide the generic data 40063 interfaces for Class std::basic_istream > specified in Table 16-194, with the 40065 full mandatory functionality as described in the referenced 40066 underlying specification. 40067 40068 Table 16-194. libstdcxx - Class basic_istream > Data Interfaces 40070 typeinfo for basic_istream 40071 >(GLIBCXX_3.4) [CXXABI-1.86] 40072 typeinfo name for basic_istream 40073 >(GLIBCXX_3.4) [CXXABI-1.86] 40074 VTT for basic_istream 40075 >(GLIBCXX_3.4) [CXXABI-1.86] 40076 vtable for basic_istream 40077 >(GLIBCXX_3.4) [CXXABI-1.86] 40078 __________________________________________________________ 40079 40080 16.1.72. Class istreambuf_iterator > 40081 __________________________________________________________ 40082 40083 16.1.72.1. Interfaces for Class istreambuf_iterator > 40084 40085 An LSB conforming implementation shall provide the generic 40086 methods for Class std::istreambuf_iterator > specified in Table 16-195, with the 40088 full mandatory functionality as described in the referenced 40089 underlying specification. 40090 40091 Table 16-195. libstdcxx - Class istreambuf_iterator > Function Interfaces 40093 istreambuf_iterator 40094 >::operator++()(GLIBCXX_3.4.5) [ISOCXX] 40095 __________________________________________________________ 40096 40097 16.1.73. Class istreambuf_iterator > 40098 __________________________________________________________ 40099 40100 16.1.73.1. Interfaces for Class istreambuf_iterator > 40101 40102 An LSB conforming implementation shall provide the generic 40103 methods for Class std::istreambuf_iterator > specified in Table 16-196, with the 40105 full mandatory functionality as described in the referenced 40106 underlying specification. 40107 40108 Table 16-196. libstdcxx - Class istreambuf_iterator > Function Interfaces 40110 istreambuf_iterator 40111 >::operator++()(GLIBCXX_3.4.5) [ISOCXX] 40112 __________________________________________________________ 40113 40114 16.1.74. Class basic_ostream > 40115 __________________________________________________________ 40116 40117 16.1.74.1. Class data for basic_ostream > 40118 40119 The virtual table for the std::basic_ostream > class is described in the relevant 40121 architecture specific part of this specification. 40122 40123 The VTT for the std::basic_ostream 40124 > class is described by Table 16-197 40125 40126 Table 16-197. VTT for basic_ostream > 40127 VTT Name _ZTTSo 40128 Number of Entries 2 40129 __________________________________________________________ 40130 40131 16.1.74.2. Interfaces for Class basic_ostream > 40132 40133 An LSB conforming implementation shall provide the generic 40134 methods for Class std::basic_ostream > specified in Table 16-198, with the 40136 full mandatory functionality as described in the referenced 40137 underlying specification. 40138 40139 Table 16-198. libstdcxx - Class basic_ostream > Function Interfaces 40141 basic_ostream >::sentry::operator 40142 bool() const(GLIBCXX_3.4) [ISOCXX] 40143 basic_ostream >::put(char)(GLIBCXX_3.4) 40144 [ISOCXX] 40145 basic_ostream >::flush()(GLIBCXX_3.4) 40146 [ISOCXX] 40147 basic_ostream 40148 >::seekp(fpos<__mbstate_t>)(GLIBCXX_3.4) [ISOCXX] 40149 basic_ostream >::tellp()(GLIBCXX_3.4) 40150 [ISOCXX] 40151 basic_ostream 40152 >::sentry::sentry(basic_ostream 40153 >&)(GLIBCXX_3.4) [ISOCXX] 40154 basic_ostream 40155 >::sentry::sentry(basic_ostream 40156 >&)(GLIBCXX_3.4) [ISOCXX] 40157 basic_ostream 40158 >::sentry::~sentry()(GLIBCXX_3.4) [ISOCXX] 40159 basic_ostream 40160 >::sentry::~sentry()(GLIBCXX_3.4) [ISOCXX] 40161 basic_ostream 40162 >::basic_ostream(basic_streambuf 40163 >*)(GLIBCXX_3.4) [ISOCXX] 40164 basic_ostream 40165 >::basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40166 basic_ostream 40167 >::basic_ostream(basic_streambuf 40168 >*)(GLIBCXX_3.4) [ISOCXX] 40169 basic_ostream 40170 >::basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40171 basic_ostream 40172 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40173 basic_ostream 40174 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40175 basic_ostream 40176 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40177 basic_ostream 40178 >::operator<<(basic_ostream >& 40179 (*)(basic_ostream >&))(GLIBCXX_3.4) 40180 [ISOCXX] 40181 basic_ostream >::operator<<(ios_base& 40182 (*)(ios_base&))(GLIBCXX_3.4) [ISOCXX] 40183 basic_ostream 40184 >::operator<<(basic_ios >& 40185 (*)(basic_ios >&))(GLIBCXX_3.4) 40186 [ISOCXX] 40187 basic_ostream >::operator<<(void 40188 const*)(GLIBCXX_3.4) [ISOCXX] 40189 basic_ostream 40190 >::operator<<(basic_streambuf 40191 >*)(GLIBCXX_3.4) [ISOCXX] 40192 basic_ostream 40193 >::operator<<(bool)(GLIBCXX_3.4) [ISOCXX] 40194 basic_ostream 40195 >::operator<<(double)(GLIBCXX_3.4) [ISOCXX] 40196 basic_ostream >::operator<<(long 40197 double)(GLIBCXX_3.4) [ISOCXX] 40198 basic_ostream 40199 >::operator<<(float)(GLIBCXX_3.4) [ISOCXX] 40200 basic_ostream 40201 >::operator<<(int)(GLIBCXX_3.4) [ISOCXX] 40202 basic_ostream >::operator<<(unsigned 40203 int)(GLIBCXX_3.4) [ISOCXX] 40204 basic_ostream 40205 >::operator<<(long)(GLIBCXX_3.4) [ISOCXX] 40206 basic_ostream >::operator<<(unsigned 40207 long)(GLIBCXX_3.4) [ISOCXX] 40208 basic_ostream 40209 >::operator<<(short)(GLIBCXX_3.4) [ISOCXX] 40210 basic_ostream >::operator<<(unsigned 40211 short)(GLIBCXX_3.4) [ISOCXX] 40212 basic_ostream >::operator<<(long 40213 long)(GLIBCXX_3.4) [ISOCXX] 40214 basic_ostream >::operator<<(unsigned 40215 long long)(GLIBCXX_3.4) [ISOCXX] 40216 basic_ostream >& endl >(basic_ostream 40218 >&)(GLIBCXX_3.4) [ISOCXX] 40219 basic_ostream >& ends >(basic_ostream 40221 >&)(GLIBCXX_3.4) [ISOCXX] 40222 basic_ostream >& flush >(basic_ostream 40224 >&)(GLIBCXX_3.4) [ISOCXX] 40225 basic_ostream >& operator<< 40226 >(basic_ostream >&, 40227 signed char const*)(GLIBCXX_3.4) [ISOCXX] 40228 basic_ostream >& operator<< 40229 >(basic_ostream >&, 40230 char const*)(GLIBCXX_3.4) [ISOCXX] 40231 basic_ostream >& operator<< 40232 >(basic_ostream >&, 40233 unsigned char const*)(GLIBCXX_3.4) [ISOCXX] 40234 basic_ostream >& operator<< 40235 >(basic_ostream >&, 40236 signed char)(GLIBCXX_3.4) [ISOCXX] 40237 basic_ostream >& operator<< 40238 >(basic_ostream >&, 40239 char)(GLIBCXX_3.4) [ISOCXX] 40240 basic_ostream >& operator<< 40241 >(basic_ostream >&, 40242 unsigned char)(GLIBCXX_3.4) [ISOCXX] 40243 basic_ostream >& operator<< >(basic_ostream >&, 40245 _Setiosflags)(GLIBCXX_3.4) [ISOCXX] 40246 basic_ostream >& operator<< >(basic_ostream >&, 40248 _Setprecision)(GLIBCXX_3.4) [ISOCXX] 40249 basic_ostream >& operator<< >(basic_ostream >&, 40251 _Resetiosflags)(GLIBCXX_3.4) [ISOCXX] 40252 basic_ostream >& operator<< >(basic_ostream >&, 40254 _Setw)(GLIBCXX_3.4) [ISOCXX] 40255 basic_ostream >& operator<< >(basic_ostream >&, 40257 _Setbase)(GLIBCXX_3.4) [ISOCXX] 40258 basic_ostream >& operator<< >(basic_ostream >&, 40260 _Setfill)(GLIBCXX_3.4) [ISOCXX] 40261 basic_ostream >& operator<< , allocator >(basic_ostream >&, basic_string, 40264 allocator > const&)(GLIBCXX_3.4) [ISOCXX] 40265 basic_ostream >& operator<< >(basic_ostream 40267 >&, complex const&)(GLIBCXX_3.4) [ISOCXX] 40268 basic_ostream >& operator<< >(basic_ostream >&, complex const&)(GLIBCXX_3.4) 40271 [ISOCXX] 40272 basic_ostream >& operator<< >(basic_ostream 40274 >&, complex const&)(GLIBCXX_3.4) [ISOCXX] 40275 40276 An LSB conforming implementation shall provide the generic data 40277 interfaces for Class std::basic_ostream > specified in Table 16-199, with the 40279 full mandatory functionality as described in the referenced 40280 underlying specification. 40281 40282 Table 16-199. libstdcxx - Class basic_ostream > Data Interfaces 40284 typeinfo for basic_ostream 40285 >(GLIBCXX_3.4) [CXXABI-1.86] 40286 typeinfo name for basic_ostream 40287 >(GLIBCXX_3.4) [CXXABI-1.86] 40288 VTT for basic_ostream >(GLIBCXX_3.4) 40289 [CXXABI-1.86] 40290 vtable for basic_ostream >(GLIBCXX_3.4) 40291 [CXXABI-1.86] 40292 __________________________________________________________ 40293 40294 16.1.75. Class basic_ostream > 40295 __________________________________________________________ 40296 40297 16.1.75.1. Class data for basic_ostream > 40298 40299 The virtual table for the std::basic_ostream > class is described in the relevant 40301 architecture specific part of this specification. 40302 40303 The VTT for the std::basic_ostream > class is described by Table 16-200 40305 40306 Table 16-200. VTT for basic_ostream > 40308 VTT Name _ZTTSt13basic_ostreamIwSt11char_traitsIwEE 40309 Number of Entries 2 40310 __________________________________________________________ 40311 40312 16.1.75.2. Interfaces for Class basic_ostream > 40313 40314 An LSB conforming implementation shall provide the generic 40315 methods for Class std::basic_ostream > specified in Table 16-201, with the 40317 full mandatory functionality as described in the referenced 40318 underlying specification. 40319 40320 Table 16-201. libstdcxx - Class basic_ostream > Function Interfaces 40322 basic_ostream >::sentry::operator 40323 bool() const(GLIBCXX_3.4) [ISOCXX] 40324 basic_ostream 40325 >::put(wchar_t)(GLIBCXX_3.4) [ISOCXX] 40326 basic_ostream 40327 >::flush()(GLIBCXX_3.4) [ISOCXX] 40328 basic_ostream 40329 >::seekp(fpos<__mbstate_t>)(GLIBCXX_3.4) [ISOCXX] 40330 basic_ostream 40331 >::tellp()(GLIBCXX_3.4) [ISOCXX] 40332 basic_ostream 40333 >::sentry::sentry(basic_ostream 40334 >&)(GLIBCXX_3.4) [ISOCXX] 40335 basic_ostream 40336 >::sentry::sentry(basic_ostream 40337 >&)(GLIBCXX_3.4) [ISOCXX] 40338 basic_ostream 40339 >::sentry::~sentry()(GLIBCXX_3.4) [ISOCXX] 40340 basic_ostream 40341 >::sentry::~sentry()(GLIBCXX_3.4) [ISOCXX] 40342 basic_ostream 40343 >::basic_ostream(basic_streambuf 40344 >*)(GLIBCXX_3.4) [ISOCXX] 40345 basic_ostream 40346 >::basic_ostream(basic_streambuf 40347 >*)(GLIBCXX_3.4) [ISOCXX] 40348 basic_ostream 40349 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40350 basic_ostream 40351 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40352 basic_ostream 40353 >::~basic_ostream()(GLIBCXX_3.4) [ISOCXX] 40354 basic_ostream 40355 >::operator<<(basic_ostream >& 40356 (*)(basic_ostream 40357 >&))(GLIBCXX_3.4) [ISOCXX] 40358 basic_ostream 40359 >::operator<<(ios_base& (*)(ios_base&))(GLIBCXX_3.4) [ISOCXX] 40360 basic_ostream 40361 >::operator<<(basic_ios >& 40362 (*)(basic_ios >&))(GLIBCXX_3.4) 40363 [ISOCXX] 40364 basic_ostream >::operator<<(void 40365 const*)(GLIBCXX_3.4) [ISOCXX] 40366 basic_ostream 40367 >::operator<<(basic_streambuf 40368 >*)(GLIBCXX_3.4) [ISOCXX] 40369 basic_ostream 40370 >::operator<<(bool)(GLIBCXX_3.4) [ISOCXX] 40371 basic_ostream 40372 >::operator<<(double)(GLIBCXX_3.4) [ISOCXX] 40373 basic_ostream >::operator<<(long 40374 double)(GLIBCXX_3.4) [ISOCXX] 40375 basic_ostream 40376 >::operator<<(float)(GLIBCXX_3.4) [ISOCXX] 40377 basic_ostream 40378 >::operator<<(int)(GLIBCXX_3.4) [ISOCXX] 40379 basic_ostream 40380 >::operator<<(unsigned int)(GLIBCXX_3.4) [ISOCXX] 40381 basic_ostream 40382 >::operator<<(long)(GLIBCXX_3.4) [ISOCXX] 40383 basic_ostream 40384 >::operator<<(unsigned long)(GLIBCXX_3.4) [ISOCXX] 40385 basic_ostream 40386 >::operator<<(short)(GLIBCXX_3.4) [ISOCXX] 40387 basic_ostream 40388 >::operator<<(unsigned short)(GLIBCXX_3.4) [ISOCXX] 40389 basic_ostream >::operator<<(long 40390 long)(GLIBCXX_3.4) [ISOCXX] 40391 basic_ostream 40392 >::operator<<(unsigned long long)(GLIBCXX_3.4) [ISOCXX] 40393 basic_ostream >& endl >(basic_ostream >&)(GLIBCXX_3.4) [ISOCXX] 40396 basic_ostream >& ends >(basic_ostream >&)(GLIBCXX_3.4) [ISOCXX] 40399 basic_ostream >& flush >(basic_ostream >&)(GLIBCXX_3.4) [ISOCXX] 40402 basic_ostream >& operator<< 40403 >(basic_ostream >&, complex const&)(GLIBCXX_3.4) 40405 [ISOCXX] 40406 basic_ostream >& operator<< >(basic_ostream >&, complex 40409 const&)(GLIBCXX_3.4) [ISOCXX] 40410 basic_ostream >& operator<< 40411 >(basic_ostream >&, complex const&)(GLIBCXX_3.4) 40413 [ISOCXX] 40414 basic_ostream >& operator<< 40415 >(basic_ostream >&, wchar_t const*)(GLIBCXX_3.4) [ISOCXX] 40417 basic_ostream >& operator<< 40418 >(basic_ostream >&, char const*)(GLIBCXX_3.4) [ISOCXX] 40420 basic_ostream >& operator<< 40421 >(basic_ostream >&, wchar_t)(GLIBCXX_3.4) [ISOCXX] 40423 basic_ostream >& operator<< 40424 >(basic_ostream >&, _Setiosflags)(GLIBCXX_3.4) [ISOCXX] 40426 basic_ostream >& operator<< 40427 >(basic_ostream >&, _Setprecision)(GLIBCXX_3.4) [ISOCXX] 40429 basic_ostream >& operator<< 40430 >(basic_ostream >&, _Resetiosflags)(GLIBCXX_3.4) [ISOCXX] 40432 basic_ostream >& operator<< 40433 >(basic_ostream >&, _Setw)(GLIBCXX_3.4) [ISOCXX] 40435 basic_ostream >& operator<< 40436 >(basic_ostream >&, _Setbase)(GLIBCXX_3.4) [ISOCXX] 40438 basic_ostream >& operator<< 40439 >(basic_ostream >&, _Setfill)(GLIBCXX_3.4) 40441 [ISOCXX] 40442 basic_ostream >& operator<< 40443 >(basic_ostream >&, char)(GLIBCXX_3.4) [ISOCXX] 40445 basic_ostream >& operator<< 40446 , allocator 40447 >(basic_ostream >&, 40448 basic_string, allocator 40449 > const&)(GLIBCXX_3.4) [ISOCXX] 40450 40451 An LSB conforming implementation shall provide the generic data 40452 interfaces for Class std::basic_ostream > specified in Table 16-202, with the 40454 full mandatory functionality as described in the referenced 40455 underlying specification. 40456 40457 Table 16-202. libstdcxx - Class basic_ostream > Data Interfaces 40459 typeinfo for basic_ostream 40460 >(GLIBCXX_3.4) [CXXABI-1.86] 40461 typeinfo name for basic_ostream 40462 >(GLIBCXX_3.4) [CXXABI-1.86] 40463 VTT for basic_ostream 40464 >(GLIBCXX_3.4) [CXXABI-1.86] 40465 vtable for basic_ostream 40466 >(GLIBCXX_3.4) [CXXABI-1.86] 40467 __________________________________________________________ 40468 40469 16.1.76. Class basic_fstream > 40470 __________________________________________________________ 40471 40472 16.1.76.1. Class data for basic_fstream > 40473 40474 The virtual table for the std::basic_fstream > class is described in the relevant 40476 architecture specific part of this specification. 40477 40478 The VTT for the std::basic_fstream 40479 > class is described by Table 16-203 40480 40481 Table 16-203. VTT for basic_fstream > 40482 VTT Name _ZTTSt13basic_fstreamIcSt11char_traitsIcEE 40483 Number of Entries 10 40484 __________________________________________________________ 40485 40486 16.1.76.2. Interfaces for Class basic_fstream > 40487 40488 An LSB conforming implementation shall provide the generic 40489 methods for Class std::basic_fstream > specified in Table 16-204, with the 40491 full mandatory functionality as described in the referenced 40492 underlying specification. 40493 40494 Table 16-204. libstdcxx - Class basic_fstream > Function Interfaces 40496 basic_fstream >::rdbuf() 40497 const(GLIBCXX_3.4) [ISOCXX] 40498 basic_fstream >::is_open() 40499 const(GLIBCXX_3.4.5) [ISOCXX] 40500 basic_fstream >::open(char const*, 40501 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40502 basic_fstream >::close()(GLIBCXX_3.4) 40503 [ISOCXX] 40504 basic_fstream >::is_open()(GLIBCXX_3.4) 40505 [ISOCXX] 40506 basic_fstream >::basic_fstream(char 40507 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40508 basic_fstream 40509 >::basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40510 basic_fstream >::basic_fstream(char 40511 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40512 basic_fstream 40513 >::basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40514 basic_fstream 40515 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40516 basic_fstream 40517 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40518 basic_fstream 40519 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40520 40521 An LSB conforming implementation shall provide the generic data 40522 interfaces for Class std::basic_fstream > specified in Table 16-205, with the 40524 full mandatory functionality as described in the referenced 40525 underlying specification. 40526 40527 Table 16-205. libstdcxx - Class basic_fstream > Data Interfaces 40529 typeinfo for basic_fstream 40530 >(GLIBCXX_3.4) [CXXABI-1.86] 40531 typeinfo name for basic_fstream 40532 >(GLIBCXX_3.4) [CXXABI-1.86] 40533 VTT for basic_fstream >(GLIBCXX_3.4) 40534 [CXXABI-1.86] 40535 vtable for basic_fstream >(GLIBCXX_3.4) 40536 [CXXABI-1.86] 40537 __________________________________________________________ 40538 40539 16.1.77. Class basic_fstream > 40540 __________________________________________________________ 40541 40542 16.1.77.1. Class data for basic_fstream > 40543 40544 The virtual table for the std::basic_fstream > class is described in the relevant 40546 architecture specific part of this specification. 40547 40548 The VTT for the std::basic_fstream > class is described by Table 16-206 40550 40551 Table 16-206. VTT for basic_fstream > 40553 VTT Name _ZTTSt13basic_fstreamIwSt11char_traitsIwEE 40554 Number of Entries 10 40555 __________________________________________________________ 40556 40557 16.1.77.2. Interfaces for Class basic_fstream > 40558 40559 An LSB conforming implementation shall provide the generic 40560 methods for Class std::basic_fstream > specified in Table 16-207, with the 40562 full mandatory functionality as described in the referenced 40563 underlying specification. 40564 40565 Table 16-207. libstdcxx - Class basic_fstream > Function Interfaces 40567 basic_fstream >::rdbuf() 40568 const(GLIBCXX_3.4) [ISOCXX] 40569 basic_fstream >::is_open() 40570 const(GLIBCXX_3.4.5) [ISOCXX] 40571 basic_fstream >::open(char 40572 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40573 basic_fstream 40574 >::close()(GLIBCXX_3.4) [ISOCXX] 40575 basic_fstream 40576 >::is_open()(GLIBCXX_3.4) [ISOCXX] 40577 basic_fstream 40578 >::basic_fstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40579 [ISOCXX] 40580 basic_fstream 40581 >::basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40582 basic_fstream 40583 >::basic_fstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40584 [ISOCXX] 40585 basic_fstream 40586 >::basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40587 basic_fstream 40588 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40589 basic_fstream 40590 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40591 basic_fstream 40592 >::~basic_fstream()(GLIBCXX_3.4) [ISOCXX] 40593 40594 An LSB conforming implementation shall provide the generic data 40595 interfaces for Class std::basic_fstream > specified in Table 16-208, with the 40597 full mandatory functionality as described in the referenced 40598 underlying specification. 40599 40600 Table 16-208. libstdcxx - Class basic_fstream > Data Interfaces 40602 typeinfo for basic_fstream 40603 >(GLIBCXX_3.4) [CXXABI-1.86] 40604 typeinfo name for basic_fstream 40605 >(GLIBCXX_3.4) [CXXABI-1.86] 40606 VTT for basic_fstream 40607 >(GLIBCXX_3.4) [CXXABI-1.86] 40608 vtable for basic_fstream 40609 >(GLIBCXX_3.4) [CXXABI-1.86] 40610 __________________________________________________________ 40611 40612 16.1.78. Class basic_ifstream > 40613 __________________________________________________________ 40614 40615 16.1.78.1. Class data for basic_ifstream > 40616 40617 The virtual table for the std::basic_ifstream > class is described in the relevant 40619 architecture specific part of this specification. 40620 40621 The VTT for the std::basic_ifstream > class is described by Table 16-209 40623 40624 Table 16-209. VTT for basic_ifstream > 40625 VTT Name _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE 40626 Number of Entries 4 40627 __________________________________________________________ 40628 40629 16.1.78.2. Interfaces for Class basic_ifstream > 40630 40631 An LSB conforming implementation shall provide the generic 40632 methods for Class std::basic_ifstream > specified in Table 16-210, with the 40634 full mandatory functionality as described in the referenced 40635 underlying specification. 40636 40637 Table 16-210. libstdcxx - Class basic_ifstream > Function Interfaces 40639 basic_ifstream >::rdbuf() 40640 const(GLIBCXX_3.4) [ISOCXX] 40641 basic_ifstream >::is_open() 40642 const(GLIBCXX_3.4.5) [ISOCXX] 40643 basic_ifstream >::open(char const*, 40644 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40645 basic_ifstream >::close()(GLIBCXX_3.4) 40646 [ISOCXX] 40647 basic_ifstream 40648 >::is_open()(GLIBCXX_3.4) [ISOCXX] 40649 basic_ifstream >::basic_ifstream(char 40650 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40651 basic_ifstream 40652 >::basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40653 basic_ifstream >::basic_ifstream(char 40654 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40655 basic_ifstream 40656 >::basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40657 basic_ifstream 40658 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40659 basic_ifstream 40660 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40661 basic_ifstream 40662 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40663 40664 An LSB conforming implementation shall provide the generic data 40665 interfaces for Class std::basic_ifstream > specified in Table 16-211, with the 40667 full mandatory functionality as described in the referenced 40668 underlying specification. 40669 40670 Table 16-211. libstdcxx - Class basic_ifstream > Data Interfaces 40672 typeinfo for basic_ifstream 40673 >(GLIBCXX_3.4) [CXXABI-1.86] 40674 typeinfo name for basic_ifstream 40675 >(GLIBCXX_3.4) [CXXABI-1.86] 40676 VTT for basic_ifstream >(GLIBCXX_3.4) 40677 [CXXABI-1.86] 40678 vtable for basic_ifstream 40679 >(GLIBCXX_3.4) [CXXABI-1.86] 40680 __________________________________________________________ 40681 40682 16.1.79. Class basic_ifstream > 40683 __________________________________________________________ 40684 40685 16.1.79.1. Class data for basic_ifstream > 40686 40687 The virtual table for the std::basic_ifstream > class is described in the relevant 40689 architecture specific part of this specification. 40690 40691 The VTT for the std::basic_ifstream > class is described by Table 16-212 40693 40694 Table 16-212. VTT for basic_ifstream > 40696 VTT Name _ZTTSt14basic_ifstreamIwSt11char_traitsIwEE 40697 Number of Entries 4 40698 __________________________________________________________ 40699 40700 16.1.79.2. Interfaces for Class basic_ifstream > 40701 40702 An LSB conforming implementation shall provide the generic 40703 methods for Class std::basic_ifstream > specified in Table 16-213, with the 40705 full mandatory functionality as described in the referenced 40706 underlying specification. 40707 40708 Table 16-213. libstdcxx - Class basic_ifstream > Function Interfaces 40710 basic_ifstream >::rdbuf() 40711 const(GLIBCXX_3.4) [ISOCXX] 40712 basic_ifstream >::is_open() 40713 const(GLIBCXX_3.4.5) [ISOCXX] 40714 basic_ifstream >::open(char 40715 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40716 basic_ifstream 40717 >::close()(GLIBCXX_3.4) [ISOCXX] 40718 basic_ifstream 40719 >::is_open()(GLIBCXX_3.4) [ISOCXX] 40720 basic_ifstream 40721 >::basic_ifstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40722 [ISOCXX] 40723 basic_ifstream 40724 >::basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40725 basic_ifstream 40726 >::basic_ifstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40727 [ISOCXX] 40728 basic_ifstream 40729 >::basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40730 basic_ifstream 40731 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40732 basic_ifstream 40733 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40734 basic_ifstream 40735 >::~basic_ifstream()(GLIBCXX_3.4) [ISOCXX] 40736 40737 An LSB conforming implementation shall provide the generic data 40738 interfaces for Class std::basic_ifstream > specified in Table 16-214, with the 40740 full mandatory functionality as described in the referenced 40741 underlying specification. 40742 40743 Table 16-214. libstdcxx - Class basic_ifstream > Data Interfaces 40745 typeinfo for basic_ifstream 40746 >(GLIBCXX_3.4) [CXXABI-1.86] 40747 typeinfo for basic_streambuf 40748 >(GLIBCXX_3.4) [CXXABI-1.86] 40749 typeinfo name for basic_ifstream 40750 >(GLIBCXX_3.4) [CXXABI-1.86] 40751 typeinfo name for basic_streambuf 40752 >(GLIBCXX_3.4) [CXXABI-1.86] 40753 VTT for basic_ifstream 40754 >(GLIBCXX_3.4) [CXXABI-1.86] 40755 vtable for basic_ifstream 40756 >(GLIBCXX_3.4) [CXXABI-1.86] 40757 vtable for basic_streambuf 40758 >(GLIBCXX_3.4) [CXXABI-1.86] 40759 __________________________________________________________ 40760 40761 16.1.80. Class basic_ofstream > 40762 __________________________________________________________ 40763 40764 16.1.80.1. Class data for basic_ofstream > 40765 40766 The virtual table for the std::basic_ofstream > class is described in the relevant 40768 architecture specific part of this specification. 40769 40770 The VTT for the std::basic_ofstream > class is described by Table 16-215 40772 40773 Table 16-215. VTT for basic_ofstream > 40774 VTT Name _ZTTSt14basic_ofstreamIcSt11char_traitsIcEE 40775 Number of Entries 4 40776 __________________________________________________________ 40777 40778 16.1.80.2. Interfaces for Class basic_ofstream > 40779 40780 An LSB conforming implementation shall provide the generic 40781 methods for Class std::basic_ofstream > specified in Table 16-216, with the 40783 full mandatory functionality as described in the referenced 40784 underlying specification. 40785 40786 Table 16-216. libstdcxx - Class basic_ofstream > Function Interfaces 40788 basic_ofstream >::rdbuf() 40789 const(GLIBCXX_3.4) [ISOCXX] 40790 basic_ofstream >::is_open() 40791 const(GLIBCXX_3.4.5) [ISOCXX] 40792 basic_ofstream >::open(char const*, 40793 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40794 basic_ofstream >::close()(GLIBCXX_3.4) 40795 [ISOCXX] 40796 basic_ofstream 40797 >::is_open()(GLIBCXX_3.4) [ISOCXX] 40798 basic_ofstream >::basic_ofstream(char 40799 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40800 basic_ofstream 40801 >::basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40802 basic_ofstream >::basic_ofstream(char 40803 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40804 basic_ofstream 40805 >::basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40806 basic_ofstream 40807 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40808 basic_ofstream 40809 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40810 basic_ofstream 40811 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40812 40813 An LSB conforming implementation shall provide the generic data 40814 interfaces for Class std::basic_ofstream > specified in Table 16-217, with the 40816 full mandatory functionality as described in the referenced 40817 underlying specification. 40818 40819 Table 16-217. libstdcxx - Class basic_ofstream > Data Interfaces 40821 typeinfo for basic_ofstream 40822 >(GLIBCXX_3.4) [CXXABI-1.86] 40823 typeinfo name for basic_ofstream 40824 >(GLIBCXX_3.4) [CXXABI-1.86] 40825 VTT for basic_ofstream >(GLIBCXX_3.4) 40826 [CXXABI-1.86] 40827 vtable for basic_ofstream 40828 >(GLIBCXX_3.4) [CXXABI-1.86] 40829 __________________________________________________________ 40830 40831 16.1.81. Class basic_ofstream > 40832 __________________________________________________________ 40833 40834 16.1.81.1. Class data for basic_ofstream > 40835 40836 The virtual table for the std::basic_ofstream > class is described in the relevant 40838 architecture specific part of this specification. 40839 40840 The VTT for the std::basic_ofstream > class is described by Table 16-218 40842 40843 Table 16-218. VTT for basic_ofstream > 40845 VTT Name _ZTTSt14basic_ofstreamIwSt11char_traitsIwEE 40846 Number of Entries 4 40847 __________________________________________________________ 40848 40849 16.1.81.2. Interfaces for Class basic_ofstream > 40850 40851 An LSB conforming implementation shall provide the generic 40852 methods for Class std::basic_ofstream > specified in Table 16-219, with the 40854 full mandatory functionality as described in the referenced 40855 underlying specification. 40856 40857 Table 16-219. libstdcxx - Class basic_ofstream > Function Interfaces 40859 basic_ofstream >::rdbuf() 40860 const(GLIBCXX_3.4) [ISOCXX] 40861 basic_ofstream >::is_open() 40862 const(GLIBCXX_3.4.5) [ISOCXX] 40863 basic_ofstream >::open(char 40864 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 40865 basic_ofstream 40866 >::close()(GLIBCXX_3.4) [ISOCXX] 40867 basic_ofstream 40868 >::is_open()(GLIBCXX_3.4) [ISOCXX] 40869 basic_ofstream 40870 >::basic_ofstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40871 [ISOCXX] 40872 basic_ofstream 40873 >::basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40874 basic_ofstream 40875 >::basic_ofstream(char const*, _Ios_Openmode)(GLIBCXX_3.4) 40876 [ISOCXX] 40877 basic_ofstream 40878 >::basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40879 basic_ofstream 40880 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40881 basic_ofstream 40882 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40883 basic_ofstream 40884 >::~basic_ofstream()(GLIBCXX_3.4) [ISOCXX] 40885 40886 An LSB conforming implementation shall provide the generic data 40887 interfaces for Class std::basic_ofstream > specified in Table 16-220, with the 40889 full mandatory functionality as described in the referenced 40890 underlying specification. 40891 40892 Table 16-220. libstdcxx - Class basic_ofstream > Data Interfaces 40894 typeinfo for basic_ofstream 40895 >(GLIBCXX_3.4) [CXXABI-1.86] 40896 typeinfo name for basic_ofstream 40897 >(GLIBCXX_3.4) [CXXABI-1.86] 40898 VTT for basic_ofstream 40899 >(GLIBCXX_3.4) [CXXABI-1.86] 40900 vtable for basic_ofstream 40901 >(GLIBCXX_3.4) [CXXABI-1.86] 40902 __________________________________________________________ 40903 40904 16.1.82. Class basic_streambuf > 40905 __________________________________________________________ 40906 40907 16.1.82.1. Class data for basic_streambuf > 40908 40909 The virtual table for the std::basic_streambuf > class is described by Table 16-221 40911 40912 Table 16-221. Primary vtable for basic_streambuf > 40914 Base Offset 0 40915 Virtual Base Offset 0 40916 RTTI typeinfo for basic_streambuf > 40917 vfunc[0]: basic_streambuf 40918 >::~basic_streambuf() 40919 vfunc[1]: basic_streambuf 40920 >::~basic_streambuf() 40921 vfunc[2]: basic_streambuf 40922 >::imbue(locale const&) 40923 vfunc[3]: See architecture specific part. 40924 vfunc[4]: See architecture specific part. 40925 vfunc[5]: basic_streambuf 40926 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 40927 vfunc[6]: basic_streambuf >::sync() 40928 vfunc[7]: basic_streambuf 40929 >::showmanyc() 40930 vfunc[8]: See architecture specific part. 40931 vfunc[9]: basic_streambuf 40932 >::underflow() 40933 vfunc[10]: basic_streambuf >::uflow() 40934 vfunc[11]: basic_streambuf 40935 >::pbackfail(int) 40936 vfunc[12]: See architecture specific part. 40937 vfunc[13]: basic_streambuf 40938 >::overflow(int) 40939 40940 The Run Time Type Information for the 40941 std::basic_streambuf > class is 40942 described by Table 16-222 40943 40944 Table 16-222. typeinfo for basic_streambuf > 40946 Base Vtable vtable for __cxxabiv1::__class_type_info 40947 Name typeinfo name for basic_streambuf 40948 > 40949 __________________________________________________________ 40950 40951 16.1.82.2. Interfaces for Class basic_streambuf > 40952 40953 An LSB conforming implementation shall provide the generic 40954 methods for Class std::basic_streambuf > specified in Table 16-223, with the 40956 full mandatory functionality as described in the referenced 40957 underlying specification. 40958 40959 Table 16-223. libstdcxx - Class basic_streambuf > Function Interfaces 40961 basic_streambuf >::gptr() 40962 const(GLIBCXX_3.4) [ISOCXX] 40963 basic_streambuf >::pptr() 40964 const(GLIBCXX_3.4) [ISOCXX] 40965 basic_streambuf >::eback() 40966 const(GLIBCXX_3.4) [ISOCXX] 40967 basic_streambuf >::egptr() 40968 const(GLIBCXX_3.4) [ISOCXX] 40969 basic_streambuf >::epptr() 40970 const(GLIBCXX_3.4) [ISOCXX] 40971 basic_streambuf >::pbase() 40972 const(GLIBCXX_3.4) [ISOCXX] 40973 basic_streambuf >::getloc() 40974 const(GLIBCXX_3.4) [ISOCXX] 40975 basic_streambuf 40976 >::pubseekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 40977 [ISOCXX] 40978 basic_streambuf >::setg(char*, char*, 40979 char*)(GLIBCXX_3.4) [ISOCXX] 40980 basic_streambuf >::setp(char*, 40981 char*)(GLIBCXX_3.4) [ISOCXX] 40982 basic_streambuf >::sync()(GLIBCXX_3.4) 40983 [ISOCXX] 40984 basic_streambuf 40985 >::gbump(int)(GLIBCXX_3.4) [ISOCXX] 40986 basic_streambuf >::imbue(locale 40987 const&)(GLIBCXX_3.4) [ISOCXX] 40988 basic_streambuf 40989 >::pbump(int)(GLIBCXX_3.4) [ISOCXX] 40990 basic_streambuf >::sgetc()(GLIBCXX_3.4) 40991 [ISOCXX] 40992 basic_streambuf 40993 >::sputc(char)(GLIBCXX_3.4) [ISOCXX] 40994 basic_streambuf >::uflow()(GLIBCXX_3.4) 40995 [ISOCXX] 40996 basic_streambuf 40997 >::sbumpc()(GLIBCXX_3.4) [ISOCXX] 40998 basic_streambuf 40999 >::snextc()(GLIBCXX_3.4) [ISOCXX] 41000 basic_streambuf 41001 >::pubsync()(GLIBCXX_3.4) [ISOCXX] 41002 basic_streambuf 41003 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 41004 [ISOCXX] 41005 basic_streambuf 41006 >::sungetc()(GLIBCXX_3.4) [ISOCXX] 41007 basic_streambuf 41008 >::in_avail()(GLIBCXX_3.4) [ISOCXX] 41009 basic_streambuf 41010 >::overflow(int)(GLIBCXX_3.4) [ISOCXX] 41011 basic_streambuf >::pubimbue(locale 41012 const&)(GLIBCXX_3.4) [ISOCXX] 41013 basic_streambuf 41014 >::pbackfail(int)(GLIBCXX_3.4) [ISOCXX] 41015 basic_streambuf 41016 >::showmanyc()(GLIBCXX_3.4) [ISOCXX] 41017 basic_streambuf 41018 >::sputbackc(char)(GLIBCXX_3.4) [ISOCXX] 41019 basic_streambuf 41020 >::underflow()(GLIBCXX_3.4) [ISOCXX] 41021 basic_streambuf 41022 >::basic_streambuf(basic_streambuf > 41023 const&)(GLIBCXX_3.4) [ISOCXX] 41024 basic_streambuf 41025 >::basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41026 basic_streambuf 41027 >::basic_streambuf(basic_streambuf > 41028 const&)(GLIBCXX_3.4) [ISOCXX] 41029 basic_streambuf 41030 >::basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41031 basic_streambuf 41032 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41033 basic_streambuf 41034 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41035 basic_streambuf 41036 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41037 basic_streambuf 41038 >::operator=(basic_streambuf > 41039 const&)(GLIBCXX_3.4) [ISOCXX] 41040 41041 An LSB conforming implementation shall provide the generic data 41042 interfaces for Class std::basic_streambuf > specified in Table 16-224, with the 41044 full mandatory functionality as described in the referenced 41045 underlying specification. 41046 41047 Table 16-224. libstdcxx - Class basic_streambuf > Data Interfaces 41049 typeinfo for basic_streambuf 41050 >(GLIBCXX_3.4) [CXXABI-1.86] 41051 typeinfo name for basic_streambuf 41052 >(GLIBCXX_3.4) [CXXABI-1.86] 41053 vtable for basic_streambuf 41054 >(GLIBCXX_3.4) [CXXABI-1.86] 41055 __________________________________________________________ 41056 41057 16.1.83. Class basic_streambuf > 41058 __________________________________________________________ 41059 41060 16.1.83.1. Class data for basic_streambuf > 41061 41062 The virtual table for the std::basic_streambuf > class is described by Table 16-225 41064 41065 Table 16-225. Primary vtable for basic_streambuf > 41067 Base Offset 0 41068 Virtual Base Offset 0 41069 RTTI typeinfo for basic_streambuf 41070 > 41071 vfunc[0]: basic_streambuf 41072 >::~basic_streambuf() 41073 vfunc[1]: basic_streambuf 41074 >::~basic_streambuf() 41075 vfunc[2]: basic_streambuf 41076 >::imbue(locale const&) 41077 vfunc[3]: See architecture specific part. 41078 vfunc[4]: See architecture specific part. 41079 vfunc[5]: basic_streambuf 41080 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 41081 vfunc[6]: basic_streambuf 41082 >::sync() 41083 vfunc[7]: basic_streambuf 41084 >::showmanyc() 41085 vfunc[8]: See architecture specific part. 41086 vfunc[9]: basic_streambuf 41087 >::underflow() 41088 vfunc[10]: basic_streambuf 41089 >::uflow() 41090 vfunc[11]: basic_streambuf 41091 >::pbackfail(unsigned int) 41092 vfunc[12]: See architecture specific part. 41093 vfunc[13]: basic_streambuf 41094 >::overflow(unsigned int) 41095 41096 The Run Time Type Information for the 41097 std::basic_streambuf > class 41098 is described by Table 16-226 41099 41100 Table 16-226. typeinfo for basic_streambuf > 41102 Base Vtable vtable for __cxxabiv1::__class_type_info 41103 Name typeinfo name for basic_streambuf > 41105 __________________________________________________________ 41106 41107 16.1.83.2. Interfaces for Class basic_streambuf > 41108 41109 An LSB conforming implementation shall provide the generic 41110 methods for Class std::basic_streambuf > specified in Table 16-227, with the 41112 full mandatory functionality as described in the referenced 41113 underlying specification. 41114 41115 Table 16-227. libstdcxx - Class basic_streambuf > Function Interfaces 41117 basic_streambuf >::gptr() 41118 const(GLIBCXX_3.4) [ISOCXX] 41119 basic_streambuf >::pptr() 41120 const(GLIBCXX_3.4) [ISOCXX] 41121 basic_streambuf >::eback() 41122 const(GLIBCXX_3.4) [ISOCXX] 41123 basic_streambuf >::egptr() 41124 const(GLIBCXX_3.4) [ISOCXX] 41125 basic_streambuf >::epptr() 41126 const(GLIBCXX_3.4) [ISOCXX] 41127 basic_streambuf >::pbase() 41128 const(GLIBCXX_3.4) [ISOCXX] 41129 basic_streambuf >::getloc() 41130 const(GLIBCXX_3.4) [ISOCXX] 41131 basic_streambuf 41132 >::pubseekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 41133 [ISOCXX] 41134 basic_streambuf >::setg(wchar_t*, 41135 wchar_t*, wchar_t*)(GLIBCXX_3.4) [ISOCXX] 41136 basic_streambuf >::setp(wchar_t*, 41137 wchar_t*)(GLIBCXX_3.4) [ISOCXX] 41138 basic_streambuf 41139 >::sync()(GLIBCXX_3.4) [ISOCXX] 41140 basic_streambuf 41141 >::gbump(int)(GLIBCXX_3.4) [ISOCXX] 41142 basic_streambuf >::imbue(locale 41143 const&)(GLIBCXX_3.4) [ISOCXX] 41144 basic_streambuf 41145 >::pbump(int)(GLIBCXX_3.4) [ISOCXX] 41146 basic_streambuf 41147 >::sgetc()(GLIBCXX_3.4) [ISOCXX] 41148 basic_streambuf 41149 >::sputc(wchar_t)(GLIBCXX_3.4) [ISOCXX] 41150 basic_streambuf 41151 >::uflow()(GLIBCXX_3.4) [ISOCXX] 41152 basic_streambuf 41153 >::sbumpc()(GLIBCXX_3.4) [ISOCXX] 41154 basic_streambuf 41155 >::snextc()(GLIBCXX_3.4) [ISOCXX] 41156 basic_streambuf 41157 >::pubsync()(GLIBCXX_3.4) [ISOCXX] 41158 basic_streambuf 41159 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 41160 [ISOCXX] 41161 basic_streambuf 41162 >::sungetc()(GLIBCXX_3.4) [ISOCXX] 41163 basic_streambuf 41164 >::in_avail()(GLIBCXX_3.4) [ISOCXX] 41165 basic_streambuf 41166 >::overflow(unsigned int)(GLIBCXX_3.4) [ISOCXX] 41167 basic_streambuf 41168 >::pubimbue(locale const&)(GLIBCXX_3.4) [ISOCXX] 41169 basic_streambuf 41170 >::pbackfail(unsigned int)(GLIBCXX_3.4) [ISOCXX] 41171 basic_streambuf 41172 >::showmanyc()(GLIBCXX_3.4) [ISOCXX] 41173 basic_streambuf 41174 >::sputbackc(wchar_t)(GLIBCXX_3.4) [ISOCXX] 41175 basic_streambuf 41176 >::underflow()(GLIBCXX_3.4) [ISOCXX] 41177 basic_streambuf 41178 >::basic_streambuf(basic_streambuf > const&)(GLIBCXX_3.4) [ISOCXX] 41180 basic_streambuf 41181 >::basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41182 basic_streambuf 41183 >::basic_streambuf(basic_streambuf > const&)(GLIBCXX_3.4) [ISOCXX] 41185 basic_streambuf 41186 >::basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41187 basic_streambuf 41188 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41189 basic_streambuf 41190 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41191 basic_streambuf 41192 >::~basic_streambuf()(GLIBCXX_3.4) [ISOCXX] 41193 basic_streambuf 41194 >::operator=(basic_streambuf > 41195 const&)(GLIBCXX_3.4) [ISOCXX] 41196 __________________________________________________________ 41197 41198 16.1.84. Class basic_filebuf > 41199 __________________________________________________________ 41200 41201 16.1.84.1. Class data for basic_filebuf > 41202 41203 The virtual table for the std::basic_filebuf > class is described by Table 16-228 41205 41206 Table 16-228. Primary vtable for basic_filebuf > 41208 Base Offset 0 41209 Virtual Base Offset 0 41210 RTTI typeinfo for basic_filebuf > 41211 vfunc[0]: basic_filebuf 41212 >::~basic_filebuf() 41213 vfunc[1]: basic_filebuf 41214 >::~basic_filebuf() 41215 vfunc[2]: basic_filebuf >::imbue(locale 41216 const&) 41217 vfunc[3]: See architecture specific part. 41218 vfunc[4]: See architecture specific part. 41219 vfunc[5]: basic_filebuf 41220 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 41221 vfunc[6]: basic_filebuf >::sync() 41222 vfunc[7]: basic_filebuf >::showmanyc() 41223 vfunc[8]: See architecture specific part. 41224 vfunc[9]: basic_filebuf >::underflow() 41225 vfunc[10]: basic_streambuf >::uflow() 41226 vfunc[11]: basic_filebuf 41227 >::pbackfail(int) 41228 vfunc[12]: See architecture specific part. 41229 vfunc[13]: basic_filebuf 41230 >::overflow(int) 41231 41232 The Run Time Type Information for the std::basic_filebuf > class is described by Table 16-229 41234 41235 Table 16-229. typeinfo for basic_filebuf > 41237 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41238 Name typeinfo name for basic_filebuf > 41239 __________________________________________________________ 41240 41241 16.1.84.2. Interfaces for Class basic_filebuf > 41242 41243 An LSB conforming implementation shall provide the generic 41244 methods for Class std::basic_filebuf > specified in Table 16-230, with the 41246 full mandatory functionality as described in the referenced 41247 underlying specification. 41248 41249 Table 16-230. libstdcxx - Class basic_filebuf > Function Interfaces 41251 basic_filebuf >::is_open() 41252 const(GLIBCXX_3.4) [ISOCXX] 41253 basic_filebuf 41254 >::_M_create_pback()(GLIBCXX_3.4) [ISOCXX] 41255 basic_filebuf 41256 >::_M_destroy_pback()(GLIBCXX_3.4) [ISOCXX] 41257 basic_filebuf 41258 >::_M_terminate_output()(GLIBCXX_3.4) [ISOCXX] 41259 basic_filebuf 41260 >::_M_destroy_internal_buffer()(GLIBCXX_3.4) [ISOCXX] 41261 basic_filebuf 41262 >::_M_allocate_internal_buffer()(GLIBCXX_3.4) [ISOCXX] 41263 basic_filebuf >::open(char const*, 41264 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 41265 basic_filebuf >::sync()(GLIBCXX_3.4) 41266 [ISOCXX] 41267 basic_filebuf >::close()(GLIBCXX_3.4) 41268 [ISOCXX] 41269 basic_filebuf >::imbue(locale 41270 const&)(GLIBCXX_3.4) [ISOCXX] 41271 basic_filebuf 41272 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 41273 [ISOCXX] 41274 basic_filebuf 41275 >::overflow(int)(GLIBCXX_3.4) [ISOCXX] 41276 basic_filebuf 41277 >::pbackfail(int)(GLIBCXX_3.4) [ISOCXX] 41278 basic_filebuf 41279 >::showmanyc()(GLIBCXX_3.4) [ISOCXX] 41280 basic_filebuf 41281 >::underflow()(GLIBCXX_3.4) [ISOCXX] 41282 basic_filebuf 41283 >::basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41284 basic_filebuf 41285 >::basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41286 basic_filebuf 41287 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41288 basic_filebuf 41289 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41290 basic_filebuf 41291 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41292 41293 An LSB conforming implementation shall provide the generic data 41294 interfaces for Class std::basic_filebuf > specified in Table 16-231, with the 41296 full mandatory functionality as described in the referenced 41297 underlying specification. 41298 41299 Table 16-231. libstdcxx - Class basic_filebuf > Data Interfaces 41301 typeinfo for basic_filebuf 41302 >(GLIBCXX_3.4) [CXXABI-1.86] 41303 typeinfo name for basic_filebuf 41304 >(GLIBCXX_3.4) [CXXABI-1.86] 41305 vtable for basic_filebuf >(GLIBCXX_3.4) 41306 [CXXABI-1.86] 41307 __________________________________________________________ 41308 41309 16.1.85. Class basic_filebuf > 41310 __________________________________________________________ 41311 41312 16.1.85.1. Class data for basic_filebuf > 41313 41314 The virtual table for the std::basic_filebuf > class is described by Table 16-232 41316 41317 Table 16-232. Primary vtable for basic_filebuf > 41319 Base Offset 0 41320 Virtual Base Offset 0 41321 RTTI typeinfo for basic_filebuf > 41322 vfunc[0]: basic_filebuf 41323 >::~basic_filebuf() 41324 vfunc[1]: basic_filebuf 41325 >::~basic_filebuf() 41326 vfunc[2]: basic_filebuf 41327 >::imbue(locale const&) 41328 vfunc[3]: See architecture specific part. 41329 vfunc[4]: See architecture specific part. 41330 vfunc[5]: basic_filebuf 41331 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode) 41332 vfunc[6]: basic_filebuf >::sync() 41333 vfunc[7]: basic_filebuf 41334 >::showmanyc() 41335 vfunc[8]: See architecture specific part. 41336 vfunc[9]: basic_filebuf 41337 >::underflow() 41338 vfunc[10]: basic_streambuf 41339 >::uflow() 41340 vfunc[11]: basic_filebuf 41341 >::pbackfail(unsigned int) 41342 vfunc[12]: See architecture specific part. 41343 vfunc[13]: basic_filebuf 41344 >::overflow(unsigned int) 41345 41346 The Run Time Type Information for the 41347 std::basic_filebuf > class 41348 is described by Table 16-233 41349 41350 Table 16-233. typeinfo for basic_filebuf > 41352 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41353 Name typeinfo name for basic_filebuf > 41355 __________________________________________________________ 41356 41357 16.1.85.2. Interfaces for Class basic_filebuf > 41358 41359 An LSB conforming implementation shall provide the generic 41360 methods for Class std::basic_filebuf > specified in Table 16-234, with the 41362 full mandatory functionality as described in the referenced 41363 underlying specification. 41364 41365 Table 16-234. libstdcxx - Class basic_filebuf > Function Interfaces 41367 basic_filebuf >::is_open() 41368 const(GLIBCXX_3.4) [ISOCXX] 41369 basic_filebuf 41370 >::_M_create_pback()(GLIBCXX_3.4) [ISOCXX] 41371 basic_filebuf 41372 >::_M_destroy_pback()(GLIBCXX_3.4) [ISOCXX] 41373 basic_filebuf 41374 >::_M_terminate_output()(GLIBCXX_3.4) [ISOCXX] 41375 basic_filebuf 41376 >::_M_destroy_internal_buffer()(GLIBCXX_3.4) [ISOCXX] 41377 basic_filebuf 41378 >::_M_allocate_internal_buffer()(GLIBCXX_3.4) [ISOCXX] 41379 basic_filebuf >::open(char 41380 const*, _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 41381 basic_filebuf 41382 >::sync()(GLIBCXX_3.4) [ISOCXX] 41383 basic_filebuf 41384 >::close()(GLIBCXX_3.4) [ISOCXX] 41385 basic_filebuf >::imbue(locale 41386 const&)(GLIBCXX_3.4) [ISOCXX] 41387 basic_filebuf 41388 >::seekpos(fpos<__mbstate_t>, _Ios_Openmode)(GLIBCXX_3.4) 41389 [ISOCXX] 41390 basic_filebuf 41391 >::overflow(unsigned int)(GLIBCXX_3.4) [ISOCXX] 41392 basic_filebuf 41393 >::pbackfail(unsigned int)(GLIBCXX_3.4) [ISOCXX] 41394 basic_filebuf 41395 >::showmanyc()(GLIBCXX_3.4) [ISOCXX] 41396 basic_filebuf 41397 >::underflow()(GLIBCXX_3.4) [ISOCXX] 41398 basic_filebuf 41399 >::basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41400 basic_filebuf 41401 >::basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41402 basic_filebuf 41403 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41404 basic_filebuf 41405 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41406 basic_filebuf 41407 >::~basic_filebuf()(GLIBCXX_3.4) [ISOCXX] 41408 basic_istream 41409 >::basic_istream()(GLIBCXX_3.4) [ISOCXX] 41410 basic_istream 41411 >::basic_istream()(GLIBCXX_3.4) [ISOCXX] 41412 basic_ostream 41413 >::basic_ostream()(GLIBCXX_3.4) [ISOCXX] 41414 basic_ostream 41415 >::basic_ostream()(GLIBCXX_3.4) [ISOCXX] 41416 41417 An LSB conforming implementation shall provide the generic data 41418 interfaces for Class std::basic_filebuf > specified in Table 16-235, with the 41420 full mandatory functionality as described in the referenced 41421 underlying specification. 41422 41423 Table 16-235. libstdcxx - Class basic_filebuf > Data Interfaces 41425 typeinfo for basic_filebuf 41426 >(GLIBCXX_3.4) [CXXABI-1.86] 41427 typeinfo name for basic_filebuf 41428 >(GLIBCXX_3.4) [CXXABI-1.86] 41429 vtable for basic_filebuf 41430 >(GLIBCXX_3.4) [CXXABI-1.86] 41431 __________________________________________________________ 41432 41433 16.1.86. Class ios_base 41434 __________________________________________________________ 41435 41436 16.1.86.1. Class data for ios_base 41437 41438 The virtual table for the std::ios_base class is described by 41439 Table 16-236 41440 41441 Table 16-236. Primary vtable for ios_base 41442 Base Offset 0 41443 Virtual Base Offset 0 41444 RTTI typeinfo for ios_base 41445 vfunc[0]: ios_base::~ios_base() 41446 vfunc[1]: ios_base::~ios_base() 41447 41448 The Run Time Type Information for the std::ios_base class is 41449 described by Table 16-237 41450 41451 Table 16-237. typeinfo for ios_base 41452 Base Vtable vtable for __cxxabiv1::__class_type_info 41453 Name typeinfo name for ios_base 41454 __________________________________________________________ 41455 41456 16.1.86.2. Interfaces for Class ios_base 41457 41458 An LSB conforming implementation shall provide the generic 41459 methods for Class std::ios_base specified in Table 16-238, with 41460 the full mandatory functionality as described in the referenced 41461 underlying specification. 41462 41463 Table 16-238. libstdcxx - Class ios_base Function Interfaces 41464 ios_base::_M_grow_words(int, bool)(GLIBCXX_3.4) [ISOCXX] 41465 ios_base::sync_with_stdio(bool)(GLIBCXX_3.4) [ISOCXX] 41466 ios_base::_M_call_callbacks(ios_base::event)(GLIBCXX_3.4.6) 41467 [ISOCXX] 41468 ios_base::register_callback(void (*)(ios_base::event, 41469 ios_base&, int), int)(GLIBCXX_3.4) [ISOCXX] 41470 ios_base::_M_dispose_callbacks()(GLIBCXX_3.4.6) [ISOCXX] 41471 ios_base::Init::Init()(GLIBCXX_3.4) [ISOCXX] 41472 ios_base::Init::Init()(GLIBCXX_3.4) [ISOCXX] 41473 ios_base::Init::~Init()(GLIBCXX_3.4) [ISOCXX] 41474 ios_base::Init::~Init()(GLIBCXX_3.4) [ISOCXX] 41475 ios_base::imbue(locale const&)(GLIBCXX_3.4) [ISOCXX] 41476 ios_base::xalloc()(GLIBCXX_3.4) [ISOCXX] 41477 ios_base::_M_init()(GLIBCXX_3.4) [ISOCXX] 41478 ios_base::failure::failure(basic_string, allocator > const&)(GLIBCXX_3.4) 41480 [ISOCXX] 41481 ios_base::failure::failure(basic_string, allocator > const&)(GLIBCXX_3.4) 41483 [ISOCXX] 41484 ios_base::failure::~failure()(GLIBCXX_3.4) [ISOCXX] 41485 ios_base::failure::~failure()(GLIBCXX_3.4) [ISOCXX] 41486 ios_base::failure::~failure()(GLIBCXX_3.4) [ISOCXX] 41487 ios_base::ios_base()(GLIBCXX_3.4) [ISOCXX] 41488 ios_base::ios_base()(GLIBCXX_3.4) [ISOCXX] 41489 ios_base::~ios_base()(GLIBCXX_3.4) [ISOCXX] 41490 ios_base::~ios_base()(GLIBCXX_3.4) [ISOCXX] 41491 ios_base::~ios_base()(GLIBCXX_3.4) [ISOCXX] 41492 41493 An LSB conforming implementation shall provide the generic data 41494 interfaces for Class std::ios_base specified in Table 16-239, 41495 with the full mandatory functionality as described in the 41496 referenced underlying specification. 41497 41498 Table 16-239. libstdcxx - Class ios_base Data Interfaces 41499 ios_base::floatfield(GLIBCXX_3.4) [ISOCXX] 41500 ios_base::scientific(GLIBCXX_3.4) [ISOCXX] 41501 ios_base::adjustfield(GLIBCXX_3.4) [ISOCXX] 41502 ios_base::in(GLIBCXX_3.4) [ISOCXX] 41503 ios_base::app(GLIBCXX_3.4) [ISOCXX] 41504 ios_base::ate(GLIBCXX_3.4) [ISOCXX] 41505 ios_base::beg(GLIBCXX_3.4) [ISOCXX] 41506 ios_base::cur(GLIBCXX_3.4) [ISOCXX] 41507 ios_base::dec(GLIBCXX_3.4) [ISOCXX] 41508 ios_base::end(GLIBCXX_3.4) [ISOCXX] 41509 ios_base::hex(GLIBCXX_3.4) [ISOCXX] 41510 ios_base::oct(GLIBCXX_3.4) [ISOCXX] 41511 ios_base::out(GLIBCXX_3.4) [ISOCXX] 41512 ios_base::left(GLIBCXX_3.4) [ISOCXX] 41513 ios_base::fixed(GLIBCXX_3.4) [ISOCXX] 41514 ios_base::right(GLIBCXX_3.4) [ISOCXX] 41515 ios_base::trunc(GLIBCXX_3.4) [ISOCXX] 41516 ios_base::badbit(GLIBCXX_3.4) [ISOCXX] 41517 ios_base::binary(GLIBCXX_3.4) [ISOCXX] 41518 ios_base::eofbit(GLIBCXX_3.4) [ISOCXX] 41519 ios_base::skipws(GLIBCXX_3.4) [ISOCXX] 41520 ios_base::failbit(GLIBCXX_3.4) [ISOCXX] 41521 ios_base::goodbit(GLIBCXX_3.4) [ISOCXX] 41522 ios_base::showpos(GLIBCXX_3.4) [ISOCXX] 41523 ios_base::unitbuf(GLIBCXX_3.4) [ISOCXX] 41524 ios_base::internal(GLIBCXX_3.4) [ISOCXX] 41525 ios_base::showbase(GLIBCXX_3.4) [ISOCXX] 41526 ios_base::basefield(GLIBCXX_3.4) [ISOCXX] 41527 ios_base::boolalpha(GLIBCXX_3.4) [ISOCXX] 41528 ios_base::showpoint(GLIBCXX_3.4) [ISOCXX] 41529 ios_base::uppercase(GLIBCXX_3.4) [ISOCXX] 41530 typeinfo for ios_base(GLIBCXX_3.4) [CXXABI-1.86] 41531 typeinfo name for ios_base(GLIBCXX_3.4) [CXXABI-1.86] 41532 vtable for ios_base(GLIBCXX_3.4) [CXXABI-1.86] 41533 __________________________________________________________ 41534 41535 16.1.87. Class basic_ios > 41536 __________________________________________________________ 41537 41538 16.1.87.1. Class data for basic_ios > 41539 41540 The virtual table for the std::basic_ios > class is described by Table 16-240 41542 41543 Table 16-240. Primary vtable for basic_ios > 41545 Base Offset 0 41546 Virtual Base Offset 0 41547 RTTI typeinfo for basic_ios > 41548 vfunc[0]: basic_ios >::~basic_ios() 41549 vfunc[1]: basic_ios >::~basic_ios() 41550 __________________________________________________________ 41551 41552 16.1.87.2. Interfaces for Class basic_ios > 41553 41554 An LSB conforming implementation shall provide the generic 41555 methods for Class std::basic_ios > 41556 specified in Table 16-241, with the full mandatory 41557 functionality as described in the referenced underlying 41558 specification. 41559 41560 Table 16-241. libstdcxx - Class basic_ios > Function Interfaces 41562 basic_ios >::exceptions() 41563 const(GLIBCXX_3.4) [ISOCXX] 41564 basic_ios >::bad() const(GLIBCXX_3.4) 41565 [ISOCXX] 41566 basic_ios >::eof() const(GLIBCXX_3.4) 41567 [ISOCXX] 41568 basic_ios >::tie() const(GLIBCXX_3.4) 41569 [ISOCXX] 41570 basic_ios >::fail() const(GLIBCXX_3.4) 41571 [ISOCXX] 41572 basic_ios >::fill() const(GLIBCXX_3.4) 41573 [ISOCXX] 41574 basic_ios >::good() const(GLIBCXX_3.4) 41575 [ISOCXX] 41576 basic_ios >::rdbuf() const(GLIBCXX_3.4) 41577 [ISOCXX] 41578 basic_ios >::widen(char) 41579 const(GLIBCXX_3.4) [ISOCXX] 41580 basic_ios >::narrow(char, char) 41581 const(GLIBCXX_3.4) [ISOCXX] 41582 basic_ios >::rdstate() 41583 const(GLIBCXX_3.4) [ISOCXX] 41584 basic_ios >::operator void*() 41585 const(GLIBCXX_3.4) [ISOCXX] 41586 basic_ios >::operator!() 41587 const(GLIBCXX_3.4) [ISOCXX] 41588 basic_ios 41589 >::exceptions(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41590 basic_ios 41591 >::_M_setstate(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41592 basic_ios >::tie(basic_ostream >*)(GLIBCXX_3.4) [ISOCXX] 41594 basic_ios >::fill(char)(GLIBCXX_3.4) 41595 [ISOCXX] 41596 basic_ios >::init(basic_streambuf >*)(GLIBCXX_3.4) [ISOCXX] 41598 basic_ios 41599 >::clear(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41600 basic_ios >::imbue(locale 41601 const&)(GLIBCXX_3.4) [ISOCXX] 41602 basic_ios 41603 >::rdbuf(basic_streambuf 41604 >*)(GLIBCXX_3.4) [ISOCXX] 41605 basic_ios >::copyfmt(basic_ios > const&)(GLIBCXX_3.4) [ISOCXX] 41607 basic_ios 41608 >::setstate(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41609 basic_ios 41610 >::basic_ios(basic_streambuf 41611 >*)(GLIBCXX_3.4) [ISOCXX] 41612 basic_ios >::basic_ios()(GLIBCXX_3.4) 41613 [ISOCXX] 41614 basic_ios 41615 >::basic_ios(basic_streambuf 41616 >*)(GLIBCXX_3.4) [ISOCXX] 41617 basic_ios >::basic_ios()(GLIBCXX_3.4) 41618 [ISOCXX] 41619 basic_ios >::~basic_ios()(GLIBCXX_3.4) 41620 [ISOCXX] 41621 basic_ios >::~basic_ios()(GLIBCXX_3.4) 41622 [ISOCXX] 41623 basic_ios >::~basic_ios()(GLIBCXX_3.4) 41624 [ISOCXX] 41625 41626 An LSB conforming implementation shall provide the generic data 41627 interfaces for Class std::basic_ios > specified in Table 16-242, with the 41629 full mandatory functionality as described in the referenced 41630 underlying specification. 41631 41632 Table 16-242. libstdcxx - Class basic_ios > Data Interfaces 41634 typeinfo for basic_ios >(GLIBCXX_3.4) 41635 [CXXABI-1.86] 41636 typeinfo name for basic_ios 41637 >(GLIBCXX_3.4) [CXXABI-1.86] 41638 vtable for basic_ios >(GLIBCXX_3.4) 41639 [CXXABI-1.86] 41640 __________________________________________________________ 41641 41642 16.1.88. Class basic_ios > 41643 __________________________________________________________ 41644 41645 16.1.88.1. Class data for basic_ios > 41646 41647 The virtual table for the std::basic_ios > class is described by Table 16-243 41649 41650 Table 16-243. Primary vtable for basic_ios > 41652 Base Offset 0 41653 Virtual Base Offset 0 41654 RTTI typeinfo for basic_ios > 41655 vfunc[0]: basic_ios 41656 >::~basic_ios() 41657 vfunc[1]: basic_ios 41658 >::~basic_ios() 41659 41660 The Run Time Type Information for the std::basic_ios > class is described by Table 16-244 41662 41663 Table 16-244. typeinfo for basic_ios > 41665 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41666 Name typeinfo name for basic_ios 41667 > 41668 flags: 8 41669 basetype: typeinfo for ios_base 1026 41670 __________________________________________________________ 41671 41672 16.1.88.2. Interfaces for Class basic_ios > 41673 41674 An LSB conforming implementation shall provide the generic 41675 methods for Class std::basic_ios > specified in Table 16-245, with the 41677 full mandatory functionality as described in the referenced 41678 underlying specification. 41679 41680 Table 16-245. libstdcxx - Class basic_ios > Function Interfaces 41682 basic_ios >::exceptions() 41683 const(GLIBCXX_3.4) [ISOCXX] 41684 basic_ios >::bad() 41685 const(GLIBCXX_3.4) [ISOCXX] 41686 basic_ios >::eof() 41687 const(GLIBCXX_3.4) [ISOCXX] 41688 basic_ios >::tie() 41689 const(GLIBCXX_3.4) [ISOCXX] 41690 basic_ios >::fail() 41691 const(GLIBCXX_3.4) [ISOCXX] 41692 basic_ios >::fill() 41693 const(GLIBCXX_3.4) [ISOCXX] 41694 basic_ios >::good() 41695 const(GLIBCXX_3.4) [ISOCXX] 41696 basic_ios >::rdbuf() 41697 const(GLIBCXX_3.4) [ISOCXX] 41698 basic_ios >::widen(char) 41699 const(GLIBCXX_3.4) [ISOCXX] 41700 basic_ios >::narrow(wchar_t, 41701 char) const(GLIBCXX_3.4) [ISOCXX] 41702 basic_ios >::rdstate() 41703 const(GLIBCXX_3.4) [ISOCXX] 41704 basic_ios >::operator void*() 41705 const(GLIBCXX_3.4) [ISOCXX] 41706 basic_ios >::operator!() 41707 const(GLIBCXX_3.4) [ISOCXX] 41708 basic_ios 41709 >::exceptions(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41710 basic_ios 41711 >::_M_setstate(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41712 basic_ios 41713 >::tie(basic_ostream 41714 >*)(GLIBCXX_3.4) [ISOCXX] 41715 basic_ios 41716 >::fill(wchar_t)(GLIBCXX_3.4) [ISOCXX] 41717 basic_ios 41718 >::init(basic_streambuf 41719 >*)(GLIBCXX_3.4) [ISOCXX] 41720 basic_ios 41721 >::clear(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41722 basic_ios >::imbue(locale 41723 const&)(GLIBCXX_3.4) [ISOCXX] 41724 basic_ios 41725 >::rdbuf(basic_streambuf 41726 >*)(GLIBCXX_3.4) [ISOCXX] 41727 basic_ios 41728 >::copyfmt(basic_ios > 41729 const&)(GLIBCXX_3.4) [ISOCXX] 41730 basic_ios 41731 >::setstate(_Ios_Iostate)(GLIBCXX_3.4) [ISOCXX] 41732 basic_ios 41733 >::basic_ios(basic_streambuf 41734 >*)(GLIBCXX_3.4) [ISOCXX] 41735 basic_ios 41736 >::basic_ios()(GLIBCXX_3.4) [ISOCXX] 41737 basic_ios 41738 >::basic_ios(basic_streambuf 41739 >*)(GLIBCXX_3.4) [ISOCXX] 41740 basic_ios 41741 >::basic_ios()(GLIBCXX_3.4) [ISOCXX] 41742 basic_ios 41743 >::~basic_ios()(GLIBCXX_3.4) [ISOCXX] 41744 basic_ios 41745 >::~basic_ios()(GLIBCXX_3.4) [ISOCXX] 41746 basic_ios 41747 >::~basic_ios()(GLIBCXX_3.4) [ISOCXX] 41748 41749 An LSB conforming implementation shall provide the generic data 41750 interfaces for Class std::basic_ios > specified in Table 16-246, with the 41752 full mandatory functionality as described in the referenced 41753 underlying specification. 41754 41755 Table 16-246. libstdcxx - Class basic_ios > Data Interfaces 41757 typeinfo for basic_ios 41758 >(GLIBCXX_3.4) [CXXABI-1.86] 41759 typeinfo name for basic_ios 41760 >(GLIBCXX_3.4) [CXXABI-1.86] 41761 vtable for basic_ios 41762 >(GLIBCXX_3.4) [CXXABI-1.86] 41763 __________________________________________________________ 41764 41765 16.1.89. Class ios_base::failure 41766 __________________________________________________________ 41767 41768 16.1.89.1. Class data for ios_base::failure 41769 41770 The virtual table for the std::ios_base::failure class is 41771 described by Table 16-247 41772 41773 Table 16-247. Primary vtable for ios_base::failure 41774 Base Offset 0 41775 Virtual Base Offset 0 41776 RTTI typeinfo for ios_base::failure 41777 vfunc[0]: ios_base::failure::~failure() 41778 vfunc[1]: ios_base::failure::~failure() 41779 vfunc[2]: ios_base::failure::what() const 41780 41781 The Run Time Type Information for the std::ios_base::failure 41782 class is described by Table 16-248 41783 41784 Table 16-248. typeinfo for ios_base::failure 41785 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41786 Name typeinfo name for ios_base::failure 41787 __________________________________________________________ 41788 41789 16.1.89.2. Interfaces for Class ios_base::failure 41790 41791 An LSB conforming implementation shall provide the generic 41792 methods for Class std::ios_base::failure specified in Table 41793 16-249, with the full mandatory functionality as described in 41794 the referenced underlying specification. 41795 41796 Table 16-249. libstdcxx - Class ios_base::failure Function 41797 Interfaces 41798 ios_base::failure::what() const(GLIBCXX_3.4) [ISOCXX] 41799 41800 An LSB conforming implementation shall provide the generic data 41801 interfaces for Class std::ios_base::failure specified in Table 41802 16-250, with the full mandatory functionality as described in 41803 the referenced underlying specification. 41804 41805 Table 16-250. libstdcxx - Class ios_base::failure Data 41806 Interfaces 41807 typeinfo for ios_base::failure(GLIBCXX_3.4) [CXXABI-1.86] 41808 typeinfo name for ios_base::failure(GLIBCXX_3.4) [CXXABI-1.86] 41809 vtable for ios_base::failure(GLIBCXX_3.4) [CXXABI-1.86] 41810 __________________________________________________________ 41811 41812 16.1.90. Class __timepunct 41813 __________________________________________________________ 41814 41815 16.1.90.1. Class data for __timepunct 41816 41817 The virtual table for the std::__timepunct class is 41818 described by Table 16-251 41819 41820 Table 16-251. Primary vtable for __timepunct 41821 Base Offset 0 41822 Virtual Base Offset 0 41823 RTTI typeinfo for __timepunct 41824 vfunc[0]: __timepunct::~__timepunct() 41825 vfunc[1]: __timepunct::~__timepunct() 41826 41827 The Run Time Type Information for the std::__timepunct 41828 class is described by Table 16-252 41829 41830 Table 16-252. typeinfo for __timepunct 41831 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41832 Name typeinfo name for __timepunct 41833 __________________________________________________________ 41834 41835 16.1.90.2. Interfaces for Class __timepunct 41836 41837 An LSB conforming implementation shall provide the generic 41838 methods for Class std::__timepunct specified in Table 41839 16-253, with the full mandatory functionality as described in 41840 the referenced underlying specification. 41841 41842 Table 16-253. libstdcxx - Class __timepunct Function 41843 Interfaces 41844 __timepunct::_M_am_pm_format(char const*) 41845 const(GLIBCXX_3.4) [ISOCXX] 41846 __timepunct::_M_date_formats(char const**) 41847 const(GLIBCXX_3.4) [ISOCXX] 41848 __timepunct::_M_time_formats(char const**) 41849 const(GLIBCXX_3.4) [ISOCXX] 41850 __timepunct::_M_days_abbreviated(char const**) 41851 const(GLIBCXX_3.4) [ISOCXX] 41852 __timepunct::_M_date_time_formats(char const**) 41853 const(GLIBCXX_3.4) [ISOCXX] 41854 __timepunct::_M_months_abbreviated(char const**) 41855 const(GLIBCXX_3.4) [ISOCXX] 41856 __timepunct::_M_days(char const**) const(GLIBCXX_3.4) 41857 [ISOCXX] 41858 __timepunct::_M_am_pm(char const**) const(GLIBCXX_3.4) 41859 [ISOCXX] 41860 __timepunct::_M_months(char const**) const(GLIBCXX_3.4) 41861 [ISOCXX] 41862 __timepunct::_M_am_pm_format(wchar_t const*) 41863 const(GLIBCXX_3.4) [ISOCXX] 41864 __timepunct::_M_initialize_timepunct(__locale_struct*)(GL 41865 IBCXX_3.4) [ISOCXX] 41866 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41867 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41868 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41869 bool has_facet<__timepunct >(locale const&)(GLIBCXX_3.4) 41870 [ISOCXX] 41871 41872 An LSB conforming implementation shall provide the generic data 41873 interfaces for Class std::__timepunct specified in Table 41874 16-254, with the full mandatory functionality as described in 41875 the referenced underlying specification. 41876 41877 Table 16-254. libstdcxx - Class __timepunct Data 41878 Interfaces 41879 guard variable for __timepunct::id(GLIBCXX_3.4) 41880 [CXXABI-1.86] 41881 __timepunct::id(GLIBCXX_3.4) [ISOCXX] 41882 typeinfo for __timepunct(GLIBCXX_3.4) [CXXABI-1.86] 41883 typeinfo name for __timepunct(GLIBCXX_3.4) [CXXABI-1.86] 41884 vtable for __timepunct(GLIBCXX_3.4) [CXXABI-1.86] 41885 __________________________________________________________ 41886 41887 16.1.91. Class __timepunct 41888 __________________________________________________________ 41889 41890 16.1.91.1. Class data for __timepunct 41891 41892 The virtual table for the std::__timepunct class is 41893 described by Table 16-255 41894 41895 Table 16-255. Primary vtable for __timepunct 41896 Base Offset 0 41897 Virtual Base Offset 0 41898 RTTI typeinfo for __timepunct 41899 vfunc[0]: __timepunct::~__timepunct() 41900 vfunc[1]: __timepunct::~__timepunct() 41901 41902 The Run Time Type Information for the std::__timepunct 41903 class is described by Table 16-256 41904 41905 Table 16-256. typeinfo for __timepunct 41906 Base Vtable vtable for __cxxabiv1::__si_class_type_info 41907 Name typeinfo name for __timepunct 41908 __________________________________________________________ 41909 41910 16.1.91.2. Interfaces for Class __timepunct 41911 41912 An LSB conforming implementation shall provide the generic 41913 methods for Class std::__timepunct specified in Table 41914 16-257, with the full mandatory functionality as described in 41915 the referenced underlying specification. 41916 41917 Table 16-257. libstdcxx - Class __timepunct Function 41918 Interfaces 41919 __timepunct::_M_date_formats(wchar_t const**) 41920 const(GLIBCXX_3.4) [ISOCXX] 41921 __timepunct::_M_time_formats(wchar_t const**) 41922 const(GLIBCXX_3.4) [ISOCXX] 41923 __timepunct::_M_days_abbreviated(wchar_t const**) 41924 const(GLIBCXX_3.4) [ISOCXX] 41925 __timepunct::_M_date_time_formats(wchar_t const**) 41926 const(GLIBCXX_3.4) [ISOCXX] 41927 __timepunct::_M_months_abbreviated(wchar_t const**) 41928 const(GLIBCXX_3.4) [ISOCXX] 41929 __timepunct::_M_days(wchar_t const**) 41930 const(GLIBCXX_3.4) [ISOCXX] 41931 __timepunct::_M_am_pm(wchar_t const**) 41932 const(GLIBCXX_3.4) [ISOCXX] 41933 __timepunct::_M_months(wchar_t const**) 41934 const(GLIBCXX_3.4) [ISOCXX] 41935 __timepunct::_M_initialize_timepunct(__locale_struct*) 41936 (GLIBCXX_3.4) [ISOCXX] 41937 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41938 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41939 __timepunct::~__timepunct()(GLIBCXX_3.4) [ISOCXX] 41940 bool has_facet<__timepunct >(locale 41941 const&)(GLIBCXX_3.4) [ISOCXX] 41942 41943 An LSB conforming implementation shall provide the generic data 41944 interfaces for Class std::__timepunct specified in 41945 Table 16-258, with the full mandatory functionality as 41946 described in the referenced underlying specification. 41947 41948 Table 16-258. libstdcxx - Class __timepunct Data 41949 Interfaces 41950 guard variable for __timepunct::id(GLIBCXX_3.4) 41951 [CXXABI-1.86] 41952 __timepunct::id(GLIBCXX_3.4) [ISOCXX] 41953 typeinfo for __timepunct(GLIBCXX_3.4) [CXXABI-1.86] 41954 typeinfo name for __timepunct(GLIBCXX_3.4) 41955 [CXXABI-1.86] 41956 vtable for __timepunct(GLIBCXX_3.4) [CXXABI-1.86] 41957 __________________________________________________________ 41958 41959 16.1.92. Class messages_base 41960 __________________________________________________________ 41961 41962 16.1.92.1. Class data for messages_base 41963 41964 The Run Time Type Information for the std::messages_base class 41965 is described by Table 16-259 41966 41967 Table 16-259. typeinfo for messages_base 41968 Base Vtable vtable for __cxxabiv1::__class_type_info 41969 Name typeinfo name for messages_base 41970 __________________________________________________________ 41971 41972 16.1.92.2. Interfaces for Class messages_base 41973 41974 No external methods are defined for libstdcxx - Class 41975 std::messages_base in this part of the specification. See also 41976 the relevant architecture specific part of this specification. 41977 41978 An LSB conforming implementation shall provide the generic data 41979 interfaces for Class std::messages_base specified in Table 41980 16-260, with the full mandatory functionality as described in 41981 the referenced underlying specification. 41982 41983 Table 16-260. libstdcxx - Class messages_base Data Interfaces 41984 typeinfo for messages_base(GLIBCXX_3.4) [CXXABI-1.86] 41985 typeinfo name for messages_base(GLIBCXX_3.4) [CXXABI-1.86] 41986 __________________________________________________________ 41987 41988 16.1.93. Class messages 41989 __________________________________________________________ 41990 41991 16.1.93.1. Class data for messages 41992 41993 The virtual table for the std::messages class is 41994 described by Table 16-261 41995 41996 Table 16-261. Primary vtable for messages 41997 Base Offset 0 41998 Virtual Base Offset 0 41999 RTTI typeinfo for messages 42000 vfunc[0]: messages::~messages() 42001 vfunc[1]: messages::~messages() 42002 vfunc[2]: messages::do_open(basic_string, allocator > const&, locale const&) 42004 const 42005 vfunc[3]: messages::do_get(int, int, int, 42006 basic_string, allocator > const&) 42007 const 42008 vfunc[4]: messages::do_close(int) const 42009 __________________________________________________________ 42010 42011 16.1.93.2. Interfaces for Class messages 42012 42013 An LSB conforming implementation shall provide the generic 42014 methods for Class std::messages specified in Table 42015 16-262, with the full mandatory functionality as described in 42016 the referenced underlying specification. 42017 42018 Table 16-262. libstdcxx - Class messages Function 42019 Interfaces 42020 messages::_M_convert_to_char(basic_string, allocator > const&) const(GLIBCXX_3.4) 42022 [ISOCXX] 42023 messages::_M_convert_from_char(char*) const(GLIBCXX_3.4) 42024 [ISOCXX] 42025 messages::get(int, int, int, basic_string, allocator > const&) const(GLIBCXX_3.4) 42027 [ISOCXX] 42028 messages::open(basic_string, 42029 allocator > const&, locale const&) const(GLIBCXX_3.4) 42030 [ISOCXX] 42031 messages::open(basic_string, 42032 allocator > const&, locale const&, char const*) 42033 const(GLIBCXX_3.4) [ISOCXX] 42034 messages::close(int) const(GLIBCXX_3.4) [ISOCXX] 42035 messages::do_get(int, int, int, basic_string, allocator > const&) const(GLIBCXX_3.4) 42037 [ISOCXX] 42038 messages::do_open(basic_string, 42039 allocator > const&, locale const&) const(GLIBCXX_3.4) 42040 [ISOCXX] 42041 messages::do_close(int) const(GLIBCXX_3.4) [ISOCXX] 42042 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42043 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42044 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42045 42046 An LSB conforming implementation shall provide the generic data 42047 interfaces for Class std::messages specified in Table 42048 16-263, with the full mandatory functionality as described in 42049 the referenced underlying specification. 42050 42051 Table 16-263. libstdcxx - Class messages Data Interfaces 42052 guard variable for messages::id(GLIBCXX_3.4) 42053 [CXXABI-1.86] 42054 messages::id(GLIBCXX_3.4) [ISOCXX] 42055 typeinfo for messages(GLIBCXX_3.4) [CXXABI-1.86] 42056 typeinfo name for messages(GLIBCXX_3.4) [CXXABI-1.86] 42057 vtable for messages(GLIBCXX_3.4) [CXXABI-1.86] 42058 __________________________________________________________ 42059 42060 16.1.94. Class messages 42061 __________________________________________________________ 42062 42063 16.1.94.1. Class data for messages 42064 42065 The virtual table for the std::messages class is 42066 described by Table 16-264 42067 42068 Table 16-264. Primary vtable for messages 42069 Base Offset 0 42070 Virtual Base Offset 0 42071 RTTI typeinfo for messages 42072 vfunc[0]: messages::~messages() 42073 vfunc[1]: messages::~messages() 42074 vfunc[2]: messages::do_open(basic_string, allocator > const&, locale const&) 42076 const 42077 vfunc[3]: messages::do_get(int, int, int, 42078 basic_string, allocator 42079 > const&) const 42080 vfunc[4]: messages::do_close(int) const 42081 __________________________________________________________ 42082 42083 16.1.94.2. Interfaces for Class messages 42084 42085 An LSB conforming implementation shall provide the generic 42086 methods for Class std::messages specified in Table 42087 16-265, with the full mandatory functionality as described in 42088 the referenced underlying specification. 42089 42090 Table 16-265. libstdcxx - Class messages Function 42091 Interfaces 42092 messages::_M_convert_to_char(basic_string, allocator > const&) 42094 const(GLIBCXX_3.4) [ISOCXX] 42095 messages::_M_convert_from_char(char*) 42096 const(GLIBCXX_3.4) [ISOCXX] 42097 messages::get(int, int, int, basic_string, allocator > const&) 42099 const(GLIBCXX_3.4) [ISOCXX] 42100 messages::open(basic_string, 42101 allocator > const&, locale const&) const(GLIBCXX_3.4) 42102 [ISOCXX] 42103 messages::open(basic_string, 42104 allocator > const&, locale const&, char const*) 42105 const(GLIBCXX_3.4) [ISOCXX] 42106 messages::close(int) const(GLIBCXX_3.4) [ISOCXX] 42107 messages::do_get(int, int, int, basic_string, allocator > const&) 42109 const(GLIBCXX_3.4) [ISOCXX] 42110 messages::do_open(basic_string, allocator > const&, locale const&) 42112 const(GLIBCXX_3.4) [ISOCXX] 42113 messages::do_close(int) const(GLIBCXX_3.4) [ISOCXX] 42114 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42115 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42116 messages::~messages()(GLIBCXX_3.4) [ISOCXX] 42117 42118 An LSB conforming implementation shall provide the generic data 42119 interfaces for Class std::messages specified in Table 42120 16-266, with the full mandatory functionality as described in 42121 the referenced underlying specification. 42122 42123 Table 16-266. libstdcxx - Class messages Data 42124 Interfaces 42125 guard variable for messages::id(GLIBCXX_3.4) 42126 [CXXABI-1.86] 42127 messages::id(GLIBCXX_3.4) [ISOCXX] 42128 typeinfo for messages(GLIBCXX_3.4) [CXXABI-1.86] 42129 typeinfo name for messages(GLIBCXX_3.4) [CXXABI-1.86] 42130 vtable for messages(GLIBCXX_3.4) [CXXABI-1.86] 42131 __________________________________________________________ 42132 42133 16.1.95. Class messages_byname 42134 __________________________________________________________ 42135 42136 16.1.95.1. Class data for messages_byname 42137 42138 The virtual table for the std::messages_byname class is 42139 described by Table 16-267 42140 42141 Table 16-267. Primary vtable for messages_byname 42142 Base Offset 0 42143 Virtual Base Offset 0 42144 RTTI typeinfo for messages_byname 42145 vfunc[0]: messages_byname::~messages_byname() 42146 vfunc[1]: messages_byname::~messages_byname() 42147 vfunc[2]: messages::do_open(basic_string, allocator > const&, locale const&) 42149 const 42150 vfunc[3]: messages::do_get(int, int, int, 42151 basic_string, allocator > const&) 42152 const 42153 vfunc[4]: messages::do_close(int) const 42154 42155 The Run Time Type Information for the 42156 std::messages_byname class is described by Table 16-268 42157 42158 Table 16-268. typeinfo for messages_byname 42159 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42160 Name typeinfo name for messages_byname 42161 __________________________________________________________ 42162 42163 16.1.95.2. Interfaces for Class messages_byname 42164 42165 An LSB conforming implementation shall provide the generic 42166 methods for Class std::messages_byname specified in Table 42167 16-269, with the full mandatory functionality as described in 42168 the referenced underlying specification. 42169 42170 Table 16-269. libstdcxx - Class messages_byname Function 42171 Interfaces 42172 messages_byname::~messages_byname()(GLIBCXX_3.4) [ISOCXX] 42173 messages_byname::~messages_byname()(GLIBCXX_3.4) [ISOCXX] 42174 messages_byname::~messages_byname()(GLIBCXX_3.4) [ISOCXX] 42175 42176 An LSB conforming implementation shall provide the generic data 42177 interfaces for Class std::messages_byname specified in 42178 Table 16-270, with the full mandatory functionality as 42179 described in the referenced underlying specification. 42180 42181 Table 16-270. libstdcxx - Class messages_byname Data 42182 Interfaces 42183 typeinfo for messages_byname(GLIBCXX_3.4) [CXXABI-1.86] 42184 typeinfo name for messages_byname(GLIBCXX_3.4) 42185 [CXXABI-1.86] 42186 vtable for messages_byname(GLIBCXX_3.4) [CXXABI-1.86] 42187 __________________________________________________________ 42188 42189 16.1.96. Class messages_byname 42190 __________________________________________________________ 42191 42192 16.1.96.1. Class data for messages_byname 42193 42194 The virtual table for the std::messages_byname class 42195 is described by Table 16-271 42196 42197 Table 16-271. Primary vtable for messages_byname 42198 Base Offset 0 42199 Virtual Base Offset 0 42200 RTTI typeinfo for messages_byname 42201 vfunc[0]: messages_byname::~messages_byname() 42202 vfunc[1]: messages_byname::~messages_byname() 42203 vfunc[2]: messages::do_open(basic_string, allocator > const&, locale const&) 42205 const 42206 vfunc[3]: messages::do_get(int, int, int, 42207 basic_string, allocator 42208 > const&) const 42209 vfunc[4]: messages::do_close(int) const 42210 42211 The Run Time Type Information for the 42212 std::messages_byname class is described by Table 42213 16-272 42214 42215 Table 16-272. typeinfo for messages_byname 42216 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42217 Name typeinfo name for messages_byname 42218 __________________________________________________________ 42219 42220 16.1.96.2. Interfaces for Class messages_byname 42221 42222 An LSB conforming implementation shall provide the generic 42223 methods for Class std::messages_byname specified in 42224 Table 16-273, with the full mandatory functionality as 42225 described in the referenced underlying specification. 42226 42227 Table 16-273. libstdcxx - Class messages_byname 42228 Function Interfaces 42229 messages_byname::~messages_byname()(GLIBCXX_3.4) 42230 [ISOCXX] 42231 messages_byname::~messages_byname()(GLIBCXX_3.4) 42232 [ISOCXX] 42233 messages_byname::~messages_byname()(GLIBCXX_3.4) 42234 [ISOCXX] 42235 42236 An LSB conforming implementation shall provide the generic data 42237 interfaces for Class std::messages_byname specified in 42238 Table 16-274, with the full mandatory functionality as 42239 described in the referenced underlying specification. 42240 42241 Table 16-274. libstdcxx - Class messages_byname Data 42242 Interfaces 42243 typeinfo for messages_byname(GLIBCXX_3.4) 42244 [CXXABI-1.86] 42245 typeinfo name for messages_byname(GLIBCXX_3.4) 42246 [CXXABI-1.86] 42247 vtable for messages_byname(GLIBCXX_3.4) [CXXABI-1.86] 42248 __________________________________________________________ 42249 42250 16.1.97. Class numpunct 42251 __________________________________________________________ 42252 42253 16.1.97.1. Class data for numpunct 42254 42255 The virtual table for the std::numpunct class is 42256 described by Table 16-275 42257 42258 Table 16-275. Primary vtable for numpunct 42259 Base Offset 0 42260 Virtual Base Offset 0 42261 RTTI typeinfo for numpunct 42262 vfunc[0]: numpunct::~numpunct() 42263 vfunc[1]: numpunct::~numpunct() 42264 vfunc[2]: numpunct::do_decimal_point() const 42265 vfunc[3]: numpunct::do_thousands_sep() const 42266 vfunc[4]: numpunct::do_grouping() const 42267 vfunc[5]: numpunct::do_truename() const 42268 vfunc[6]: numpunct::do_falsename() const 42269 42270 The Run Time Type Information for the std::numpunct class 42271 is described by Table 16-276 42272 42273 Table 16-276. typeinfo for numpunct 42274 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42275 Name typeinfo name for numpunct 42276 __________________________________________________________ 42277 42278 16.1.97.2. Interfaces for Class numpunct 42279 42280 An LSB conforming implementation shall provide the generic 42281 methods for Class std::numpunct specified in Table 42282 16-277, with the full mandatory functionality as described in 42283 the referenced underlying specification. 42284 42285 Table 16-277. libstdcxx - Class numpunct Function 42286 Interfaces 42287 numpunct::do_grouping() const(GLIBCXX_3.4) [ISOCXX] 42288 numpunct::do_truename() const(GLIBCXX_3.4) [ISOCXX] 42289 numpunct::do_falsename() const(GLIBCXX_3.4) [ISOCXX] 42290 numpunct::decimal_point() const(GLIBCXX_3.4) [ISOCXX] 42291 numpunct::thousands_sep() const(GLIBCXX_3.4) [ISOCXX] 42292 numpunct::do_decimal_point() const(GLIBCXX_3.4) [ISOCXX] 42293 numpunct::do_thousands_sep() const(GLIBCXX_3.4) [ISOCXX] 42294 numpunct::grouping() const(GLIBCXX_3.4) [ISOCXX] 42295 numpunct::truename() const(GLIBCXX_3.4) [ISOCXX] 42296 numpunct::falsename() const(GLIBCXX_3.4) [ISOCXX] 42297 numpunct::_M_initialize_numpunct(__locale_struct*)(GLIBCX 42298 X_3.4) [ISOCXX] 42299 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42300 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42301 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42302 42303 An LSB conforming implementation shall provide the generic data 42304 interfaces for Class std::numpunct specified in Table 42305 16-278, with the full mandatory functionality as described in 42306 the referenced underlying specification. 42307 42308 Table 16-278. libstdcxx - Class numpunct Data Interfaces 42309 guard variable for numpunct::id(GLIBCXX_3.4) 42310 [CXXABI-1.86] 42311 numpunct::id(GLIBCXX_3.4) [ISOCXX] 42312 typeinfo for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42313 typeinfo name for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42314 vtable for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42315 __________________________________________________________ 42316 42317 16.1.98. Class numpunct 42318 __________________________________________________________ 42319 42320 16.1.98.1. Class data for numpunct 42321 42322 The virtual table for the std::numpunct class is 42323 described by Table 16-279 42324 42325 Table 16-279. Primary vtable for numpunct 42326 Base Offset 0 42327 Virtual Base Offset 0 42328 RTTI typeinfo for numpunct 42329 vfunc[0]: numpunct::~numpunct() 42330 vfunc[1]: numpunct::~numpunct() 42331 vfunc[2]: numpunct::do_decimal_point() const 42332 vfunc[3]: numpunct::do_thousands_sep() const 42333 vfunc[4]: numpunct::do_grouping() const 42334 vfunc[5]: numpunct::do_truename() const 42335 vfunc[6]: numpunct::do_falsename() const 42336 42337 The Run Time Type Information for the std::numpunct 42338 class is described by Table 16-280 42339 42340 Table 16-280. typeinfo for numpunct 42341 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42342 Name typeinfo name for numpunct 42343 __________________________________________________________ 42344 42345 16.1.98.2. Interfaces for Class numpunct 42346 42347 An LSB conforming implementation shall provide the generic 42348 methods for Class std::numpunct specified in Table 42349 16-281, with the full mandatory functionality as described in 42350 the referenced underlying specification. 42351 42352 Table 16-281. libstdcxx - Class numpunct Function 42353 Interfaces 42354 numpunct::do_grouping() const(GLIBCXX_3.4) [ISOCXX] 42355 numpunct::do_truename() const(GLIBCXX_3.4) [ISOCXX] 42356 numpunct::do_falsename() const(GLIBCXX_3.4) [ISOCXX] 42357 numpunct::decimal_point() const(GLIBCXX_3.4) [ISOCXX] 42358 numpunct::thousands_sep() const(GLIBCXX_3.4) [ISOCXX] 42359 numpunct::do_decimal_point() const(GLIBCXX_3.4) 42360 [ISOCXX] 42361 numpunct::do_thousands_sep() const(GLIBCXX_3.4) 42362 [ISOCXX] 42363 numpunct::grouping() const(GLIBCXX_3.4) [ISOCXX] 42364 numpunct::truename() const(GLIBCXX_3.4) [ISOCXX] 42365 numpunct::falsename() const(GLIBCXX_3.4) [ISOCXX] 42366 numpunct::_M_initialize_numpunct(__locale_struct*)(GLI 42367 BCXX_3.4) [ISOCXX] 42368 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42369 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42370 numpunct::~numpunct()(GLIBCXX_3.4) [ISOCXX] 42371 42372 An LSB conforming implementation shall provide the generic data 42373 interfaces for Class std::numpunct specified in Table 42374 16-282, with the full mandatory functionality as described in 42375 the referenced underlying specification. 42376 42377 Table 16-282. libstdcxx - Class numpunct Data 42378 Interfaces 42379 guard variable for numpunct::id(GLIBCXX_3.4) 42380 [CXXABI-1.86] 42381 numpunct::id(GLIBCXX_3.4) [ISOCXX] 42382 typeinfo for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42383 typeinfo name for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42384 vtable for numpunct(GLIBCXX_3.4) [CXXABI-1.86] 42385 __________________________________________________________ 42386 42387 16.1.99. Class numpunct_byname 42388 __________________________________________________________ 42389 42390 16.1.99.1. Class data for numpunct_byname 42391 42392 The virtual table for the std::numpunct_byname class is 42393 described by Table 16-283 42394 42395 Table 16-283. Primary vtable for numpunct_byname 42396 Base Offset 0 42397 Virtual Base Offset 0 42398 RTTI typeinfo for numpunct_byname 42399 vfunc[0]: numpunct_byname::~numpunct_byname() 42400 vfunc[1]: numpunct_byname::~numpunct_byname() 42401 vfunc[2]: numpunct::do_decimal_point() const 42402 vfunc[3]: numpunct::do_thousands_sep() const 42403 vfunc[4]: numpunct::do_grouping() const 42404 vfunc[5]: numpunct::do_truename() const 42405 vfunc[6]: numpunct::do_falsename() const 42406 42407 The Run Time Type Information for the 42408 std::numpunct_byname class is described by Table 16-284 42409 42410 Table 16-284. typeinfo for numpunct_byname 42411 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42412 Name typeinfo name for numpunct_byname 42413 __________________________________________________________ 42414 42415 16.1.99.2. Interfaces for Class numpunct_byname 42416 42417 An LSB conforming implementation shall provide the generic 42418 methods for Class std::numpunct_byname specified in Table 42419 16-285, with the full mandatory functionality as described in 42420 the referenced underlying specification. 42421 42422 Table 16-285. libstdcxx - Class numpunct_byname Function 42423 Interfaces 42424 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) [ISOCXX] 42425 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) [ISOCXX] 42426 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) [ISOCXX] 42427 42428 An LSB conforming implementation shall provide the generic data 42429 interfaces for Class std::numpunct_byname specified in 42430 Table 16-286, with the full mandatory functionality as 42431 described in the referenced underlying specification. 42432 42433 Table 16-286. libstdcxx - Class numpunct_byname Data 42434 Interfaces 42435 typeinfo for numpunct_byname(GLIBCXX_3.4) [CXXABI-1.86] 42436 typeinfo name for numpunct_byname(GLIBCXX_3.4) 42437 [CXXABI-1.86] 42438 vtable for numpunct_byname(GLIBCXX_3.4) [CXXABI-1.86] 42439 __________________________________________________________ 42440 42441 16.1.100. Class numpunct_byname 42442 __________________________________________________________ 42443 42444 16.1.100.1. Class data for numpunct_byname 42445 42446 The virtual table for the std::numpunct_byname class 42447 is described by Table 16-287 42448 42449 Table 16-287. Primary vtable for numpunct_byname 42450 Base Offset 0 42451 Virtual Base Offset 0 42452 RTTI typeinfo for numpunct_byname 42453 vfunc[0]: numpunct_byname::~numpunct_byname() 42454 vfunc[1]: numpunct_byname::~numpunct_byname() 42455 vfunc[2]: numpunct::do_decimal_point() const 42456 vfunc[3]: numpunct::do_thousands_sep() const 42457 vfunc[4]: numpunct::do_grouping() const 42458 vfunc[5]: numpunct::do_truename() const 42459 vfunc[6]: numpunct::do_falsename() const 42460 42461 The Run Time Type Information for the 42462 std::numpunct_byname class is described by Table 42463 16-288 42464 42465 Table 16-288. typeinfo for numpunct_byname 42466 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42467 Name typeinfo name for numpunct_byname 42468 __________________________________________________________ 42469 42470 16.1.100.2. Interfaces for Class numpunct_byname 42471 42472 An LSB conforming implementation shall provide the generic 42473 methods for Class std::numpunct_byname specified in 42474 Table 16-289, with the full mandatory functionality as 42475 described in the referenced underlying specification. 42476 42477 Table 16-289. libstdcxx - Class numpunct_byname 42478 Function Interfaces 42479 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) 42480 [ISOCXX] 42481 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) 42482 [ISOCXX] 42483 numpunct_byname::~numpunct_byname()(GLIBCXX_3.4) 42484 [ISOCXX] 42485 42486 An LSB conforming implementation shall provide the generic data 42487 interfaces for Class std::numpunct_byname specified in 42488 Table 16-290, with the full mandatory functionality as 42489 described in the referenced underlying specification. 42490 42491 Table 16-290. libstdcxx - Class numpunct_byname Data 42492 Interfaces 42493 typeinfo for numpunct_byname(GLIBCXX_3.4) 42494 [CXXABI-1.86] 42495 typeinfo name for numpunct_byname(GLIBCXX_3.4) 42496 [CXXABI-1.86] 42497 vtable for numpunct_byname(GLIBCXX_3.4) [CXXABI-1.86] 42498 __________________________________________________________ 42499 42500 16.1.101. Class __codecvt_abstract_base 42501 __________________________________________________________ 42502 42503 16.1.101.1. Class data for __codecvt_abstract_base 42504 42505 The virtual table for the std::__codecvt_abstract_base class is described by Table 16-291 42507 42508 Table 16-291. Primary vtable for __codecvt_abstract_base 42510 Base Offset 0 42511 Virtual Base Offset 0 42512 RTTI typeinfo for __codecvt_abstract_base 42514 vfunc[0]: NULL or __codecvt_abstract_base::~__codecvt_abstract_base() 42516 vfunc[1]: NULL or __codecvt_abstract_base::~__codecvt_abstract_base() 42518 vfunc[2]: __cxa_pure_virtual 42519 vfunc[3]: __cxa_pure_virtual 42520 vfunc[4]: __cxa_pure_virtual 42521 vfunc[5]: __cxa_pure_virtual 42522 vfunc[6]: __cxa_pure_virtual 42523 vfunc[7]: __cxa_pure_virtual 42524 vfunc[8]: __cxa_pure_virtual 42525 __________________________________________________________ 42526 42527 16.1.101.2. Interfaces for Class __codecvt_abstract_base 42528 42529 No external methods are defined for libstdcxx - Class 42530 std::__codecvt_abstract_base in this 42531 part of the specification. See also the relevant architecture 42532 specific part of this specification. 42533 42534 An LSB conforming implementation shall provide the generic data 42535 interfaces for Class std::__codecvt_abstract_base specified in Table 16-292, with the full mandatory 42537 functionality as described in the referenced underlying 42538 specification. 42539 42540 Table 16-292. libstdcxx - Class __codecvt_abstract_base Data Interfaces 42542 typeinfo for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42544 typeinfo name for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42546 vtable for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42548 __________________________________________________________ 42549 42550 16.1.102. Class __codecvt_abstract_base 42551 __________________________________________________________ 42552 42553 16.1.102.1. Class data for __codecvt_abstract_base 42554 42555 The virtual table for the std::__codecvt_abstract_base class is described by Table 16-293 42557 42558 Table 16-293. Primary vtable for 42559 __codecvt_abstract_base 42560 Base Offset 0 42561 Virtual Base Offset 0 42562 RTTI typeinfo for __codecvt_abstract_base 42564 vfunc[0]: NULL or __codecvt_abstract_base::~__codecvt_abstract_base() 42566 vfunc[1]: NULL or __codecvt_abstract_base::~__codecvt_abstract_base() 42568 vfunc[2]: __cxa_pure_virtual 42569 vfunc[3]: __cxa_pure_virtual 42570 vfunc[4]: __cxa_pure_virtual 42571 vfunc[5]: __cxa_pure_virtual 42572 vfunc[6]: __cxa_pure_virtual 42573 vfunc[7]: __cxa_pure_virtual 42574 vfunc[8]: __cxa_pure_virtual 42575 __________________________________________________________ 42576 42577 16.1.102.2. Interfaces for Class __codecvt_abstract_base 42578 42579 No external methods are defined for libstdcxx - Class 42580 std::__codecvt_abstract_base in 42581 this part of the specification. See also the relevant 42582 architecture specific part of this specification. 42583 42584 An LSB conforming implementation shall provide the generic data 42585 interfaces for Class std::__codecvt_abstract_base specified in Table 16-294, with the full 42587 mandatory functionality as described in the referenced 42588 underlying specification. 42589 42590 Table 16-294. libstdcxx - Class 42591 __codecvt_abstract_base Data 42592 Interfaces 42593 typeinfo for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42595 typeinfo name for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42597 vtable for __codecvt_abstract_base(GLIBCXX_3.4) [CXXABI-1.86] 42599 __________________________________________________________ 42600 42601 16.1.103. Class codecvt_base 42602 __________________________________________________________ 42603 42604 16.1.103.1. Class data for codecvt_base 42605 42606 The Run Time Type Information for the std::codecvt_base class 42607 is described by Table 16-295 42608 42609 Table 16-295. typeinfo for codecvt_base 42610 Base Vtable vtable for __cxxabiv1::__class_type_info 42611 Name typeinfo name for codecvt_base 42612 __________________________________________________________ 42613 42614 16.1.103.2. Interfaces for Class codecvt_base 42615 42616 No external methods are defined for libstdcxx - Class 42617 std::codecvt_base in this part of the specification. See also 42618 the relevant architecture specific part of this specification. 42619 42620 An LSB conforming implementation shall provide the generic data 42621 interfaces for Class std::codecvt_base specified in Table 42622 16-296, with the full mandatory functionality as described in 42623 the referenced underlying specification. 42624 42625 Table 16-296. libstdcxx - Class codecvt_base Data Interfaces 42626 typeinfo for codecvt_base(GLIBCXX_3.4) [CXXABI-1.86] 42627 typeinfo name for codecvt_base(GLIBCXX_3.4) [CXXABI-1.86] 42628 __________________________________________________________ 42629 42630 16.1.104. Class codecvt 42631 __________________________________________________________ 42632 42633 16.1.104.1. Class data for codecvt 42634 42635 The virtual table for the std::codecvt 42636 class is described by Table 16-297 42637 42638 Table 16-297. Primary vtable for codecvt 42640 Base Offset 0 42641 Virtual Base Offset 0 42642 RTTI typeinfo for codecvt 42643 vfunc[0]: codecvt::~codecvt() 42644 vfunc[1]: codecvt::~codecvt() 42645 vfunc[2]: codecvt::do_out(__mbstate_t&, char const*, char const*, 42647 char const*&, char*, char*, char*&) const 42648 vfunc[3]: codecvt::do_unshift(__mbstate_t&, char*, char*, char*&) 42650 const 42651 vfunc[4]: codecvt::do_in(__mbstate_t&, 42652 char const*, char const*, char const*&, char*, char*, char*&) 42653 const 42654 vfunc[5]: codecvt::do_encoding() const 42655 vfunc[6]: codecvt::do_always_noconv() 42656 const 42657 vfunc[7]: See architecture specific part. 42658 vfunc[8]: codecvt::do_max_length() 42659 const 42660 42661 The Run Time Type Information for the std::codecvt class is described by Table 16-298 42663 42664 Table 16-298. typeinfo for codecvt 42665 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42666 Name typeinfo name for codecvt 42667 __________________________________________________________ 42668 42669 16.1.104.2. Interfaces for Class codecvt 42670 42671 An LSB conforming implementation shall provide the generic 42672 methods for Class std::codecvt 42673 specified in Table 16-299, with the full mandatory 42674 functionality as described in the referenced underlying 42675 specification. 42676 42677 Table 16-299. libstdcxx - Class codecvt Function Interfaces 42679 codecvt::do_unshift(__mbstate_t&, 42680 char*, char*, char*&) const(GLIBCXX_3.4) [ISOCXX] 42681 codecvt::do_encoding() 42682 const(GLIBCXX_3.4) [ISOCXX] 42683 codecvt::do_max_length() 42684 const(GLIBCXX_3.4) [ISOCXX] 42685 codecvt::do_always_noconv() 42686 const(GLIBCXX_3.4) [ISOCXX] 42687 codecvt::do_in(__mbstate_t&, char 42688 const*, char const*, char const*&, char*, char*, char*&) 42689 const(GLIBCXX_3.4) [ISOCXX] 42690 codecvt::do_out(__mbstate_t&, char 42691 const*, char const*, char const*&, char*, char*, char*&) 42692 const(GLIBCXX_3.4) [ISOCXX] 42693 codecvt::~codecvt()(GLIBCXX_3.4) 42694 [ISOCXX] 42695 codecvt::~codecvt()(GLIBCXX_3.4) 42696 [ISOCXX] 42697 codecvt::~codecvt()(GLIBCXX_3.4) 42698 [ISOCXX] 42699 42700 An LSB conforming implementation shall provide the generic data 42701 interfaces for Class std::codecvt 42702 specified in Table 16-300, with the full mandatory 42703 functionality as described in the referenced underlying 42704 specification. 42705 42706 Table 16-300. libstdcxx - Class codecvt Data Interfaces 42708 codecvt::id(GLIBCXX_3.4) [ISOCXX] 42709 typeinfo for codecvt(GLIBCXX_3.4) 42710 [CXXABI-1.86] 42711 typeinfo name for codecvt(GLIBCXX_3.4) 42712 [CXXABI-1.86] 42713 vtable for codecvt(GLIBCXX_3.4) 42714 [CXXABI-1.86] 42715 __________________________________________________________ 42716 42717 16.1.105. Class codecvt 42718 __________________________________________________________ 42719 42720 16.1.105.1. Class data for codecvt 42721 42722 The virtual table for the std::codecvt class is described by Table 16-301 42724 42725 Table 16-301. Primary vtable for codecvt 42727 Base Offset 0 42728 Virtual Base Offset 0 42729 RTTI typeinfo for codecvt 42730 vfunc[0]: codecvt::~codecvt() 42731 vfunc[1]: codecvt::~codecvt() 42732 vfunc[2]: codecvt::do_out(__mbstate_t&, wchar_t const*, wchar_t 42734 const*, wchar_t const*&, char*, char*, char*&) const 42735 vfunc[3]: codecvt::do_unshift(__mbstate_t&, char*, char*, char*&) 42737 const 42738 vfunc[4]: codecvt::do_in(__mbstate_t&, char const*, char const*, 42740 char const*&, wchar_t*, wchar_t*, wchar_t*&) const 42741 vfunc[5]: codecvt::do_encoding() 42742 const 42743 vfunc[6]: codecvt::do_always_noconv() const 42745 vfunc[7]: See architecture specific part. 42746 vfunc[8]: codecvt::do_max_length() 42747 const 42748 42749 The Run Time Type Information for the std::codecvt class is described by Table 16-302 42751 42752 Table 16-302. typeinfo for codecvt 42753 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42754 Name typeinfo name for codecvt 42755 __________________________________________________________ 42756 42757 16.1.105.2. Interfaces for Class codecvt 42758 42759 An LSB conforming implementation shall provide the generic 42760 methods for Class std::codecvt 42761 specified in Table 16-303, with the full mandatory 42762 functionality as described in the referenced underlying 42763 specification. 42764 42765 Table 16-303. libstdcxx - Class codecvt Function Interfaces 42767 codecvt::do_unshift(__mbstate_t&, 42768 char*, char*, char*&) const(GLIBCXX_3.4) [ISOCXX] 42769 codecvt::do_encoding() 42770 const(GLIBCXX_3.4) [ISOCXX] 42771 codecvt::do_max_length() 42772 const(GLIBCXX_3.4) [ISOCXX] 42773 codecvt::do_always_noconv() 42774 const(GLIBCXX_3.4) [ISOCXX] 42775 codecvt::do_in(__mbstate_t&, char 42776 const*, char const*, char const*&, wchar_t*, wchar_t*, 42777 wchar_t*&) const(GLIBCXX_3.4) [ISOCXX] 42778 codecvt::do_out(__mbstate_t&, 42779 wchar_t const*, wchar_t const*, wchar_t const*&, char*, char*, 42780 char*&) const(GLIBCXX_3.4) [ISOCXX] 42781 codecvt::~codecvt()(GLIBCXX_3.4) 42782 [ISOCXX] 42783 codecvt::~codecvt()(GLIBCXX_3.4) 42784 [ISOCXX] 42785 codecvt::~codecvt()(GLIBCXX_3.4) 42786 [ISOCXX] 42787 42788 An LSB conforming implementation shall provide the generic data 42789 interfaces for Class std::codecvt 42790 specified in Table 16-304, with the full mandatory 42791 functionality as described in the referenced underlying 42792 specification. 42793 42794 Table 16-304. libstdcxx - Class codecvt Data Interfaces 42796 codecvt::id(GLIBCXX_3.4) [ISOCXX] 42797 typeinfo for codecvt(GLIBCXX_3.4) 42798 [CXXABI-1.86] 42799 typeinfo name for codecvt(GLIBCXX_3.4) [CXXABI-1.86] 42801 vtable for codecvt(GLIBCXX_3.4) 42802 [CXXABI-1.86] 42803 __________________________________________________________ 42804 42805 16.1.106. Class codecvt_byname 42806 __________________________________________________________ 42807 42808 16.1.106.1. Class data for codecvt_byname 42809 42810 The virtual table for the std::codecvt_byname class is described by Table 16-305 42812 42813 Table 16-305. Primary vtable for codecvt_byname 42815 Base Offset 0 42816 Virtual Base Offset 0 42817 RTTI typeinfo for codecvt_byname 42818 vfunc[0]: codecvt_byname::~codecvt_byname() 42820 vfunc[1]: codecvt_byname::~codecvt_byname() 42822 vfunc[2]: codecvt::do_out(__mbstate_t&, char const*, char const*, 42824 char const*&, char*, char*, char*&) const 42825 vfunc[3]: codecvt::do_unshift(__mbstate_t&, char*, char*, char*&) 42827 const 42828 vfunc[4]: codecvt::do_in(__mbstate_t&, 42829 char const*, char const*, char const*&, char*, char*, char*&) 42830 const 42831 vfunc[5]: codecvt::do_encoding() const 42832 vfunc[6]: codecvt::do_always_noconv() 42833 const 42834 vfunc[7]: See architecture specific part. 42835 vfunc[8]: codecvt::do_max_length() 42836 const 42837 42838 The Run Time Type Information for the std::codecvt_byname class is described by Table 16-306 42840 42841 Table 16-306. typeinfo for codecvt_byname 42843 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42844 Name typeinfo name for codecvt_byname 42845 __________________________________________________________ 42846 42847 16.1.106.2. Interfaces for Class codecvt_byname 42848 42849 An LSB conforming implementation shall provide the generic 42850 methods for Class std::codecvt_byname 42851 specified in Table 16-307, with the full mandatory 42852 functionality as described in the referenced underlying 42853 specification. 42854 42855 Table 16-307. libstdcxx - Class codecvt_byname Function Interfaces 42857 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42859 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42861 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42863 42864 An LSB conforming implementation shall provide the generic data 42865 interfaces for Class std::codecvt_byname specified in Table 16-308, with the full mandatory 42867 functionality as described in the referenced underlying 42868 specification. 42869 42870 Table 16-308. libstdcxx - Class codecvt_byname Data Interfaces 42872 typeinfo for codecvt_byname(GLIBCXX_3.4) [CXXABI-1.86] 42874 typeinfo name for codecvt_byname(GLIBCXX_3.4) [CXXABI-1.86] 42876 vtable for codecvt_byname(GLIBCXX_3.4) 42877 [CXXABI-1.86] 42878 __________________________________________________________ 42879 42880 16.1.107. Class codecvt_byname 42881 __________________________________________________________ 42882 42883 16.1.107.1. Class data for codecvt_byname 42884 42885 The virtual table for the std::codecvt_byname class is described by Table 16-309 42887 42888 Table 16-309. Primary vtable for codecvt_byname 42890 Base Offset 0 42891 Virtual Base Offset 0 42892 RTTI typeinfo for codecvt_byname 42893 vfunc[0]: codecvt_byname::~codecvt_byname() 42895 vfunc[1]: codecvt_byname::~codecvt_byname() 42897 vfunc[2]: codecvt::do_out(__mbstate_t&, wchar_t const*, wchar_t 42899 const*, wchar_t const*&, char*, char*, char*&) const 42900 vfunc[3]: codecvt::do_unshift(__mbstate_t&, char*, char*, char*&) 42902 const 42903 vfunc[4]: codecvt::do_in(__mbstate_t&, char const*, char const*, 42905 char const*&, wchar_t*, wchar_t*, wchar_t*&) const 42906 vfunc[5]: codecvt::do_encoding() 42907 const 42908 vfunc[6]: codecvt::do_always_noconv() const 42910 vfunc[7]: See architecture specific part. 42911 vfunc[8]: codecvt::do_max_length() 42912 const 42913 42914 The Run Time Type Information for the 42915 std::codecvt_byname class is 42916 described by Table 16-310 42917 42918 Table 16-310. typeinfo for codecvt_byname 42920 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42921 Name typeinfo name for codecvt_byname 42923 __________________________________________________________ 42924 42925 16.1.107.2. Interfaces for Class codecvt_byname 42926 42927 An LSB conforming implementation shall provide the generic 42928 methods for Class std::codecvt_byname specified in Table 16-311, with the full mandatory 42930 functionality as described in the referenced underlying 42931 specification. 42932 42933 Table 16-311. libstdcxx - Class codecvt_byname Function Interfaces 42935 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42937 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42939 codecvt_byname::~codecvt_byname()(GLIBCXX_3.4) [ISOCXX] 42941 42942 An LSB conforming implementation shall provide the generic data 42943 interfaces for Class std::codecvt_byname specified in Table 16-312, with the full mandatory 42945 functionality as described in the referenced underlying 42946 specification. 42947 42948 Table 16-312. libstdcxx - Class codecvt_byname Data Interfaces 42950 typeinfo for codecvt_byname(GLIBCXX_3.4) [CXXABI-1.86] 42952 typeinfo name for codecvt_byname(GLIBCXX_3.4) [CXXABI-1.86] 42954 vtable for codecvt_byname(GLIBCXX_3.4) [CXXABI-1.86] 42956 __________________________________________________________ 42957 42958 16.1.108. Class collate 42959 __________________________________________________________ 42960 42961 16.1.108.1. Class data for collate 42962 42963 The virtual table for the std::collate class is described 42964 by Table 16-313 42965 42966 Table 16-313. Primary vtable for collate 42967 Base Offset 0 42968 Virtual Base Offset 0 42969 RTTI typeinfo for collate 42970 vfunc[0]: collate::~collate() 42971 vfunc[1]: collate::~collate() 42972 vfunc[2]: collate::do_compare(char const*, char const*, 42973 char const*, char const*) const 42974 vfunc[3]: collate::do_transform(char const*, char const*) 42975 const 42976 vfunc[4]: collate::do_hash(char const*, char const*) 42977 const 42978 42979 The Run Time Type Information for the std::collate class 42980 is described by Table 16-314 42981 42982 Table 16-314. typeinfo for collate 42983 Base Vtable vtable for __cxxabiv1::__si_class_type_info 42984 Name typeinfo name for collate 42985 __________________________________________________________ 42986 42987 16.1.108.2. Interfaces for Class collate 42988 42989 An LSB conforming implementation shall provide the generic 42990 methods for Class std::collate specified in Table 16-315, 42991 with the full mandatory functionality as described in the 42992 referenced underlying specification. 42993 42994 Table 16-315. libstdcxx - Class collate Function 42995 Interfaces 42996 collate::_M_compare(char const*, char const*) 42997 const(GLIBCXX_3.4) [ISOCXX] 42998 collate::do_compare(char const*, char const*, char 42999 const*, char const*) const(GLIBCXX_3.4) [ISOCXX] 43000 collate::do_transform(char const*, char const*) 43001 const(GLIBCXX_3.4) [ISOCXX] 43002 collate::hash(char const*, char const*) 43003 const(GLIBCXX_3.4) [ISOCXX] 43004 collate::compare(char const*, char const*, char const*, 43005 char const*) const(GLIBCXX_3.4) [ISOCXX] 43006 collate::do_hash(char const*, char const*) 43007 const(GLIBCXX_3.4) [ISOCXX] 43008 collate::transform(char const*, char const*) 43009 const(GLIBCXX_3.4) [ISOCXX] 43010 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43011 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43012 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43013 43014 An LSB conforming implementation shall provide the generic data 43015 interfaces for Class std::collate specified in Table 43016 16-316, with the full mandatory functionality as described in 43017 the referenced underlying specification. 43018 43019 Table 16-316. libstdcxx - Class collate Data Interfaces 43020 guard variable for collate::id(GLIBCXX_3.4) [CXXABI-1.86] 43021 collate::id(GLIBCXX_3.4) [ISOCXX] 43022 typeinfo for collate(GLIBCXX_3.4) [CXXABI-1.86] 43023 typeinfo name for collate(GLIBCXX_3.4) [CXXABI-1.86] 43024 vtable for collate(GLIBCXX_3.4) [CXXABI-1.86] 43025 __________________________________________________________ 43026 43027 16.1.109. Class collate 43028 __________________________________________________________ 43029 43030 16.1.109.1. Class data for collate 43031 43032 The virtual table for the std::collate class is 43033 described by Table 16-317 43034 43035 Table 16-317. Primary vtable for collate 43036 Base Offset 0 43037 Virtual Base Offset 0 43038 RTTI typeinfo for collate 43039 vfunc[0]: collate::~collate() 43040 vfunc[1]: collate::~collate() 43041 vfunc[2]: collate::do_compare(wchar_t const*, wchar_t 43042 const*, wchar_t const*, wchar_t const*) const 43043 vfunc[3]: collate::do_transform(wchar_t const*, 43044 wchar_t const*) const 43045 vfunc[4]: collate::do_hash(wchar_t const*, wchar_t 43046 const*) const 43047 43048 The Run Time Type Information for the std::collate 43049 class is described by Table 16-318 43050 43051 Table 16-318. typeinfo for collate 43052 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43053 Name typeinfo name for collate 43054 __________________________________________________________ 43055 43056 16.1.109.2. Interfaces for Class collate 43057 43058 An LSB conforming implementation shall provide the generic 43059 methods for Class std::collate specified in Table 43060 16-319, with the full mandatory functionality as described in 43061 the referenced underlying specification. 43062 43063 Table 16-319. libstdcxx - Class collate Function 43064 Interfaces 43065 collate::_M_compare(wchar_t const*, wchar_t const*) 43066 const(GLIBCXX_3.4) [ISOCXX] 43067 collate::do_compare(wchar_t const*, wchar_t const*, 43068 wchar_t const*, wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 43069 collate::do_transform(wchar_t const*, wchar_t const*) 43070 const(GLIBCXX_3.4) [ISOCXX] 43071 collate::hash(wchar_t const*, wchar_t const*) 43072 const(GLIBCXX_3.4) [ISOCXX] 43073 collate::compare(wchar_t const*, wchar_t const*, 43074 wchar_t const*, wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 43075 collate::do_hash(wchar_t const*, wchar_t const*) 43076 const(GLIBCXX_3.4) [ISOCXX] 43077 collate::transform(wchar_t const*, wchar_t const*) 43078 const(GLIBCXX_3.4) [ISOCXX] 43079 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43080 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43081 collate::~collate()(GLIBCXX_3.4) [ISOCXX] 43082 43083 An LSB conforming implementation shall provide the generic data 43084 interfaces for Class std::collate specified in Table 43085 16-320, with the full mandatory functionality as described in 43086 the referenced underlying specification. 43087 43088 Table 16-320. libstdcxx - Class collate Data 43089 Interfaces 43090 guard variable for collate::id(GLIBCXX_3.4) 43091 [CXXABI-1.86] 43092 collate::id(GLIBCXX_3.4) [ISOCXX] 43093 typeinfo for collate(GLIBCXX_3.4) [CXXABI-1.86] 43094 typeinfo name for collate(GLIBCXX_3.4) [CXXABI-1.86] 43095 vtable for collate(GLIBCXX_3.4) [CXXABI-1.86] 43096 __________________________________________________________ 43097 43098 16.1.110. Class collate_byname 43099 __________________________________________________________ 43100 43101 16.1.110.1. Class data for collate_byname 43102 43103 The virtual table for the std::collate_byname class is 43104 described by Table 16-321 43105 43106 Table 16-321. Primary vtable for collate_byname 43107 Base Offset 0 43108 Virtual Base Offset 0 43109 RTTI typeinfo for collate_byname 43110 vfunc[0]: collate_byname::~collate_byname() 43111 vfunc[1]: collate_byname::~collate_byname() 43112 vfunc[2]: collate::do_compare(char const*, char const*, 43113 char const*, char const*) const 43114 vfunc[3]: collate::do_transform(char const*, char const*) 43115 const 43116 vfunc[4]: collate::do_hash(char const*, char const*) 43117 const 43118 43119 The Run Time Type Information for the std::collate_byname 43120 class is described by Table 16-322 43121 43122 Table 16-322. typeinfo for collate_byname 43123 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43124 Name typeinfo name for collate_byname 43125 __________________________________________________________ 43126 43127 16.1.110.2. Interfaces for Class collate_byname 43128 43129 An LSB conforming implementation shall provide the generic 43130 methods for Class std::collate_byname specified in Table 43131 16-323, with the full mandatory functionality as described in 43132 the referenced underlying specification. 43133 43134 Table 16-323. libstdcxx - Class collate_byname Function 43135 Interfaces 43136 collate_byname::~collate_byname()(GLIBCXX_3.4) [ISOCXX] 43137 collate_byname::~collate_byname()(GLIBCXX_3.4) [ISOCXX] 43138 collate_byname::~collate_byname()(GLIBCXX_3.4) [ISOCXX] 43139 43140 An LSB conforming implementation shall provide the generic data 43141 interfaces for Class std::collate_byname specified in 43142 Table 16-324, with the full mandatory functionality as 43143 described in the referenced underlying specification. 43144 43145 Table 16-324. libstdcxx - Class collate_byname Data 43146 Interfaces 43147 typeinfo for collate_byname(GLIBCXX_3.4) [CXXABI-1.86] 43148 typeinfo name for collate_byname(GLIBCXX_3.4) 43149 [CXXABI-1.86] 43150 vtable for collate_byname(GLIBCXX_3.4) [CXXABI-1.86] 43151 __________________________________________________________ 43152 43153 16.1.111. Class collate_byname 43154 __________________________________________________________ 43155 43156 16.1.111.1. Class data for collate_byname 43157 43158 The virtual table for the std::collate_byname class is 43159 described by Table 16-325 43160 43161 Table 16-325. Primary vtable for collate_byname 43162 Base Offset 0 43163 Virtual Base Offset 0 43164 RTTI typeinfo for collate_byname 43165 vfunc[0]: collate_byname::~collate_byname() 43166 vfunc[1]: collate_byname::~collate_byname() 43167 vfunc[2]: collate::do_compare(wchar_t const*, wchar_t 43168 const*, wchar_t const*, wchar_t const*) const 43169 vfunc[3]: collate::do_transform(wchar_t const*, 43170 wchar_t const*) const 43171 vfunc[4]: collate::do_hash(wchar_t const*, wchar_t 43172 const*) const 43173 43174 The Run Time Type Information for the 43175 std::collate_byname class is described by Table 16-326 43176 43177 Table 16-326. typeinfo for collate_byname 43178 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43179 Name typeinfo name for collate_byname 43180 __________________________________________________________ 43181 43182 16.1.111.2. Interfaces for Class collate_byname 43183 43184 An LSB conforming implementation shall provide the generic 43185 methods for Class std::collate_byname specified in 43186 Table 16-327, with the full mandatory functionality as 43187 described in the referenced underlying specification. 43188 43189 Table 16-327. libstdcxx - Class collate_byname 43190 Function Interfaces 43191 collate_byname::~collate_byname()(GLIBCXX_3.4) 43192 [ISOCXX] 43193 collate_byname::~collate_byname()(GLIBCXX_3.4) 43194 [ISOCXX] 43195 collate_byname::~collate_byname()(GLIBCXX_3.4) 43196 [ISOCXX] 43197 43198 An LSB conforming implementation shall provide the generic data 43199 interfaces for Class std::collate_byname specified in 43200 Table 16-328, with the full mandatory functionality as 43201 described in the referenced underlying specification. 43202 43203 Table 16-328. libstdcxx - Class collate_byname Data 43204 Interfaces 43205 typeinfo for collate_byname(GLIBCXX_3.4) [CXXABI-1.86] 43206 typeinfo name for collate_byname(GLIBCXX_3.4) 43207 [CXXABI-1.86] 43208 vtable for collate_byname(GLIBCXX_3.4) [CXXABI-1.86] 43209 __________________________________________________________ 43210 43211 16.1.112. Class time_base 43212 __________________________________________________________ 43213 43214 16.1.112.1. Class data for time_base 43215 43216 The Run Time Type Information for the std::time_base class is 43217 described by Table 16-329 43218 43219 Table 16-329. typeinfo for time_base 43220 Base Vtable vtable for __cxxabiv1::__class_type_info 43221 Name typeinfo name for time_base 43222 __________________________________________________________ 43223 43224 16.1.112.2. Interfaces for Class time_base 43225 43226 No external methods are defined for libstdcxx - Class 43227 std::time_base in this part of the specification. See also the 43228 relevant architecture specific part of this specification. 43229 43230 An LSB conforming implementation shall provide the generic data 43231 interfaces for Class std::time_base specified in Table 16-330, 43232 with the full mandatory functionality as described in the 43233 referenced underlying specification. 43234 43235 Table 16-330. libstdcxx - Class time_base Data Interfaces 43236 typeinfo for time_base(GLIBCXX_3.4) [CXXABI-1.86] 43237 typeinfo name for time_base(GLIBCXX_3.4) [CXXABI-1.86] 43238 __________________________________________________________ 43239 43240 16.1.113. Class time_get_byname > > 43241 __________________________________________________________ 43242 43243 16.1.113.1. Class data for time_get_byname > > 43244 43245 The virtual table for the std::time_get_byname > > class 43247 is described by Table 16-331 43248 43249 Table 16-331. Primary vtable for time_get_byname > > 43251 Base Offset 0 43252 Virtual Base Offset 0 43253 RTTI typeinfo for time_get_byname > > 43255 vfunc[0]: time_get_byname > >::~time_get_byname() 43257 vfunc[1]: time_get_byname > >::~time_get_byname() 43259 vfunc[2]: time_get > >::do_date_order() const 43261 vfunc[3]: time_get > >::do_get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43265 vfunc[4]: time_get > >::do_get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43269 vfunc[5]: time_get > >::do_get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43273 vfunc[6]: time_get > 43275 >::do_get_monthname(istreambuf_iterator 43276 >, istreambuf_iterator >, ios_base&, 43277 _Ios_Iostate&, tm*) const 43278 vfunc[7]: time_get > >::do_get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43282 43283 The Run Time Type Information for the 43284 std::time_get_byname > > class is described by Table 16-332 43286 43287 Table 16-332. typeinfo for time_get_byname > > 43289 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43290 Name typeinfo name for time_get_byname > > 43292 __________________________________________________________ 43293 43294 16.1.113.2. Interfaces for Class time_get_byname > > 43295 43296 An LSB conforming implementation shall provide the generic 43297 methods for Class std::time_get_byname > > 43299 specified in Table 16-333, with the full mandatory 43300 functionality as described in the referenced underlying 43301 specification. 43302 43303 Table 16-333. libstdcxx - Class time_get_byname > > Function 43305 Interfaces 43306 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) [ISOCXX] 43308 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) [ISOCXX] 43310 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) [ISOCXX] 43312 43313 An LSB conforming implementation shall provide the generic data 43314 interfaces for Class std::time_get_byname > > 43316 specified in Table 16-334, with the full mandatory 43317 functionality as described in the referenced underlying 43318 specification. 43319 43320 Table 16-334. libstdcxx - Class time_get_byname > > Data Interfaces 43322 typeinfo for time_get_byname > >(GLIBCXX_3.4) [CXXABI-1.86] 43324 typeinfo name for time_get_byname > >(GLIBCXX_3.4) 43326 [CXXABI-1.86] 43327 vtable for time_get_byname > >(GLIBCXX_3.4) [CXXABI-1.86] 43329 __________________________________________________________ 43330 43331 16.1.114. Class time_get_byname > > 43332 __________________________________________________________ 43333 43334 16.1.114.1. Class data for time_get_byname > > 43335 43336 The virtual table for the std::time_get_byname > > 43338 class is described by Table 16-335 43339 43340 Table 16-335. Primary vtable for time_get_byname > > 43342 Base Offset 0 43343 Virtual Base Offset 0 43344 RTTI typeinfo for time_get_byname > > 43346 vfunc[0]: time_get_byname > >::~time_get_byname() 43348 vfunc[1]: time_get_byname > >::~time_get_byname() 43350 vfunc[2]: time_get > >::do_date_order() const 43352 vfunc[3]: time_get > 43354 >::do_get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43357 vfunc[4]: time_get > 43359 >::do_get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43362 vfunc[5]: time_get > 43364 >::do_get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43367 vfunc[6]: time_get > 43369 >::do_get_monthname(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43372 vfunc[7]: time_get > 43374 >::do_get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43377 43378 The Run Time Type Information for the 43379 std::time_get_byname > > class is described by Table 43381 16-336 43382 43383 Table 16-336. typeinfo for time_get_byname > > 43385 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43386 Name typeinfo name for time_get_byname > > 43388 __________________________________________________________ 43389 43390 16.1.114.2. Interfaces for Class time_get_byname > > 43391 43392 An LSB conforming implementation shall provide the generic 43393 methods for Class std::time_get_byname > > 43395 specified in Table 16-337, with the full mandatory 43396 functionality as described in the referenced underlying 43397 specification. 43398 43399 Table 16-337. libstdcxx - Class time_get_byname > > Function 43401 Interfaces 43402 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) 43404 [ISOCXX] 43405 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) 43407 [ISOCXX] 43408 time_get_byname > >::~time_get_byname()(GLIBCXX_3.4) 43410 [ISOCXX] 43411 43412 An LSB conforming implementation shall provide the generic data 43413 interfaces for Class std::time_get_byname > > 43415 specified in Table 16-338, with the full mandatory 43416 functionality as described in the referenced underlying 43417 specification. 43418 43419 Table 16-338. libstdcxx - Class time_get_byname > > Data 43421 Interfaces 43422 typeinfo for time_get_byname > 43424 >(GLIBCXX_3.4) [CXXABI-1.86] 43425 typeinfo name for time_get_byname > 43427 >(GLIBCXX_3.4) [CXXABI-1.86] 43428 vtable for time_get_byname > 43430 >(GLIBCXX_3.4) [CXXABI-1.86] 43431 __________________________________________________________ 43432 43433 16.1.115. Class time_put_byname > > 43434 __________________________________________________________ 43435 43436 16.1.115.1. Class data for time_put_byname > > 43437 43438 The virtual table for the std::time_put_byname > > class 43440 is described by Table 16-339 43441 43442 Table 16-339. Primary vtable for time_put_byname > > 43444 Base Offset 0 43445 Virtual Base Offset 0 43446 RTTI typeinfo for time_put_byname > > 43448 vfunc[0]: time_put_byname > >::~time_put_byname() 43450 vfunc[1]: time_put_byname > >::~time_put_byname() 43452 vfunc[2]: time_put > >::do_put(ostreambuf_iterator >, ios_base&, char, tm const*, char, char) 43455 const 43456 43457 The Run Time Type Information for the 43458 std::time_put_byname > > class is described by Table 16-340 43460 43461 Table 16-340. typeinfo for time_put_byname > > 43463 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43464 Name typeinfo name for time_put_byname > > 43466 __________________________________________________________ 43467 43468 16.1.115.2. Interfaces for Class time_put_byname > > 43469 43470 An LSB conforming implementation shall provide the generic 43471 methods for Class std::time_put_byname > > 43473 specified in Table 16-341, with the full mandatory 43474 functionality as described in the referenced underlying 43475 specification. 43476 43477 Table 16-341. libstdcxx - Class time_put_byname > > Function 43479 Interfaces 43480 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) [ISOCXX] 43482 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) [ISOCXX] 43484 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) [ISOCXX] 43486 43487 An LSB conforming implementation shall provide the generic data 43488 interfaces for Class std::time_put_byname > > 43490 specified in Table 16-342, with the full mandatory 43491 functionality as described in the referenced underlying 43492 specification. 43493 43494 Table 16-342. libstdcxx - Class time_put_byname > > Data Interfaces 43496 typeinfo for time_put_byname > >(GLIBCXX_3.4) [CXXABI-1.86] 43498 typeinfo name for time_put_byname > >(GLIBCXX_3.4) 43500 [CXXABI-1.86] 43501 vtable for time_put_byname > >(GLIBCXX_3.4) [CXXABI-1.86] 43503 __________________________________________________________ 43504 43505 16.1.116. Class time_put_byname > > 43506 __________________________________________________________ 43507 43508 16.1.116.1. Class data for time_put_byname > > 43509 43510 The virtual table for the std::time_put_byname > > 43512 class is described by Table 16-343 43513 43514 Table 16-343. Primary vtable for time_put_byname > > 43516 Base Offset 0 43517 Virtual Base Offset 0 43518 RTTI typeinfo for time_put_byname > > 43520 vfunc[0]: time_put_byname > >::~time_put_byname() 43522 vfunc[1]: time_put_byname > >::~time_put_byname() 43524 vfunc[2]: time_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, tm const*, char, 43527 char) const 43528 43529 The Run Time Type Information for the 43530 std::time_put_byname > > class is described by Table 43532 16-344 43533 43534 Table 16-344. typeinfo for time_put_byname > > 43536 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43537 Name typeinfo name for time_put_byname > > 43539 __________________________________________________________ 43540 43541 16.1.116.2. Interfaces for Class time_put_byname > > 43542 43543 An LSB conforming implementation shall provide the generic 43544 methods for Class std::time_put_byname > > 43546 specified in Table 16-345, with the full mandatory 43547 functionality as described in the referenced underlying 43548 specification. 43549 43550 Table 16-345. libstdcxx - Class time_put_byname > > Function 43552 Interfaces 43553 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) 43555 [ISOCXX] 43556 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) 43558 [ISOCXX] 43559 time_put_byname > >::~time_put_byname()(GLIBCXX_3.4) 43561 [ISOCXX] 43562 43563 An LSB conforming implementation shall provide the generic data 43564 interfaces for Class std::time_put_byname > > 43566 specified in Table 16-346, with the full mandatory 43567 functionality as described in the referenced underlying 43568 specification. 43569 43570 Table 16-346. libstdcxx - Class time_put_byname > > Data 43572 Interfaces 43573 typeinfo for time_put_byname > 43575 >(GLIBCXX_3.4) [CXXABI-1.86] 43576 typeinfo name for time_put_byname > 43578 >(GLIBCXX_3.4) [CXXABI-1.86] 43579 vtable for time_put_byname > 43581 >(GLIBCXX_3.4) [CXXABI-1.86] 43582 __________________________________________________________ 43583 43584 16.1.117. Class time_get > > 43585 __________________________________________________________ 43586 43587 16.1.117.1. Class data for time_get > > 43588 43589 The virtual table for the std::time_get > > class 43591 is described by Table 16-347 43592 43593 Table 16-347. Primary vtable for time_get > > 43595 Base Offset 0 43596 Virtual Base Offset 0 43597 RTTI typeinfo for time_get > > 43599 vfunc[0]: time_get > >::~time_get() 43601 vfunc[1]: time_get > >::~time_get() 43603 vfunc[2]: time_get > >::do_date_order() const 43605 vfunc[3]: time_get > >::do_get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43609 vfunc[4]: time_get > >::do_get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43613 vfunc[5]: time_get > >::do_get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43617 vfunc[6]: time_get > 43619 >::do_get_monthname(istreambuf_iterator 43620 >, istreambuf_iterator >, ios_base&, 43621 _Ios_Iostate&, tm*) const 43622 vfunc[7]: time_get > >::do_get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43626 __________________________________________________________ 43627 43628 16.1.117.2. Interfaces for Class time_get > > 43629 43630 An LSB conforming implementation shall provide the generic 43631 methods for Class std::time_get > > 43633 specified in Table 16-348, with the full mandatory 43634 functionality as described in the referenced underlying 43635 specification. 43636 43637 Table 16-348. libstdcxx - Class time_get > > Function 43639 Interfaces 43640 time_get > 43641 >::date_order() const(GLIBCXX_3.4) [ISOCXX] 43642 time_get > 43643 >::do_get_date(istreambuf_iterator >, 43644 istreambuf_iterator >, ios_base&, 43645 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43646 time_get > 43647 >::do_get_time(istreambuf_iterator >, 43648 istreambuf_iterator >, ios_base&, 43649 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43650 time_get > 43651 >::do_get_year(istreambuf_iterator >, 43652 istreambuf_iterator >, ios_base&, 43653 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43654 time_get > 43655 >::get_weekday(istreambuf_iterator >, 43656 istreambuf_iterator >, ios_base&, 43657 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43658 time_get > 43659 >::do_date_order() const(GLIBCXX_3.4) [ISOCXX] 43660 time_get > 43661 >::get_monthname(istreambuf_iterator >, 43662 istreambuf_iterator >, ios_base&, 43663 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43664 time_get > 43665 >::do_get_weekday(istreambuf_iterator 43666 >, istreambuf_iterator >, ios_base&, 43667 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43668 time_get > 43669 >::do_get_monthname(istreambuf_iterator 43670 >, istreambuf_iterator >, ios_base&, 43671 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43672 time_get > 43673 >::_M_extract_via_format(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*, char 43676 const*) const(GLIBCXX_3.4) [ISOCXX] 43677 time_get > 43678 >::get_date(istreambuf_iterator >, 43679 istreambuf_iterator >, ios_base&, 43680 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43681 time_get > 43682 >::get_time(istreambuf_iterator >, 43683 istreambuf_iterator >, ios_base&, 43684 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43685 time_get > 43686 >::get_year(istreambuf_iterator >, 43687 istreambuf_iterator >, ios_base&, 43688 _Ios_Iostate&, tm*) const(GLIBCXX_3.4) [ISOCXX] 43689 time_get > 43690 >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43691 time_get > 43692 >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43693 time_get > 43694 >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43695 43696 An LSB conforming implementation shall provide the generic data 43697 interfaces for Class std::time_get > > 43699 specified in Table 16-349, with the full mandatory 43700 functionality as described in the referenced underlying 43701 specification. 43702 43703 Table 16-349. libstdcxx - Class time_get > > Data Interfaces 43705 guard variable for time_get > >::id(GLIBCXX_3.4) [CXXABI-1.86] 43707 time_get > 43708 >::id(GLIBCXX_3.4) [ISOCXX] 43709 typeinfo for time_get > >(GLIBCXX_3.4) [CXXABI-1.86] 43711 typeinfo name for time_get > >(GLIBCXX_3.4) [CXXABI-1.86] 43713 vtable for time_get > >(GLIBCXX_3.4) [CXXABI-1.86] 43715 __________________________________________________________ 43716 43717 16.1.118. Class time_get > > 43718 __________________________________________________________ 43719 43720 16.1.118.1. Class data for time_get > > 43721 43722 The virtual table for the std::time_get > > 43724 class is described by Table 16-350 43725 43726 Table 16-350. Primary vtable for time_get > > 43728 Base Offset 0 43729 Virtual Base Offset 0 43730 RTTI typeinfo for time_get > > 43732 vfunc[0]: time_get > >::~time_get() 43734 vfunc[1]: time_get > >::~time_get() 43736 vfunc[2]: time_get > >::do_date_order() const 43738 vfunc[3]: time_get > 43740 >::do_get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43743 vfunc[4]: time_get > 43745 >::do_get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43748 vfunc[5]: time_get > 43750 >::do_get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43753 vfunc[6]: time_get > 43755 >::do_get_monthname(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43758 vfunc[7]: time_get > 43760 >::do_get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) const 43763 __________________________________________________________ 43764 43765 16.1.118.2. Interfaces for Class time_get > > 43766 43767 An LSB conforming implementation shall provide the generic 43768 methods for Class std::time_get > > 43770 specified in Table 16-351, with the full mandatory 43771 functionality as described in the referenced underlying 43772 specification. 43773 43774 Table 16-351. libstdcxx - Class time_get > > Function 43776 Interfaces 43777 time_get > >::date_order() const(GLIBCXX_3.4) 43779 [ISOCXX] 43780 time_get > 43782 >::do_get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43785 const(GLIBCXX_3.4) [ISOCXX] 43786 time_get > 43788 >::do_get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43791 const(GLIBCXX_3.4) [ISOCXX] 43792 time_get > 43794 >::do_get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43797 const(GLIBCXX_3.4) [ISOCXX] 43798 time_get > 43800 >::get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43803 const(GLIBCXX_3.4) [ISOCXX] 43804 time_get > >::do_date_order() const(GLIBCXX_3.4) 43806 [ISOCXX] 43807 time_get > 43809 >::get_monthname(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43812 const(GLIBCXX_3.4) [ISOCXX] 43813 time_get > 43815 >::do_get_weekday(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43818 const(GLIBCXX_3.4) [ISOCXX] 43819 time_get > 43821 >::do_get_monthname(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43824 const(GLIBCXX_3.4) [ISOCXX] 43825 time_get > 43827 >::_M_extract_via_format(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*, wchar_t 43830 const*) const(GLIBCXX_3.4) [ISOCXX] 43831 time_get > >::get_date(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43835 const(GLIBCXX_3.4) [ISOCXX] 43836 time_get > >::get_time(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43840 const(GLIBCXX_3.4) [ISOCXX] 43841 time_get > >::get_year(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, tm*) 43845 const(GLIBCXX_3.4) [ISOCXX] 43846 time_get > >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43848 time_get > >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43850 time_get > >::~time_get()(GLIBCXX_3.4) [ISOCXX] 43852 43853 An LSB conforming implementation shall provide the generic data 43854 interfaces for Class std::time_get > > 43856 specified in Table 16-352, with the full mandatory 43857 functionality as described in the referenced underlying 43858 specification. 43859 43860 Table 16-352. libstdcxx - Class time_get > > Data 43862 Interfaces 43863 guard variable for time_get > 43865 >::id(GLIBCXX_3.4) [CXXABI-1.86] 43866 time_get > >::id(GLIBCXX_3.4) [ISOCXX] 43868 typeinfo for time_get > >(GLIBCXX_3.4) [CXXABI-1.86] 43870 typeinfo name for time_get > 43872 >(GLIBCXX_3.4) [CXXABI-1.86] 43873 vtable for time_get > >(GLIBCXX_3.4) [CXXABI-1.86] 43875 __________________________________________________________ 43876 43877 16.1.119. Class time_put > > 43878 __________________________________________________________ 43879 43880 16.1.119.1. Class data for time_put > > 43881 43882 The virtual table for the std::time_put > > class 43884 is described by Table 16-353 43885 43886 Table 16-353. Primary vtable for time_put > > 43888 Base Offset 0 43889 Virtual Base Offset 0 43890 RTTI typeinfo for time_put > > 43892 vfunc[0]: time_put > >::~time_put() 43894 vfunc[1]: time_put > >::~time_put() 43896 vfunc[2]: time_put > >::do_put(ostreambuf_iterator >, ios_base&, char, tm const*, char, char) 43899 const 43900 43901 The Run Time Type Information for the std::time_put > > class 43903 is described by Table 16-354 43904 43905 Table 16-354. typeinfo for time_put > > 43907 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43908 Name typeinfo name for time_put > > 43910 flags: 8 43911 basetype: typeinfo for locale::facet 2 43912 basetype: typeinfo for time_base 2 43913 __________________________________________________________ 43914 43915 16.1.119.2. Interfaces for Class time_put > > 43916 43917 An LSB conforming implementation shall provide the generic 43918 methods for Class std::time_put > > 43920 specified in Table 16-355, with the full mandatory 43921 functionality as described in the referenced underlying 43922 specification. 43923 43924 Table 16-355. libstdcxx - Class time_put > > Function 43926 Interfaces 43927 time_put > 43928 >::put(ostreambuf_iterator >, 43929 ios_base&, char, tm const*, char const*, char const*) 43930 const(GLIBCXX_3.4) [ISOCXX] 43931 time_put > 43932 >::put(ostreambuf_iterator >, 43933 ios_base&, char, tm const*, char, char) const(GLIBCXX_3.4) 43934 [ISOCXX] 43935 time_put > 43936 >::do_put(ostreambuf_iterator >, 43937 ios_base&, char, tm const*, char, char) const(GLIBCXX_3.4) 43938 [ISOCXX] 43939 time_put > 43940 >::~time_put()(GLIBCXX_3.4) [ISOCXX] 43941 time_put > 43942 >::~time_put()(GLIBCXX_3.4) [ISOCXX] 43943 time_put > 43944 >::~time_put()(GLIBCXX_3.4) [ISOCXX] 43945 43946 An LSB conforming implementation shall provide the generic data 43947 interfaces for Class std::time_put > > 43949 specified in Table 16-356, with the full mandatory 43950 functionality as described in the referenced underlying 43951 specification. 43952 43953 Table 16-356. libstdcxx - Class time_put > > Data Interfaces 43955 guard variable for time_put > >::id(GLIBCXX_3.4) [CXXABI-1.86] 43957 time_put > 43958 >::id(GLIBCXX_3.4) [ISOCXX] 43959 typeinfo for time_put > >(GLIBCXX_3.4) [CXXABI-1.86] 43961 typeinfo name for time_put > >(GLIBCXX_3.4) [CXXABI-1.86] 43963 vtable for time_put > >(GLIBCXX_3.4) [CXXABI-1.86] 43965 __________________________________________________________ 43966 43967 16.1.120. Class time_put > > 43968 __________________________________________________________ 43969 43970 16.1.120.1. Class data for time_put > > 43971 43972 The virtual table for the std::time_put > > 43974 class is described by Table 16-357 43975 43976 Table 16-357. Primary vtable for time_put > > 43978 Base Offset 0 43979 Virtual Base Offset 0 43980 RTTI typeinfo for time_put > > 43982 vfunc[0]: time_put > >::~time_put() 43984 vfunc[1]: time_put > >::~time_put() 43986 vfunc[2]: time_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, tm const*, char, 43989 char) const 43990 43991 The Run Time Type Information for the std::time_put > > 43993 class is described by Table 16-358 43994 43995 Table 16-358. typeinfo for time_put > > 43997 Base Vtable vtable for __cxxabiv1::__si_class_type_info 43998 Name typeinfo name for time_put > > 44000 flags: 8 44001 basetype: typeinfo for locale::facet 2 44002 basetype: typeinfo for time_base 2 44003 __________________________________________________________ 44004 44005 16.1.120.2. Interfaces for Class time_put > > 44006 44007 An LSB conforming implementation shall provide the generic 44008 methods for Class std::time_put > > 44010 specified in Table 16-359, with the full mandatory 44011 functionality as described in the referenced underlying 44012 specification. 44013 44014 Table 16-359. libstdcxx - Class time_put > > Function 44016 Interfaces 44017 time_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, tm const*, wchar_t 44020 const*, wchar_t const*) const(GLIBCXX_3.4) [ISOCXX] 44021 time_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, tm const*, char, 44024 char) const(GLIBCXX_3.4) [ISOCXX] 44025 time_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, tm const*, char, 44028 char) const(GLIBCXX_3.4) [ISOCXX] 44029 time_put > >::~time_put()(GLIBCXX_3.4) [ISOCXX] 44031 time_put > >::~time_put()(GLIBCXX_3.4) [ISOCXX] 44033 time_put > >::~time_put()(GLIBCXX_3.4) [ISOCXX] 44035 44036 An LSB conforming implementation shall provide the generic data 44037 interfaces for Class std::time_put > > 44039 specified in Table 16-360, with the full mandatory 44040 functionality as described in the referenced underlying 44041 specification. 44042 44043 Table 16-360. libstdcxx - Class time_put > > Data 44045 Interfaces 44046 guard variable for time_put > 44048 >::id(GLIBCXX_3.4) [CXXABI-1.86] 44049 time_put > >::id(GLIBCXX_3.4) [ISOCXX] 44051 typeinfo for time_put > >(GLIBCXX_3.4) [CXXABI-1.86] 44053 typeinfo name for time_put > 44055 >(GLIBCXX_3.4) [CXXABI-1.86] 44056 vtable for time_put > >(GLIBCXX_3.4) [CXXABI-1.86] 44058 __________________________________________________________ 44059 44060 16.1.121. Class moneypunct 44061 __________________________________________________________ 44062 44063 16.1.121.1. Class data for moneypunct 44064 44065 The virtual table for the std::moneypunct class is 44066 described by Table 16-361 44067 44068 Table 16-361. Primary vtable for moneypunct 44069 Base Offset 0 44070 Virtual Base Offset 0 44071 RTTI typeinfo for moneypunct 44072 vfunc[0]: moneypunct::~moneypunct() 44073 vfunc[1]: moneypunct::~moneypunct() 44074 vfunc[2]: moneypunct::do_decimal_point() const 44075 vfunc[3]: moneypunct::do_thousands_sep() const 44076 vfunc[4]: moneypunct::do_grouping() const 44077 vfunc[5]: moneypunct::do_curr_symbol() const 44078 vfunc[6]: moneypunct::do_positive_sign() const 44079 vfunc[7]: moneypunct::do_negative_sign() const 44080 vfunc[8]: moneypunct::do_frac_digits() const 44081 vfunc[9]: moneypunct::do_pos_format() const 44082 vfunc[10]: moneypunct::do_neg_format() const 44083 __________________________________________________________ 44084 44085 16.1.121.2. Interfaces for Class moneypunct 44086 44087 An LSB conforming implementation shall provide the generic 44088 methods for Class std::moneypunct specified in 44089 Table 16-362, with the full mandatory functionality as 44090 described in the referenced underlying specification. 44091 44092 Table 16-362. libstdcxx - Class moneypunct 44093 Function Interfaces 44094 moneypunct::neg_format() const(GLIBCXX_3.4) 44095 [ISOCXX] 44096 moneypunct::pos_format() const(GLIBCXX_3.4) 44097 [ISOCXX] 44098 moneypunct::curr_symbol() const(GLIBCXX_3.4) 44099 [ISOCXX] 44100 moneypunct::do_grouping() const(GLIBCXX_3.4) 44101 [ISOCXX] 44102 moneypunct::frac_digits() const(GLIBCXX_3.4) 44103 [ISOCXX] 44104 moneypunct::decimal_point() const(GLIBCXX_3.4) 44105 [ISOCXX] 44106 moneypunct::do_neg_format() const(GLIBCXX_3.4) 44107 [ISOCXX] 44108 moneypunct::do_pos_format() const(GLIBCXX_3.4) 44109 [ISOCXX] 44110 moneypunct::negative_sign() const(GLIBCXX_3.4) 44111 [ISOCXX] 44112 moneypunct::positive_sign() const(GLIBCXX_3.4) 44113 [ISOCXX] 44114 moneypunct::thousands_sep() const(GLIBCXX_3.4) 44115 [ISOCXX] 44116 moneypunct::do_curr_symbol() const(GLIBCXX_3.4) 44117 [ISOCXX] 44118 moneypunct::do_frac_digits() const(GLIBCXX_3.4) 44119 [ISOCXX] 44120 moneypunct::do_decimal_point() const(GLIBCXX_3.4) 44121 [ISOCXX] 44122 moneypunct::do_negative_sign() const(GLIBCXX_3.4) 44123 [ISOCXX] 44124 moneypunct::do_positive_sign() const(GLIBCXX_3.4) 44125 [ISOCXX] 44126 moneypunct::do_thousands_sep() const(GLIBCXX_3.4) 44127 [ISOCXX] 44128 moneypunct::grouping() const(GLIBCXX_3.4) [ISOCXX] 44129 moneypunct::_M_initialize_moneypunct(__locale_struct*, char 44131 const*)(GLIBCXX_3.4) [ISOCXX] 44132 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44133 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44134 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44135 44136 An LSB conforming implementation shall provide the generic data 44137 interfaces for Class std::moneypunct specified in 44138 Table 16-363, with the full mandatory functionality as 44139 described in the referenced underlying specification. 44140 44141 Table 16-363. libstdcxx - Class moneypunct Data 44142 Interfaces 44143 guard variable for moneypunct::id(GLIBCXX_3.4) 44144 [CXXABI-1.86] 44145 moneypunct::id(GLIBCXX_3.4) [ISOCXX] 44146 moneypunct::intl(GLIBCXX_3.4) [ISOCXX] 44147 typeinfo for moneypunct(GLIBCXX_3.4) [CXXABI-1.86] 44148 typeinfo name for moneypunct(GLIBCXX_3.4) 44149 [CXXABI-1.86] 44150 vtable for moneypunct(GLIBCXX_3.4) [CXXABI-1.86] 44151 __________________________________________________________ 44152 44153 16.1.122. Class moneypunct 44154 __________________________________________________________ 44155 44156 16.1.122.1. Class data for moneypunct 44157 44158 The virtual table for the std::moneypunct class is 44159 described by Table 16-364 44160 44161 Table 16-364. Primary vtable for moneypunct 44162 Base Offset 0 44163 Virtual Base Offset 0 44164 RTTI typeinfo for moneypunct 44165 vfunc[0]: moneypunct::~moneypunct() 44166 vfunc[1]: moneypunct::~moneypunct() 44167 vfunc[2]: moneypunct::do_decimal_point() const 44168 vfunc[3]: moneypunct::do_thousands_sep() const 44169 vfunc[4]: moneypunct::do_grouping() const 44170 vfunc[5]: moneypunct::do_curr_symbol() const 44171 vfunc[6]: moneypunct::do_positive_sign() const 44172 vfunc[7]: moneypunct::do_negative_sign() const 44173 vfunc[8]: moneypunct::do_frac_digits() const 44174 vfunc[9]: moneypunct::do_pos_format() const 44175 vfunc[10]: moneypunct::do_neg_format() const 44176 __________________________________________________________ 44177 44178 16.1.122.2. Interfaces for Class moneypunct 44179 44180 An LSB conforming implementation shall provide the generic 44181 methods for Class std::moneypunct specified in 44182 Table 16-365, with the full mandatory functionality as 44183 described in the referenced underlying specification. 44184 44185 Table 16-365. libstdcxx - Class moneypunct Function 44186 Interfaces 44187 moneypunct::neg_format() const(GLIBCXX_3.4) 44188 [ISOCXX] 44189 moneypunct::pos_format() const(GLIBCXX_3.4) 44190 [ISOCXX] 44191 moneypunct::curr_symbol() const(GLIBCXX_3.4) 44192 [ISOCXX] 44193 moneypunct::do_grouping() const(GLIBCXX_3.4) 44194 [ISOCXX] 44195 moneypunct::frac_digits() const(GLIBCXX_3.4) 44196 [ISOCXX] 44197 moneypunct::decimal_point() const(GLIBCXX_3.4) 44198 [ISOCXX] 44199 moneypunct::do_neg_format() const(GLIBCXX_3.4) 44200 [ISOCXX] 44201 moneypunct::do_pos_format() const(GLIBCXX_3.4) 44202 [ISOCXX] 44203 moneypunct::negative_sign() const(GLIBCXX_3.4) 44204 [ISOCXX] 44205 moneypunct::positive_sign() const(GLIBCXX_3.4) 44206 [ISOCXX] 44207 moneypunct::thousands_sep() const(GLIBCXX_3.4) 44208 [ISOCXX] 44209 moneypunct::do_curr_symbol() const(GLIBCXX_3.4) 44210 [ISOCXX] 44211 moneypunct::do_frac_digits() const(GLIBCXX_3.4) 44212 [ISOCXX] 44213 moneypunct::do_decimal_point() const(GLIBCXX_3.4) 44214 [ISOCXX] 44215 moneypunct::do_negative_sign() const(GLIBCXX_3.4) 44216 [ISOCXX] 44217 moneypunct::do_positive_sign() const(GLIBCXX_3.4) 44218 [ISOCXX] 44219 moneypunct::do_thousands_sep() const(GLIBCXX_3.4) 44220 [ISOCXX] 44221 moneypunct::grouping() const(GLIBCXX_3.4) [ISOCXX] 44222 moneypunct::_M_initialize_moneypunct(__locale_struct*, char 44224 const*)(GLIBCXX_3.4) [ISOCXX] 44225 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44226 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44227 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44228 44229 An LSB conforming implementation shall provide the generic data 44230 interfaces for Class std::moneypunct specified in 44231 Table 16-366, with the full mandatory functionality as 44232 described in the referenced underlying specification. 44233 44234 Table 16-366. libstdcxx - Class moneypunct Data 44235 Interfaces 44236 guard variable for moneypunct::id(GLIBCXX_3.4) 44237 [CXXABI-1.86] 44238 moneypunct::id(GLIBCXX_3.4) [ISOCXX] 44239 moneypunct::intl(GLIBCXX_3.4) [ISOCXX] 44240 typeinfo for moneypunct(GLIBCXX_3.4) [CXXABI-1.86] 44241 typeinfo name for moneypunct(GLIBCXX_3.4) 44242 [CXXABI-1.86] 44243 vtable for moneypunct(GLIBCXX_3.4) [CXXABI-1.86] 44244 __________________________________________________________ 44245 44246 16.1.123. Class moneypunct 44247 __________________________________________________________ 44248 44249 16.1.123.1. Class data for moneypunct 44250 44251 The virtual table for the std::moneypunct class 44252 is described by Table 16-367 44253 44254 Table 16-367. Primary vtable for moneypunct 44255 Base Offset 0 44256 Virtual Base Offset 0 44257 RTTI typeinfo for moneypunct 44258 vfunc[0]: moneypunct::~moneypunct() 44259 vfunc[1]: moneypunct::~moneypunct() 44260 vfunc[2]: moneypunct::do_decimal_point() const 44261 vfunc[3]: moneypunct::do_thousands_sep() const 44262 vfunc[4]: moneypunct::do_grouping() const 44263 vfunc[5]: moneypunct::do_curr_symbol() const 44264 vfunc[6]: moneypunct::do_positive_sign() const 44265 vfunc[7]: moneypunct::do_negative_sign() const 44266 vfunc[8]: moneypunct::do_frac_digits() const 44267 vfunc[9]: moneypunct::do_pos_format() const 44268 vfunc[10]: moneypunct::do_neg_format() const 44269 __________________________________________________________ 44270 44271 16.1.123.2. Interfaces for Class moneypunct 44272 44273 An LSB conforming implementation shall provide the generic 44274 methods for Class std::moneypunct specified in 44275 Table 16-368, with the full mandatory functionality as 44276 described in the referenced underlying specification. 44277 44278 Table 16-368. libstdcxx - Class moneypunct 44279 Function Interfaces 44280 moneypunct::neg_format() const(GLIBCXX_3.4) 44281 [ISOCXX] 44282 moneypunct::pos_format() const(GLIBCXX_3.4) 44283 [ISOCXX] 44284 moneypunct::curr_symbol() const(GLIBCXX_3.4) 44285 [ISOCXX] 44286 moneypunct::do_grouping() const(GLIBCXX_3.4) 44287 [ISOCXX] 44288 moneypunct::frac_digits() const(GLIBCXX_3.4) 44289 [ISOCXX] 44290 moneypunct::decimal_point() const(GLIBCXX_3.4) 44291 [ISOCXX] 44292 moneypunct::do_neg_format() const(GLIBCXX_3.4) 44293 [ISOCXX] 44294 moneypunct::do_pos_format() const(GLIBCXX_3.4) 44295 [ISOCXX] 44296 moneypunct::negative_sign() const(GLIBCXX_3.4) 44297 [ISOCXX] 44298 moneypunct::positive_sign() const(GLIBCXX_3.4) 44299 [ISOCXX] 44300 moneypunct::thousands_sep() const(GLIBCXX_3.4) 44301 [ISOCXX] 44302 moneypunct::do_curr_symbol() const(GLIBCXX_3.4) 44303 [ISOCXX] 44304 moneypunct::do_frac_digits() const(GLIBCXX_3.4) 44305 [ISOCXX] 44306 moneypunct::do_decimal_point() 44307 const(GLIBCXX_3.4) [ISOCXX] 44308 moneypunct::do_negative_sign() 44309 const(GLIBCXX_3.4) [ISOCXX] 44310 moneypunct::do_positive_sign() 44311 const(GLIBCXX_3.4) [ISOCXX] 44312 moneypunct::do_thousands_sep() 44313 const(GLIBCXX_3.4) [ISOCXX] 44314 moneypunct::grouping() const(GLIBCXX_3.4) 44315 [ISOCXX] 44316 moneypunct::_M_initialize_moneypunct(__locale_struct*, char 44318 const*)(GLIBCXX_3.4) [ISOCXX] 44319 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44320 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44321 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44322 44323 An LSB conforming implementation shall provide the generic data 44324 interfaces for Class std::moneypunct specified 44325 in Table 16-369, with the full mandatory functionality as 44326 described in the referenced underlying specification. 44327 44328 Table 16-369. libstdcxx - Class moneypunct Data 44329 Interfaces 44330 guard variable for moneypunct::id(GLIBCXX_3.4) 44331 [CXXABI-1.86] 44332 moneypunct::id(GLIBCXX_3.4) [ISOCXX] 44333 moneypunct::intl(GLIBCXX_3.4) [ISOCXX] 44334 typeinfo for moneypunct(GLIBCXX_3.4) 44335 [CXXABI-1.86] 44336 typeinfo name for moneypunct(GLIBCXX_3.4) 44337 [CXXABI-1.86] 44338 vtable for moneypunct(GLIBCXX_3.4) 44339 [CXXABI-1.86] 44340 __________________________________________________________ 44341 44342 16.1.124. Class moneypunct 44343 __________________________________________________________ 44344 44345 16.1.124.1. Class data for moneypunct 44346 44347 The virtual table for the std::moneypunct class 44348 is described by Table 16-370 44349 44350 Table 16-370. Primary vtable for moneypunct 44351 Base Offset 0 44352 Virtual Base Offset 0 44353 RTTI typeinfo for moneypunct 44354 vfunc[0]: moneypunct::~moneypunct() 44355 vfunc[1]: moneypunct::~moneypunct() 44356 vfunc[2]: moneypunct::do_decimal_point() const 44357 vfunc[3]: moneypunct::do_thousands_sep() const 44358 vfunc[4]: moneypunct::do_grouping() const 44359 vfunc[5]: moneypunct::do_curr_symbol() const 44360 vfunc[6]: moneypunct::do_positive_sign() const 44361 vfunc[7]: moneypunct::do_negative_sign() const 44362 vfunc[8]: moneypunct::do_frac_digits() const 44363 vfunc[9]: moneypunct::do_pos_format() const 44364 vfunc[10]: moneypunct::do_neg_format() const 44365 __________________________________________________________ 44366 44367 16.1.124.2. Interfaces for Class moneypunct 44368 44369 An LSB conforming implementation shall provide the generic 44370 methods for Class std::moneypunct specified in 44371 Table 16-371, with the full mandatory functionality as 44372 described in the referenced underlying specification. 44373 44374 Table 16-371. libstdcxx - Class moneypunct 44375 Function Interfaces 44376 moneypunct::neg_format() const(GLIBCXX_3.4) 44377 [ISOCXX] 44378 moneypunct::pos_format() const(GLIBCXX_3.4) 44379 [ISOCXX] 44380 moneypunct::curr_symbol() const(GLIBCXX_3.4) 44381 [ISOCXX] 44382 moneypunct::do_grouping() const(GLIBCXX_3.4) 44383 [ISOCXX] 44384 moneypunct::frac_digits() const(GLIBCXX_3.4) 44385 [ISOCXX] 44386 moneypunct::decimal_point() const(GLIBCXX_3.4) 44387 [ISOCXX] 44388 moneypunct::do_neg_format() const(GLIBCXX_3.4) 44389 [ISOCXX] 44390 moneypunct::do_pos_format() const(GLIBCXX_3.4) 44391 [ISOCXX] 44392 moneypunct::negative_sign() const(GLIBCXX_3.4) 44393 [ISOCXX] 44394 moneypunct::positive_sign() const(GLIBCXX_3.4) 44395 [ISOCXX] 44396 moneypunct::thousands_sep() const(GLIBCXX_3.4) 44397 [ISOCXX] 44398 moneypunct::do_curr_symbol() const(GLIBCXX_3.4) 44399 [ISOCXX] 44400 moneypunct::do_frac_digits() const(GLIBCXX_3.4) 44401 [ISOCXX] 44402 moneypunct::do_decimal_point() 44403 const(GLIBCXX_3.4) [ISOCXX] 44404 moneypunct::do_negative_sign() 44405 const(GLIBCXX_3.4) [ISOCXX] 44406 moneypunct::do_positive_sign() 44407 const(GLIBCXX_3.4) [ISOCXX] 44408 moneypunct::do_thousands_sep() 44409 const(GLIBCXX_3.4) [ISOCXX] 44410 moneypunct::grouping() const(GLIBCXX_3.4) 44411 [ISOCXX] 44412 moneypunct::_M_initialize_moneypunct(__locale_struct*, char 44414 const*)(GLIBCXX_3.4) [ISOCXX] 44415 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44416 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44417 moneypunct::~moneypunct()(GLIBCXX_3.4) [ISOCXX] 44418 44419 An LSB conforming implementation shall provide the generic data 44420 interfaces for Class std::moneypunct specified 44421 in Table 16-372, with the full mandatory functionality as 44422 described in the referenced underlying specification. 44423 44424 Table 16-372. libstdcxx - Class moneypunct Data 44425 Interfaces 44426 guard variable for moneypunct::id(GLIBCXX_3.4) 44427 [CXXABI-1.86] 44428 moneypunct::id(GLIBCXX_3.4) [ISOCXX] 44429 moneypunct::intl(GLIBCXX_3.4) [ISOCXX] 44430 typeinfo for moneypunct(GLIBCXX_3.4) 44431 [CXXABI-1.86] 44432 typeinfo name for moneypunct(GLIBCXX_3.4) 44433 [CXXABI-1.86] 44434 vtable for moneypunct(GLIBCXX_3.4) [CXXABI-1.86] 44435 __________________________________________________________ 44436 44437 16.1.125. Class moneypunct_byname 44438 __________________________________________________________ 44439 44440 16.1.125.1. Class data for moneypunct_byname 44441 44442 The virtual table for the std::moneypunct_byname 44443 class is described by Table 16-373 44444 44445 Table 16-373. Primary vtable for moneypunct_byname 44446 Base Offset 0 44447 Virtual Base Offset 0 44448 RTTI typeinfo for moneypunct_byname 44449 vfunc[0]: moneypunct_byname::~moneypunct_byname() 44450 vfunc[1]: moneypunct_byname::~moneypunct_byname() 44451 vfunc[2]: moneypunct::do_decimal_point() const 44452 vfunc[3]: moneypunct::do_thousands_sep() const 44453 vfunc[4]: moneypunct::do_grouping() const 44454 vfunc[5]: moneypunct::do_curr_symbol() const 44455 vfunc[6]: moneypunct::do_positive_sign() const 44456 vfunc[7]: moneypunct::do_negative_sign() const 44457 vfunc[8]: moneypunct::do_frac_digits() const 44458 vfunc[9]: moneypunct::do_pos_format() const 44459 vfunc[10]: moneypunct::do_neg_format() const 44460 44461 The Run Time Type Information for the 44462 std::moneypunct_byname class is described by Table 44463 16-374 44464 44465 Table 16-374. typeinfo for moneypunct_byname 44466 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44467 Name typeinfo name for moneypunct_byname 44468 __________________________________________________________ 44469 44470 16.1.125.2. Interfaces for Class moneypunct_byname 44471 44472 An LSB conforming implementation shall provide the generic 44473 methods for Class std::moneypunct_byname specified 44474 in Table 16-375, with the full mandatory functionality as 44475 described in the referenced underlying specification. 44476 44477 Table 16-375. libstdcxx - Class moneypunct_byname 44478 Function Interfaces 44479 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44481 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44483 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44485 44486 An LSB conforming implementation shall provide the generic data 44487 interfaces for Class std::moneypunct_byname 44488 specified in Table 16-376, with the full mandatory 44489 functionality as described in the referenced underlying 44490 specification. 44491 44492 Table 16-376. libstdcxx - Class moneypunct_byname 44493 Data Interfaces 44494 moneypunct_byname::intl(GLIBCXX_3.4) [ISOCXX] 44495 typeinfo for moneypunct_byname(GLIBCXX_3.4) 44496 [CXXABI-1.86] 44497 typeinfo name for moneypunct_byname(GLIBCXX_3.4) 44498 [CXXABI-1.86] 44499 vtable for moneypunct_byname(GLIBCXX_3.4) 44500 [CXXABI-1.86] 44501 __________________________________________________________ 44502 44503 16.1.126. Class moneypunct_byname 44504 __________________________________________________________ 44505 44506 16.1.126.1. Class data for moneypunct_byname 44507 44508 The virtual table for the std::moneypunct_byname 44509 class is described by Table 16-377 44510 44511 Table 16-377. Primary vtable for moneypunct_byname 44512 Base Offset 0 44513 Virtual Base Offset 0 44514 RTTI typeinfo for moneypunct_byname 44515 vfunc[0]: moneypunct_byname::~moneypunct_byname() 44516 vfunc[1]: moneypunct_byname::~moneypunct_byname() 44517 vfunc[2]: moneypunct::do_decimal_point() const 44518 vfunc[3]: moneypunct::do_thousands_sep() const 44519 vfunc[4]: moneypunct::do_grouping() const 44520 vfunc[5]: moneypunct::do_curr_symbol() const 44521 vfunc[6]: moneypunct::do_positive_sign() const 44522 vfunc[7]: moneypunct::do_negative_sign() const 44523 vfunc[8]: moneypunct::do_frac_digits() const 44524 vfunc[9]: moneypunct::do_pos_format() const 44525 vfunc[10]: moneypunct::do_neg_format() const 44526 44527 The Run Time Type Information for the 44528 std::moneypunct_byname class is described by Table 44529 16-378 44530 44531 Table 16-378. typeinfo for moneypunct_byname 44532 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44533 Name typeinfo name for moneypunct_byname 44534 __________________________________________________________ 44535 44536 16.1.126.2. Interfaces for Class moneypunct_byname 44537 44538 An LSB conforming implementation shall provide the generic 44539 methods for Class std::moneypunct_byname specified 44540 in Table 16-379, with the full mandatory functionality as 44541 described in the referenced underlying specification. 44542 44543 Table 16-379. libstdcxx - Class moneypunct_byname 44544 Function Interfaces 44545 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44547 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44549 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44551 44552 An LSB conforming implementation shall provide the generic data 44553 interfaces for Class std::moneypunct_byname 44554 specified in Table 16-380, with the full mandatory 44555 functionality as described in the referenced underlying 44556 specification. 44557 44558 Table 16-380. libstdcxx - Class moneypunct_byname 44559 Data Interfaces 44560 moneypunct_byname::intl(GLIBCXX_3.4) [ISOCXX] 44561 typeinfo for moneypunct_byname(GLIBCXX_3.4) 44562 [CXXABI-1.86] 44563 typeinfo name for moneypunct_byname(GLIBCXX_3.4) 44564 [CXXABI-1.86] 44565 vtable for moneypunct_byname(GLIBCXX_3.4) 44566 [CXXABI-1.86] 44567 __________________________________________________________ 44568 44569 16.1.127. Class moneypunct_byname 44570 __________________________________________________________ 44571 44572 16.1.127.1. Class data for moneypunct_byname 44573 44574 The virtual table for the std::moneypunct_byname class is described by Table 16-381 44576 44577 Table 16-381. Primary vtable for moneypunct_byname 44579 Base Offset 0 44580 Virtual Base Offset 0 44581 RTTI typeinfo for moneypunct_byname 44582 vfunc[0]: moneypunct_byname::~moneypunct_byname() 44584 vfunc[1]: moneypunct_byname::~moneypunct_byname() 44586 vfunc[2]: moneypunct::do_decimal_point() const 44587 vfunc[3]: moneypunct::do_thousands_sep() const 44588 vfunc[4]: moneypunct::do_grouping() const 44589 vfunc[5]: moneypunct::do_curr_symbol() const 44590 vfunc[6]: moneypunct::do_positive_sign() const 44591 vfunc[7]: moneypunct::do_negative_sign() const 44592 vfunc[8]: moneypunct::do_frac_digits() const 44593 vfunc[9]: moneypunct::do_pos_format() const 44594 vfunc[10]: moneypunct::do_neg_format() const 44595 44596 The Run Time Type Information for the 44597 std::moneypunct_byname class is described by 44598 Table 16-382 44599 44600 Table 16-382. typeinfo for moneypunct_byname 44601 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44602 Name typeinfo name for moneypunct_byname 44603 __________________________________________________________ 44604 44605 16.1.127.2. Interfaces for Class moneypunct_byname 44606 44607 An LSB conforming implementation shall provide the generic 44608 methods for Class std::moneypunct_byname 44609 specified in Table 16-383, with the full mandatory 44610 functionality as described in the referenced underlying 44611 specification. 44612 44613 Table 16-383. libstdcxx - Class moneypunct_byname Function Interfaces 44615 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44617 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44619 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44621 44622 An LSB conforming implementation shall provide the generic data 44623 interfaces for Class std::moneypunct_byname 44624 specified in Table 16-384, with the full mandatory 44625 functionality as described in the referenced underlying 44626 specification. 44627 44628 Table 16-384. libstdcxx - Class moneypunct_byname Data Interfaces 44630 moneypunct_byname::intl(GLIBCXX_3.4) [ISOCXX] 44631 typeinfo for moneypunct_byname(GLIBCXX_3.4) 44632 [CXXABI-1.86] 44633 typeinfo name for moneypunct_byname(GLIBCXX_3.4) [CXXABI-1.86] 44635 vtable for moneypunct_byname(GLIBCXX_3.4) 44636 [CXXABI-1.86] 44637 __________________________________________________________ 44638 44639 16.1.128. Class moneypunct_byname 44640 __________________________________________________________ 44641 44642 16.1.128.1. Class data for moneypunct_byname 44643 44644 The virtual table for the std::moneypunct_byname 44645 class is described by Table 16-385 44646 44647 Table 16-385. Primary vtable for moneypunct_byname 44649 Base Offset 0 44650 Virtual Base Offset 0 44651 RTTI typeinfo for moneypunct_byname 44652 vfunc[0]: moneypunct_byname::~moneypunct_byname() 44654 vfunc[1]: moneypunct_byname::~moneypunct_byname() 44656 vfunc[2]: moneypunct::do_decimal_point() const 44657 vfunc[3]: moneypunct::do_thousands_sep() const 44658 vfunc[4]: moneypunct::do_grouping() const 44659 vfunc[5]: moneypunct::do_curr_symbol() const 44660 vfunc[6]: moneypunct::do_positive_sign() const 44661 vfunc[7]: moneypunct::do_negative_sign() const 44662 vfunc[8]: moneypunct::do_frac_digits() const 44663 vfunc[9]: moneypunct::do_pos_format() const 44664 vfunc[10]: moneypunct::do_neg_format() const 44665 44666 The Run Time Type Information for the 44667 std::moneypunct_byname class is described by 44668 Table 16-386 44669 44670 Table 16-386. typeinfo for moneypunct_byname 44671 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44672 Name typeinfo name for moneypunct_byname 44673 __________________________________________________________ 44674 44675 16.1.128.2. Interfaces for Class moneypunct_byname 44676 44677 An LSB conforming implementation shall provide the generic 44678 methods for Class std::moneypunct_byname 44679 specified in Table 16-387, with the full mandatory 44680 functionality as described in the referenced underlying 44681 specification. 44682 44683 Table 16-387. libstdcxx - Class moneypunct_byname Function Interfaces 44685 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44687 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44689 moneypunct_byname::~moneypunct_byname()(GLIBCXX_3.4) [ISOCXX] 44691 44692 An LSB conforming implementation shall provide the generic data 44693 interfaces for Class std::moneypunct_byname 44694 specified in Table 16-388, with the full mandatory 44695 functionality as described in the referenced underlying 44696 specification. 44697 44698 Table 16-388. libstdcxx - Class moneypunct_byname Data Interfaces 44700 moneypunct_byname::intl(GLIBCXX_3.4) [ISOCXX] 44701 typeinfo for moneypunct_byname(GLIBCXX_3.4) 44702 [CXXABI-1.86] 44703 typeinfo name for moneypunct_byname(GLIBCXX_3.4) 44704 [CXXABI-1.86] 44705 vtable for moneypunct_byname(GLIBCXX_3.4) 44706 [CXXABI-1.86] 44707 __________________________________________________________ 44708 44709 16.1.129. Class money_base 44710 __________________________________________________________ 44711 44712 16.1.129.1. Class data for money_base 44713 44714 The Run Time Type Information for the std::money_base class is 44715 described by Table 16-389 44716 44717 Table 16-389. typeinfo for money_base 44718 Base Vtable vtable for __cxxabiv1::__class_type_info 44719 Name typeinfo name for money_base 44720 __________________________________________________________ 44721 44722 16.1.129.2. Interfaces for Class money_base 44723 44724 An LSB conforming implementation shall provide the generic 44725 methods for Class std::money_base specified in Table 16-390, 44726 with the full mandatory functionality as described in the 44727 referenced underlying specification. 44728 44729 Table 16-390. libstdcxx - Class money_base Function Interfaces 44730 money_base::_S_construct_pattern(char, char, char)(GLIBCXX_3.4) 44731 [ISOCXX] 44732 44733 An LSB conforming implementation shall provide the generic data 44734 interfaces for Class std::money_base specified in Table 16-391, 44735 with the full mandatory functionality as described in the 44736 referenced underlying specification. 44737 44738 Table 16-391. libstdcxx - Class money_base Data Interfaces 44739 money_base::_S_default_pattern(GLIBCXX_3.4) [ISOCXX] 44740 money_base::_S_atoms(GLIBCXX_3.4) [ISOCXX] 44741 typeinfo for money_base(GLIBCXX_3.4) [CXXABI-1.86] 44742 typeinfo name for money_base(GLIBCXX_3.4) [CXXABI-1.86] 44743 __________________________________________________________ 44744 44745 16.1.130. Class money_get > > 44746 __________________________________________________________ 44747 44748 16.1.130.1. Class data for money_get > > 44749 44750 The virtual table for the std::money_get > > class 44752 is described by Table 16-392 44753 44754 Table 16-392. Primary vtable for money_get > > 44756 Base Offset 0 44757 Virtual Base Offset 0 44758 RTTI typeinfo for money_get > > 44760 vfunc[0]: money_get > >::~money_get() 44762 vfunc[1]: money_get > >::~money_get() 44764 vfunc[2]: money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, long 44768 double&) const 44769 vfunc[3]: money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, 44773 basic_string, allocator >&) const 44774 44775 The Run Time Type Information for the std::money_get > > class 44777 is described by Table 16-393 44778 44779 Table 16-393. typeinfo for money_get > > 44781 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44782 Name typeinfo name for money_get > > 44784 __________________________________________________________ 44785 44786 16.1.130.2. Interfaces for Class money_get > > 44787 44788 An LSB conforming implementation shall provide the generic 44789 methods for Class std::money_get > > 44791 specified in Table 16-394, with the full mandatory 44792 functionality as described in the referenced underlying 44793 specification. 44794 44795 Table 16-394. libstdcxx - Class money_get > > Function 44797 Interfaces 44798 istreambuf_iterator > money_get > 44800 >::_M_extract(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, 44803 basic_string, allocator >&) 44804 const(GLIBCXX_3.4) [ISOCXX] 44805 istreambuf_iterator > money_get > 44807 >::_M_extract(istreambuf_iterator 44808 >, istreambuf_iterator >, ios_base&, 44809 _Ios_Iostate&, basic_string, 44810 allocator >&) const(GLIBCXX_3.4) [ISOCXX] 44811 money_get > 44812 >::get(istreambuf_iterator >, 44813 istreambuf_iterator >, bool, ios_base&, 44814 _Ios_Iostate&, basic_string, 44815 allocator >&) const(GLIBCXX_3.4) [ISOCXX] 44816 money_get > 44817 >::get(istreambuf_iterator >, 44818 istreambuf_iterator >, bool, ios_base&, 44819 _Ios_Iostate&, long double&) const(GLIBCXX_3.4) [ISOCXX] 44820 money_get > 44821 >::do_get(istreambuf_iterator >, 44822 istreambuf_iterator >, bool, ios_base&, 44823 _Ios_Iostate&, basic_string, 44824 allocator >&) const(GLIBCXX_3.4) [ISOCXX] 44825 money_get > 44826 >::do_get(istreambuf_iterator >, 44827 istreambuf_iterator >, bool, ios_base&, 44828 _Ios_Iostate&, long double&) const(GLIBCXX_3.4) [ISOCXX] 44829 money_get > 44830 >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44831 money_get > 44832 >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44833 money_get > 44834 >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44835 44836 An LSB conforming implementation shall provide the generic data 44837 interfaces for Class std::money_get > > 44839 specified in Table 16-395, with the full mandatory 44840 functionality as described in the referenced underlying 44841 specification. 44842 44843 Table 16-395. libstdcxx - Class money_get > > Data Interfaces 44845 guard variable for money_get > >::id(GLIBCXX_3.4) [CXXABI-1.86] 44847 money_get > 44848 >::id(GLIBCXX_3.4) [ISOCXX] 44849 typeinfo for money_get > >(GLIBCXX_3.4) [CXXABI-1.86] 44851 typeinfo name for money_get > >(GLIBCXX_3.4) [CXXABI-1.86] 44853 vtable for money_get > >(GLIBCXX_3.4) [CXXABI-1.86] 44855 __________________________________________________________ 44856 44857 16.1.131. Class money_get > > 44858 __________________________________________________________ 44859 44860 16.1.131.1. Class data for money_get > > 44861 44862 The virtual table for the std::money_get > > 44864 class is described by Table 16-396 44865 44866 Table 16-396. Primary vtable for money_get > > 44868 Base Offset 0 44869 Virtual Base Offset 0 44870 RTTI typeinfo for money_get > > 44872 vfunc[0]: money_get > >::~money_get() 44874 vfunc[1]: money_get > >::~money_get() 44876 vfunc[2]: money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, long 44880 double&) const 44881 vfunc[3]: money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, 44885 basic_string, allocator 44886 >&) const 44887 44888 The Run Time Type Information for the std::money_get > > 44890 class is described by Table 16-397 44891 44892 Table 16-397. typeinfo for money_get > > 44894 Base Vtable vtable for __cxxabiv1::__si_class_type_info 44895 Name typeinfo name for money_get > > 44897 __________________________________________________________ 44898 44899 16.1.131.2. Interfaces for Class money_get > > 44900 44901 An LSB conforming implementation shall provide the generic 44902 methods for Class std::money_get > > 44904 specified in Table 16-398, with the full mandatory 44905 functionality as described in the referenced underlying 44906 specification. 44907 44908 Table 16-398. libstdcxx - Class money_get > > Function 44910 Interfaces 44911 istreambuf_iterator > 44912 money_get > 44914 >::_M_extract(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, 44917 basic_string, allocator >&) 44918 const(GLIBCXX_3.4) [ISOCXX] 44919 istreambuf_iterator > 44920 money_get > 44922 >::_M_extract(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, 44925 basic_string, allocator >&) 44926 const(GLIBCXX_3.4) [ISOCXX] 44927 money_get > >::get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, 44931 basic_string, allocator 44932 >&) const(GLIBCXX_3.4) [ISOCXX] 44933 money_get > >::get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, long 44937 double&) const(GLIBCXX_3.4) [ISOCXX] 44938 money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, 44942 basic_string, allocator 44943 >&) const(GLIBCXX_3.4) [ISOCXX] 44944 money_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, bool, ios_base&, _Ios_Iostate&, long 44948 double&) const(GLIBCXX_3.4) [ISOCXX] 44949 money_get > >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44951 money_get > >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44953 money_get > >::~money_get()(GLIBCXX_3.4) [ISOCXX] 44955 44956 An LSB conforming implementation shall provide the generic data 44957 interfaces for Class std::money_get > > 44959 specified in Table 16-399, with the full mandatory 44960 functionality as described in the referenced underlying 44961 specification. 44962 44963 Table 16-399. libstdcxx - Class money_get > > Data 44965 Interfaces 44966 guard variable for money_get > 44968 >::id(GLIBCXX_3.4) [CXXABI-1.86] 44969 money_get > >::id(GLIBCXX_3.4) [ISOCXX] 44971 typeinfo for money_get > >(GLIBCXX_3.4) [CXXABI-1.86] 44973 typeinfo name for money_get > 44975 >(GLIBCXX_3.4) [CXXABI-1.86] 44976 vtable for money_get > >(GLIBCXX_3.4) [CXXABI-1.86] 44978 __________________________________________________________ 44979 44980 16.1.132. Class money_put > > 44981 __________________________________________________________ 44982 44983 16.1.132.1. Class data for money_put > > 44984 44985 The virtual table for the std::money_put > > class 44987 is described by Table 16-400 44988 44989 Table 16-400. Primary vtable for money_put > > 44991 Base Offset 0 44992 Virtual Base Offset 0 44993 RTTI typeinfo for money_put > > 44995 vfunc[0]: money_put > >::~money_put() 44997 vfunc[1]: money_put > >::~money_put() 44999 vfunc[2]: money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, char, long double) const 45002 vfunc[3]: money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, char, basic_string, allocator > const&) const 45006 45007 The Run Time Type Information for the std::money_put > > class 45009 is described by Table 16-401 45010 45011 Table 16-401. typeinfo for money_put > > 45013 Base Vtable vtable for __cxxabiv1::__si_class_type_info 45014 Name typeinfo name for money_put > > 45016 __________________________________________________________ 45017 45018 16.1.132.2. Interfaces for Class money_put > > 45019 45020 An LSB conforming implementation shall provide the generic 45021 methods for Class std::money_put > > 45023 specified in Table 16-402, with the full mandatory 45024 functionality as described in the referenced underlying 45025 specification. 45026 45027 Table 16-402. libstdcxx - Class money_put > > Function 45029 Interfaces 45030 money_put > 45031 >::put(ostreambuf_iterator >, bool, 45032 ios_base&, char, basic_string, 45033 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 45034 money_put > 45035 >::put(ostreambuf_iterator >, bool, 45036 ios_base&, char, long double) const(GLIBCXX_3.4) [ISOCXX] 45037 money_put > 45038 >::do_put(ostreambuf_iterator >, bool, 45039 ios_base&, char, basic_string, 45040 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 45041 money_put > 45042 >::do_put(ostreambuf_iterator >, bool, 45043 ios_base&, char, long double) const(GLIBCXX_3.4) [ISOCXX] 45044 ostreambuf_iterator > money_put > 45046 >::_M_insert(ostreambuf_iterator 45047 >, ios_base&, char, basic_string, 45048 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 45049 ostreambuf_iterator > money_put > 45051 >::_M_insert(ostreambuf_iterator 45052 >, ios_base&, char, basic_string, 45053 allocator > const&) const(GLIBCXX_3.4) [ISOCXX] 45054 money_put > 45055 >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45056 money_put > 45057 >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45058 money_put > 45059 >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45060 45061 An LSB conforming implementation shall provide the generic data 45062 interfaces for Class std::money_put > > 45064 specified in Table 16-403, with the full mandatory 45065 functionality as described in the referenced underlying 45066 specification. 45067 45068 Table 16-403. libstdcxx - Class money_put > > Data Interfaces 45070 guard variable for money_put > >::id(GLIBCXX_3.4) [CXXABI-1.86] 45072 money_put > 45073 >::id(GLIBCXX_3.4) [ISOCXX] 45074 typeinfo for money_put > >(GLIBCXX_3.4) [CXXABI-1.86] 45076 typeinfo name for money_put > >(GLIBCXX_3.4) [CXXABI-1.86] 45078 vtable for money_put > >(GLIBCXX_3.4) [CXXABI-1.86] 45080 __________________________________________________________ 45081 45082 16.1.133. Class money_put > > 45083 __________________________________________________________ 45084 45085 16.1.133.1. Class data for money_put > > 45086 45087 The virtual table for the std::money_put > > 45089 class is described by Table 16-404 45090 45091 Table 16-404. Primary vtable for money_put > > 45093 Base Offset 0 45094 Virtual Base Offset 0 45095 RTTI typeinfo for money_put > > 45097 vfunc[0]: money_put > >::~money_put() 45099 vfunc[1]: money_put > >::~money_put() 45101 vfunc[2]: money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, wchar_t, long double) 45104 const 45105 vfunc[3]: money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, wchar_t, 45108 basic_string, allocator 45109 > const&) const 45110 45111 The Run Time Type Information for the std::money_put > > 45113 class is described by Table 16-405 45114 45115 Table 16-405. typeinfo for money_put > > 45117 Base Vtable vtable for __cxxabiv1::__si_class_type_info 45118 Name typeinfo name for money_put > > 45120 __________________________________________________________ 45121 45122 16.1.133.2. Interfaces for Class money_put > > 45123 45124 An LSB conforming implementation shall provide the generic 45125 methods for Class std::money_put > > 45127 specified in Table 16-406, with the full mandatory 45128 functionality as described in the referenced underlying 45129 specification. 45130 45131 Table 16-406. libstdcxx - Class money_put > > Function 45133 Interfaces 45134 money_put > >::put(ostreambuf_iterator >, bool, ios_base&, wchar_t, 45137 basic_string, allocator 45138 > const&) const(GLIBCXX_3.4) [ISOCXX] 45139 money_put > >::put(ostreambuf_iterator >, bool, ios_base&, wchar_t, long double) 45142 const(GLIBCXX_3.4) [ISOCXX] 45143 money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, wchar_t, 45146 basic_string, allocator 45147 > const&) const(GLIBCXX_3.4) [ISOCXX] 45148 money_put > >::do_put(ostreambuf_iterator >, bool, ios_base&, wchar_t, long double) 45151 const(GLIBCXX_3.4) [ISOCXX] 45152 ostreambuf_iterator > 45153 money_put > 45155 >::_M_insert(ostreambuf_iterator >, ios_base&, wchar_t, 45157 basic_string, allocator 45158 > const&) const(GLIBCXX_3.4) [ISOCXX] 45159 ostreambuf_iterator > 45160 money_put > 45162 >::_M_insert(ostreambuf_iterator >, ios_base&, wchar_t, 45164 basic_string, allocator 45165 > const&) const(GLIBCXX_3.4) [ISOCXX] 45166 money_put > >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45168 money_put > >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45170 money_put > >::~money_put()(GLIBCXX_3.4) [ISOCXX] 45172 45173 An LSB conforming implementation shall provide the generic data 45174 interfaces for Class std::money_put > > 45176 specified in Table 16-407, with the full mandatory 45177 functionality as described in the referenced underlying 45178 specification. 45179 45180 Table 16-407. libstdcxx - Class money_put > > Data 45182 Interfaces 45183 guard variable for money_put > 45185 >::id(GLIBCXX_3.4) [CXXABI-1.86] 45186 money_put > >::id(GLIBCXX_3.4) [ISOCXX] 45188 typeinfo for money_put > >(GLIBCXX_3.4) [CXXABI-1.86] 45190 typeinfo name for money_put > 45192 >(GLIBCXX_3.4) [CXXABI-1.86] 45193 vtable for money_put > >(GLIBCXX_3.4) [CXXABI-1.86] 45195 __________________________________________________________ 45196 45197 16.1.134. Class locale 45198 __________________________________________________________ 45199 45200 16.1.134.1. Interfaces for Class locale 45201 45202 An LSB conforming implementation shall provide the generic 45203 methods for Class std::locale specified in Table 16-408, with 45204 the full mandatory functionality as described in the referenced 45205 underlying specification. 45206 45207 Table 16-408. libstdcxx - Class locale Function Interfaces 45208 locale::id::_M_id() const(GLIBCXX_3.4) [ISOCXX] 45209 locale::name() const(GLIBCXX_3.4) [ISOCXX] 45210 locale::operator==(locale const&) const(GLIBCXX_3.4) [ISOCXX] 45211 locale::_M_coalesce(locale const&, locale const&, 45212 int)(GLIBCXX_3.4) [ISOCXX] 45213 locale::_S_normalize_category(int)(GLIBCXX_3.4) [ISOCXX] 45214 locale::_Impl::_M_install_facet(locale::id const*, 45215 locale::facet const*)(GLIBCXX_3.4) [LSB] 45216 locale::_Impl::_M_replace_facet(locale::_Impl const*, 45217 locale::id const*)(GLIBCXX_3.4) [LSB] 45218 locale::_Impl::~_Impl()(GLIBCXX_3.4) [LSB] 45219 locale::_Impl::~_Impl()(GLIBCXX_3.4) [LSB] 45220 locale::global(locale const&)(GLIBCXX_3.4) [ISOCXX] 45221 locale::classic()(GLIBCXX_3.4) [ISOCXX] 45222 locale::locale(char const*)(GLIBCXX_3.4) [ISOCXX] 45223 locale::locale(locale::_Impl*)(GLIBCXX_3.4) [ISOCXX] 45224 locale::locale(locale const&)(GLIBCXX_3.4) [ISOCXX] 45225 locale::locale(locale const&, locale const&, int)(GLIBCXX_3.4) 45226 [ISOCXX] 45227 locale::locale()(GLIBCXX_3.4) [ISOCXX] 45228 locale::locale(char const*)(GLIBCXX_3.4) [ISOCXX] 45229 locale::locale(locale::_Impl*)(GLIBCXX_3.4) [ISOCXX] 45230 locale::locale(locale const&)(GLIBCXX_3.4) [ISOCXX] 45231 locale::locale(locale const&, char const*, int)(GLIBCXX_3.4) 45232 [ISOCXX] 45233 locale::locale(locale const&, locale const&, int)(GLIBCXX_3.4) 45234 [ISOCXX] 45235 locale::locale()(GLIBCXX_3.4) [ISOCXX] 45236 locale::~locale()(GLIBCXX_3.4) [ISOCXX] 45237 locale::~locale()(GLIBCXX_3.4) [ISOCXX] 45238 locale::operator=(locale const&)(GLIBCXX_3.4) [ISOCXX] 45239 45240 An LSB conforming implementation shall provide the generic data 45241 interfaces for Class std::locale specified in Table 16-409, 45242 with the full mandatory functionality as described in the 45243 referenced underlying specification. 45244 45245 Table 16-409. libstdcxx - Class locale Data Interfaces 45246 locale::all(GLIBCXX_3.4) [ISOCXX] 45247 locale::none(GLIBCXX_3.4) [ISOCXX] 45248 locale::time(GLIBCXX_3.4) [ISOCXX] 45249 locale::ctype(GLIBCXX_3.4) [ISOCXX] 45250 locale::collate(GLIBCXX_3.4) [ISOCXX] 45251 locale::numeric(GLIBCXX_3.4) [ISOCXX] 45252 locale::messages(GLIBCXX_3.4) [ISOCXX] 45253 locale::monetary(GLIBCXX_3.4) [ISOCXX] 45254 __________________________________________________________ 45255 45256 16.1.135. Class locale::facet 45257 __________________________________________________________ 45258 45259 16.1.135.1. Class data for locale::facet 45260 45261 The virtual table for the std::locale::facet class is described 45262 by Table 16-410 45263 45264 Table 16-410. Primary vtable for locale::facet 45265 Base Offset 0 45266 Virtual Base Offset 0 45267 RTTI typeinfo for locale::facet 45268 vfunc[0]: locale::facet::~facet() 45269 vfunc[1]: locale::facet::~facet() 45270 45271 The Run Time Type Information for the std::locale::facet class 45272 is described by Table 16-411 45273 45274 Table 16-411. typeinfo for locale::facet 45275 Base Vtable vtable for __cxxabiv1::__class_type_info 45276 Name typeinfo name for locale::facet 45277 __________________________________________________________ 45278 45279 16.1.135.2. Interfaces for Class locale::facet 45280 45281 An LSB conforming implementation shall provide the generic 45282 methods for Class std::locale::facet specified in Table 16-412, 45283 with the full mandatory functionality as described in the 45284 referenced underlying specification. 45285 45286 Table 16-412. libstdcxx - Class locale::facet Function 45287 Interfaces 45288 locale::facet::_S_get_c_name()(GLIBCXX_3.4.6) [ISOCXX] 45289 locale::facet::_S_get_c_locale()(GLIBCXX_3.4) [ISOCXX] 45290 locale::facet::_S_clone_c_locale(__locale_struct*&)(GLIBCXX_3.4 45291 ) [ISOCXX] 45292 locale::facet::_S_create_c_locale(__locale_struct*&, char 45293 const*, __locale_struct*)(GLIBCXX_3.4) [ISOCXX] 45294 locale::facet::_S_destroy_c_locale(__locale_struct*&)(GLIBCXX_3 45295 .4) [ISOCXX] 45296 locale::facet::~facet()(GLIBCXX_3.4) [ISOCXX] 45297 locale::facet::~facet()(GLIBCXX_3.4) [ISOCXX] 45298 locale::facet::~facet()(GLIBCXX_3.4) [ISOCXX] 45299 locale::locale(locale const&, char const*, int)(GLIBCXX_3.4) 45300 [ISOCXX] 45301 45302 An LSB conforming implementation shall provide the generic data 45303 interfaces for Class std::locale::facet specified in Table 45304 16-413, with the full mandatory functionality as described in 45305 the referenced underlying specification. 45306 45307 Table 16-413. libstdcxx - Class locale::facet Data Interfaces 45308 __timepunct_cache::_S_timezones(GLIBCXX_3.4) [ISOCXX] 45309 __timepunct_cache::_S_timezones(GLIBCXX_3.4) [ISOCXX] 45310 typeinfo for locale::facet(GLIBCXX_3.4) [CXXABI-1.86] 45311 typeinfo name for locale::facet(GLIBCXX_3.4) [CXXABI-1.86] 45312 vtable for locale::facet(GLIBCXX_3.4) [CXXABI-1.86] 45313 __________________________________________________________ 45314 45315 16.1.136. facet functions 45316 __________________________________________________________ 45317 45318 16.1.136.1. Interfaces for facet functions 45319 45320 An LSB conforming implementation shall provide the generic 45321 methods for facet functions specified in Table 16-414, with the 45322 full mandatory functionality as described in the referenced 45323 underlying specification. 45324 45325 Table 16-414. libstdcxx - facet functions Function Interfaces 45326 void __convert_to_v(char const*, double&, 45327 _Ios_Iostate&, __locale_struct* const&)(GLIBCXX_3.4) [ISOCXX] 45328 void __convert_to_v(char const*, long double&, 45329 _Ios_Iostate&, __locale_struct* const&)(GLIBCXX_3.4) [ISOCXX] 45330 void __convert_to_v(char const*, float&, _Ios_Iostate&, 45331 __locale_struct* const&)(GLIBCXX_3.4) [ISOCXX] 45332 bool has_facet >(locale 45333 const&)(GLIBCXX_3.4) [ISOCXX] 45334 bool has_facet >(locale 45335 const&)(GLIBCXX_3.4) [ISOCXX] 45336 bool has_facet >(locale const&)(GLIBCXX_3.4) 45337 [ISOCXX] 45338 bool has_facet >(locale 45339 const&)(GLIBCXX_3.4) [ISOCXX] 45340 bool has_facet >(locale 45341 const&)(GLIBCXX_3.4) [ISOCXX] 45342 bool has_facet >(locale const&)(GLIBCXX_3.4) 45343 [ISOCXX] 45344 bool has_facet >(locale const&)(GLIBCXX_3.4) 45345 [ISOCXX] 45346 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45348 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45350 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45352 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45354 bool has_facet >(locale const&)(GLIBCXX_3.4) 45355 [ISOCXX] 45356 bool has_facet >(locale const&)(GLIBCXX_3.4) 45357 [ISOCXX] 45358 bool has_facet >(locale const&)(GLIBCXX_3.4) 45359 [ISOCXX] 45360 bool has_facet >(locale const&)(GLIBCXX_3.4) 45361 [ISOCXX] 45362 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45364 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45366 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45368 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45370 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45372 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45374 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45376 bool has_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45378 moneypunct const& use_facet >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45380 moneypunct const& use_facet 45381 >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45382 moneypunct const& use_facet >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45384 moneypunct const& use_facet >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45386 __timepunct const& use_facet<__timepunct >(locale 45387 const&)(GLIBCXX_3.4) [ISOCXX] 45388 __timepunct const& use_facet<__timepunct 45389 >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45390 ctype const& use_facet >(locale 45391 const&)(GLIBCXX_3.4) [ISOCXX] 45392 ctype const& use_facet >(locale 45393 const&)(GLIBCXX_3.4) [ISOCXX] 45394 codecvt const& use_facet >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45396 codecvt const& 45397 use_facet >(locale 45398 const&)(GLIBCXX_3.4) [ISOCXX] 45399 collate const& use_facet >(locale 45400 const&)(GLIBCXX_3.4) [ISOCXX] 45401 collate const& use_facet >(locale 45402 const&)(GLIBCXX_3.4) [ISOCXX] 45403 num_get > > 45404 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45406 num_get > > const& use_facet > > >(locale 45409 const&)(GLIBCXX_3.4) [ISOCXX] 45410 num_put > > 45411 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45413 num_put > > const& use_facet > > >(locale 45416 const&)(GLIBCXX_3.4) [ISOCXX] 45417 messages const& use_facet >(locale 45418 const&)(GLIBCXX_3.4) [ISOCXX] 45419 messages const& use_facet >(locale 45420 const&)(GLIBCXX_3.4) [ISOCXX] 45421 numpunct const& use_facet >(locale 45422 const&)(GLIBCXX_3.4) [ISOCXX] 45423 numpunct const& use_facet >(locale 45424 const&)(GLIBCXX_3.4) [ISOCXX] 45425 time_get > > 45426 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45428 time_get > > const& use_facet > > >(locale 45431 const&)(GLIBCXX_3.4) [ISOCXX] 45432 time_put > > 45433 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45435 time_put > > const& use_facet > > >(locale 45438 const&)(GLIBCXX_3.4) [ISOCXX] 45439 money_get > > 45440 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45442 money_get > > const& use_facet > > >(locale 45445 const&)(GLIBCXX_3.4) [ISOCXX] 45446 money_put > > 45447 const& use_facet > > >(locale const&)(GLIBCXX_3.4) [ISOCXX] 45449 money_put > > const& use_facet > > >(locale 45452 const&)(GLIBCXX_3.4) [ISOCXX] 45453 __________________________________________________________ 45454 45455 16.1.137. Class __num_base 45456 __________________________________________________________ 45457 45458 16.1.137.1. Class data for __num_base 45459 __________________________________________________________ 45460 45461 16.1.137.2. Interfaces for Class __num_base 45462 45463 An LSB conforming implementation shall provide the generic 45464 methods for Class std::__num_base specified in Table 16-415, 45465 with the full mandatory functionality as described in the 45466 referenced underlying specification. 45467 45468 Table 16-415. libstdcxx - Class __num_base Function Interfaces 45469 __num_base::_S_format_float(ios_base const&, char*, 45470 char)(GLIBCXX_3.4) [ISOCXX] 45471 45472 An LSB conforming implementation shall provide the generic data 45473 interfaces for Class std::__num_base specified in Table 16-416, 45474 with the full mandatory functionality as described in the 45475 referenced underlying specification. 45476 45477 Table 16-416. libstdcxx - Class __num_base Data Interfaces 45478 __num_base::_S_atoms_in(GLIBCXX_3.4) [ISOCXX] 45479 __num_base::_S_atoms_out(GLIBCXX_3.4) [ISOCXX] 45480 __________________________________________________________ 45481 45482 16.1.138. Class num_get > > 45483 __________________________________________________________ 45484 45485 16.1.138.1. Class data for num_get > > 45486 45487 The virtual table for the std::num_get > > class 45489 is described by Table 16-417 45490 45491 Table 16-417. Primary vtable for num_get > > 45493 Base Offset 0 45494 Virtual Base Offset 0 45495 RTTI typeinfo for num_get > > 45497 vfunc[0]: num_get > >::~num_get() 45499 vfunc[1]: num_get > >::~num_get() 45501 vfunc[2]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, bool&) const 45505 vfunc[3]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) const 45509 vfunc[4]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned short&) 45513 const 45514 vfunc[5]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned int&) 45518 const 45519 vfunc[6]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long&) 45523 const 45524 vfunc[7]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long long&) 45528 const 45529 vfunc[8]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long 45533 long&) const 45534 vfunc[9]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, float&) const 45538 vfunc[10]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, double&) const 45542 vfunc[11]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long double&) 45546 const 45547 vfunc[12]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, void*&) const 45551 45552 The Run Time Type Information for the std::num_get > > class 45554 is described by Table 16-418 45555 45556 Table 16-418. typeinfo for num_get > > 45558 Base Vtable vtable for __cxxabiv1::__si_class_type_info 45559 Name typeinfo name for num_get > > 45561 basetype: typeinfo for locale::facet 45562 __________________________________________________________ 45563 45564 16.1.138.2. Interfaces for Class num_get > > 45565 45566 An LSB conforming implementation shall provide the generic 45567 methods for Class std::num_get > > 45569 specified in Table 16-419, with the full mandatory 45570 functionality as described in the referenced underlying 45571 specification. 45572 45573 Table 16-419. libstdcxx - Class num_get > > Function 45575 Interfaces 45576 istreambuf_iterator > num_get > 45578 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned int&) 45581 const(GLIBCXX_3.4) [ISOCXX] 45582 istreambuf_iterator > num_get > 45584 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) 45587 const(GLIBCXX_3.4) [ISOCXX] 45588 istreambuf_iterator > num_get > 45590 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long&) 45593 const(GLIBCXX_3.4) [ISOCXX] 45594 istreambuf_iterator > num_get > 45596 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned short&) 45599 const(GLIBCXX_3.4) [ISOCXX] 45600 istreambuf_iterator > num_get > 45602 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long long&) 45605 const(GLIBCXX_3.4) [ISOCXX] 45606 istreambuf_iterator > num_get > 45608 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long 45611 long&) const(GLIBCXX_3.4) [ISOCXX] 45612 num_get > 45613 >::_M_extract_float(istreambuf_iterator 45614 >, istreambuf_iterator >, ios_base&, 45615 _Ios_Iostate&, basic_string, 45616 allocator >&) const(GLIBCXX_3.4) [ISOCXX] 45617 num_get > 45618 >::get(istreambuf_iterator >, 45619 istreambuf_iterator >, ios_base&, 45620 _Ios_Iostate&, void*&) const(GLIBCXX_3.4) [ISOCXX] 45621 num_get > 45622 >::get(istreambuf_iterator >, 45623 istreambuf_iterator >, ios_base&, 45624 _Ios_Iostate&, bool&) const(GLIBCXX_3.4) [ISOCXX] 45625 num_get > 45626 >::get(istreambuf_iterator >, 45627 istreambuf_iterator >, ios_base&, 45628 _Ios_Iostate&, double&) const(GLIBCXX_3.4) [ISOCXX] 45629 num_get > 45630 >::get(istreambuf_iterator >, 45631 istreambuf_iterator >, ios_base&, 45632 _Ios_Iostate&, long double&) const(GLIBCXX_3.4) [ISOCXX] 45633 num_get > 45634 >::get(istreambuf_iterator >, 45635 istreambuf_iterator >, ios_base&, 45636 _Ios_Iostate&, float&) const(GLIBCXX_3.4) [ISOCXX] 45637 num_get > 45638 >::get(istreambuf_iterator >, 45639 istreambuf_iterator >, ios_base&, 45640 _Ios_Iostate&, unsigned int&) const(GLIBCXX_3.4) [ISOCXX] 45641 num_get > 45642 >::get(istreambuf_iterator >, 45643 istreambuf_iterator >, ios_base&, 45644 _Ios_Iostate&, long&) const(GLIBCXX_3.4) [ISOCXX] 45645 num_get > 45646 >::get(istreambuf_iterator >, 45647 istreambuf_iterator >, ios_base&, 45648 _Ios_Iostate&, unsigned long&) const(GLIBCXX_3.4) [ISOCXX] 45649 num_get > 45650 >::get(istreambuf_iterator >, 45651 istreambuf_iterator >, ios_base&, 45652 _Ios_Iostate&, unsigned short&) const(GLIBCXX_3.4) [ISOCXX] 45653 num_get > 45654 >::get(istreambuf_iterator >, 45655 istreambuf_iterator >, ios_base&, 45656 _Ios_Iostate&, long long&) const(GLIBCXX_3.4) [ISOCXX] 45657 num_get > 45658 >::get(istreambuf_iterator >, 45659 istreambuf_iterator >, ios_base&, 45660 _Ios_Iostate&, unsigned long long&) const(GLIBCXX_3.4) [ISOCXX] 45661 num_get > 45662 >::do_get(istreambuf_iterator >, 45663 istreambuf_iterator >, ios_base&, 45664 _Ios_Iostate&, void*&) const(GLIBCXX_3.4) [ISOCXX] 45665 num_get > 45666 >::do_get(istreambuf_iterator >, 45667 istreambuf_iterator >, ios_base&, 45668 _Ios_Iostate&, bool&) const(GLIBCXX_3.4) [ISOCXX] 45669 num_get > 45670 >::do_get(istreambuf_iterator >, 45671 istreambuf_iterator >, ios_base&, 45672 _Ios_Iostate&, double&) const(GLIBCXX_3.4) [ISOCXX] 45673 num_get > 45674 >::do_get(istreambuf_iterator >, 45675 istreambuf_iterator >, ios_base&, 45676 _Ios_Iostate&, long double&) const(GLIBCXX_3.4) [ISOCXX] 45677 num_get > 45678 >::do_get(istreambuf_iterator >, 45679 istreambuf_iterator >, ios_base&, 45680 _Ios_Iostate&, float&) const(GLIBCXX_3.4) [ISOCXX] 45681 num_get > 45682 >::do_get(istreambuf_iterator >, 45683 istreambuf_iterator >, ios_base&, 45684 _Ios_Iostate&, unsigned int&) const(GLIBCXX_3.4) [ISOCXX] 45685 num_get > 45686 >::do_get(istreambuf_iterator >, 45687 istreambuf_iterator >, ios_base&, 45688 _Ios_Iostate&, long&) const(GLIBCXX_3.4) [ISOCXX] 45689 num_get > 45690 >::do_get(istreambuf_iterator >, 45691 istreambuf_iterator >, ios_base&, 45692 _Ios_Iostate&, unsigned long&) const(GLIBCXX_3.4) [ISOCXX] 45693 num_get > 45694 >::do_get(istreambuf_iterator >, 45695 istreambuf_iterator >, ios_base&, 45696 _Ios_Iostate&, unsigned short&) const(GLIBCXX_3.4) [ISOCXX] 45697 num_get > 45698 >::do_get(istreambuf_iterator >, 45699 istreambuf_iterator >, ios_base&, 45700 _Ios_Iostate&, long long&) const(GLIBCXX_3.4) [ISOCXX] 45701 num_get > 45702 >::do_get(istreambuf_iterator >, 45703 istreambuf_iterator >, ios_base&, 45704 _Ios_Iostate&, unsigned long long&) const(GLIBCXX_3.4) [ISOCXX] 45705 num_get > 45706 >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45707 num_get > 45708 >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45709 num_get > 45710 >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45711 45712 An LSB conforming implementation shall provide the generic data 45713 interfaces for Class std::num_get > > 45715 specified in Table 16-420, with the full mandatory 45716 functionality as described in the referenced underlying 45717 specification. 45718 45719 Table 16-420. libstdcxx - Class num_get > > Data Interfaces 45721 guard variable for num_get > >::id(GLIBCXX_3.4) [CXXABI-1.86] 45723 num_get > 45724 >::id(GLIBCXX_3.4) [ISOCXX] 45725 typeinfo for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 45727 typeinfo name for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 45729 vtable for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 45731 __________________________________________________________ 45732 45733 16.1.139. Class num_get > > 45734 __________________________________________________________ 45735 45736 16.1.139.1. Class data for num_get > > 45737 45738 The virtual table for the std::num_get > > 45740 class is described by Table 16-421 45741 45742 Table 16-421. Primary vtable for num_get > > 45744 Base Offset 0 45745 Virtual Base Offset 0 45746 RTTI typeinfo for num_get > > 45748 vfunc[0]: num_get > >::~num_get() 45750 vfunc[1]: num_get > >::~num_get() 45752 vfunc[2]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, bool&) const 45756 vfunc[3]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) const 45760 vfunc[4]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45764 short&) const 45765 vfunc[5]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45769 int&) const 45770 vfunc[6]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45774 long&) const 45775 vfunc[7]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long long&) 45779 const 45780 vfunc[8]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long 45784 long&) const 45785 vfunc[9]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, float&) const 45789 vfunc[10]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, double&) 45793 const 45794 vfunc[11]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long double&) 45798 const 45799 vfunc[12]: num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, void*&) const 45803 45804 The Run Time Type Information for the std::num_get > > 45806 class is described by Table 16-422 45807 45808 Table 16-422. typeinfo for num_get > > 45810 Base Vtable vtable for __cxxabiv1::__si_class_type_info 45811 Name typeinfo name for num_get > > 45813 basetype: typeinfo for locale::facet 45814 __________________________________________________________ 45815 45816 16.1.139.2. Interfaces for Class num_get > > 45817 45818 An LSB conforming implementation shall provide the generic 45819 methods for Class std::num_get > > 45821 specified in Table 16-423, with the full mandatory 45822 functionality as described in the referenced underlying 45823 specification. 45824 45825 Table 16-423. libstdcxx - Class num_get > > Function 45827 Interfaces 45828 istreambuf_iterator > 45829 num_get > >::_M_extract_int(istreambuf_iterator >, 45832 istreambuf_iterator >, ios_base&, 45833 _Ios_Iostate&, unsigned int&) const(GLIBCXX_3.4) [ISOCXX] 45834 istreambuf_iterator > 45835 num_get > 45837 >::_M_extract_int(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) 45840 const(GLIBCXX_3.4) [ISOCXX] 45841 istreambuf_iterator > 45842 num_get > >::_M_extract_int(istreambuf_iterator >, 45845 istreambuf_iterator >, ios_base&, 45846 _Ios_Iostate&, unsigned long&) const(GLIBCXX_3.4) [ISOCXX] 45847 istreambuf_iterator > 45848 num_get > >::_M_extract_int(istreambuf_iterator >, 45851 istreambuf_iterator >, ios_base&, 45852 _Ios_Iostate&, unsigned short&) const(GLIBCXX_3.4) [ISOCXX] 45853 istreambuf_iterator > 45854 num_get > >::_M_extract_int(istreambuf_iterator >, 45857 istreambuf_iterator >, ios_base&, 45858 _Ios_Iostate&, long long&) const(GLIBCXX_3.4) [ISOCXX] 45859 istreambuf_iterator > 45860 num_get > >::_M_extract_int(istreambuf_iterator >, 45863 istreambuf_iterator >, ios_base&, 45864 _Ios_Iostate&, unsigned long long&) const(GLIBCXX_3.4) [ISOCXX] 45865 num_get > 45867 >::_M_extract_float(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, 45870 basic_string, allocator >&) 45871 const(GLIBCXX_3.4) [ISOCXX] 45872 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, void*&) 45876 const(GLIBCXX_3.4) [ISOCXX] 45877 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, bool&) 45881 const(GLIBCXX_3.4) [ISOCXX] 45882 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, double&) 45886 const(GLIBCXX_3.4) [ISOCXX] 45887 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long double&) 45891 const(GLIBCXX_3.4) [ISOCXX] 45892 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, float&) 45896 const(GLIBCXX_3.4) [ISOCXX] 45897 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45901 int&) const(GLIBCXX_3.4) [ISOCXX] 45902 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) 45906 const(GLIBCXX_3.4) [ISOCXX] 45907 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45911 long&) const(GLIBCXX_3.4) [ISOCXX] 45912 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45916 short&) const(GLIBCXX_3.4) [ISOCXX] 45917 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long long&) 45921 const(GLIBCXX_3.4) [ISOCXX] 45922 num_get > >::get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long 45926 long&) const(GLIBCXX_3.4) [ISOCXX] 45927 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, void*&) 45931 const(GLIBCXX_3.4) [ISOCXX] 45932 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, bool&) 45936 const(GLIBCXX_3.4) [ISOCXX] 45937 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, double&) 45941 const(GLIBCXX_3.4) [ISOCXX] 45942 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long double&) 45946 const(GLIBCXX_3.4) [ISOCXX] 45947 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, float&) 45951 const(GLIBCXX_3.4) [ISOCXX] 45952 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45956 int&) const(GLIBCXX_3.4) [ISOCXX] 45957 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long&) 45961 const(GLIBCXX_3.4) [ISOCXX] 45962 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45966 long&) const(GLIBCXX_3.4) [ISOCXX] 45967 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned 45971 short&) const(GLIBCXX_3.4) [ISOCXX] 45972 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, long long&) 45976 const(GLIBCXX_3.4) [ISOCXX] 45977 num_get > >::do_get(istreambuf_iterator >, istreambuf_iterator >, ios_base&, _Ios_Iostate&, unsigned long 45981 long&) const(GLIBCXX_3.4) [ISOCXX] 45982 num_get > >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45984 num_get > >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45986 num_get > >::~num_get()(GLIBCXX_3.4) [ISOCXX] 45988 45989 An LSB conforming implementation shall provide the generic data 45990 interfaces for Class std::num_get > > 45992 specified in Table 16-424, with the full mandatory 45993 functionality as described in the referenced underlying 45994 specification. 45995 45996 Table 16-424. libstdcxx - Class num_get > > Data 45998 Interfaces 45999 guard variable for num_get > 46001 >::id(GLIBCXX_3.4) [CXXABI-1.86] 46002 num_get > >::id(GLIBCXX_3.4) [ISOCXX] 46004 typeinfo for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 46006 typeinfo name for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 46008 vtable for num_get > >(GLIBCXX_3.4) [CXXABI-1.86] 46010 __________________________________________________________ 46011 46012 16.1.140. Class num_put > > 46013 __________________________________________________________ 46014 46015 16.1.140.1. Class data for num_put > > 46016 46017 The virtual table for the std::num_put > > class 46019 is described by Table 16-425 46020 46021 Table 16-425. Primary vtable for num_put > > 46023 Base Offset 0 46024 Virtual Base Offset 0 46025 RTTI typeinfo for num_put > > 46027 vfunc[0]: num_put > >::~num_put() 46029 vfunc[1]: num_put > >::~num_put() 46031 vfunc[2]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, bool) const 46034 vfunc[3]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, long) const 46037 vfunc[4]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, unsigned long) const 46040 vfunc[5]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, long long) const 46043 vfunc[6]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, unsigned long long) const 46046 vfunc[7]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, double) const 46049 vfunc[8]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, long double) const 46052 vfunc[9]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, char, void const*) const 46055 46056 The Run Time Type Information for the std::num_put > > class 46058 is described by Table 16-426 46059 46060 Table 16-426. typeinfo for num_put > > 46062 Base Vtable vtable for __cxxabiv1::__si_class_type_info 46063 Name typeinfo name for num_put > > 46065 basetype: typeinfo for locale::facet 46066 __________________________________________________________ 46067 46068 16.1.140.2. Interfaces for Class num_put > > 46069 46070 An LSB conforming implementation shall provide the generic 46071 methods for Class std::num_put > > 46073 specified in Table 16-427, with the full mandatory 46074 functionality as described in the referenced underlying 46075 specification. 46076 46077 Table 16-427. libstdcxx - Class num_put > > Function 46079 Interfaces 46080 ostreambuf_iterator > num_put > 46082 >::_M_insert_int(ostreambuf_iterator >, ios_base&, char, long) const(GLIBCXX_3.4) 46084 [ISOCXX] 46085 ostreambuf_iterator > num_put > 46087 >::_M_insert_int(ostreambuf_iterator >, ios_base&, char, unsigned long) 46089 const(GLIBCXX_3.4) [ISOCXX] 46090 ostreambuf_iterator > num_put > 46092 >::_M_insert_int(ostreambuf_iterator >, ios_base&, char, long long) 46094 const(GLIBCXX_3.4) [ISOCXX] 46095 ostreambuf_iterator > num_put > 46097 >::_M_insert_int(ostreambuf_iterator >, ios_base&, char, unsigned long long) 46099 const(GLIBCXX_3.4) [ISOCXX] 46100 ostreambuf_iterator > num_put > 46102 >::_M_insert_float(ostreambuf_iterator >, ios_base&, char, char, double) 46104 const(GLIBCXX_3.4) [ISOCXX] 46105 ostreambuf_iterator > num_put > 46107 >::_M_insert_float(ostreambuf_iterator >, ios_base&, char, char, long double) 46109 const(GLIBCXX_3.4) [ISOCXX] 46110 num_put > 46111 >::put(ostreambuf_iterator >, 46112 ios_base&, char, void const*) const(GLIBCXX_3.4) [ISOCXX] 46113 num_put > 46114 >::put(ostreambuf_iterator >, 46115 ios_base&, char, bool) const(GLIBCXX_3.4) [ISOCXX] 46116 num_put > 46117 >::put(ostreambuf_iterator >, 46118 ios_base&, char, double) const(GLIBCXX_3.4) [ISOCXX] 46119 num_put > 46120 >::put(ostreambuf_iterator >, 46121 ios_base&, char, long double) const(GLIBCXX_3.4) [ISOCXX] 46122 num_put > 46123 >::put(ostreambuf_iterator >, 46124 ios_base&, char, long) const(GLIBCXX_3.4) [ISOCXX] 46125 num_put > 46126 >::put(ostreambuf_iterator >, 46127 ios_base&, char, unsigned long) const(GLIBCXX_3.4) [ISOCXX] 46128 num_put > 46129 >::put(ostreambuf_iterator >, 46130 ios_base&, char, long long) const(GLIBCXX_3.4) [ISOCXX] 46131 num_put > 46132 >::put(ostreambuf_iterator >, 46133 ios_base&, char, unsigned long long) const(GLIBCXX_3.4) 46134 [ISOCXX] 46135 num_put > 46136 >::do_put(ostreambuf_iterator >, 46137 ios_base&, char, void const*) const(GLIBCXX_3.4) [ISOCXX] 46138 num_put > 46139 >::do_put(ostreambuf_iterator >, 46140 ios_base&, char, bool) const(GLIBCXX_3.4) [ISOCXX] 46141 num_put > 46142 >::do_put(ostreambuf_iterator >, 46143 ios_base&, char, double) const(GLIBCXX_3.4) [ISOCXX] 46144 num_put > 46145 >::do_put(ostreambuf_iterator >, 46146 ios_base&, char, long double) const(GLIBCXX_3.4) [ISOCXX] 46147 num_put > 46148 >::do_put(ostreambuf_iterator >, 46149 ios_base&, char, long) const(GLIBCXX_3.4) [ISOCXX] 46150 num_put > 46151 >::do_put(ostreambuf_iterator >, 46152 ios_base&, char, unsigned long) const(GLIBCXX_3.4) [ISOCXX] 46153 num_put > 46154 >::do_put(ostreambuf_iterator >, 46155 ios_base&, char, long long) const(GLIBCXX_3.4) [ISOCXX] 46156 num_put > 46157 >::do_put(ostreambuf_iterator >, 46158 ios_base&, char, unsigned long long) const(GLIBCXX_3.4) 46159 [ISOCXX] 46160 num_put > 46161 >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46162 num_put > 46163 >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46164 num_put > 46165 >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46166 46167 An LSB conforming implementation shall provide the generic data 46168 interfaces for Class std::num_put > > 46170 specified in Table 16-428, with the full mandatory 46171 functionality as described in the referenced underlying 46172 specification. 46173 46174 Table 16-428. libstdcxx - Class num_put > > Data Interfaces 46176 guard variable for num_put > >::id(GLIBCXX_3.4) [CXXABI-1.86] 46178 num_put > 46179 >::id(GLIBCXX_3.4) [ISOCXX] 46180 typeinfo for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46182 typeinfo name for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46184 vtable for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46186 __________________________________________________________ 46187 46188 16.1.141. Class num_put > > 46189 __________________________________________________________ 46190 46191 16.1.141.1. Class data for num_put > > 46192 46193 The virtual table for the std::num_put > > 46195 class is described by Table 16-429 46196 46197 Table 16-429. Primary vtable for num_put > > 46199 Base Offset 0 46200 Virtual Base Offset 0 46201 RTTI typeinfo for num_put > > 46203 vfunc[0]: num_put > >::~num_put() 46205 vfunc[1]: num_put > >::~num_put() 46207 vfunc[2]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, bool) const 46210 vfunc[3]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long) const 46213 vfunc[4]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long) 46216 const 46217 vfunc[5]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long long) const 46220 vfunc[6]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long long) 46223 const 46224 vfunc[7]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, double) const 46227 vfunc[8]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long double) const 46230 vfunc[9]: num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, void const*) const 46233 46234 The Run Time Type Information for the std::num_put > > 46236 class is described by Table 16-430 46237 46238 Table 16-430. typeinfo for num_put > > 46240 Base Vtable vtable for __cxxabiv1::__si_class_type_info 46241 Name typeinfo name for num_put > > 46243 basetype: typeinfo for locale::facet 46244 __________________________________________________________ 46245 46246 16.1.141.2. Interfaces for Class num_put > > 46247 46248 An LSB conforming implementation shall provide the generic 46249 methods for Class std::num_put > > 46251 specified in Table 16-431, with the full mandatory 46252 functionality as described in the referenced underlying 46253 specification. 46254 46255 Table 16-431. libstdcxx - Class num_put > > Function 46257 Interfaces 46258 ostreambuf_iterator > 46259 num_put > 46261 >::_M_insert_int(ostreambuf_iterator >, ios_base&, wchar_t, long) 46263 const(GLIBCXX_3.4) [ISOCXX] 46264 ostreambuf_iterator > 46265 num_put > >::_M_insert_int(ostreambuf_iterator >, 46268 ios_base&, wchar_t, unsigned long) const(GLIBCXX_3.4) [ISOCXX] 46269 ostreambuf_iterator > 46270 num_put > >::_M_insert_int(ostreambuf_iterator >, 46273 ios_base&, wchar_t, long long) const(GLIBCXX_3.4) [ISOCXX] 46274 ostreambuf_iterator > 46275 num_put > >::_M_insert_int(ostreambuf_iterator >, 46278 ios_base&, wchar_t, unsigned long long) const(GLIBCXX_3.4) 46279 [ISOCXX] 46280 ostreambuf_iterator > 46281 num_put > 46283 >::_M_insert_float(ostreambuf_iterator >, ios_base&, wchar_t, char, double) 46285 const(GLIBCXX_3.4) [ISOCXX] 46286 ostreambuf_iterator > 46287 num_put > >::_M_insert_float(ostreambuf_iterator >, 46290 ios_base&, wchar_t, char, long double) const(GLIBCXX_3.4) 46291 [ISOCXX] 46292 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, void const*) 46295 const(GLIBCXX_3.4) [ISOCXX] 46296 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, bool) 46299 const(GLIBCXX_3.4) [ISOCXX] 46300 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, double) 46303 const(GLIBCXX_3.4) [ISOCXX] 46304 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, long double) 46307 const(GLIBCXX_3.4) [ISOCXX] 46308 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, long) 46311 const(GLIBCXX_3.4) [ISOCXX] 46312 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long) 46315 const(GLIBCXX_3.4) [ISOCXX] 46316 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, long long) 46319 const(GLIBCXX_3.4) [ISOCXX] 46320 num_put > >::put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long long) 46323 const(GLIBCXX_3.4) [ISOCXX] 46324 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, void const*) 46327 const(GLIBCXX_3.4) [ISOCXX] 46328 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, bool) 46331 const(GLIBCXX_3.4) [ISOCXX] 46332 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, double) 46335 const(GLIBCXX_3.4) [ISOCXX] 46336 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long double) 46339 const(GLIBCXX_3.4) [ISOCXX] 46340 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long) 46343 const(GLIBCXX_3.4) [ISOCXX] 46344 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long) 46347 const(GLIBCXX_3.4) [ISOCXX] 46348 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, long long) 46351 const(GLIBCXX_3.4) [ISOCXX] 46352 num_put > >::do_put(ostreambuf_iterator >, ios_base&, wchar_t, unsigned long long) 46355 const(GLIBCXX_3.4) [ISOCXX] 46356 num_put > >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46358 num_put > >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46360 num_put > >::~num_put()(GLIBCXX_3.4) [ISOCXX] 46362 46363 An LSB conforming implementation shall provide the generic data 46364 interfaces for Class std::num_put > > 46366 specified in Table 16-432, with the full mandatory 46367 functionality as described in the referenced underlying 46368 specification. 46369 46370 Table 16-432. libstdcxx - Class num_put > > Data 46372 Interfaces 46373 guard variable for num_put > 46375 >::id(GLIBCXX_3.4) [CXXABI-1.86] 46376 num_put > >::id(GLIBCXX_3.4) [ISOCXX] 46378 typeinfo for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46380 typeinfo name for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46382 vtable for num_put > >(GLIBCXX_3.4) [CXXABI-1.86] 46384 __________________________________________________________ 46385 46386 16.1.142. Class __basic_file 46387 __________________________________________________________ 46388 46389 16.1.142.1. Class data for __basic_file 46390 __________________________________________________________ 46391 46392 16.1.142.2. Interfaces for Class __basic_file 46393 46394 An LSB conforming implementation shall provide the generic 46395 methods for Class std::__basic_file specified in Table 46396 16-433, with the full mandatory functionality as described in 46397 the referenced underlying specification. 46398 46399 Table 16-433. libstdcxx - Class __basic_file Function 46400 Interfaces 46401 __basic_file::is_open() const(GLIBCXX_3.4) [ISOCXX] 46402 __basic_file::fd()(GLIBCXX_3.4) [ISOCXX] 46403 __basic_file::file()(GLIBCXX_3.4.1) [ISOCXX] 46404 __basic_file::open(char const*, _Ios_Openmode, 46405 int)(GLIBCXX_3.4) [ISOCXX] 46406 __basic_file::sync()(GLIBCXX_3.4) [ISOCXX] 46407 __basic_file::close()(GLIBCXX_3.4) [ISOCXX] 46408 __basic_file::sys_open(_IO_FILE*, 46409 _Ios_Openmode)(GLIBCXX_3.4) [ISOCXX] 46410 __basic_file::sys_open(int, _Ios_Openmode)(GLIBCXX_3.4) 46411 [ISOCXX] 46412 __basic_file::showmanyc()(GLIBCXX_3.4) [ISOCXX] 46413 __basic_file::__basic_file(pthread_mutex_t*)(GLIBCXX_3.4) 46414 [ISOCXX] 46415 __basic_file::__basic_file(pthread_mutex_t*)(GLIBCXX_3.4) 46416 [ISOCXX] 46417 __basic_file::~__basic_file()(GLIBCXX_3.4) [ISOCXX] 46418 __basic_file::~__basic_file()(GLIBCXX_3.4) [ISOCXX] 46419 __________________________________________________________ 46420 46421 16.1.143. Class _List_node_base 46422 __________________________________________________________ 46423 46424 16.1.143.1. Interfaces for Class _List_node_base 46425 46426 An LSB conforming implementation shall provide the generic 46427 methods for Class std::_List_node_base specified in Table 46428 16-434, with the full mandatory functionality as described in 46429 the referenced underlying specification. 46430 46431 Table 16-434. libstdcxx - Class _List_node_base Function 46432 Interfaces 46433 _List_node_base::hook(_List_node_base*)(GLIBCXX_3.4) [LSB] 46434 _List_node_base::swap(_List_node_base&, 46435 _List_node_base&)(GLIBCXX_3.4) [LSB] 46436 _List_node_base::unhook()(GLIBCXX_3.4) [LSB] 46437 _List_node_base::reverse()(GLIBCXX_3.4) [LSB] 46438 _List_node_base::transfer(_List_node_base*, 46439 _List_node_base*)(GLIBCXX_3.4) [LSB] 46440 __________________________________________________________ 46441 46442 16.1.144. Class allocator 46443 __________________________________________________________ 46444 46445 16.1.144.1. Class data for allocator 46446 __________________________________________________________ 46447 46448 16.1.144.2. Interfaces for Class allocator 46449 46450 An LSB conforming implementation shall provide the generic 46451 methods for Class std::allocator specified in Table 46452 16-435, with the full mandatory functionality as described in 46453 the referenced underlying specification. 46454 46455 Table 16-435. libstdcxx - Class allocator Function 46456 Interfaces 46457 allocator::allocator(allocator const&)(GLIBCXX_3.4) 46458 [ISOCXX] 46459 allocator::allocator()(GLIBCXX_3.4) [ISOCXX] 46460 allocator::allocator(allocator const&)(GLIBCXX_3.4) 46461 [ISOCXX] 46462 allocator::allocator()(GLIBCXX_3.4) [ISOCXX] 46463 allocator::~allocator()(GLIBCXX_3.4) [ISOCXX] 46464 allocator::~allocator()(GLIBCXX_3.4) [ISOCXX] 46465 __________________________________________________________ 46466 46467 16.1.145. Class allocator 46468 __________________________________________________________ 46469 46470 16.1.145.1. Class data for allocator 46471 __________________________________________________________ 46472 46473 16.1.145.2. Interfaces for Class allocator 46474 46475 An LSB conforming implementation shall provide the generic 46476 methods for Class std::allocator specified in Table 46477 16-436, with the full mandatory functionality as described in 46478 the referenced underlying specification. 46479 46480 Table 16-436. libstdcxx - Class allocator Function 46481 Interfaces 46482 allocator::allocator(allocator 46483 const&)(GLIBCXX_3.4) [ISOCXX] 46484 allocator::allocator()(GLIBCXX_3.4) [ISOCXX] 46485 allocator::allocator(allocator 46486 const&)(GLIBCXX_3.4) [ISOCXX] 46487 allocator::allocator()(GLIBCXX_3.4) [ISOCXX] 46488 allocator::~allocator()(GLIBCXX_3.4) [ISOCXX] 46489 allocator::~allocator()(GLIBCXX_3.4) [ISOCXX] 46490 __________________________________________________________ 46491 46492 16.1.146. Class __gnu_cxx::__pool 46493 __________________________________________________________ 46494 46495 16.1.146.1. Interfaces for Class __gnu_cxx::__pool 46496 46497 An LSB conforming implementation shall provide the generic 46498 methods for Class __gnu_cxx::__pool specified in Table 46499 16-437, with the full mandatory functionality as described in 46500 the referenced underlying specification. 46501 46502 Table 16-437. libstdcxx - Class __gnu_cxx::__pool 46503 Function Interfaces 46504 __gnu_cxx::__pool::_M_destroy()(GLIBCXX_3.4.4) [LSB] 46505 __gnu_cxx::__pool::_M_initialize(void 46506 (*)(void*))(GLIBCXX_3.4.4) [LSB] 46507 __gnu_cxx::__pool::_M_initialize()(GLIBCXX_3.4.6) [LSB] 46508 __gnu_cxx::__pool::_M_get_thread_id()(GLIBCXX_3.4.4) 46509 [LSB] 46510 __gnu_cxx::__pool::_M_destroy_thread_key(void*)(GLIBCXX_3 46511 .4.4) [LSB] 46512 __________________________________________________________ 46513 46514 16.1.147. Class __gnu_cxx::__pool 46515 __________________________________________________________ 46516 46517 16.1.147.1. Interfaces for Class __gnu_cxx::__pool 46518 46519 An LSB conforming implementation shall provide the generic 46520 methods for Class __gnu_cxx::__pool specified in Table 46521 16-438, with the full mandatory functionality as described in 46522 the referenced underlying specification. 46523 46524 Table 16-438. libstdcxx - Class __gnu_cxx::__pool 46525 Function Interfaces 46526 __gnu_cxx::__pool::_M_destroy()(GLIBCXX_3.4.4) [LSB] 46527 __gnu_cxx::__pool::_M_initialize()(GLIBCXX_3.4.4) [LSB] 46528 __________________________________________________________ 46529 46530 16.1.148. Class __gnu_cxx::free_list 46531 __________________________________________________________ 46532 46533 16.1.148.1. Interfaces for Class __gnu_cxx::free_list 46534 46535 An LSB conforming implementation shall provide the generic 46536 methods for Class __gnu_cxx::free_list specified in Table 46537 16-439, with the full mandatory functionality as described in 46538 the referenced underlying specification. 46539 46540 Table 16-439. libstdcxx - Class __gnu_cxx::free_list Function 46541 Interfaces 46542 __gnu_cxx::free_list::_M_clear()(GLIBCXX_3.4.4) [LSB] 46543 __________________________________________________________ 46544 46545 16.1.149. Class char_traits 46546 __________________________________________________________ 46547 46548 16.1.149.1. Interfaces for Class char_traits 46549 46550 An LSB conforming implementation shall provide the generic 46551 methods for Class std::char_traits specified in Table 46552 16-440, with the full mandatory functionality as described in 46553 the referenced underlying specification. 46554 46555 Table 16-440. libstdcxx - Class char_traits Function 46556 Interfaces 46557 char_traits::eq(char const&, char const&)(GLIBCXX_3.4.5) 46558 [ISOCXX] 46559 __________________________________________________________ 46560 46561 16.1.150. Class char_traits 46562 __________________________________________________________ 46563 46564 16.1.150.1. Interfaces for Class char_traits 46565 46566 An LSB conforming implementation shall provide the generic 46567 methods for Class std::char_traits specified in Table 46568 16-441, with the full mandatory functionality as described in 46569 the referenced underlying specification. 46570 46571 Table 16-441. libstdcxx - Class char_traits Function 46572 Interfaces 46573 char_traits::eq(wchar_t const&, wchar_t 46574 const&)(GLIBCXX_3.4.5) [ISOCXX] 46575 __________________________________________________________ 46576 46577 16.2. Interface Definitions for libstdcxx 46578 46579 The interfaces defined on the following pages are included in 46580 libstdcxx and are defined by this specification. Unless 46581 otherwise noted, these interfaces shall be included in the 46582 source standard. 46583 46584 Other interfaces listed in Section 16.1 shall behave as 46585 described in the referenced base document. 46586 46587 VI. Commands and Utilities 46588 46589 Table of Contents 46590 17. Commands and Utilities 46591 46592 17.1. Commands and Utilities 46593 17.2. Command Behavior 46594 46595 ar -- create and maintain library archives 46596 (DEPRECATED) 46597 46598 at -- examine or delete jobs for later execution 46599 awk -- pattern scanning and processing language 46600 batch -- schedule commands to be executed in a batch 46601 queue 46602 46603 bc -- an arbitrary precision calculator language 46604 chfn -- change user name and information 46605 chsh -- change login shell 46606 col -- filter reverse line feeds from input 46607 cpio -- copy file archives in and out 46608 crontab -- maintain crontab files for individual 46609 users 46610 46611 df -- report file system disk space usage 46612 dmesg -- print or control the system message buffer 46613 du -- estimate file space usage 46614 echo -- write arguments to standard output 46615 egrep -- search a file with an Extended Regular 46616 Expression pattern 46617 46618 fgrep -- search a file with a fixed pattern 46619 file -- determine file type 46620 fuser -- identify processes using files or sockets 46621 gettext -- retrieve text string from message catalog 46622 grep -- print lines matching a pattern 46623 groupadd -- create a new group 46624 groupdel -- delete a group 46625 groupmod -- modify a group 46626 groups -- display a group 46627 gunzip -- uncompress files 46628 gzip -- compress or expand files 46629 hostname -- show or set the system's host name 46630 install -- copy files and set attributes 46631 install_initd -- activate an init script 46632 ipcrm -- remove IPC Resources 46633 ipcs -- provide information on ipc facilities 46634 killall -- kill processes by name 46635 lpr -- off line print 46636 ls -- list directory contents 46637 lsb_release -- print distribution specific 46638 information 46639 46640 m4 -- macro processor 46641 md5sum -- generate or check MD5 message digests 46642 mknod -- make special files 46643 mktemp -- make temporary file name (unique) 46644 more -- display files on a page-by-page basis 46645 mount -- mount a file system 46646 msgfmt -- create a message object from a message 46647 file 46648 46649 newgrp -- change group ID 46650 od -- dump files in octal and other formats 46651 passwd -- change user password 46652 patch -- apply a diff file to an original 46653 pidof -- find the process ID of a running program 46654 remove_initd -- clean up init script system 46655 modifications introduced by install_initd 46656 46657 renice -- alter priority of running processes 46658 sed -- stream editor 46659 sendmail -- an electronic mail transport agent 46660 seq -- generate a sequence of numbers 46661 sh -- shell, the standard command language 46662 interpreter 46663 46664 shutdown -- shut the system down 46665 su -- change user ID 46666 sync -- flush file system buffers 46667 tar -- file archiver 46668 umount -- unmount file systems 46669 useradd -- create a new user or update default new 46670 user information 46671 46672 userdel -- delete a user account and related files 46673 usermod -- modify a user account 46674 xargs -- build and execute command lines from 46675 standard input 46676 46677 zcat -- uncompress files to standard output 46678 __________________________________________________________ 46679 46680 Chapter 17. Commands and Utilities 46681 46682 17.1. Commands and Utilities 46683 46684 An LSB conforming implementation shall provide the commands and 46685 utilities as described in Table 17-1, with at least the 46686 behavior described as mandatory in the referenced underlying 46687 specification, with the following exceptions: 46688 46689 1. If any operand (except one which follows --) starts with a 46690 hyphen, the behavior is unspecified. 46691 46692 Rationale (Informative): Applications should place options 46693 before operands, or use --, as needed. This text is needed 46694 because, by default, GNU option parsing differs from POSIX, 46695 unless the environment variable POSIXLY_CORRECT is set. For 46696 example, ls . -a in GNU ls means to list the current 46697 directory, showing all files (that is, "." is an operand and 46698 -a is an option). In POSIX, "." and -a are both operands, 46699 and the command means to list the current directory, and 46700 also the file named -a. Suggesting that applications rely on 46701 the setting of the POSIXLY_CORRECT environment variable, or 46702 try to set it, seems worse than just asking the applications 46703 to invoke commands in ways which work with either the POSIX 46704 or GNU behaviors. 46705 46706 Table 17-1. Commands And Utilities 46707 [ [1] du [2] install [2] mv [1] strings [1] 46708 ar [2] echo [2] install_initd [2] newgrp [2] strip [1] 46709 at [2] ed [1] ipcrm [2] nice [1] stty [1] 46710 awk [2] egrep [2] ipcs [2] nl [1] su [2] 46711 basename [1] env [1] join [1] nohup [1] sync [2] 46712 batch [2] expand [1] kill [1] od [2] tail [1] 46713 bc [2] expr [1] killall [2] passwd [2] tar [2] 46714 cat [1] false [1] ln [1] paste [1] tee [1] 46715 chfn [2] fgrep [2] locale [1] patch [2] test [1] 46716 chgrp [1] file [2] localedef [1] pathchk [1] tic [3] 46717 chmod [1] find [1] logger [1] pax [1] time [1] 46718 chown [1] fold [1] logname [1] pidof [2] touch [1] 46719 chsh [2] fuser [2] lp [1] pr [1] tput [3] 46720 cksum [1] gencat [1] lpr [2] printf [1] tr [1] 46721 cmp [1] getconf [1] ls [2] ps [1] true [1] 46722 col [2] gettext [2] lsb_release [2] pwd [1] tsort [1] 46723 comm [1] grep [2] m4 [2] remove_initd [2] tty [1] 46724 cp [1] groupadd [2] mailx [1] renice [2] umount [2] 46725 cpio [2] groupdel [2] make [1] rm [1] uname [1] 46726 crontab [2] groupmod [2] man [1] rmdir [1] unexpand [1] 46727 csplit [1] groups [2] md5sum [2] sed [2] uniq [1] 46728 cut [1] gunzip [2] mkdir [1] sendmail [2] useradd [2] 46729 date [1] gzip [2] mkfifo [1] seq [2] userdel [2] 46730 dd [1] head [1] mknod [2] sh [2] usermod [2] 46731 df [2] hostname [2] mktemp [2] shutdown [2] wc [1] 46732 diff [1] iconv [1] more [2] sleep [1] xargs [2] 46733 dirname [1] id [1] mount [2] sort [1] zcat [2] 46734 dmesg [2] infocmp [3] msgfmt [2] split [1] 46735 46736 Referenced Specification(s) 46737 46738 [1]. POSIX 1003.1-2008 (ISO/IEC 9945-2009) 46739 46740 [2]. This Specification 46741 46742 [3]. Libncursesw API 46743 46744 An LSB conforming implementation shall provide the shell built 46745 in utilities as described in Table 17-2, with at least the 46746 behavior described as mandatory in the referenced underlying 46747 specification, with the following exceptions: 46748 46749 1. The built in commands and utilities shall be provided by 46750 the sh utility itself, and need not be implemented in a 46751 manner so that they can be accessed via the exec family of 46752 functions as defined in POSIX 1003.1-2008 (ISO/IEC 46753 9945-2009) and should not be invoked directly by those 46754 standard utilities that execute other utilities ( env, 46755 find, nice, nohup, time, xargs). 46756 46757 Rationale (Informative): Since the built in utilities must 46758 affect the environment of the calling process, they have no 46759 effect when executed as a file. 46760 46761 Table 17-2. Built In Utilities 46762 alias [1] command [1] getopts [1] read [1] umask [1] 46763 bg [1] fc [1] hash [1] type [1] unalias [1] 46764 cd [1] fg [1] jobs [1] ulimit [1] wait [1] 46765 46766 Referenced Specification(s) 46767 46768 [1]. POSIX 1003.1-2008 (ISO/IEC 9945-2009) 46769 __________________________________________________________ 46770 46771 17.2. Command Behavior 46772 46773 Table of Contents 46774 ar -- create and maintain library archives (DEPRECATED) 46775 at -- examine or delete jobs for later execution 46776 awk -- pattern scanning and processing language 46777 batch -- schedule commands to be executed in a batch queue 46778 bc -- an arbitrary precision calculator language 46779 chfn -- change user name and information 46780 chsh -- change login shell 46781 col -- filter reverse line feeds from input 46782 cpio -- copy file archives in and out 46783 crontab -- maintain crontab files for individual users 46784 df -- report file system disk space usage 46785 dmesg -- print or control the system message buffer 46786 du -- estimate file space usage 46787 echo -- write arguments to standard output 46788 egrep -- search a file with an Extended Regular Expression 46789 pattern 46790 46791 fgrep -- search a file with a fixed pattern 46792 file -- determine file type 46793 fuser -- identify processes using files or sockets 46794 gettext -- retrieve text string from message catalog 46795 grep -- print lines matching a pattern 46796 groupadd -- create a new group 46797 groupdel -- delete a group 46798 groupmod -- modify a group 46799 groups -- display a group 46800 gunzip -- uncompress files 46801 gzip -- compress or expand files 46802 hostname -- show or set the system's host name 46803 install -- copy files and set attributes 46804 install_initd -- activate an init script 46805 ipcrm -- remove IPC Resources 46806 ipcs -- provide information on ipc facilities 46807 killall -- kill processes by name 46808 lpr -- off line print 46809 ls -- list directory contents 46810 lsb_release -- print distribution specific information 46811 m4 -- macro processor 46812 md5sum -- generate or check MD5 message digests 46813 mknod -- make special files 46814 mktemp -- make temporary file name (unique) 46815 more -- display files on a page-by-page basis 46816 mount -- mount a file system 46817 msgfmt -- create a message object from a message file 46818 newgrp -- change group ID 46819 od -- dump files in octal and other formats 46820 passwd -- change user password 46821 patch -- apply a diff file to an original 46822 pidof -- find the process ID of a running program 46823 remove_initd -- clean up init script system modifications 46824 introduced by install_initd 46825 46826 renice -- alter priority of running processes 46827 sed -- stream editor 46828 sendmail -- an electronic mail transport agent 46829 seq -- generate a sequence of numbers 46830 sh -- shell, the standard command language interpreter 46831 shutdown -- shut the system down 46832 su -- change user ID 46833 sync -- flush file system buffers 46834 tar -- file archiver 46835 umount -- unmount file systems 46836 useradd -- create a new user or update default new user 46837 information 46838 46839 userdel -- delete a user account and related files 46840 usermod -- modify a user account 46841 xargs -- build and execute command lines from standard input 46842 zcat -- uncompress files to standard output 46843 46844 This section contains descriptions for commands and utilities 46845 whose specified behavior in the LSB contradicts or extends the 46846 standards referenced. It also contains commands and utilities 46847 only required by the LSB and not specified by other standards. 46848 46849 ar 46850 46851 Name 46852 46853 ar -- create and maintain library archives (DEPRECATED) 46854 46855 Description 46856 46857 ar is deprecated from the LSB and is expected to disappear from 46858 a future version of the LSB. 46859 46860 Rationale: The LSB generally does not include software 46861 development utilities nor does it specify .o and .a file 46862 formats. 46863 46864 ar is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009) but 46865 with differences as listed below. 46866 46867 Differences 46868 46869 -T, -C 46870 46871 need not be accepted. 46872 -l 46873 46874 has unspecified behavior. 46875 -q 46876 46877 has unspecified behavior; using -r is suggested. 46878 46879 at 46880 46881 Name 46882 46883 at -- examine or delete jobs for later execution 46884 46885 Description 46886 46887 at is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009) but 46888 with differences as listed below. 46889 46890 Differences 46891 46892 Options 46893 46894 -d 46895 46896 is functionally equivalent to the -r option specified in POSIX 46897 1003.1-2008 (ISO/IEC 9945-2009). 46898 -r 46899 46900 need not be supported, but the '-d' option is equivalent. 46901 -t time 46902 46903 need not be supported. 46904 46905 Optional Control Files 46906 46907 The implementation shall support the XSI optional behavior for 46908 access control; however the files at.allow and at.deny may 46909 reside in /etc rather than /usr/lib/cron. 46910 46911 awk 46912 46913 Name 46914 46915 awk -- pattern scanning and processing language 46916 46917 Description 46918 46919 awk is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009) 46920 but with differences as listed below. 46921 46922 Differences 46923 46924 Certain aspects of internationalized regular expressions are 46925 optional; see Regular Expressions. 46926 46927 batch 46928 46929 Name 46930 46931 batch -- schedule commands to be executed in a batch queue 46932 46933 Description 46934 46935 The specification for batch is as specified in POSIX 46936 1003.1-2008 (ISO/IEC 9945-2009), but with differences as listed 46937 below. 46938 46939 Optional Control Files 46940 46941 The implementation shall support the XSI optional behavior for 46942 access control; however the files at.allow and at.deny may 46943 reside in /etc rather than /usr/lib/cron. 46944 46945 bc 46946 46947 Name 46948 46949 bc -- an arbitrary precision calculator language 46950 46951 Description 46952 46953 bc is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009) but 46954 with extensions as listed below. 46955 46956 Extensions 46957 46958 The bc language may be extended in an implementation defined 46959 manner. If an implementation supports extensions, it shall also 46960 support the additional options: 46961 46962 -s|--standard 46963 46964 processes exactly the POSIX bc language. 46965 -w|--warn 46966 46967 gives warnings for extensions to POSIX bc. 46968 46969 chfn 46970 46971 Name 46972 46973 chfn -- change user name and information 46974 46975 Synopsis 46976 46977 chfn [-f full_name] [-h home_phone] [user] 46978 46979 Description 46980 46981 chfn shall update the user database. An unprivileged user may 46982 only change the fields for their own account, a user with 46983 appropriate privileges may change the fields for any account. 46984 46985 The fields full_name and home_phone may contain any character 46986 except: 46987 46988 any control character 46989 comma 46990 colon 46991 equal sign 46992 46993 If none of the options are selected, chfn operates in an 46994 interactive fashion. The prompts and expected input in 46995 interactive mode are unspecified and should not be relied upon. 46996 46997 As it is possible for the system to be configured to restrict 46998 which fields a non-privileged user is permitted to change, 46999 applications should be written to gracefully handle these 47000 situations. 47001 47002 Standard Options 47003 47004 -f full_name 47005 47006 sets the user's full name. 47007 -h home_phone 47008 47009 sets the user's home phone number. 47010 47011 Future Directions 47012 47013 The following two options are expected to be added in a future 47014 version of the LSB: 47015 47016 -o office 47017 47018 sets the user's office room number. 47019 -p office_phone 47020 47021 sets the user's office phone number. 47022 47023 Note that some implementations contain a "-o other" option 47024 which specifies an additional field called "other". 47025 Traditionally, this field is not subject to the constraints 47026 about legitimate characters in fields. Also, one traditionally 47027 shall have appropriate privileges to change the other field. At 47028 this point there is no consensus about whether it is desirable 47029 to specify the other field; applications may wish to avoid 47030 using it. 47031 47032 The "-w work_phone" field found in some implementations should 47033 be replaced by the "-p office_phone" field. The "-r 47034 room_number" field found in some implementations is the 47035 equivalent of the "-o office" option mentioned above; which one 47036 of these two options to specify will depend on implementation 47037 experience and the decision regarding the other field. 47038 47039 chsh 47040 47041 Name 47042 47043 chsh -- change login shell 47044 47045 Synopsis 47046 47047 chsh [-s login_shell] [user] 47048 47049 Description 47050 47051 chsh changes the user login shell. This determines the name of 47052 the user's initial login command. An unprivileged user may only 47053 change the login shell for their own account, a user with 47054 appropriate privilege may change the login shell for any 47055 account specified by user. 47056 47057 Unless the user has appropriate privilege, the initial login 47058 command name shall be one of those listed in /etc/shells. The 47059 login_shell shall be the absolute path (i.e. it must start with 47060 '/') to an executable file. Accounts which are restricted (in 47061 an implementation-defined manner) may not change their login 47062 shell. 47063 47064 If the -s option is not selected, chsh operates in an 47065 interactive mode. The prompts and expected input in this mode 47066 are unspecified. 47067 47068 Standard Options 47069 47070 -s login_shell 47071 47072 sets the login shell. 47073 47074 col 47075 47076 Name 47077 47078 col -- filter reverse line feeds from input 47079 47080 Description 47081 47082 col is as specified in SUSv2 but with differences as listed 47083 below. 47084 47085 Differences 47086 47087 The -p option has unspecified behavior. 47088 47089 Note: Although col is shown as legacy in SUSv2, it is not 47090 (yet) deprecated in the LSB. 47091 47092 cpio 47093 47094 Name 47095 47096 cpio -- copy file archives in and out 47097 47098 Description 47099 47100 cpio is as specified in SUSv2, but with differences as listed 47101 below. 47102 47103 Differences 47104 47105 Some elements of the Pattern Matching Notation are optional; 47106 see Pattern Matching Notation. 47107 47108 crontab 47109 47110 Name 47111 47112 crontab -- maintain crontab files for individual users 47113 47114 Synopsis 47115 47116 crontab [-u user] file 47117 crontab [-u user] {-l | -r | -e} 47118 47119 Description 47120 47121 crontab is as specified in POSIX 1003.1-2008 (ISO/IEC 47122 9945-2009), but with differences as listed below. 47123 47124 Optional Control Files 47125 47126 The implementation shall support the XSI optional behavior for 47127 access control; however the files cron.allow and cron.deny may 47128 reside in /etc rather than /usr/lib/cron. 47129 47130 df 47131 47132 Name 47133 47134 df -- report file system disk space usage 47135 47136 Description 47137 47138 The df command shall behave as specified in POSIX 1003.1-2008 47139 (ISO/IEC 9945-2009), but with differences as listed below. 47140 47141 Differences 47142 47143 Options 47144 47145 If the -k option is not specified, disk space is shown in 47146 unspecified units. If the -P option is specified, the size of 47147 the unit shall be printed on the header line in the format 47148 "%4s-blocks". Applications should specify -k. 47149 47150 The XSI option -t has unspecified behavior. Applications should 47151 not specify -t. 47152 47153 Rationale: The most common implementation of df uses the -t 47154 option for a different purpose (restricting output to a 47155 particular file system type), and use of -t is therefore 47156 non-portable. 47157 47158 Operand May Identify Special File 47159 47160 If an argument is the absolute file name of a special file 47161 containing a mounted file system, df shall show the space 47162 available on that file system rather than on the file system 47163 containing the special file (which is typically the root file 47164 system). 47165 47166 Note: In POSIX 1003.1-2008 (ISO/IEC 9945-2009) the XSI 47167 optional behavior permits an operand to name a special file, 47168 but appears to require the operation be performed on the 47169 file system containing the special file. A defect report has 47170 been submitted for this case. 47171 47172 dmesg 47173 47174 Name 47175 47176 dmesg -- print or control the system message buffer 47177 47178 Synopsis 47179 47180 dmesg [-c | -n level | -s bufsize] 47181 47182 Description 47183 47184 dmesg examines or controls the system message buffer. Only a 47185 user with appropriate privileges may modify the system message 47186 buffer parameters or contents. 47187 47188 Standard Options 47189 47190 -c 47191 47192 If the user has appropriate privilege, clears the system 47193 message buffer contents after printing. 47194 -n level 47195 47196 If the user has appropriate privilege, sets the level at which 47197 logging of messages is done to the console. 47198 -s bufsize 47199 47200 uses a buffer of bufsize to query the system message buffer. 47201 This is 16392 by default. 47202 47203 du 47204 47205 Name 47206 47207 du -- estimate file space usage 47208 47209 Description 47210 47211 du is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 47212 but with differences as listed below. 47213 47214 Differences 47215 47216 If the -k option is not specified, disk space is shown in 47217 unspecified units. Applications should specify -k. 47218 47219 echo 47220 47221 Name 47222 47223 echo -- write arguments to standard output 47224 47225 Synopsis 47226 47227 echo [string...] 47228 47229 Description 47230 47231 The echo command is as specified in POSIX 1003.1-2008 (ISO/IEC 47232 9945-2009), but with the following differences. 47233 47234 Implementations may support implementation-defined options to 47235 echo. The behavior of echo if any arguments contain backslashes 47236 is also implementation defined. 47237 47238 Application Usage 47239 47240 Conforming applications should not run echo with a first 47241 argument starting with a hyphen, or with any arguments 47242 containing backslashes; they should use printf in those cases. 47243 47244 Note: The behavior specified here is similar to that 47245 specified by POSIX 1003.1-2008 (ISO/IEC 9945-2009) without 47246 the XSI option. However, the LSB strongly recommends 47247 conforming applications not use any options (even if the 47248 implementation provides them) while POSIX 1003.1-2008 47249 (ISO/IEC 9945-2009) specifies behavior if the first operand 47250 is the string -n. 47251 47252 egrep 47253 47254 Name 47255 47256 egrep -- search a file with an Extended Regular Expression 47257 pattern 47258 47259 Description 47260 47261 egrep is equivalent to grep -E. For further details, see the 47262 specification for grep. 47263 47264 fgrep 47265 47266 Name 47267 47268 fgrep -- search a file with a fixed pattern 47269 47270 Description 47271 47272 fgrep is equivalent to grep -F. For further details, see the 47273 specification for grep. 47274 47275 file 47276 47277 Name 47278 47279 file -- determine file type 47280 47281 Description 47282 47283 file is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 47284 but with differences as listed below. 47285 47286 Differences 47287 47288 The -M, -h, -d, and -i options need not be supported. 47289 47290 fuser 47291 47292 Name 47293 47294 fuser -- identify processes using files or sockets 47295 47296 Description 47297 47298 fuser is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 47299 but with differences as listed below. 47300 47301 Differences 47302 47303 The fuser command is a system administration utility, see Path 47304 For System Administration Utilities. 47305 47306 Option Differences 47307 47308 -c 47309 47310 has unspecified behavior. 47311 -f 47312 47313 has unspecified behavior. 47314 47315 gettext 47316 47317 Name 47318 47319 gettext -- retrieve text string from message catalog 47320 47321 Synopsis 47322 47323 gettext [options] [textdomain] msgid 47324 gettext -s [options] msgid... 47325 47326 Description 47327 47328 The gettext utility retrieves a translated text string 47329 corresponding to string msgid from a message object generated 47330 with msgfmt utility. 47331 47332 The message object name is derived from the optional argument 47333 textdomain if present, otherwise from the TEXTDOMAIN 47334 environment variable. If no domain is specified, or if a 47335 corresponding string cannot be found, gettext prints msgid. 47336 47337 Ordinarily gettext looks for its message object in 47338 dirname/lang/LC_MESSAGES where dirname is the 47339 implementation-defined default directory and lang is the locale 47340 name. If present, the TEXTDOMAINDIR environment variable 47341 replaces the dirname. 47342 47343 This utility interprets C escape sequences such as \t for tab. 47344 Use \\ to print a backslash. To produce a message on a line of 47345 its own, either put a \n at the end of msgid, or use this 47346 command in conjunction with the printf utility. 47347 47348 When used with the -s option the gettext utility behaves like 47349 the echo utility, except that the message corresponding to 47350 msgid in the selected catalog provides the arguments. 47351 47352 Options 47353 47354 -d domainname, --domain=domainname 47355 47356 PARAMETER translated messages from domainname. 47357 -e 47358 47359 Enable expansion of some escape sequences. 47360 -n 47361 47362 Suppress trailing newline. 47363 47364 Operands 47365 47366 The following operands are supported: 47367 47368 textdomain 47369 47370 A domain name used to retrieve the messages. 47371 msgid 47372 47373 A key to retrieve the localized message. 47374 47375 Environment Variables 47376 47377 LANGUAGE 47378 47379 Specifies one or more locale names. 47380 LANG 47381 47382 Specifies locale name. 47383 LC_MESSAGES 47384 47385 Specifies messaging locale, and if present overrides LANG for 47386 messages. 47387 TEXTDOMAIN 47388 47389 Specifies the text domain name, which is identical to the 47390 message object filename without .mo suffix. 47391 TEXTDOMAINDIR 47392 47393 Specifies the pathname to the message catalog, and if present 47394 replaces the implementation-defined default directory. 47395 47396 Exit Status 47397 47398 The following exit values are returned: 47399 47400 0 47401 47402 Successful completion. 47403 >0 47404 47405 An error occurred. 47406 47407 grep 47408 47409 Name 47410 47411 grep -- print lines matching a pattern 47412 47413 Description 47414 47415 grep is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 47416 but with differences as listed below. 47417 47418 LSB Differences 47419 47420 Certain aspects of regular expression matching are optional; 47421 see Regular Expressions. 47422 47423 groupadd 47424 47425 Name 47426 47427 groupadd -- create a new group 47428 47429 Synopsis 47430 47431 groupadd [-g gid [-o]] group 47432 47433 Description 47434 47435 If the caller has appropriate privilege, the groupadd command 47436 shall create a new group named group. The group name shall be 47437 unique in the group database. If no gid is specified, groupadd 47438 shall create the new group with a unique group ID. If the group 47439 named group already exists, or if a group with gid ID exists 47440 and -o option is not set, groupadd shall issue a diagnostic 47441 message and exit with a non-zero exit status. 47442 47443 The groupadd command is a system administration utility, see 47444 Path For System Administration Utilities. 47445 47446 Options 47447 47448 -g gid [-o] 47449 47450 The new group shall have group ID gid. If the -o option is not 47451 used, no other group shall have this group ID. The value of gid 47452 shall be non-negative. 47453 47454 groupdel 47455 47456 Name 47457 47458 groupdel -- delete a group 47459 47460 Synopsis 47461 47462 groupdel group 47463 47464 Description 47465 47466 If the caller has sufficient privilege, the groupdel command 47467 shall modify the system group database, deleting the group 47468 named group. If the group named group does not exist or is a 47469 primary group for existing user, groupdel shall issue a 47470 diagnostic message and exit with a non-zero exit status. 47471 47472 The groupdel command is a system administration utility, see 47473 Path For System Administration Utilities. 47474 47475 groupmod 47476 47477 Name 47478 47479 groupmod -- modify a group 47480 47481 Synopsis 47482 47483 groupmod [-g gid [-o]] [-n group_name] group 47484 47485 Description 47486 47487 If the caller has appropriate privilege, the groupmod command 47488 shall modify the entry in the system group database 47489 corresponding to a group named group. 47490 47491 The groupmod command is a system administration utility, see 47492 Path For System Administration Utilities. 47493 47494 Options 47495 47496 -g gid [-o] 47497 47498 Modify the group's group ID, setting it to gid. If the -o 47499 option is not used, no other group shall have this group ID. 47500 The value of gidshall be non-negative. 47501 47502 Note: Only the group ID in the database is altered; any 47503 files with group ownership set to the original group ID are 47504 unchanged by this modification. 47505 47506 -n group_name 47507 47508 changes the name of the group from group to group_name. 47509 47510 groups 47511 47512 Name 47513 47514 groups -- display a group 47515 47516 Synopsis 47517 47518 groups [user] 47519 47520 Description 47521 47522 The groups command shall behave as id -Gn [user], as specified 47523 in POSIX 1003.1-2008 (ISO/IEC 9945-2009). The optional user 47524 parameter will display the groups for the named user. 47525 47526 gunzip 47527 47528 Name 47529 47530 gunzip -- uncompress files 47531 47532 Description 47533 47534 gunzip is equivalent to gzip -d. See the specification for gzip 47535 for further details. 47536 47537 Filesystem Hierarchy Standard requires that if gunzip exists, 47538 it must be a symbolic or hard link to /bin/gzip. This 47539 specification additionally allows gunzip to be a wrapper script 47540 which calls gzip -d. 47541 47542 gzip 47543 47544 Name 47545 47546 gzip -- compress or expand files 47547 47548 Synopsis 47549 47550 gzip [-cdfhlLnNrtvV19] [-S suffix] [name...] 47551 47552 Description 47553 47554 The gzip command shall attempt to reduce the size of the named 47555 files. Whenever possible, each file is replaced by one with the 47556 extension .gz, while keeping the same ownership, modes, access 47557 and modification times. If no files are specified, or if a file 47558 name is -, the standard input is compressed to the standard 47559 output. gzip shall only attempt to compress regular files. In 47560 particular, it will ignore symbolic links. 47561 47562 When compressing, gzip uses the deflate algorithm specified in 47563 RFC 1951: DEFLATE Compressed Data Format Specification and 47564 stores the result in a file using the gzip file format 47565 specified in RFC 1952: GZIP File Format Specification. 47566 47567 Options 47568 47569 -c, --stdout, --to-stdout 47570 writes output on standard output, leaving the original 47571 files unchanged. If there are several input files, the 47572 output consists of a sequence of independently 47573 compressed members. To obtain better compression, 47574 concatenate all input files before compressing them. 47575 47576 -d, --decompress, --uncompress 47577 the name operands are compressed files, and gzip shall 47578 decompress them. 47579 47580 -f, --force 47581 forces compression or decompression even if the file has 47582 multiple links or the corresponding file already exists, 47583 or if the compressed data is read from or written to a 47584 terminal. If the input data is not in a format 47585 recognized by gzip, and if the option --stdout is also 47586 given, copy the input data without change to the 47587 standard ouput: let gzip behave as cat. If -f is not 47588 given, and when not running in the background, gzip 47589 prompts to verify whether an existing file should be 47590 overwritten. 47591 47592 -l, --list 47593 lists the compressed size, uncompressed size, ratio and 47594 uncompressed name for each compressed file. For files 47595 that are not in gzip format, the uncompressed size shall 47596 be given as -1. If the --verbose or -v option is also 47597 specified, the crc and timestamp for the uncompressed 47598 file shall also be displayed. 47599 47600 For decompression, gzip shall support at least the 47601 following compression methods: 47602 47603 + deflate (RFC 1951: DEFLATE Compressed Data Format 47604 Specification) 47605 + compress (POSIX 1003.1-2008 (ISO/IEC 9945-2009)) 47606 47607 The crc shall be given as ffffffff for a file not in 47608 gzip format. 47609 47610 If the --name or -N option is also specified, the 47611 uncompressed name, date and time are those stored within 47612 the compressed file, if present. 47613 47614 If the --quiet or -q option is also specified, the title 47615 and totals lines are not displayed. 47616 47617 -L, --license 47618 displays the gzip license and quit. 47619 47620 -n, --no-name 47621 does not save the original file name and time stamp by 47622 default when compressing. (The original name is always 47623 saved if the name had to be truncated.) When 47624 decompressing, do not restore the original file name if 47625 present (remove only the gzip suffix from the compressed 47626 file name) and do not restore the original time stamp if 47627 present (copy it from the compressed file). This option 47628 is the default when decompressing. 47629 47630 -N, --name 47631 always saves the original file name and time stamp when 47632 compressing; this is the default. When decompressing, 47633 restore the original file name and time stamp if 47634 present. This option is useful on systems which have a 47635 limit on file name length or when the time stamp has 47636 been lost after a file transfer. 47637 47638 -q, --quiet 47639 suppresses all warnings. 47640 47641 -r, --recursive 47642 travels the directory structure recursively. If any of 47643 the file names specified on the command line are 47644 directories, gzip will descend into the directory and 47645 compress all the files it finds there (or decompress 47646 them in the case of gunzip). 47647 47648 -S .suf, --sufix .suf 47649 uses suffix .suf instead of .gz. 47650 47651 -t, --test 47652 checks the compressed file integrity. 47653 47654 -v, --verbose 47655 displays the name and percentage reduction for each file 47656 compressed or decompressed. 47657 47658 -#, --fast, --best 47659 regulates the speed of compression using the specified 47660 digit #, where -1 or --fast indicates the fastest 47661 compression method (less compression) and -9 or --best 47662 indicates the slowest compression method (best 47663 compression). The default compression level is -6 (that 47664 is, biased towards high compression at expense of 47665 speed). 47666 47667 LSB Deprecated Options 47668 47669 The behaviors specified in this section are expected to 47670 disappear from a future version of the LSB; applications should 47671 only use the non-LSB-deprecated behaviors. 47672 47673 -V, --version 47674 47675 displays the version number and compilation options, then 47676 quits. 47677 47678 hostname 47679 47680 Name 47681 47682 hostname -- show or set the system's host name 47683 47684 Synopsis 47685 47686 hostname [name] 47687 47688 Description 47689 47690 hostname is used to either display or, with appropriate 47691 privileges, set the current host name of the system. The host 47692 name is used by many applications to identify the machine. 47693 47694 When called without any arguments, the program displays the 47695 name of the system as returned by the gethostname() function. 47696 47697 When called with a name argument, and the user has appropriate 47698 privilege, the command sets the host name. 47699 47700 Note: It is not specified if the hostname displayed will be 47701 a fully qualified domain name. Applications requiring a 47702 particular format of hostname should check the output and 47703 take appropriate action. 47704 47705 install 47706 47707 Name 47708 47709 install -- copy files and set attributes 47710 47711 Synopsis 47712 47713 install [option...] SOURCE DEST 47714 install [option...] SOURCE... DEST 47715 install [-d | --directory] [option...] DIRECTORY... 47716 47717 Description 47718 47719 In the first two formats, copy SOURCE to DEST or multiple 47720 SOURCE(s) to the existing DEST directory, optionally setting 47721 permission modes and file ownership. In the third format, each 47722 DIRECTORY and any missing parent directories shall be created. 47723 47724 Standard Options 47725 47726 --backup[=METHOD] 47727 makes a backup of each existing destination file. METHOD 47728 may be one of the following: 47729 47730 none or off 47731 47732 never make backups. 47733 numbered or t 47734 47735 make numbered backups. A numbered backup has the form 47736 "%s.~%d~", target_name, version_number. Each backup shall 47737 increment the version number by 1. 47738 existing or nil 47739 47740 behave as numbered if numbered backups exist, or simple 47741 otherwise. 47742 simple or never 47743 47744 append a suffix to the name. The default suffix is '~', but can 47745 be overriden by setting SIMPLE_BACKUP_SUFFIX in the 47746 environment, or via the -S or --suffix option. 47747 47748 If no METHOD is specified, the environment variable 47749 VERSION_CONTROL shall be examined for one of the above. 47750 Unambiguous abbreviations of METHOD shall be accepted. 47751 If no METHOD is specified, or if METHOD is empty, the 47752 backup method shall default to existing. 47753 47754 If METHOD is invalid or ambiguous, install shall fail 47755 and issue a diagnostic message. 47756 47757 -b 47758 is equivalent to --backup=existing. 47759 47760 -d, --directory 47761 treats all arguments as directory names; creates all 47762 components of the specified directories. 47763 47764 -D 47765 creates all leading components of DEST except the last, 47766 then copies SOURCE to DEST; useful in the 1st format. 47767 47768 -g GROUP, --group=GROUP 47769 if the user has appropriate privilege, sets group 47770 ownership, instead of process' current group. GROUP is 47771 either a name in the user group database, or a positive 47772 integer, which shall be used as a group-id. 47773 47774 -m MODE, --mode=MODE 47775 sets permission mode (specified as in chmod), instead of 47776 the default rwxr-xr-x. 47777 47778 -o OWNER, --owner=OWNER 47779 if the user has appropriate privilege, sets ownership. 47780 OWNER is either a name in the user login database, or a 47781 positive integer, which shall be used as a user-id. 47782 47783 -p, --preserve-timestamps 47784 copies the access and modification times of SOURCE files 47785 to corresponding destination files. 47786 47787 -s, --strip 47788 strips symbol tables, only for 1st and 2nd formats. 47789 47790 -S SUFFIX, --suffix=SUFFIX 47791 equivalent to --backup=existing, except if a simple 47792 suffix is required, use SUFFIX. 47793 47794 --verbose 47795 prints the name of each directory as it is created. 47796 47797 -v, --verbose 47798 print the name of each file before copying it to stdout. 47799 47800 install_initd 47801 47802 Name 47803 47804 install_initd -- activate an init script 47805 47806 Synopsis 47807 47808 /usr/lib/lsb/install_initd initd_file 47809 47810 Description 47811 47812 install_initd shall activate a system initialization file that 47813 has been copied to an implementation defined location such that 47814 this file shall be run at the appropriate point during system 47815 initialization. The install_initd command is typically called 47816 in the postinstall script of a package, after the script has 47817 been copied to /etc/init.d. See also Installation and Removal 47818 of Init Scripts. 47819 47820 ipcrm 47821 47822 Name 47823 47824 ipcrm -- remove IPC Resources 47825 47826 Synopsis 47827 47828 ipcrm [-q msgid | -Q msgkey | -s semid | -S semkey | -m shmid | 47829 -M shmkey]... 47830 ipcrm [shm | msg | msg] id... 47831 47832 Description 47833 47834 If any of the -q, -Q, -s, -S, -m, or -M arguments are given, 47835 the ipcrm shall behave as described in POSIX 1003.1-2008 47836 (ISO/IEC 9945-2009). 47837 47838 Otherwise, ipcrm shall remove the resource of the specified 47839 type identified by id. 47840 47841 Future Directions 47842 47843 A future revision of this specification may deprecate the 47844 second synopsis form. 47845 47846 Rationale: In its first Linux implementation, ipcrm used the 47847 second syntax shown in the SYNOPSIS. Functionality present 47848 in other implementations of ipcrm has since been added, 47849 namely the ability to delete resources by key (not just 47850 identifier), and to respect the same command line syntax. 47851 The previous syntax is still supported for backwards 47852 compatibility only. 47853 47854 ipcs 47855 47856 Name 47857 47858 ipcs -- provide information on ipc facilities 47859 47860 Synopsis 47861 47862 ipcs [-smq] [-tcp] 47863 47864 Description 47865 47866 ipcs provides information on the ipc facilities for which the 47867 calling process has read access. 47868 47869 Note: Although this command has many similarities with the 47870 optional ipcs utility described in POSIX 1003.1-2008 47871 (ISO/IEC 9945-2009), it has substantial differences and is 47872 therefore described separately. The options specified here 47873 have similar meaning to those in POSIX 1003.1-2008 (ISO/IEC 47874 9945-2009); other options specified there have unspecified 47875 behavior on an LSB conforming implementation. See 47876 Application Usage below. The output format is not specified. 47877 47878 Resource display options 47879 47880 -m 47881 47882 shared memory segments. 47883 -q 47884 47885 message queues. 47886 -s 47887 47888 semaphore arrays. 47889 47890 Output format options 47891 47892 -t 47893 47894 time. 47895 -p 47896 47897 pid. 47898 -c 47899 47900 creator. 47901 47902 Application Usage 47903 47904 In some implementations of ipcs the -a option will print all 47905 information available. In other implementations the -a option 47906 will print all resource types. Therefore, applications shall 47907 not use the -a option. 47908 47909 Some implementations of ipcs provide more output formats than 47910 are specified here. These options are not consistent between 47911 differing implementations of ipcs. Therefore, only the -t, -c 47912 and -p option formatting flags may be used. At least one of the 47913 -t, -c and -p options and at least one of -m, -q and -s options 47914 shall be specified. If no options are specified, the output is 47915 unspecified. 47916 47917 killall 47918 47919 Name 47920 47921 killall -- kill processes by name 47922 47923 Synopsis 47924 47925 killall [-egiqvw] [-signal] name... 47926 killall -l 47927 killall -V 47928 47929 Description 47930 47931 killall sends a signal to all processes running any of the 47932 specified commands. If no signal name is specified, SIGTERM is 47933 sent. 47934 47935 Signals can be specified either by name (e.g. -HUP) or by 47936 number (e.g. -1). Signal 0 (check if a process exists) can only 47937 be specified by number. 47938 47939 If the command name contains a slash (/), processes executing 47940 that particular file will be selected for killing, independent 47941 of their name. 47942 47943 killall returns a non-zero return code if no process has been 47944 killed for any of the listed commands. If at least one process 47945 has been killed for each command, killall returns zero. 47946 47947 A killall process never kills itself (but may kill other 47948 killall processes). 47949 47950 Standard Options 47951 47952 -e 47953 47954 requires an exact match for very long names. If a command name 47955 is longer than 15 characters, the full name may be unavailable 47956 (i.e. it is swapped out). In this case, killall will kill 47957 everything that matches within the first 15 characters. With 47958 -e, such entries are skipped. killall prints a message for each 47959 skipped entry if -v is specified in addition to -e. 47960 -g 47961 47962 kills the process group to which the process belongs. The kill 47963 signal is only sent once per group, even if multiple processes 47964 belonging to the same process group were found. 47965 -i 47966 47967 asks interactively for confirmation before killing. 47968 -l 47969 47970 lists all known signal names. 47971 -q 47972 47973 does not complain if no processes were killed. 47974 -v 47975 47976 reports if the signal was successfully sent. 47977 47978 LSB Deprecated Options 47979 47980 The behaviors specified in this section are expected to 47981 disappear from a future version of the LSB; applications should 47982 only use the non-LSB-deprecated behaviors. 47983 47984 -V 47985 47986 displays version information. 47987 47988 lpr 47989 47990 Name 47991 47992 lpr -- off line print 47993 47994 Synopsis 47995 47996 lpr [-l] [-p] [-Pprinter] [-h] [-s] [-#copies] [-J name] [-T 47997 title] [name ......] 47998 47999 Description 48000 48001 lpr uses a spooling daemon to print the named files when 48002 facilities become available. If no names appear, the standard 48003 input is assumed. 48004 48005 Standard Options 48006 48007 -l 48008 48009 identifies binary data that is not to be filtered but sent as 48010 raw input to printer. 48011 -p 48012 48013 formats with "pr" before sending to printer. 48014 -Pprinter 48015 48016 sends output to the printer named printer instead of the 48017 default printer. 48018 -h 48019 48020 suppresses header page. 48021 -s 48022 48023 uses symbolic links. 48024 -#copies 48025 48026 specifies copies as the number of copies to print. 48027 -J name 48028 48029 specifies name as the job name for the header page. 48030 -T title 48031 48032 specifies title as the title used for "pr". 48033 48034 ls 48035 48036 Name 48037 48038 ls -- list directory contents 48039 48040 Description 48041 48042 ls shall behave as specified in POSIX 1003.1-2008 (ISO/IEC 48043 9945-2009), but with extensions listed below. 48044 48045 Extensions 48046 48047 -l 48048 48049 If the file is a character special or block special file, the 48050 size of the file shall be replaced with two unsigned numbers in 48051 the format "%u, %u", representing the major and minor device 48052 numbers associated with the special file. 48053 48054 Note: The LSB does not specify the meaning of the major and 48055 minor devices numbers. 48056 48057 -p 48058 48059 in addition to POSIX 1003.1-2008 (ISO/IEC 9945-2009) XSI 48060 optional behavior of printing a slash for a directory, ls -p 48061 may display other characters for other file types. 48062 48063 lsb_release 48064 48065 Name 48066 48067 lsb_release -- print distribution specific information 48068 48069 Synopsis 48070 48071 lsb_release [option...] 48072 48073 Description 48074 48075 The lsb_release command prints certain LSB (Linux Standard 48076 Base) and Distribution information. 48077 48078 If no options are given, the -v option is the default. 48079 48080 Options 48081 48082 -v, --version 48083 48084 displays the LSB version the distribution is compliant with. 48085 The version is expressed as a colon separated list of versioned 48086 LSB module identifiers. An LSB module identifier is a 48087 dash-separated tuple consisting of module name and version or 48088 module name, version and architecture name, in that order. The 48089 version output is presented as a single line of text beginning 48090 with LSB Version: followed by a tab character, then the list of 48091 LSB module identifiers. This format is intended to be easily 48092 parsable by programs which need to consume the data. Excepting 48093 core, which must always be present, the list of module 48094 identifiers may change over time depending on installations and 48095 removals of system software. 48096 48097 Example: LSB Version: 48098 core-5.0-amd64:core-5.0-noarch:desktop-5.0-amd64:desktop-5.0-no 48099 arch:languages-5.0:imaging-5.0 48100 48101 Note: An implementation may support multiple releases of the 48102 same module. To claim compliance, the implementation shall 48103 list all relevant module identifiers. Version specific 48104 library interfaces, if any, will be selected by the program 48105 interpreter, which may change from release to release. 48106 Version specific commands and utilities, if any, will be 48107 described in the relevant specification. 48108 48109 For reporting or querying compliance with this release of the 48110 specification, use the module names found in the Package 48111 Dependencies section of the Package Format and Installation 48112 chapter for that module specification. 48113 -i, --id 48114 48115 displays a string identifying the distribution provider. The id 48116 output is a single line of text beginning with Distributor ID: 48117 followed by a tab character, then the id string. This 48118 specification assigns no meaning to the value of the string, 48119 the contents are at the discretion of the distribution 48120 provider. 48121 48122 Example: Distributor ID: Frobnozz 48123 48124 -d, --description 48125 48126 displays text describing the distribution. The description 48127 output is a single line of text beginning with Description: 48128 followed by a tab character, then the description string. This 48129 specification assigns no meaning to the value of the string, 48130 the contents are at the discretion of the distribution 48131 provider. 48132 48133 Example: Description: Frobnozz release 9 (Gilpher) 48134 48135 -r, --release 48136 48137 displays the release number of distribution. The release output 48138 is a single line of text beginning with Release: followed by a 48139 tab character, then the release string. This specification 48140 assigns no meaning to the value of the string, the contents are 48141 at the discretion of the distribution provider. 48142 48143 Example: Release: 9 48144 48145 -c, --codename 48146 48147 displays a codename which corresponds to the distribution 48148 release. The codename output is a single line of text beginning 48149 with Codename: followed by a tab character, then the codename 48150 string. This specification assigns no meaning to the value of 48151 the string, the contents are at the discretion of the 48152 distribution provider. 48153 48154 Example: Codename: Gilpher 48155 48156 -a, --all 48157 48158 displays all of the above information. 48159 -s, --short 48160 48161 displays all of the above information in a short output format. 48162 -h, --help 48163 48164 displays a human-readable help message. 48165 48166 m4 48167 48168 Name 48169 48170 m4 -- macro processor 48171 48172 Description 48173 48174 m4 is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 48175 but with extensions as listed below. 48176 48177 Extensions 48178 48179 -P 48180 48181 forces all builtins to be prefixed with m4_. For example, 48182 define becomes m4_define. 48183 -I directory 48184 48185 Add directory to the end of the search path for includes. 48186 48187 md5sum 48188 48189 Name 48190 48191 md5sum -- generate or check MD5 message digests 48192 48193 Synopsis 48194 48195 md5sum [-c [file] | file...] 48196 48197 Description 48198 48199 For each file, write to standard output a line containing the 48200 MD5 message digest of that file, followed by one or more blank 48201 characters, followed by the name of the file. The MD5 message 48202 digest shall be calculated according to RFC 1321: The MD5 48203 Message-Digest Algorithm and output as 32 hexadecimal digits. 48204 48205 If no file names are specified as operands, read from standard 48206 input and use "-" as the file name in the output. 48207 48208 Options 48209 48210 -c [file] 48211 48212 checks the MD5 message digest of all files named in file 48213 against the message digest listed in the same file. The actual 48214 format of file is the same as the output of md5sum. That is, 48215 each line in the file describes a file. If file is not 48216 specified, read message digests from stdin. 48217 48218 Exit Status 48219 48220 md5sum shall exit with status 0 if the sum was generated 48221 successfully, or, in check mode, if the check matched. 48222 Otherwise, md5sum shall exit with a non-zero status. 48223 48224 mknod 48225 48226 Name 48227 48228 mknod -- make special files 48229 48230 Synopsis 48231 48232 mknod [-m mode | --mode=mode] name type [major minor] 48233 mknod [--version] 48234 48235 Description 48236 48237 The mknod command shall create a special file named name of the 48238 given type. 48239 48240 The type shall be one of the following: 48241 48242 b 48243 48244 creates a block (buffered) special file with the specified 48245 major and minor device numbers. 48246 c, u 48247 48248 creates a character (unbuffered) special file with the 48249 specified major and minor device numbers. 48250 p 48251 48252 creates a FIFO. 48253 48254 Options 48255 48256 -m mode, --mode=mode 48257 48258 create the special file with file access permissions set as 48259 described in mode. The permissions may be any absolute value 48260 (i.e. one not containing '+' or '-') acceptable to the chmod 48261 command. 48262 --version 48263 48264 output version information and exit. 48265 48266 Note: This option may be deprecated in a future release of 48267 this specification. 48268 48269 If type is p, major and minor shall not be specified. 48270 Otherwise, these parameters are mandatory. 48271 48272 Future Directions 48273 48274 This command may be deprecated in a future version of this 48275 specification. The major and minor operands are insufficently 48276 portable to be specified usefully here. Only a FIFO can be 48277 portably created by this command, and the mkfifo command is a 48278 simpler interface for that purpose. 48279 48280 mktemp 48281 48282 Name 48283 48284 mktemp -- make temporary file name (unique) 48285 48286 Synopsis 48287 48288 mktemp [-q] [-u] template 48289 48290 Description 48291 48292 The mktemp command takes the given file name template and 48293 overwrites a portion of it to create a file name. This file 48294 name shall be unique and suitable for use by the application. 48295 48296 The template should have at least six trailing 'X' characters. 48297 These characters are replaced with characters from the portable 48298 filename character set in order to generate a unique name. 48299 48300 If mktemp can successfully generate a unique file name, and the 48301 -u option is not present, the file shall be created with read 48302 and write permission only for the current user. The mktemp 48303 command shall write the filename generated to the standard 48304 output. 48305 48306 Options 48307 48308 -q 48309 48310 fail silently if an error occurs. Diagnostic messages to stderr 48311 are suppressed, but the command shall still exit with a 48312 non-zero exit status if an error occurs. 48313 -u 48314 48315 operates in `unsafe' mode. A unique name is generated, but the 48316 temporary file shall be unlinked before mktemp exits. Use of 48317 this option is not encouraged. 48318 48319 more 48320 48321 Name 48322 48323 more -- display files on a page-by-page basis 48324 48325 Description 48326 48327 more is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 48328 but with differences as listed below. 48329 48330 Differences 48331 48332 The more command need not respect the LINES and COLUMNS 48333 environment variables. 48334 48335 The following additional options may be supported: 48336 48337 -num 48338 48339 specifies an integer which is the screen size (in lines). 48340 +num 48341 48342 starts at line number num. 48343 +/pattern 48344 48345 Start at the first line matching the pattern, equivalent to 48346 executing the search forward (/) command with the given pattern 48347 immediately after opening each file. 48348 48349 The following options from POSIX 1003.1-2008 (ISO/IEC 48350 9945-2009) may behave differently: 48351 48352 -e 48353 48354 has unspecified behavior. 48355 -i 48356 48357 has unspecified behavior. 48358 -n 48359 48360 has unspecified behavior. 48361 -p 48362 48363 Either clear the whole screen before displaying any text 48364 (instead of the usual scrolling behavior), or provide the 48365 behavior specified by POSIX 1003.1-2008 (ISO/IEC 9945-2009). In 48366 the latter case, the syntax is "-p command". 48367 -t 48368 48369 has unspecified behavior. 48370 48371 The more command need not support the following interactive 48372 commands: 48373 48374 g 48375 G 48376 u 48377 control u 48378 control f 48379 newline 48380 j 48381 k 48382 r 48383 R 48384 m 48385 ' (return to mark) 48386 /! 48387 ? 48388 N 48389 :e 48390 :t 48391 control g 48392 ZZ 48393 48394 Rationale 48395 48396 The +num and +/string options are deprecated in SUSv2, and have 48397 been removed in POSIX 1003.1-2008 (ISO/IEC 9945-2009); however 48398 this specification continues to specify them because the 48399 publicly available util-linux package does not support the 48400 replacement (-p command). The +command option as found in SUSv2 48401 is more general than is specified here, but the util-linux 48402 package appears to only support the more specific +num and 48403 +/string forms. 48404 48405 mount 48406 48407 Name 48408 48409 mount -- mount a file system 48410 48411 Synopsis 48412 48413 mount [-hV] 48414 mount [-a] [-fFnrsvw] [-t vfstype] 48415 mount [-fnrsvw] [-o options [,...]] [device | dir] 48416 mount [-fnrsvw] [-t vfstype] [-o options] device dir 48417 48418 Description 48419 48420 As described in POSIX 1003.1-2008 (ISO/IEC 9945-2009), all 48421 files in the system are organized in a directed graph, known as 48422 the file hierarchy, rooted at /. These files can be spread out 48423 over several underlying devices. The mount command shall attach 48424 the file system found on some underlying device to the file 48425 hierarchy. 48426 48427 Options 48428 48429 -v 48430 48431 invoke verbose mode. The mount command shall provide diagnostic 48432 messages on stdout. 48433 -a 48434 48435 mount all file systems (of the given types) mentioned in 48436 /etc/fstab. 48437 -F 48438 48439 If the -a option is also present, fork a new incarnation of 48440 mount for each device to be mounted. This will do the mounts on 48441 different devices or different NFS servers in parallel. 48442 -f 48443 48444 cause everything to be done except for the actual system call; 48445 if it's not obvious, this `fakes' mounting the file system. 48446 -n 48447 48448 mount without writing in /etc/mtab. This is necessary for 48449 example when /etc is on a read-only file system. 48450 -s 48451 48452 ignore mount options not supported by a file system type. Not 48453 all file systems support this option. 48454 -r 48455 48456 mount the file system read-only. A synonym is -o ro. 48457 -w 48458 48459 mount the file system read/write. (default) A synonym is -o rw. 48460 -L label 48461 48462 If the file /proc/partitions is supported, mount the partition 48463 that has the specified label. 48464 -U uuid 48465 48466 If the file /proc/partitions is supported, mount the partition 48467 that has the specified uuid. 48468 -t vfstype 48469 48470 indicate a file system type of vfstype. 48471 48472 More than one type may be specified in a comma separated list. 48473 The list of file system types can be prefixed with no to 48474 specify the file system types on which no action should be 48475 taken. 48476 -o 48477 48478 options are specified with a -o flag followed by a 48479 comma-separated string of options. Some of these options are 48480 only useful when they appear in the /etc/fstab file. The 48481 following options apply to any file system that is being 48482 mounted: 48483 48484 async 48485 48486 perform all I/O to the file system asynchronously. 48487 atime 48488 48489 update inode access time for each access. (default) 48490 auto 48491 48492 in /etc/fstab, indicate the device is mountable with -a. 48493 defaults 48494 48495 use default options: rw, suid, dev, exec, auto, nouser, async. 48496 dev 48497 48498 interpret character or block special devices on the file 48499 system. 48500 exec 48501 48502 permit execution of binaries. 48503 noatime 48504 48505 do not update file access times on this file system. 48506 noauto 48507 48508 in /etc/fstab, indicates the device is only explicitly 48509 mountable. 48510 nodev 48511 48512 do not interpret character or block special devices on the file 48513 system. 48514 noexec 48515 48516 do not allow execution of any binaries on the mounted file 48517 system. 48518 nosuid 48519 48520 do not allow set-user-identifier or set-group-identifier bits 48521 to take effect. 48522 nouser 48523 48524 forbid an unprivileged user to mount the file system. (default) 48525 remount 48526 48527 remount an already-mounted file system. This is commonly used 48528 to change the mount options for a file system, especially to 48529 make a read-only file system writable. 48530 ro 48531 48532 mount the file system read-only. 48533 rw 48534 48535 mount the file system read-write. 48536 suid 48537 48538 allow set-user-identifier or set-group-identifier bits to take 48539 effect. 48540 sync 48541 48542 do all I/O to the file system synchronously. 48543 user 48544 48545 allow an unprivilieged user to mount the file system. This 48546 option implies the options noexec, nosuid, nodev unless 48547 overridden by subsequent options. 48548 48549 LSB Deprecated Options 48550 48551 The behaviors specified in this section are expected to 48552 disappear from a future version of the LSB; applications should 48553 only use the non-LSB-deprecated behaviors. 48554 48555 -V 48556 48557 output version and exit. 48558 48559 msgfmt 48560 48561 Name 48562 48563 msgfmt -- create a message object from a message file 48564 48565 Synopsis 48566 48567 msgfmt [options...] filename... 48568 48569 Description 48570 48571 The msgfmt command generates a binary message catalog from a 48572 textual translation description. Message catalogs, or message 48573 object files, are stored in files with a .mo extension. 48574 48575 Note: The format of message object files is not guaranteed 48576 to be portable. Message catalogs should always be generated 48577 on the target architecture using the msgfmt command. 48578 48579 The source message files, otherwise known as portable object 48580 files, have a .po extension. 48581 48582 The filename operands shall be portable object files. The .po 48583 file contains messages to be displayed to users by system 48584 utilities or by application programs. The portable object files 48585 are text files, and the messages in them can be rewritten in 48586 any language supported by the system. 48587 48588 If any filename is -, a portable object file shall be read from 48589 the standard input. 48590 48591 The msgfmt command interprets data as characters according to 48592 the current setting of the LC_CTYPE locale category. 48593 48594 Options 48595 48596 -c, --check 48597 Detect and diagnose input file anomalies which might 48598 represent translation errors. The msgid and msgstr 48599 strings are studied and compared. It is considered 48600 abnormal that one string starts or ends with a newline 48601 while the other does not. 48602 48603 If the message is flagged as c-format (see Comment 48604 Handling), check that the msgid string and the msgstr 48605 translation have the same number of % format specifiers, 48606 with matching types. 48607 48608 -D directory, --directory=directory 48609 Add directory to list for input files search. If 48610 filename is not an absolute pathname and filename cannot 48611 be opened, search for it in directory. This option may 48612 be repeated. Directories shall be searched in order, 48613 with the leftmost directory searched first. 48614 48615 -f, --use-fuzzy 48616 Use entries marked as fuzzy in output. If this option is 48617 not specified, such entries are not included into the 48618 output. See Comment Handling below. 48619 48620 -o output-file, --output-file=output-file 48621 Specify the output file name as output-file. If multiple 48622 domains or duplicate msgids in the .po file are present, 48623 the behavior is unspecified. If output-file is -, output 48624 is written to standard output. 48625 48626 --strict 48627 Ensure that all output files have a .mo extension. 48628 Output files are named either by the -o (or 48629 --output-file) option, or by domains found in the input 48630 files. 48631 48632 -v, --verbose 48633 Print additional information to the standard error, 48634 including the number of translated strings processed. 48635 48636 Operands 48637 48638 The filename operands are treated as portable object files. The 48639 format of portable object files is defined in EXTENDED 48640 DESCRIPTION. 48641 48642 Standard Input 48643 48644 The standard input is not used unless a filename operand is 48645 specified as "-". 48646 48647 Environment Variables 48648 48649 LANGUAGE 48650 48651 Specifies one or more locale names. 48652 LANG 48653 48654 Specifies locale name. 48655 LC_ALL 48656 48657 Specifies locale name for all categories. If defined, overrides 48658 LANG, LC_CTYPE and LC_MESSAGES. 48659 LC_CTYPE 48660 48661 Determine the locale for the interpretation of sequences of 48662 bytes of text data as characters (for example, single-byte as 48663 opposed to multi-byte characters in arguments and input files). 48664 LC_MESSAGES 48665 48666 Specifies messaging locale, and if present overrides LANG for 48667 messages. 48668 48669 Standard Output 48670 48671 The standard output is not used unless the option-argument of 48672 the -o option is specified as -. 48673 48674 Extended Description 48675 48676 The format of portable object files (.po files) is defined as 48677 follows. Each .po file contains one or more lines, with each 48678 line containing either a comment or a statement. Comments start 48679 the line with a hash mark (#) and end with the newline 48680 character. Empty lines, or lines containing only white-space, 48681 shall be ignored. Comments can in certain circumstances alter 48682 the behavior of msgfmt. See Comment Handling below for details 48683 on comment processing. The format of a statement is: 48684 48685 directive value 48686 48687 Each directive starts at the beginning of the line and is 48688 separated from value by white space (such as one or more space 48689 or tab characters). The value consists of one or more quoted 48690 strings separated by white space. If two or more strings are 48691 specified as value, they are normalized into single string 48692 using the string normalization syntax specified in ISO C 48693 (1999). The following directives are supported: 48694 48695 domain domainname 48696 48697 msgid message_identifier 48698 48699 msgid_plural untranslated_string_plural 48700 48701 msgstr message_string 48702 48703 msgstr[n] message_string 48704 48705 The behavior of the domain directive is affected by the options 48706 used. See OPTIONS for the behavior when the -o option is 48707 specified. If the -o option is not specified, the behavior of 48708 the domain directive is as follows: 48709 48710 1. All msgids from the beginning of each .po file to the first 48711 domain directive are put into a default message object 48712 file, messages (or messages.mo if the --strict option is 48713 specified). 48714 2. When msgfmt encounters a domain domainname directive in the 48715 .po file, all following msgids until the next domain 48716 directive are put into the message object file domainname 48717 (or domainname.mo if --strict option is specified). 48718 3. Duplicate msgids are defined in the scope of each domain. 48719 That is, a msgid is considered a duplicate only if the 48720 identical msgid exists in the same domain. 48721 4. All duplicate msgids are ignored. 48722 48723 The msgid directive specifies the value of a message identifier 48724 associated with the directive that follows it. The msgid_plural 48725 directive specifies the plural form message specified to the 48726 plural message handling functions ngettext(), dngettext() or 48727 dcngettext(). The message_identifier string identifies a target 48728 string to be used at retrieval time. Each statement containing 48729 a msgid directive shall be followed by a statement containing a 48730 msgstr directive or msgstr[n] directives. 48731 48732 The msgstr directive specifies the target string associated 48733 with the message_identifier string declared in the immediately 48734 preceding msgid directive. 48735 48736 The msgstr[n] (where n = 0, 1, 2, ...) directive specifies the 48737 target string to be used with plural form handling functions 48738 ngettext(), dngettext() and dcngettext(). 48739 48740 Message strings can contain the following escape sequences: 48741 48742 Table 17-1. Escape Sequences 48743 \n newline 48744 \t tab 48745 \v vertical tab 48746 \b backspace 48747 \r carriage return 48748 \f formfeed 48749 \\ backslash 48750 \" double quote 48751 \ddd octal bit pattern 48752 \xHH hexadecimal bit pattern 48753 48754 Comment Handling 48755 48756 Comments are introduced by a #, and continue to the end of the 48757 line. The second character (i.e. the character following the #) 48758 has special meaning. Regular comments should follow a space 48759 character. Other comment types include: 48760 48761 # normal-comments 48762 48763 #. automatic-comments 48764 48765 #: reference... 48766 48767 #, flag 48768 48769 Automatic and reference comments are typically generated by 48770 external utilities, and are not specified by the LSB. The 48771 msgfmt command shall ignore such comments. 48772 48773 Note: Portable object files may be produced by unspecified 48774 tools. Some of the comment types described here may arise 48775 from the use of such tools. It is beyond the scope of this 48776 specification to describe these tools. 48777 48778 The #, comments require one or more flags separated by the 48779 comma (,) character. The following flags can be specified: 48780 48781 fuzzy 48782 48783 This flag shows that the following msgstr string might not be a 48784 correct translation. Only the translator (i.e. the individual 48785 undertaking the translation) can judge if the translation 48786 requires further modification, or is acceptable as is. Once 48787 satisfied with the translation, the translator then removes 48788 this fuzzy flag. 48789 48790 If this flag is specified, the msgfmt utility will not generate 48791 the entry for the immediately following msgid in the output 48792 message catalog, unless the --use-fuzzy is specified. 48793 c-format, no-c-format 48794 48795 The c-format flag indicates that the msgid string is used as 48796 format string by printf()-like functions. If the c-format flag 48797 is given for a string the msgfmt utility may perform additional 48798 tests to check the validity of the translation. 48799 48800 Plurals 48801 48802 The msgid entry with empty string ("") is called the header 48803 entry and is treated specially. If the message string for the 48804 header entry contains nplurals=value, the value indicates the 48805 number of plural forms. For example, if nplurals=4, there are 4 48806 plural forms. If nplurals is defined, there should be a 48807 plural=expression on the same line, separated by a semicolon 48808 (;) character. The expression is a C language expression to 48809 determine which version of msgstr[n] to be used based on the 48810 value of n, the last argument of ngettext(), dngettext() or 48811 dcngettext(). For example: 48812 nplurals=2; plural=n == 1 ? 0 : 1 48813 48814 indicates that there are 2 plural forms in the language; 48815 msgstr[0] is used if n == 1, otherwise msgstr[1] is used. 48816 Another example: 48817 nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2 48818 48819 indicates that there are 3 plural forms in the language; 48820 msgstr[0] is used if n == 1, msgstr[1] is used if n == 2, 48821 otherwise msgstr[2] is used. 48822 48823 If the header entry contains charset=codeset string, the 48824 codeset is used to indicate the codeset to be used to encode 48825 the message strings. If the output string's codeset is 48826 different from the message string's codeset, codeset conversion 48827 from the message strings's codeset to the output string's 48828 codeset will be performed upon the call of gettext(), 48829 dgettext(), dcgettext(), ngettext(), dngettext(), and 48830 dcngettext(). The output string's codeset is determined by the 48831 current locale's codeset (the return value of 48832 nl_langinfo(CODESET)) by default, and can be changed by the 48833 call of bind_textdomain_codeset(). 48834 48835 Exit Status 48836 48837 The following exit values are returned: 48838 48839 0 48840 48841 Successful completion. 48842 >0 48843 48844 An error occurred. 48845 48846 Application Usage 48847 48848 Neither msgfmt nor any gettext() function imposes a limit on 48849 the total length of a message. Installing message catalogs 48850 under the C locale is pointless, since they are ignored for the 48851 sake of efficiency. 48852 48853 Examples 48854 48855 Example 1: Examples of creating message objects from message 48856 files. 48857 48858 In this example module1.po, module2.po and module3.po are 48859 portable message object files. 48860 example% cat module1.po 48861 48862 # default domain "messages" 48863 48864 msgid "message one" 48865 48866 msgstr "mensaje número uno" 48867 48868 # 48869 48870 domain "help_domain" 48871 48872 msgid "help two" 48873 48874 msgstr "ayuda número dos" 48875 48876 # 48877 48878 domain "error_domain" 48879 48880 msgid "error three" 48881 48882 msgstr "error número tres" 48883 48884 example% cat module2.po 48885 48886 # default domain "messages" 48887 48888 msgid "message four" 48889 48890 msgstr "mensaje número cuatro" 48891 48892 # 48893 48894 domain "error_domain" 48895 48896 msgid "error five" 48897 48898 msgstr "error número cinco" 48899 48900 # 48901 48902 domain "window_domain" 48903 48904 msgid "window six" 48905 48906 msgstr "ventana número seises" 48907 48908 example% cat module3.po 48909 48910 # default domain "messages" 48911 48912 msgid "message seven" 48913 48914 msgstr "mensaje número siete" 48915 48916 The following command will produce the output files messages, 48917 help_domain, and error_domain. 48918 example% msgfmt module1.po 48919 48920 The following command will produce the output files 48921 messages.mo, help_domain.mo, error_domain.mo, and 48922 window_domain.mo. 48923 example% msgfmt module1.po module2.po 48924 48925 The following example will produce the output file hello.mo. 48926 example% msgfmt -o hello.mo module3.po 48927 48928 newgrp 48929 48930 Name 48931 48932 newgrp -- change group ID 48933 48934 Synopsis 48935 48936 newgrp [group] 48937 48938 Description 48939 48940 The newgrp command is as specified in POSIX 1003.1-2008 48941 (ISO/IEC 9945-2009), but with differences as listed below. 48942 48943 Differences 48944 48945 The -l option specified in POSIX 1003.1-2008 (ISO/IEC 48946 9945-2009) need not be supported. 48947 48948 od 48949 48950 Name 48951 48952 od -- dump files in octal and other formats 48953 48954 Synopsis 48955 48956 od [-abcdfilox] [-w width | --width-width] [-v] [-A 48957 address_base] [-j skip] [-n count] [-t type_string] [file...] 48958 od --traditional [options] [file] [[+]offset [.] [b]] [[+]label 48959 [.] [b]] 48960 48961 Description 48962 48963 The od command shall provide all of the madatory functionality 48964 specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), but with 48965 extensions and differences to the XSI optional behavior as 48966 listed below. 48967 48968 Extensions and Differences 48969 48970 -s 48971 unspecified behavior. 48972 48973 Note: Applications wishing to achieve the POSIX 1003.1-2008 48974 (ISO/IEC 9945-2009) behavior for -s should instead use -t 48975 d2. 48976 48977 -wwidth, --width[=width] 48978 each output line is limited to width bytes from the 48979 input. 48980 48981 --traditional 48982 accepts arguments in traditional form, see Traditional 48983 Usage below. 48984 48985 Note: The XSI optional behavior for offset handling 48986 described in POSIX 1003.1-2008 (ISO/IEC 9945-2009) is not 48987 supported unless the --traditional option is also specified. 48988 48989 Pre-POSIX and XSI Specifications 48990 48991 The LSB supports mixing options between the mandatory and XSI 48992 optional synopsis forms in POSIX 1003.1-2008 (ISO/IEC 48993 9945-2009). The LSB shall support the following options: 48994 48995 -a 48996 48997 is equivalent to -t a, selects named characters. 48998 -b 48999 49000 is equivalent to -t o1, selects octal bytes. 49001 -c 49002 49003 is equivalent to -t c, selects characters. 49004 -d 49005 49006 is equivalent to -t u2, selects unsigned decimal two byte 49007 units. 49008 -f 49009 49010 is equivalent to -t fF, selects floats. 49011 -i 49012 49013 is equivalent to -t d2, selects decimal two byte units. 49014 49015 Note: This usage may change in future releases; portable 49016 applications should use -t d2. 49017 49018 -l 49019 49020 is equivalent to -t d4, selects decimal longs. 49021 -o 49022 49023 is equivalent to -t o2, selects octal two byte units. 49024 -x 49025 49026 is equivalent to -t x2, selects hexadecimal two byte units. 49027 49028 Note that the XSI option -s need not be supported. 49029 49030 Traditional Usage 49031 49032 If the --traditional option is specified, there may be between 49033 zero and three operands specified. 49034 49035 If no operands are specified, then od shall read the standard 49036 input. 49037 49038 If there is exactly one operand, and it is an offset of the 49039 form [+]offset[.][b], then it shall be interpreted as specified 49040 in POSIX 1003.1-2008 (ISO/IEC 9945-2009). The file to be dumped 49041 shall be the standard input. 49042 49043 If there are exactly two operands, and they are both of the 49044 form [+]offset[.][b], then the first shall be treated as an 49045 offset (as above), and the second shall be a label, in the same 49046 format as the offset. If a label is specified, then the first 49047 output line produced for each input block shall be preceded by 49048 the input offset, cumulative across input files, of the next 49049 byte to be written, followed by the label, in parentheses. The 49050 label shall increment in the same manner as the offset. 49051 49052 If there are three operands, then the first shall be the file 49053 to dump, the second the offset, and the third the label. 49054 49055 Note: Recent versions of coreutils contain an od utility 49056 that conforms to POSIX 1003.1-2008 (ISO/IEC 9945-2009). 49057 However, in April 2005, this version was not in widespread 49058 use. A future version of this specification may remove the 49059 differences. 49060 49061 passwd 49062 49063 Name 49064 49065 passwd -- change user password 49066 49067 Synopsis 49068 49069 passwd [-x max] [-n min] [-w warn] [-i inact] name 49070 passwd {-l | -u} name 49071 49072 Description 49073 49074 passwd changes authentication information for user and group 49075 accounts, including passwords and password expiry details, and 49076 may be used to enable and disable accounts. Only a user with 49077 appropriate privilege may change the password for other users 49078 or modify the expiry information. 49079 49080 Options 49081 49082 -x max 49083 49084 sets the maximum number of days a password remains valid. 49085 -n min 49086 49087 sets the minimum number of days before a password may be 49088 changed. 49089 -w warn 49090 49091 sets the number of days warning the user will receive before 49092 their password will expire. 49093 -i inactive 49094 49095 disables an account after the password has been expired for the 49096 given number of days. 49097 -l 49098 49099 disables an account by changing the password to a value which 49100 matches no possible encrypted value. 49101 -u 49102 49103 re-enables an account by changing the password back to its 49104 previous value. 49105 49106 patch 49107 49108 Name 49109 49110 patch -- apply a diff file to an original 49111 49112 Description 49113 49114 patch is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 49115 but with extensions as listed below. 49116 49117 Extensions 49118 49119 --binary 49120 49121 reads and write all files in binary mode, except for standard 49122 output and /dev/tty. This option has no effect on 49123 POSIX-compliant systems. 49124 -u, --unified 49125 49126 interprets the patch file as a unified context diff. 49127 49128 pidof 49129 49130 Name 49131 49132 pidof -- find the process ID of a running program 49133 49134 Synopsis 49135 49136 pidof [-s] [-x] [-o omitpid...] program... 49137 49138 Description 49139 49140 Return the process ID of a process which is running the program 49141 named on the command line. 49142 49143 The pidof command is a system administration utility, see Path 49144 For System Administration Utilities. 49145 49146 Options 49147 49148 -s 49149 49150 instructs the program to only return one pid. 49151 -x 49152 49153 causes the program to also return process id's of shells 49154 running the named scripts. 49155 -o 49156 49157 omits processes with specified process id. 49158 49159 remove_initd 49160 49161 Name 49162 49163 remove_initd -- clean up init script system modifications 49164 introduced by install_initd 49165 49166 Synopsis 49167 49168 /usr/lib/lsb/remove_initd initd_file 49169 49170 Description 49171 49172 remove_initd processes the removal of the modifications made to 49173 a distribution's init script system by the install_initd 49174 program. This cleanup is performed in the preuninstall script 49175 of a package; however, the package manager is still responsible 49176 for removing the script from the repository. See also 49177 Installation and Removal of Init Scripts. 49178 49179 renice 49180 49181 Name 49182 49183 renice -- alter priority of running processes 49184 49185 Description 49186 49187 renice is as specified in POSIX 1003.1-2008 (ISO/IEC 49188 9945-2009), but with differences as listed below. 49189 49190 Differences 49191 49192 -n increment 49193 49194 has unspecified behavior. 49195 49196 sed 49197 49198 Name 49199 49200 sed -- stream editor 49201 49202 Description 49203 49204 sed is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 49205 but with differences as listed below. 49206 49207 LSB Differences 49208 49209 Certain aspects of internationalized regular expressions are 49210 optional; see Regular Expressions. 49211 49212 sendmail 49213 49214 Name 49215 49216 sendmail -- an electronic mail transport agent 49217 49218 Synopsis 49219 49220 /usr/sbin/sendmail [options] [address...] 49221 49222 Description 49223 49224 To deliver electronic mail (email), implementations shall 49225 provide the interface described here as a command named 49226 sendmail. This interface shall be the default delivery method 49227 for applications needing to transmit an email message. 49228 49229 This program sends an email message to one or more recipients, 49230 routing the message as necessary. This program is not intended 49231 as a user interface routine. 49232 49233 With no options, sendmail reads its standard input up to an 49234 end-of-file or a line consisting only of a single dot and sends 49235 a copy of the message found there to all of the addresses 49236 listed. It determines the network(s) to use based on the syntax 49237 and contents of the addresses. 49238 49239 If an address is preceded by a backslash, '\', it is 49240 unspecified whether the address is subject to local alias 49241 expansion. 49242 49243 The format of messages shall be as defined in RFC 2822:Internet 49244 Message Format. 49245 49246 Note: The required name sendmail was chosen for historical 49247 reasons, but the behaviors specified here are intended to 49248 reflect functionality which can be provided by a number of 49249 other implementations such as smail, exim and others. This 49250 specification does not require that the specific sendmail 49251 program be the implementation chosen to provide this 49252 functionality. 49253 49254 Options 49255 49256 -bm 49257 49258 read mail from standard input and deliver it to the recipient 49259 addresses. This is the default mode of operation. 49260 -bp 49261 49262 If the user has sufficient privilege, list information about 49263 messages currently in the mail queue. 49264 -bs 49265 49266 use the SMTP protocol as described in RFC 2821:Simple Mail 49267 Transfer Protocol; read SMTP commands on standard input and 49268 write SMTP responses on standard output. 49269 49270 In this mode, sendmail shall accept \r\n (CR-LF), as required 49271 by RFC 2821:Simple Mail Transfer Protocol, and \n (LF) line 49272 terminators. 49273 -F fullname 49274 49275 explicitly set the full name of the sender for incoming mail 49276 unless the message already contains a From: message header. 49277 49278 If the user running sendmail is not sufficiently trusted, then 49279 the actual sender may be indicated in the message, depending on 49280 the configuration of the agent. 49281 -f name 49282 49283 explicitly set the envelope sender address for incoming mail. 49284 If there is no From: header, the address specified in the From: 49285 header will also be set. 49286 49287 If the user running sendmail is not sufficiently trusted, then 49288 the actual sender shall be indicated in the message. 49289 -i 49290 49291 ignore dots alone on lines by themselves in incoming messages. 49292 If this options is not specified, a line consisting of a single 49293 dot shall terminate the input. If -bs is also used, the 49294 behavior is unspecified. 49295 -odb 49296 49297 deliver any mail in background, if supported; otherwise 49298 ignored. 49299 -odf 49300 49301 deliver any mail in foreground, if supported; otherwise 49302 ignored. 49303 -oem or -em 49304 49305 mail errors back to the sender. (default) 49306 -oep or -ep 49307 49308 write errors to the standard error output. 49309 -oeq or -eq 49310 49311 do not send notification of errors to the sender. This only 49312 works for mail delivered locally. 49313 -oi 49314 49315 is equivalent to -i. 49316 -om 49317 49318 indicate that the sender of a message should receive a copy of 49319 the message if the sender appears in an alias expansion. 49320 Ignored if aliases are not supported. 49321 -t 49322 49323 read the message to obtain recipients from the To:, Cc:, and 49324 Bcc: headers in the message instead of from the command 49325 arguments. If a Bcc: header is present, it is removed from the 49326 message unless there is no To: or Cc: header, in which case a 49327 Bcc: header with no data is created, in accordance with RFC 49328 2822:Internet Message Format. 49329 49330 If there are any operands, the recipients list is unspecified. 49331 49332 This option may be ignored when not in -bm mode (the default). 49333 49334 Note: It is recommended that applications use as few options 49335 as necessary, none if possible. 49336 49337 Exit status 49338 49339 The sendmail command returns an exit status indicating the 49340 results of the operation. The exit codes are as defined in 49341 . 49342 49343 EX_OK 49344 49345 successful completion on all addresses. Note this does not 49346 necessarily indicate successful delivery. 49347 EX_NOUSER 49348 49349 The user specified did not exist. 49350 EX_UNAVAILABLE 49351 49352 A required service or resource was unavailable. 49353 EX_USAGE 49354 49355 Command was invoked incorrectly, such as wrong number of 49356 arguments, syntax error in arguments, bad flags. 49357 EX_SOFTWARE 49358 49359 An internal sofware error was detected. Includes bad arguments. 49360 EX_OSERROR 49361 49362 An operating system error was detected. Includes failure to 49363 execute fork() or pipe(). 49364 EX_NOHOST 49365 49366 The host specified did not exist. 49367 EX_TEMPFAIL 49368 49369 Temporary failure. Used to indicate the message could not be 49370 sent immediately, perhaps because a connection could not be 49371 created, but the request can be retried. 49372 49373 seq 49374 49375 Name 49376 49377 seq -- generate a sequence of numbers 49378 49379 Synopsis 49380 49381 /usr/bin/seq [-f fmt_str] [-s sep_str] [first_num] [inc_num] 49382 last_num 49383 49384 Description 49385 49386 The seq command shall output a sequence of numbers from 49387 first_num to last_num, stepping by the increment inc_num. The 49388 first_num and last_num parameters may be omitted, and default 49389 to 1 even when first_num is greater than last_num. 49390 Floating-point values may be specified for first_num, inc_num, 49391 and last_num. 49392 49393 The fmt_str parameter is a floating point format string like 49394 the one used for the printf() function in C. 49395 49396 The sep_str parameter string separates the values that are 49397 output. The default is a newline character (/n). 49398 49399 Note: If first_num is less than last_num and inc_num is 49400 negative, or first_num is greater than last_num and inc_num 49401 is positive, seq shall not generate any output. 49402 49403 Standard Options 49404 49405 -f fmt_str 49406 49407 Format the numbers in the output sequence according to fmt_str, 49408 a floating point format string like the one used for the 49409 printf() function in C. 49410 -s sep_str 49411 49412 Separate the numbers in the output sequence with sep_str. The 49413 default separator string is a newline character (\n). 49414 first_num 49415 49416 The first number in the output sequence. Defaults to 1. May be 49417 a floating point value. 49418 inc_num 49419 49420 The increment for the output sequence. Defaults to 1. May be a 49421 floating point value. 49422 last_num 49423 49424 The last number in the output sequence. May be a floating point 49425 value. 49426 49427 sh 49428 49429 Name 49430 49431 sh -- shell, the standard command language interpreter 49432 49433 Description 49434 49435 The sh utility shall behave as specified in POSIX 1003.1-2008 49436 (ISO/IEC 9945-2009), but with extensions listed below. 49437 49438 Shell Invocation 49439 49440 The shell shall support an additional option, -l (the letter 49441 ell). If the -l option is specified, or if the first character 49442 of argument zero (the command name) is a '-', this invokation 49443 of the shell is a login shell. 49444 49445 An interactive shell, as specified in POSIX 1003.1-2008 49446 (ISO/IEC 9945-2009), that is also a login shell, or any shell 49447 if invoked with the -l option, shall, prior to reading from the 49448 input file, first read and execute commands from the file 49449 /etc/profile, if that file exists, and then from a file called 49450 ~/.profile, if such a file exists. 49451 49452 Note: This specification requires that the sh utility shall 49453 also read and execute commands in its current execution 49454 environment from all the shell scripts in the directory 49455 /etc/profile.d. Such scripts are read and executed as a part 49456 of reading and executing /etc/profile. 49457 49458 shutdown 49459 49460 Name 49461 49462 shutdown -- shut the system down 49463 49464 Synopsis 49465 49466 /sbin/shutdown [-t sec] [-h | -r] [-akfF] time 49467 [warning-message] 49468 /sbin/shutdown -c [warning-message] 49469 49470 Description 49471 49472 The shutdown command shall shut the system down in a secure way 49473 (first synopsis), or cancel a pending shutdown (second 49474 synopsis). When the shutdown is initiated, all logged-in users 49475 shall be notified immediately that the system is going down, 49476 and users shall be prevented from logging in to the system. The 49477 time specifies when the actual shutdown shall commence. See 49478 below for details. At the specified time all processes are 49479 first notified that the system is going down by the signal 49480 SIGTERM. After an interval (see -t) all processes shall be sent 49481 the signal SIGKILL. If neither the -h or the -r argument is 49482 specified, then the default behavior shall be to take the 49483 system to a runlevel where administrative tasks can be run. See 49484 also Run Levels. 49485 49486 Note: This is sometimes referred to as "single user mode". 49487 49488 The -h and -r options are mutually exclusive. If either the -h 49489 or -r options are specified, the system shall be halted or 49490 rebooted respectively. 49491 49492 Standard Options 49493 49494 -a 49495 49496 use access control. See below. 49497 -t sec 49498 49499 tell the system to wait sec seconds between sending processes 49500 the warning and the kill signal, before changing to another 49501 runlevel. The default period is unspecified. 49502 -k 49503 49504 do not really shutdown; only send the warning messages to 49505 everybody. 49506 -r 49507 49508 reboot after shutdown. 49509 -h 49510 49511 halt after shutdown. Actions after halting are unspecified 49512 (e.g. power off). 49513 -f 49514 49515 advise the system to skip file system consistency checks on 49516 reboot. 49517 -F 49518 49519 advise the system to force file system consistency checks on 49520 reboot. 49521 -c 49522 49523 cancel an already running shutdown. 49524 time 49525 49526 specify when to shut down. 49527 49528 The time argument shall have the following format: [now | 49529 [+]mins | hh:mm] If the format is hh:mm, hh shall specify the 49530 hour (1 or 2 digits) and mm is the minute of the hour (exactly 49531 two digits), and the shutdown shall commence at the next 49532 occurence of the specified time. If the format is mins (or 49533 +mins), where mins is a decimal number, shutdown shall commence 49534 in the specified number of minutes. The word now is an alias 49535 for +0. 49536 warning-message 49537 49538 specify a message to send to all users. 49539 49540 Access Control 49541 49542 If the shutdown utility is invoked with the -a option, it shall 49543 check that an authorized user is currently logged in on the 49544 system console. Authorized users are listed, one per line, in 49545 the file /etc/shutdown.allow. Lines in this file that begin 49546 with a '#' or are blank shall be ignored. 49547 49548 Note: The intent of this scheme is to allow a keyboard 49549 sequence entered on the system console (e.g. CTRL-ALT-DEL, 49550 or STOP-A) to automatically invoke shutdown -a, and can be 49551 used to prevent unauthorized users from shutting the system 49552 down in this fashion. 49553 49554 su 49555 49556 Name 49557 49558 su -- change user ID 49559 49560 Synopsis 49561 49562 su [options] [-] [username [ARGS]] 49563 49564 Description 49565 49566 The su command shall start a shell running with the real and 49567 effective user and group IDs of the user username. If username 49568 is not specified, su shall default to an unspecified user with 49569 all appropriate privileges. If the -s or --shell is not 49570 specified, the shell to be invoked shall be that specified for 49571 username in the user database (see getpwnam()), or /bin/sh if 49572 there is no shell specified in the user database. 49573 49574 If the - option is specified, or if the first operand is -, the 49575 environment for the shell shall be initialized as if the new 49576 shell was a login shell (see Shell Invocation). 49577 49578 If the invoking user does not have appropriate privileges, the 49579 su command shall prompt for a password and validate this before 49580 continuing. Invalid passwords shall produce an error message. 49581 The su command shall log in an unspecified manner all 49582 invokations, whether successful or unsuccessful. 49583 49584 Any operands specified after the username shall be passed to 49585 the invoked shell. 49586 49587 If the option - is not specified, and if the first operand is 49588 not -, the environemnt for the new shell shall be intialized 49589 from the current environment. If none of the -m, -p, or 49590 --preserve-environment options are specified, the environment 49591 may be modified in unspecified ways before invoking the shell. 49592 If any of the -m, -p, or --preserve-environment options are 49593 specified, the environment shall not be altered. 49594 49595 Note: Although the su command shall not alter the 49596 environment, the invoked shell may still alter it before it 49597 is ready to intepret any commands. 49598 49599 Standard Options 49600 49601 - 49602 the invoked shell shall be a login shell. 49603 49604 -c command, --command=command 49605 Invoke the shell with the option -c command. 49606 49607 -m, -p, --preserve-environment 49608 The current environment shall be passed to the invoked 49609 shell. If the environment variable SHELL is set, it 49610 shall specify the shell to invoke, if it matches an 49611 entry in /etc/shells. If there is no matching entry in 49612 /etc/shells, this option shall be ignored if the - 49613 option is also specified, or if the first operand is -. 49614 49615 -s shell, --shell=shell 49616 Invoke shell as the comamnd interpreter. The shell 49617 specified shall be present in /etc/shells. 49618 49619 sync 49620 49621 Name 49622 49623 sync -- flush file system buffers 49624 49625 Synopsis 49626 49627 sync 49628 49629 Description 49630 49631 Force changed blocks to disk, update the super block. 49632 49633 tar 49634 49635 Name 49636 49637 tar -- file archiver 49638 49639 Description 49640 49641 tar is as specified in SUSv2, but with differences as listed 49642 below. 49643 49644 Differences 49645 49646 Some elements of the Pattern Matching Notation are optional; 49647 see Pattern Matching Notation. 49648 49649 -h 49650 49651 doesn't dump symlinks; dumps the files they point to. 49652 -z 49653 49654 filters the archive through gzip. 49655 49656 umount 49657 49658 Name 49659 49660 umount -- unmount file systems 49661 49662 Synopsis 49663 49664 umount [-hV] 49665 umount -a [-nrv] [-t vfstype] 49666 umount [-nrv] device | dir... 49667 49668 Description 49669 49670 umount detaches the file system(s) mentioned from the file 49671 hierarchy. A file system is specified by giving the directory 49672 where it has been mounted. 49673 49674 Standard Options 49675 49676 -v 49677 49678 invokes verbose mode. 49679 -n 49680 49681 unmounts without writing in /etc/mtab. 49682 -r 49683 49684 tries to remount read-only if unmounting fails. 49685 -a 49686 49687 unmounts all of the file systems described in /etc/mtab except 49688 for the proc file system. 49689 -t vfstype 49690 49691 indicates that the actions should only be taken on file systems 49692 of the specified type. More than one type may be specified in a 49693 comma separated list. The list of file system types can be 49694 prefixed with no to specify the file system types on which no 49695 action should be taken. 49696 -f 49697 49698 forces unmount (in case of an unreachable NFS system). 49699 49700 LSB Deprecated Options 49701 49702 The behaviors specified in this section are expected to 49703 disappear from a future version of the LSB; applications should 49704 only use the non-LSB-deprecated behaviors. 49705 49706 -V 49707 49708 print version and exits. 49709 49710 useradd 49711 49712 Name 49713 49714 useradd -- create a new user or update default new user 49715 information 49716 49717 Synopsis 49718 49719 useradd [-c comment] [-d home_dir] [-g initial_group] [-G 49720 group...] [-m [-k skeleton_dir]] [-p passwd] [-r] [-s shell] 49721 [-u uid [-o]] login 49722 useradd -D [-g default_group] [-b default_home] [-s 49723 default_shell] 49724 49725 Description 49726 49727 When invoked without the -D option, and with appropriate 49728 privilege, useradd creates a new user account using the values 49729 specified on the command line and the default values from the 49730 system. The new user account will be entered into the system 49731 files as needed, the home directory will be created, and 49732 initial files copied, depending on the command line options. If 49733 the group named group does not exist, or the user names login 49734 already exists, or the user ID uid is already in use and no -o 49735 option is specified, then useradd shall issue a diagnostic 49736 message and exit with a non-zero exit status. 49737 49738 When invoked with the -D option, useradd will either display 49739 the current default values, or, with appropriate privilege, 49740 update the default values from the command line. If no options 49741 are specified, useradd displays the current default values. 49742 49743 The useradd command is a system administration utility, see 49744 Path For System Administration Utilities. 49745 49746 Standard Options 49747 49748 -c comment 49749 49750 specifies the new user's password file comment field value. 49751 -d home_dir 49752 49753 creates the new user using home_dir as the value for the user's 49754 login directory. The default is to append the login name to 49755 default_home and use that as the login directory name. 49756 -g initial_group 49757 49758 specifies the group name or number of the user's initial login 49759 group. The group name shall exist. A group number shall refer 49760 to an already existing group. If -g is not specified, the 49761 implementation will follow the normal user default for that 49762 system. This may create a new group or choose a default group 49763 that normal users are placed in. Applications which require 49764 control of the groups into which a user is placed should 49765 specify -g. 49766 -G group[,...] 49767 49768 specifies a list of supplementary groups which the user is also 49769 a member of. Each group is separated from the next by a comma, 49770 with no intervening whitespace. The groups are subject to the 49771 same restrictions as the group given with the -g option. The 49772 default is for the user to belong only to the initial group. 49773 -m [-k skeleton_dir] 49774 49775 specifies the user's home directory will be created if it does 49776 not exist. The files contained in skeleton_dir will be copied 49777 to the home directory if the -k option is used, otherwise the 49778 files contained in /etc/skel will be used instead. Any 49779 directories contained in skeleton_dir or /etc/skel will be 49780 created in the user's home directory as well. The -k option is 49781 only valid in conjunction with the -m option. The default is to 49782 not create the directory and to not copy any files. 49783 -p passwd 49784 49785 is the encrypted password, as returned by crypt(). The default 49786 is to disable the account. 49787 -r 49788 49789 creates a system account, that is, a user with a User ID in the 49790 range reserved for system account users. If there is not a User 49791 ID free in the reserved range the command will fail. 49792 -s shell 49793 49794 specifies the name of the user's login shell. The default is to 49795 leave this field blank, which causes the system to select the 49796 default login shell. 49797 -u uid [-o] 49798 49799 specifies the numerical value of the user's ID. This value 49800 shall be unique, unless the -o option is used. The value shall 49801 be non-negative. The default is the smallest ID value greater 49802 than 499 which is not yet used. 49803 49804 Change Default Options 49805 49806 -b default_home 49807 49808 specifies the initial path prefix for a new user's home 49809 directory. The user's name will be affixed to the end of 49810 default_home to create the new directory name if the -d option 49811 is not used when creating a new account. 49812 -g default_group 49813 49814 specifies the group name or ID for a new user's initial group. 49815 The named group shall exist, and a numerical group ID shall 49816 have an existing entry. 49817 -s default_shell 49818 49819 specifies the name of the new user's login shell. The named 49820 program will be used for all future new user accounts. 49821 -c comment 49822 49823 specifies the new user's password file comment field value. 49824 49825 Application Usage 49826 49827 The -D option will typically be used by system administration 49828 packages. Most applications should not change defaults which 49829 will affect other applications and users. 49830 49831 userdel 49832 49833 Name 49834 49835 userdel -- delete a user account and related files 49836 49837 Synopsis 49838 49839 userdel [-r] login 49840 49841 Description 49842 49843 Delete the user account named login. If there is also a group 49844 named login, this command may delete the group as well, or may 49845 leave it alone. If the user named login does not exist or is 49846 currently logged in, userdel shall issue a diagnostic message 49847 and exit with a non-zero exit status. 49848 49849 The userdel command is a system administration utility, see 49850 Path For System Administration Utilities. 49851 49852 Options 49853 49854 -r 49855 49856 removes files in the user's home directory along with the home 49857 directory itself. Files located in other file system will have 49858 to be searched for and deleted manually. 49859 49860 usermod 49861 49862 Name 49863 49864 usermod -- modify a user account 49865 49866 Synopsis 49867 49868 usermod [-c comment] [-d home_dir [ -m]] [-g initial_group] [-G 49869 group [,...]] [-l login_name] [-p passwd] [-s shell] [-u uid [ 49870 -o]] login 49871 49872 Description 49873 49874 The usermod command shall modify an entry in the user account 49875 database. 49876 49877 The usermod command is a system administration utility, see 49878 Path For System Administration Utilities. 49879 49880 Options 49881 49882 -c comment 49883 49884 specifies the new value of the user's password file comment 49885 field. 49886 -d home_dir 49887 49888 specifies the user's new login directory. If the -m option is 49889 given the contents of the current home directory will be moved 49890 to the new home directory, which is created if it does not 49891 already exist. 49892 -g initial_group 49893 49894 specifies the group name or number of the user's new initial 49895 login group. The group name shall exist. A group number shall 49896 refer to an already existing group. 49897 -G group,[...] 49898 49899 specifies a list of supplementary groups which the user is also 49900 a member of. Each group is separated from the next by a comma, 49901 with no intervening whitespace. The groups are subject to the 49902 same restrictions as the group given with the -g option. If the 49903 user is currently a member of a group which is not listed, the 49904 user will be removed from the group. 49905 -l login_name 49906 49907 changes the name of the user from login to login_name. Nothing 49908 else is changed. In particular, the user's home directory name 49909 should probably be changed to reflect the new login name. 49910 -p passwd 49911 49912 is the encrypted password, as returned by crypt(3). 49913 -s shell 49914 49915 specifies the name of the user's new login shell. Setting this 49916 field to blank causes the system to select the default login 49917 shell. 49918 -u uid [-o] 49919 49920 specifies the numerical value of the user's ID. This value 49921 shall be unique, unless the -o option is used. The value shall 49922 be non-negative. Any files which the user owns and which are 49923 located in the directory tree rooted at the user's home 49924 directory will have the file user ID changed automatically. 49925 Files outside of the user's home directory shall be altered 49926 manually. 49927 49928 xargs 49929 49930 Name 49931 49932 xargs -- build and execute command lines from standard input 49933 49934 Description 49935 49936 xargs is as specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), 49937 but with differences as listed below. 49938 49939 Differences 49940 49941 -E 49942 49943 has unspecified behavior. 49944 -I 49945 49946 has unspecified behavior. 49947 -L 49948 49949 has unspecified behavior. 49950 49951 Note: These options have been implemented in 49952 findutils-4.2.9, but this version of the utilities is not in 49953 widespread use as of April 2005. However, future versions of 49954 this specification will require support for these arguments. 49955 49956 zcat 49957 49958 Name 49959 49960 zcat -- uncompress files to standard output 49961 49962 Description 49963 49964 The zcat utility shall behave as described in POSIX 1003.1-2008 49965 (ISO/IEC 9945-2009), with differences listed below. 49966 49967 The Filesystem Hierarchy Standard requires that if zcat exists, 49968 it must be a symbolic or hard link to /bin/gzip. This 49969 specification additionally allows zcat to be a wrapper script 49970 which calls gzip -c -d. 49971 49972 Differences 49973 49974 The zcat utility shall write to standard output the 49975 uncompressed form of files that have been compressed using any 49976 of the compression methods supported by the gzip utility. It is 49977 the equivalent of gzip -c -d. Input files are not affected. 49978 49979 VII. Execution Environment 49980 49981 Table of Contents 49982 18. File System Hierarchy 49983 49984 18.1. /dev: Device Files 49985 18.2. /etc: Host-specific system configuration 49986 49987 18.2.1. File Naming Conventions 49988 49989 18.3. User Accounting Databases 49990 18.4. Path For System Administration Utilities 49991 49992 19. Additional Recommendations 49993 49994 19.1. Recommendations for applications on ownership and 49995 permissions 49996 49997 19.1.1. Directory Write Permissions 49998 19.1.2. File Write Permissions 49999 19.1.3. File Read and execute Permissions 50000 19.1.4. SUID and SGID Permissions 50001 19.1.5. Privileged users 50002 19.1.6. Changing permissions 50003 19.1.7. Removable Media (Cdrom, Floppy, etc.) 50004 19.1.8. Installable applications 50005 50006 20. Additional Behaviors 50007 50008 20.1. Mandatory Optional Behaviors 50009 50010 20.1.1. Special Requirements 50011 50012 20.2. Optional Mandatory Behaviors 50013 20.3. Executable Scripts 50014 50015 21. Localization 50016 50017 21.1. Introduction 50018 21.2. Regular Expressions 50019 21.3. Pattern Matching Notation 50020 __________________________________________________________ 50021 50022 Chapter 18. File System Hierarchy 50023 50024 An LSB conforming implementation shall provide the mandatory 50025 portions of the file system hierarchy specified in the 50026 Filesystem Hierarchy Standard (FHS), together with any 50027 additional requirements made in this specification. 50028 50029 An LSB conforming application shall conform to the Filesystem 50030 Hierarchy Standard. 50031 50032 The FHS allows many components or subsystems to be optional. An 50033 application shall check for the existence of an optional 50034 component before using it, and should behave in a reasonable 50035 manner if the optional component is not present. 50036 50037 The FHS requirement to locate the operating system kernel in 50038 either / or /boot does not apply if the operating system kernel 50039 does not exist as a file in the file system. 50040 50041 The FHS specifies certain behaviors for a variety of commands 50042 if they are present (for example, ping or python). However, 50043 conforming applications shall not rely on any commands beyond 50044 those required by this specification. The mere existence of a 50045 command may not be used as an indication that the command 50046 behaves in any particular way. 50047 50048 The following directories or links need not be present: 50049 /etc/X11 /usr/bin/X11 /usr/lib/X11 /proc 50050 __________________________________________________________ 50051 50052 18.1. /dev: Device Files 50053 50054 The devices described in Chapter 6. "Operating System Specific 50055 Annex", Section 6.1. "Linux", subsection 6.1.3. "/dev: Devices 50056 and special files" in the Filesystem Hierarchy Standard are 50057 required on an LSB conforming system. Other devices may also 50058 exist in /dev. Device names may exist as symbolic links to 50059 other device nodes located in /dev or subdirectories of /dev. 50060 There is no requirement concerning major/minor number values. 50061 __________________________________________________________ 50062 50063 18.2. /etc: Host-specific system configuration 50064 50065 In addition to the requirements for /etc in the Filesystem 50066 Hierarchy Standard, an LSB conforming system shall also provide 50067 the following directories or symbolic links to directories: 50068 50069 /etc/cron.d 50070 50071 A directory containing extended crontab files; see Cron Jobs. 50072 /etc/cron.daily 50073 50074 A directory containing shell scripts to be executed once a day; 50075 see Cron Jobs. 50076 /etc/cron.hourly 50077 50078 A directory containing shell scripts to be executed once per 50079 hour; see Cron Jobs. 50080 /etc/cron.monthly 50081 50082 A directory containing shell scripts to be executed once per 50083 month; see Cron Jobs. 50084 /etc/cron.weekly 50085 50086 A directory containing shell scripts to be executed once a 50087 week; see Cron Jobs. 50088 /etc/init.d 50089 50090 A directory containing system initialization scripts; see 50091 Installation and Removal of Init Scripts. 50092 /etc/profile.d 50093 50094 A directory containing shell scripts. Script names should 50095 follow the same conventions as specified for cron jobs (see 50096 Cron Jobs, but should have the suffix .sh. The behavior is 50097 unspecified if a script is installed in this directory that 50098 does not have the suffix .sh. 50099 50100 The sh utility shall read and execute commands in its current 50101 execution environment from all the shell scripts in this 50102 directory that have the suffix .sh when invoked as an 50103 interactive login shell, or if the -l (the letter ell) is 50104 specified (see Shell Invocation). 50105 50106 Future Directions: These directories are required at this 50107 version of the LSB since there is not yet an agreed method 50108 for abstracting the implementation so that applications need 50109 not be aware of these locations during installation. 50110 __________________________________________________________ 50111 50112 18.2.1. File Naming Conventions 50113 50114 Conforming implementations and applications installing files 50115 into any of the above locations under /etc may only use 50116 filenames from the following managed namespaces: 50117 50118 * Assigned names. Such names must be chosen from the 50119 character set [a-z0-9]. In order to avoid conflicts these 50120 names shall be registered. This specification establishes a 50121 registry of provider, package and script names which is 50122 maintained at the Linux Assigned Names and Numbers 50123 Authority (LANANA). See www.lanana.org to register names or 50124 look up already registered names. 50125 50126 Note: Commonly used names should be registered to avoid 50127 conflicts and promote name reuse across distributions. 50128 Project developers are encouraged to reserve names with the 50129 LANANA as early as possible as registration is on a 50130 first-come, first-served basis. 50131 * Hierarchical names. Script names in this category take the 50132 form: --...-, where name is taken from 50133 the character set [a-z0-9], and where there may be one or 50134 more components. may either be an LSB 50135 provider name registered with the LANANA, or it may be a 50136 domain name registered to the provider in the DNS system, 50137 containing at least one '.' (e.g. "debian.org", 50138 "staroffice.sun.com"). The LSB provider name registered 50139 with the LANANA shall only consist of the ASCII characters 50140 [a-z0-9]. 50141 * Reserved names. Names that begin with the character '_' are 50142 reserved for distribution use only. Names in this form 50143 should be used for essential system packages only. 50144 50145 Note: As this specification cannot enforce rules for 50146 applications which do not choose to conform to it, 50147 conforming applications need to be aware that the managed 50148 namespaces may have been polluted with unregistered 50149 filenames and should check for namespace collisions and take 50150 appropriate steps if they occur. 50151 50152 In general, if a package or system script is likely to be 50153 used on multiple systems, the package developers or the 50154 distribution should register the name through the LANANA, 50155 and distributions should strive to use the same name 50156 whenever possible. For applications which may not be 50157 essential or may not be commonly installed, the hierarchical 50158 namespace may be more appropriate. An advantage to the 50159 hierarchical namespace is that there is no need to consult 50160 with the LANANA before using a specific name. 50161 50162 Short names are highly desirable, since system 50163 administrators may wish to manually start and stop services. 50164 Given this, they should be standardized on a per-package 50165 basis. This is the rationale behind having the LANANA 50166 organization assign these names. The LANANA may be called 50167 upon to handle other namespace issues, such as 50168 package/prerequisites naming. 50169 __________________________________________________________ 50170 50171 18.3. User Accounting Databases 50172 50173 The Filesystem Hierarchy Standard specifies two optional 50174 locations for user accounting databases used by the getutent(), 50175 getutent_r(), getutxent(), getutxid(), getutxline(), and 50176 pututxline() functions. These are /var/run/utmp and 50177 /var/run/wtmp. 50178 50179 The LSB does not specify the format or structure of these 50180 files, or even if they are files at all. They should be used 50181 only as "magic cookies" to the utmpname() function. 50182 __________________________________________________________ 50183 50184 18.4. Path For System Administration Utilities 50185 50186 Certain utilities used for system administration (and other 50187 privileged commands) may be stored in /sbin, /usr/sbin, and 50188 /usr/local/sbin. Applications requiring to use commands 50189 identified as system administration utilities should add these 50190 directories to their PATH. By default, as described in POSIX 50191 1003.1-2008 (ISO/IEC 9945-2009), standard utilities shall be 50192 found on the PATH returned by getconf PATH (or command -p 50193 getconf PATH to be guaranteed to invoke the correct version of 50194 getconf). 50195 __________________________________________________________ 50196 50197 Chapter 19. Additional Recommendations 50198 50199 19.1. Recommendations for applications on ownership and permissions 50200 50201 19.1.1. Directory Write Permissions 50202 50203 The application should not depend on having directory write 50204 permission in any directory except /tmp, /var/tmp, and the 50205 invoking user's home directory. 50206 50207 In addition, the application may store variable data in 50208 /var/opt/package, (where package is the name of the application 50209 package), if such a directory is created with appropriate 50210 permissions during the package installation. 50211 50212 For these directories the application should be able to work 50213 with directory write permissions restricted by the S_ISVTXT 50214 bit, implementing the restricted deletion mode as described for 50215 the XSI option for POSIX 1003.1-2008 (ISO/IEC 9945-2009). 50216 __________________________________________________________ 50217 50218 19.1.2. File Write Permissions 50219 50220 The application should not depend on file write permission to 50221 any file that it does not itself create. 50222 __________________________________________________________ 50223 50224 19.1.3. File Read and execute Permissions 50225 50226 The application should not depend on having read permission to 50227 every file and directory. 50228 __________________________________________________________ 50229 50230 19.1.4. SUID and SGID Permissions 50231 50232 The application should not depend on the set user ID or set 50233 group ID (the S_ISUID or S_ISGID permission bits) permissions 50234 of a file not packaged with the application. Instead, the 50235 distribution is responsible for assuming that all system 50236 commands have the required permissions and work correctly. 50237 50238 Rationale: In order to implement common security policies it 50239 is strongly advisable for applications to use the minimum 50240 set of security attributes necessary for correct operation. 50241 Applications that require substantial appropriate privilege 50242 are likely to cause problems with such security policies. 50243 __________________________________________________________ 50244 50245 19.1.5. Privileged users 50246 50247 In general, applications should not depend on running as a 50248 privileged user. This specification uses the term "appropriate 50249 privilege" throughout to identify operations that cannot be 50250 achieved without some special granting of additional privilege. 50251 50252 Applications that have a reason to run with appropriate 50253 privilege should outline this reason clearly in their 50254 documentation. Users of the application should be informed, 50255 that "this application demands security privileges, which could 50256 interfere with system security". 50257 50258 The application should not contain binary-only software that 50259 requires being run with appropriate privilege, as this makes 50260 security auditing harder or even impossible. 50261 __________________________________________________________ 50262 50263 19.1.6. Changing permissions 50264 50265 The application shall not change permissions of files and 50266 directories that do not belong to its own package. Should an 50267 application require that certain files and directories not 50268 directly belonging to the package have a particular ownership, 50269 the application shall document this requirement, and may fail 50270 during installation if the permissions on these files is 50271 inappropriate. 50272 __________________________________________________________ 50273 50274 19.1.7. Removable Media (Cdrom, Floppy, etc.) 50275 50276 Applications that expect to be runnable from removable media 50277 should not depend on logging in as a privileged user, and 50278 should be prepared to deal with a restrictive environment. 50279 Examples of such restrictions could be default mount options 50280 that disable set-user/group-ID attributes, disabling block or 50281 character-special files on the medium, or remapping the user 50282 and group IDs of files away from any privileged value. 50283 50284 Rationale: System vendors and local system administrators 50285 want to run applications from removable media, but want the 50286 possibility to control what the application can do. 50287 __________________________________________________________ 50288 50289 19.1.8. Installable applications 50290 50291 Where the installation of an application needs additional 50292 privileges, it must clearly document all files and system 50293 databases that are modified outside of those in /opt/pkg-name, 50294 /etc/opt/pkg-name, and /var/opt/pkg-name, other than those that 50295 may be updated by system logging or auditing activities. 50296 50297 Without this, the local system administrator would have to 50298 blindly trust a piece of software, particularly with respect to 50299 its security. 50300 __________________________________________________________ 50301 50302 Chapter 20. Additional Behaviors 50303 50304 20.1. Mandatory Optional Behaviors 50305 50306 This section specifies behaviors in which there is optional 50307 behavior in one of the standards on which this specification 50308 relies, and where this specification requires a specific 50309 behavior. 50310 50311 Note: This specification does not require the kernel to be 50312 Linux; the set of mandated options reflects current existing 50313 practice, but may be modified in future releases. 50314 50315 LSB conforming implementations shall support the following 50316 options defined within the POSIX 1003.1-2008 (ISO/IEC 50317 9945-2009): 50318 50319 _POSIX_FSYNC 50320 _POSIX_MAPPED_FILES 50321 _POSIX_MEMLOCK 50322 _POSIX_MEMLOCK_RANGE 50323 _POSIX_MEMORY_PROTECTION 50324 _POSIX_PRIORITY_SCHEDULING 50325 _POSIX_REALTIME_SIGNALS 50326 _POSIX_THREAD_ATTR_STACKADDR 50327 _POSIX_THREAD_ATTR_STACKSIZE 50328 _POSIX_THREAD_PROCESS_SHARED 50329 _POSIX_THREAD_SAFE_FUNCTIONS 50330 _POSIX_THREADS 50331 50332 The opendir() function shall consume a file descriptor in the 50333 same fashion as open(), and therefore may fail with EMFILE or 50334 ENFILE. 50335 50336 The START and STOP termios characters shall be changeable, as 50337 described as optional behavior in the "General Terminal 50338 Interface" section of the POSIX 1003.1-2008 (ISO/IEC 50339 9945-2009). 50340 50341 The access() function function shall fail with errno set to 50342 EINVAL if the amode argument contains bits other than those set 50343 by the bitwise inclusive OR of R_OK, W_OK, X_OK and F_OK. 50344 50345 The link() function shall require access to the existing file 50346 in order to succeed, as described as optional behavior in the 50347 POSIX 1003.1-2008 (ISO/IEC 9945-2009). 50348 50349 Calling unlink() on a directory shall fail. Calling link() 50350 specifying a directory as the first argument shall fail. See 50351 also unlink. 50352 50353 Note: Linux allows rename() on a directory without having 50354 write access, but this specification does not require this 50355 behavior. 50356 __________________________________________________________ 50357 50358 20.1.1. Special Requirements 50359 50360 LSB conforming systems shall enforce certain special additional 50361 restrictions above and beyond those required by POSIX 50362 1003.1-2008 (ISO/IEC 9945-2009). 50363 50364 Note: These additional restrictions are required in order to 50365 support the testing and certification programs associated 50366 with the LSB. In each case, these are values that defined 50367 macros must not have; conforming applications that use these 50368 values shall trigger a failure in the interface that is 50369 otherwise described as a "may fail". 50370 50371 The fcntl() function shall treat the "cmd" value -1 as invalid. 50372 50373 The whence value -1 shall be an invalid value for the lseek(), 50374 fseek() and fcntl() functions. 50375 50376 The value -5 shall be an invalid signal number. 50377 50378 If the sigaddset() or sigdelset() functions are passed an 50379 invalid signal number, they shall return with EINVAL. 50380 Implementations are only required to enforce this requirement 50381 for signal numbers which are specified to be invalid by this 50382 specification (such as the -5 mentioned above). 50383 50384 The mode value -1 to the access() function shall be treated as 50385 invalid. 50386 50387 A value of -1 shall be an invalid "_PC_..." value for 50388 pathconf(). 50389 50390 A value of -1 shall be an invalid "_SC..." value for sysconf(). 50391 50392 The nl_item value -1 shall be invalid for nl_langinfo(). 50393 50394 The value -1 shall be an invalid "_CS_..." value for confstr(). 50395 50396 The value "a" shall be an invalid mode argument to popen(). 50397 50398 The fcntl() function shall fail and set errno to EDEADLK if the 50399 cmd argument is F_SETLKW, and the lock is blocked by a lock 50400 from another process already blocked by the current process. 50401 50402 The opendir() function shall consume a file descriptor; the 50403 readdir() function shall fail and set errno to EBADF if the 50404 underlying file descriptor is closed. 50405 50406 The link() function shall not work across file systems, and 50407 shall fail and set errno to EXDEV as described as optional 50408 behavior in POSIX 1003.1-2008 (ISO/IEC 9945-2009). 50409 __________________________________________________________ 50410 50411 20.2. Optional Mandatory Behaviors 50412 50413 This section specifies behaviors that are mandatory in one of 50414 the standards on which this specification relies, but which are 50415 optional in this specification. 50416 50417 POSIX 1003.1-2008 (ISO/IEC 9945-2009) describes the behavior of 50418 the file access time, available as the st_atime field of the 50419 stat and stat64 structures. An LSB conforming implementation 50420 need not update this information every time a file is accessed. 50421 50422 Note: A subsequent edition of the POSIX standard no longer 50423 mandates updating of st_atime but the older edition is still 50424 the guiding standard for this specification, thus this 50425 exception is needed. 50426 __________________________________________________________ 50427 50428 20.3. Executable Scripts 50429 50430 An executable script is an executable file of which the first 50431 two characters are #! as defined in the portable character set. 50432 In POSIX 1003.1-2008 (ISO/IEC 9945-2009), this construct is 50433 undefined, but reserved for implementations which wish to 50434 provide this functionality. LSB conforming implementations 50435 shall support executable scripts. 50436 50437 A successful call to a function of the exec family with an 50438 executable script as the first parameter shall result in a new 50439 process, where the process image started is that of the 50440 interpreter. The path name of the interpreter follows the #! 50441 characters. 50442 50443 If the executable script has a first line 50444 50445 #! interpreter [arg] 50446 50447 then interpreter shall be called with an argument array 50448 consisting of an unspecified zeroth argument, followed by arg 50449 (if present), followed by a path name for the script, followed 50450 by the arguments following the zeroth argument in the exec call 50451 of the script. 50452 50453 The interpreter shall not perform any operations on the first 50454 line of an executable script. 50455 50456 The first line of the executable script shall meet all of the 50457 following criteria otherwise the results are unspecified: 50458 50459 1. Is of one of the forms: 50460 50461 #!interpreter 50462 #! interpreter 50463 #!interpreter arg 50464 #! interpreter arg 50465 50466 2. The interpreter argument is an absolute pathname of an 50467 executable file other than an executable script. 50468 3. Neither the interpreter argument nor the arg argument, if 50469 present, contain any quoting characters. 50470 4. Neither the interpreter argument nor the arg argument, if 50471 present, contain any whitespace characters. 50472 5. The length of the entire line is no longer than 80 bytes. 50473 50474 If the interpreter is required by this specification to be in a 50475 specfic named directory, a conforming application must use that 50476 path for interpreter, as implementations are not prohibited 50477 from having other, possibly non-conforming, versions of the 50478 same interpreter installed on the system. If the interpreter is 50479 a required command in this specification, but does not have a 50480 required path, the application should take special measures to 50481 insure the appropriate version is selected. If the interpreter 50482 is not a required command in this specification, the 50483 application must make appropriate provisions that the 50484 interpreter is available at the appropriate path. 50485 50486 Note: In case the path is not specified, it is recommended 50487 that an installation script for executable scripts use the 50488 standard PATH returned by a call to the getconf command with 50489 the argument PATH, combined with the command command to 50490 determine the location of a standard command. 50491 50492 For example to determine the location of the standard awk 50493 command: 50494 50495 PATH=`getconf PATH` command -v awk 50496 50497 The installation script should ensure that the returned 50498 pathname is an absolute pathname prior to use, since a shell 50499 builtin might be returned for some utilities. 50500 50501 Use of the common form #!/usr/bin/env interpreter is not 50502 recommended as the PATH will be unknown at execution time 50503 and an alternative version of interpreter might be selected. 50504 __________________________________________________________ 50505 50506 Chapter 21. Localization 50507 50508 21.1. Introduction 50509 50510 In order to install a message catalog, the installation 50511 procedure shall supply the message catalog in a format readable 50512 by the msgfmt command, which shall be invoked to compile the 50513 message catalog into an appropriate binary format on the target 50514 system. 50515 50516 Rationale: The original intent was to allow an application 50517 to contain the binary GNU MO format files. However, the 50518 format of these files is not officially stable, hence it is 50519 necessary to compile these catalogs on the target system. 50520 These binary catalogs may differ from architecture to 50521 architecture as well. 50522 50523 The resulting binary message catalog shall be located in the 50524 package's private area under /opt, and the application may use 50525 bindtextdomain() to specify this location. 50526 50527 Implementations shall support the POSIX and C locales as 50528 specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009). Other 50529 locales may be supported. 50530 50531 Implementations may define additional locale categories not 50532 defined by that standard. 50533 50534 Note: Implementations choosing additional locale categories 50535 should be aware of ISO/IEC TR14652 and are advised not to 50536 choose names that conflict with that specification. If 50537 implementations provide locale categories whose names are 50538 part of the FDCC set of ISO/IEC TR14652, they should behave 50539 as defined by that specification. 50540 __________________________________________________________ 50541 50542 21.2. Regular Expressions 50543 50544 Utilities that process regular expressions shall support Basic 50545 Regular Expressions and Extended Regular Expressions as 50546 specified in POSIX 1003.1-2008 (ISO/IEC 9945-2009), with the 50547 following exceptions: 50548 50549 Range expression (such as [a-z]) can be based on code point 50550 order instead of collating element order. 50551 50552 Equivalence class expression (such as [=a=]) and 50553 multi-character collating element expression (such as [.ch.]) 50554 are optional. 50555 50556 Handling of a multi-character collating element is optional. 50557 50558 This affects at least the following utilities: 50559 50560 * awk (see awk) 50561 * grep (see grep) (including egrep , see egrep) 50562 * sed (see sed) 50563 50564 It also affects the behavior of interfaces in the base 50565 libraries, including at least 50566 50567 * regexec() (see regexec) 50568 __________________________________________________________ 50569 50570 21.3. Pattern Matching Notation 50571 50572 Utilities that perform filename pattern matching (also known as 50573 Filename Globbing) shall do it as specified in POSIX 50574 1003.1-2008 (ISO/IEC 9945-2009), Pattern Matching Notation, 50575 with the following exceptions: 50576 50577 Pattern bracket expressions (such as [a-z]) can be based on 50578 code point order instead of collating element order. 50579 50580 Equivalence class expression (such as [=a=]) and 50581 multi-character collating element expression (such as [.ch.]) 50582 are optional. 50583 50584 Handling of a multi-character collating element is optional. 50585 50586 This affects at least the following utilities: cpio (cpio), 50587 find and tar (tar). 50588 50589 VIII. System Initialization 50590 50591 Table of Contents 50592 22. System Initialization 50593 50594 22.1. Cron Jobs 50595 22.2. Init Script Actions 50596 22.3. Comment Conventions for Init Scripts 50597 22.4. Installation and Removal of Init Scripts 50598 22.5. Run Levels 50599 22.6. Facility Names 50600 22.7. Script Names 50601 22.8. Init Script Functions 50602 __________________________________________________________ 50603 50604 Chapter 22. System Initialization 50605 50606 22.1. Cron Jobs 50607 50608 In addition to the individual user crontab files specified by 50609 POSIX 1003.1-2008 (ISO/IEC 9945-2009), which are located in 50610 /var/spool/cron as specified by the Filesystem Hierarchy 50611 Standard (FHS), the process that executes scheduled commands 50612 shall also process the following additional crontab files, 50613 which are in a different format (see below). /etc/crontab, 50614 /etc/cron.d/*. The installation of a package shall not modify 50615 the crontab file /etc/crontab, and shall not directly modify 50616 the user crontab files in /var/spool/cron/crontabs. but may use 50617 the crontab command to modify the latter. 50618 50619 If a package wishes to install a job that has to be executed 50620 periodically, it shall place an executable cron script in one 50621 of the following directories: 50622 50623 /etc/cron.hourly 50624 /etc/cron.daily 50625 /etc/cron.weekly 50626 /etc/cron.monthly 50627 50628 As these directory names suggest, the files within them are 50629 executed on a hourly, daily, weekly, or monthly basis, 50630 respectively, under the control of an entry in one of the 50631 system crontab files, at an unspecified time of day. See below 50632 for the rules concerning the names of cron scripts. 50633 50634 Note: It is recommended that cron scripts installed in any 50635 of these directories be script files rather than compiled 50636 binaries so that they may be modified by the local system 50637 administrator. Conforming applications may only install cron 50638 scripts which use an interpreter required by this 50639 specification or provided by this or another conforming 50640 application. 50641 50642 This specification does not define the concept of a package 50643 upgrade. Implementations may do different things when 50644 packages are upgraded, including not replacing a cron script 50645 if it marked as a configuration file, particularly if the 50646 cron script appears to have been modified since 50647 installation. In some circumstances, the cron script may not 50648 be removed when the package is uninstalled. Applications 50649 should design their installation procedure and cron scripts 50650 to be robust in the face of such behavior. In particular, 50651 cron scripts should not fail obscurely if run in unexpected 50652 circumstances. Testing for the existence of application 50653 binaries before executing them is suggested. 50654 50655 If a certain task has to be executed at other than the 50656 predefined frequencies, the package shall install a file 50657 /etc/cron.d/cron-name. The file shall have the same format as 50658 that described for the crontab command in POSIX 1003.1-2008 50659 (ISO/IEC 9945-2009), except that there shall be an additional 50660 field, username, before the name of the command to execute. For 50661 completeness, the seven fields shall be: 50662 50663 1. Minute [0,59] 50664 2. Hour [0,23] 50665 3. Day of the month [1,31] 50666 4. Month of the year [1,12] 50667 5. Day of the week [0,6] (with 0=Sunday) 50668 6. Username 50669 7. command [args ...] 50670 50671 This file shall be processed by the system automatically, with 50672 the named command being run at the specified time, as the 50673 specified username. 50674 50675 Applications installing files in these directories shall use 50676 the LSB naming conventions (see File Naming Conventions). 50677 __________________________________________________________ 50678 50679 22.2. Init Script Actions 50680 50681 Conforming applications which need to execute commands on 50682 changes to the system run level (including boot and shutdown), 50683 may install one or more init scripts. Init scripts provided by 50684 conforming applications shall accept a single argument which 50685 selects the action: 50686 50687 start start the service 50688 stop stop the service 50689 restart stop and restart the service if the service is already 50690 running, otherwise start the service 50691 try-restart restart the service if the service is already 50692 running 50693 reload cause the configuration of the service to be reloaded 50694 without actually stopping and restarting the service 50695 force-reload cause the configuration to be reloaded if the 50696 service supports this, otherwise restart the service if it is 50697 running 50698 status print the current status of the service 50699 50700 The start, stop, restart, force-reload, and status actions 50701 shall be supported by all init scripts; the reload and the 50702 try-restart actions are optional. Other init-script actions may 50703 be defined by the init script. 50704 50705 Init scripts shall ensure that they will behave sensibly if 50706 invoked with start when the service is already running, or with 50707 stop when not running, and that they do not kill 50708 similarly-named user processes. The best way to achieve this is 50709 to use the init-script functions provided by 50710 /lib/lsb/init-functions (see Init Script Functions) 50711 50712 If a service reloads its configuration automatically (as in the 50713 case of cron, for example), the reload action of the init 50714 script shall behave as if the configuration was reloaded 50715 successfully. The restart, try-restart, reload and force-reload 50716 actions may be atomic; that is if a service is known not to be 50717 operational after a restart or reload, the script may return an 50718 error without any further action. 50719 50720 Note: This specification does not define the concept of a 50721 package upgrade. Implementations may do different things 50722 when packages are upgraded, including not replacing an init 50723 script if it is marked as a configuration file, particularly 50724 if the file appears to have been modified since 50725 installation. In some circumstances, the init script may not 50726 be removed when the package is uninstalled. Applications 50727 should design their installation procedure and init scripts 50728 to be robust in the face of such behavior. In particular, 50729 init scripts should not fail obscurely if run in unexpected 50730 circumstances. Testing for the existence of application 50731 binaries before executing them is suggested. 50732 50733 If the status action is requested, the init script will return 50734 the following exit status codes. 50735 50736 0 program is running or service is OK 50737 1 program is dead and /var/run pid file exists 50738 2 program is dead and /var/lock lock file exists 50739 3 program is not running 50740 4 program or service status is unknown 50741 5-99 reserved for future LSB use 50742 100-149 reserved for distribution use 50743 150-199 reserved for application use 50744 200-254 reserved 50745 50746 For all other init-script actions, the init script shall return 50747 an exit status of zero if the action was successful. Otherwise, 50748 the exit status shall be non-zero, as defined below. In 50749 addition to straightforward success, the following situations 50750 are also to be considered successful: 50751 50752 * restarting a service (instead of reloading it) with the 50753 force-reload argument 50754 * running start on a service already running 50755 * running stop on a service already stopped or not running 50756 * running restart on a service already stopped or not running 50757 * running try-restart on a service already stopped or not 50758 running 50759 50760 In case of an error while processing any init-script action 50761 except for status, the init script shall print an error message 50762 and exit with a non-zero status code: 50763 50764 1 generic or unspecified error (current practice) 50765 2 invalid or excess argument(s) 50766 3 unimplemented feature (for example, "reload") 50767 4 user had insufficient privilege 50768 5 program is not installed 50769 6 program is not configured 50770 7 program is not running 50771 8-99 reserved for future LSB use 50772 100-149 reserved for distribution use 50773 150-199 reserved for application use 50774 200-254 reserved 50775 50776 Error and status messages should be printed with the logging 50777 functions (see Init Script Functions) log_success_msg(), 50778 log_failure_msg() and log_warning_msg(). Scripts may write to 50779 standard error or standard output, but implementations need not 50780 present text written to standard error/output to the user or do 50781 anything else with it. 50782 50783 Note: Since init scripts may be run manually by a system 50784 administrator with non-standard environment variable values 50785 for PATH, USER, LOGNAME, etc., init scripts should not 50786 depend on the values of these environment variables. They 50787 should set them to some known/default values if they are 50788 needed. 50789 __________________________________________________________ 50790 50791 22.3. Comment Conventions for Init Scripts 50792 50793 Conforming applications may install one or more init scripts. 50794 These init scripts must be activated by invoking the 50795 install_initd command. Prior to package removal, the changes 50796 applied by install_initd must be undone by invoking 50797 remove_initd. See Installation and Removal of Init Scripts for 50798 more details. 50799 50800 install_initd and remove_initd determine actions to take by 50801 decoding a specially formatted block of lines in the script. 50802 This block shall be delimited by the lines 50803 ### BEGIN INIT INFO 50804 ### END INIT INFO 50805 50806 The delimiter lines may contain trailing whitespace, which 50807 shall be ignored. All lines inside the block shall begin with a 50808 hash character '#' in the first column, so the shell interprets 50809 them as comment lines which do not affect operation of the 50810 script. The lines shall be of the form: 50811 # {keyword}: arg1 [arg2...] 50812 50813 with exactly one space character between the '#' and the 50814 keyword, with a single exception. In lines following a line 50815 containing the Description keyword, and until the next keyword 50816 or block ending delimiter is seen, a line where the '#' is 50817 followed by more than one space or a tab character shall be 50818 treated as a continuation of the previous line. 50819 50820 The information extracted from the block is used by the 50821 installation tool or the init-script system to assure that init 50822 scripts are run in the correct order. It is unspecified whether 50823 the information is evaluated only when install_initd runs, when 50824 the init scripts are executed, or both. The information 50825 extracted includes run levels, defined in Run Levels, and boot 50826 facilities, defined in Facility Names. 50827 50828 The following keywords, with their arguments, are defined: 50829 50830 Provides: boot_facility_1 [boot_facility_2...] 50831 boot facilities provided by this init script. When an 50832 init script is run with a start argument, the boot 50833 facility or facilities specified by the Provides keyword 50834 shall be deemed present and hence init scripts which 50835 require those boot facilities should be started later. 50836 When an init script is run with a stop argument, the 50837 boot facilities specified by the Provides keyword are 50838 deemed no longer present. 50839 50840 Required-Start: boot_facility_1 [boot_facility_2...] 50841 facilities which must be available during startup of 50842 this service. The init-script system should insure init 50843 scripts which provide the Required-Start facilities are 50844 started before starting this script. 50845 50846 Required-Stop: boot_facility_1 [boot_facility_2...] 50847 facilities which must be available during the shutdown 50848 of this service. The init-script system should avoid 50849 stopping init scripts which provide the Required-Stop 50850 facilities until this script is stopped. 50851 50852 Should-Start: boot_facility_1 [boot_facility_2...] 50853 facilities which, if present, should be available during 50854 startup of this service. This allows for weak 50855 dependencies which do not cause the service to fail if a 50856 facility is not available. The service may provide 50857 reduced functionality in this situation. Conforming 50858 applications should not rely on the existence of this 50859 feature. 50860 50861 Should-Stop: boot_facility_1 [boot_facility_2...] 50862 facilities which should be available during shutdown of 50863 this service. 50864 50865 Default-Start: run_level_1 [run_level_2...], Default-Stop: 50866 run_level_1 [run_level_2...] 50867 which run levels should by default run the init script 50868 with a start (stop) argument to start (stop) the 50869 services controlled by the init script. 50870 50871 For example, if a service should run in runlevels 3, 4, 50872 and 5 only, specify "Default-Start: 3 4 5" and 50873 "Default-Stop: 0 1 2 6". 50874 50875 Short-Description: short_description 50876 provide a brief description of the actions of the init 50877 script. Limited to a single line of text. 50878 50879 Description: multiline_description 50880 provide a more complete description of the actions of 50881 the init script. May span mulitple lines. In a multiline 50882 description, each continuation line shall begin with a 50883 '#' followed by tab character or a '#' followed by at 50884 least two space characters. The multiline description is 50885 terminated by the first line that does not match this 50886 criteria. 50887 50888 Additional keywords may be defined in future versions of this 50889 specification. Also, implementations may define local 50890 extensions by using the prefix X-implementor. For example, 50891 X-RedHat-foobardecl, or X-Debian-xyzzydecl. 50892 50893 Example: 50894 50895 ### BEGIN INIT INFO 50896 # Provides: lsb-ourdb 50897 # Required-Start: $local_fs $network $remote_fs 50898 # Required-Stop: $local_fs $network $remote_fs 50899 # Default-Start: 2 3 4 5 50900 # Default-Stop: 0 1 6 50901 # Short-Description: start and stop OurDB 50902 # Description: OurDB is a very fast and reliable database 50903 # engine used for illustrating init scripts 50904 ### END INIT INFO 50905 50906 The comment conventions described in this section are only 50907 required for init scripts installed by conforming applications. 50908 Conforming runtime implementations are not required to use this 50909 scheme in their system provided init scripts. 50910 50911 Note: This specification does not require, but is designed 50912 to allow, the development of a system which runs init 50913 scripts in parallel. Hence, enforced-serialization of 50914 scripts is avoided unless it is explicitly necessary. 50915 __________________________________________________________ 50916 50917 22.4. Installation and Removal of Init Scripts 50918 50919 Conforming applications may install one or more initialization 50920 scripts (or init scripts). An init script shall be installed in 50921 /etc/init.d (which may be a symbolic link to another location), 50922 by the package installer. 50923 50924 During the installer's post-install processing phase the 50925 program /usr/lib/lsb/install_initd must be called to activate 50926 the init script. Activation consists of arranging for the init 50927 script to be called in the correct order on system run-level 50928 changes (including system boot and shutdown), based on 50929 dependencies supplied in the init script (see Comment 50930 Conventions for Init Scripts). The install_initd command should 50931 be thought of as a wrapper which hides the implementation 50932 details; how any given implementation arranges for the init 50933 script to be called at the appropriate time is not specified. 50934 50935 Example: if an init script specified "Default-Start: 3 4 5" 50936 and "Default-Stop: 0 1 2 6", install_initd might create 50937 "start" symbolic links with names starting with 'S' in 50938 /etc/rc3.d, /etc/rc4.d and /etc/rc5.d and "stop" symbolic 50939 links with names starting with 'K' in /etc/rc0.d, 50940 /etc/rc1.d, /etc/rc2.d and /etc/rc6.d. Such a scheme would 50941 be similar to the System V Init mechanism, but is by no 50942 means the only way this specification could be implemented. 50943 50944 The install_initd command takes a single argument, the full 50945 pathname of the installed init script. The init script must 50946 already be installed in /etc/init.d. The install_initd command 50947 will not copy it there, only activate it once it has been 50948 installed. For example: 50949 50950 /usr/lib/lsb/install_initd /etc/init.d/example.com-coffeed 50951 50952 The install_initd command shall return an exit status of zero 50953 if the init-script activation was successful or if the init 50954 script was already activated. If the dependencies in the init 50955 script (see Comment Conventions for Init Scripts) cannot be 50956 met, an exit status of one shall be returned and the init 50957 script shall not be activated. 50958 50959 When a software package is removed, /usr/lib/lsb/remove_initd 50960 must be called to deactivate the init script. This must occur 50961 before the init script itself is removed, as the dependency 50962 information in the script may be required for successful 50963 completion. Thus the installer's pre-remove processing phase 50964 must call remove_initd, and pass the full pathname of the 50965 installed init script. The package installer is still 50966 responsible for removing the init script. For example: 50967 50968 /usr/lib/lsb/remove_initd /etc/init.d/example.com-coffeed 50969 50970 The remove_initd program shall return an exit status of zero if 50971 the init script has been successfully deactivated or if the 50972 init script is not activated. If another init script which 50973 depends on a boot facility provided by this init script is 50974 activated, an exit status of one shall be returned and the init 50975 script shall remain activated. The installer must fail on such 50976 an exit code so it does not subsequently remove the init 50977 script. 50978 50979 Note: This specification does not describe a mechanism for 50980 the system administrator to manipulate the run levels at 50981 which an init script is started or stopped. There is no 50982 assurance that modifying the comment block for this purpose 50983 will have the desired effect. 50984 __________________________________________________________ 50985 50986 22.5. Run Levels 50987 50988 The following run levels are specified for use by the 50989 Default-Start and Default-Stop actions defined in Comment 50990 Conventions for Init Scripts as hints to the install_initd 50991 command. Conforming implementations are not required to provide 50992 these exact run levels or give them the meanings described 50993 here, and may map any level described here to a different level 50994 which provides the equivalent functionality. Applications may 50995 not depend on specific run-level numbers. 50996 50997 0 halt 50998 1 single user mode 50999 2 multiuser with no network services exported 51000 3 normal/full multiuser 51001 4 reserved for local use, default is normal/full multiuser 51002 5 multiuser with a display manager or equivalent 51003 6 reboot 51004 51005 Note: These run levels were chosen as reflecting the most 51006 frequent existing practice, and in the absence of other 51007 considerations, implementors are strongly encouraged to 51008 follow this convention to provide consistency for system 51009 administrators who need to work with multiple distributions. 51010 __________________________________________________________ 51011 51012 22.6. Facility Names 51013 51014 Boot facilities are used to indicate dependencies in 51015 initialization scripts, as defined in Comment Conventions for 51016 Init Scripts. Facility names are assigned to scripts by the 51017 Provides: keyword. Facility names that begin with a dollar sign 51018 ('$') are reserved system facility names. 51019 51020 Note: Facility names are only recognized in the context of 51021 the init script comment block and are not available in the 51022 body of the init script. In particular, the use of the 51023 leading '$' character does not imply system facility names 51024 are subject to shell variable expansion, since they appear 51025 inside comments. 51026 51027 Conforming applications shall not provide facilities that begin 51028 with a dollar sign. Implementations shall provide the following 51029 facility names: 51030 51031 $local_fs 51032 51033 all local file systems are mounted 51034 $network 51035 51036 basic networking support is available. Example: a server 51037 program could listen on a socket. 51038 $named 51039 51040 IP name-to-address translation, using the interfaces described 51041 in this specification, are available to the level the system 51042 normally provides them. Example: if a DNS query daemon normally 51043 provides this facility, then that daemon has been started. 51044 $portmap 51045 51046 daemons providing SunRPC/ONCRPC portmapping service as defined 51047 in RFC 1833: Binding Protocols for ONC RPC Version 2 (if 51048 present) are running. 51049 $remote_fs 51050 51051 all remote file systems are available. In some configurations, 51052 file systems such as /usr may be remote. Many applications that 51053 require $local_fs will probably also require $remote_fs. 51054 $syslog 51055 51056 system logger is operational. 51057 $time 51058 51059 the system time has been set, for example by using a 51060 network-based time program such as ntp or rdate, or via the 51061 hardware Real Time Clock. 51062 51063 Other (non-system) facilities may be defined by other 51064 conforming applications. These facilities shall be named using 51065 the same conventions defined for naming init scripts (see 51066 Script Names). Commonly, the facility provided by a conforming 51067 init script will have the same name as the name assigned to the 51068 init script. 51069 __________________________________________________________ 51070 51071 22.7. Script Names 51072 51073 Since init scripts live in a single directory, they must share 51074 a single namespace. To avoid conflicts, applications installing 51075 files in this directories shall use the LSB naming conventions 51076 (see File Naming Conventions). 51077 __________________________________________________________ 51078 51079 22.8. Init Script Functions 51080 51081 Each conforming init script shall execute the commands in the 51082 file /lib/lsb/init-functions in the current environment (see 51083 shell special built-in command dot). This file shall cause the 51084 following shell script commands to be defined in an unspecified 51085 manner. 51086 51087 Note: This can be done either by adding a directory to the 51088 PATH variable which defines these commands, or by defining 51089 shell aliases or functions. 51090 51091 Although the commands made available via this mechanism need 51092 not be conforming applications in their own right, 51093 applications that use them should only depend on features 51094 described in this specification. 51095 51096 Conforming scripts shall not specify the "exit on error" option 51097 (i.e. set -e) when sourcing this file, or calling any of the 51098 commands thus made available. 51099 51100 The start_daemon, killproc and pidofproc functions shall use 51101 the following algorithm for determining the status and the 51102 process identifiers of the specified program. 51103 51104 1. If the -p pidfile option is specified, and the named 51105 pidfile exists, a single line at the start of the pidfile 51106 shall be read. If this line contains one or more numeric 51107 values, separated by spaces, these values shall be used. If 51108 the -p pidfile option is specified and the named pidfile 51109 does not exist, the functions shall assume that the daemon 51110 is not running. 51111 2. Otherwise, /var/run/basename.pid shall be read in a similar 51112 fashion. If this contains one or more numeric values on the 51113 first line, these values shall be used. Optionally, 51114 implementations may use unspecified additional methods to 51115 locate the process identifiers required. 51116 51117 The method used to determine the status is implementation 51118 defined, but should allow for non-binary programs. 51119 51120 Note: Commonly used methods check either for the existence 51121 of the /proc/pid directory or use /proc/pid/exe and 51122 /proc/pid/cmdline. Relying only on /proc/pid/exe is 51123 discouraged since this specification does not specify the 51124 existence of, or semantics for, /proc. Additionally, using 51125 /proc/pid/exe may result in a not-running status for daemons 51126 that are written in a script language. 51127 51128 Conforming implementations may use other mechanisms besides 51129 those based on pidfiles, unless the -p pidfile option has been 51130 used. Conforming applications should not rely on such 51131 mechanisms and should always use a pidfile. When a program is 51132 stopped, it should delete its pidfile. Multiple process 51133 identifiers shall be separated by a single space in the pidfile 51134 and in the output of pidofproc. 51135 51136 start_daemon [-f] [-n nicelevel] [-p pidfile] pathname 51137 [args...] 51138 runs the specified program as a daemon. The start_daemon 51139 function shall check if the program is already running 51140 using the algorithm given above. If so, it shall not 51141 start another copy of the daemon unless the -f option is 51142 given. The -n option specifies a nice level. See nice. 51143 start_daemon shall return the LSB defined exit status 51144 codes. It shall return 0 if the program has been 51145 successfully started or is running and not 0 otherwise. 51146 51147 killproc [-p pidfile] pathname [signal] 51148 The killproc function shall stop the specified program. 51149 The program is found using the algorithm given above. If 51150 a signal is specified, using the -signal_name or 51151 -signal_number syntaxes as specified by the kill 51152 command, the program is sent that signal. Otherwise, a 51153 SIGTERM followed by a SIGKILL after an unspecified 51154 number of seconds shall be sent. If a program has been 51155 terminated, the pidfile should be removed if the 51156 terminated process has not already done so. The killproc 51157 function shall return the LSB defined exit status codes. 51158 If called without a signal, it shall return 0 if the 51159 program has been stopped or is not running and not 0 51160 otherwise. If a signal is given, it shall return 0 only 51161 if the program is running. 51162 51163 pidofproc [-p pidfile] pathname 51164 The pidofproc function shall return one or more process 51165 identifiers for a particular daemon using the algorithm 51166 given above. Only process identifiers of running 51167 processes should be returned. Multiple process 51168 identifiers shall be separated by a single space. 51169 51170 Note: A process may exit between pidofproc discovering its 51171 identity and the caller of pidofproc being able to act on 51172 that identity. As a result, no test assertion can be made 51173 that the process identifiers returned by pidofproc shall be 51174 running processes. 51175 51176 The pidofproc function shall return the LSB defined exit 51177 status codes for "status". It shall return 0 if the 51178 program is running and not 0 otherwise. 51179 51180 log_success_msg message 51181 The log_success_msg function shall cause the system to 51182 write a success message to an unspecified log file. The 51183 format of the message is unspecified. The 51184 log_success_msg function may also write a message to the 51185 standard output. 51186 51187 Note: The message should be relatively short; no more than 51188 60 characters is highly desirable. 51189 51190 log_failure_msg message 51191 The log_failure_msg function shall cause the system to 51192 write a failure message to an unspecified log file. The 51193 format of the message is unspecified. The 51194 log_failure_msg function may also write a message to the 51195 standard output. 51196 51197 Note: The message should be relatively short; no more than 51198 60 characters is highly desirable. 51199 51200 log_warning_msg message 51201 The log_warning_msg function shall cause the system to 51202 write a warning message to an unspecified log file. The 51203 format of the message is unspecified. The 51204 log_warning_msg function may also write a message to the 51205 standard output. 51206 51207 Note: The message should be relatively short; no more than 51208 60 characters is highly desirable. 51209 51210 IX. Users & Groups 51211 51212 Table of Contents 51213 23. Users & Groups 51214 51215 23.1. User and Group Database 51216 23.2. User & Group Names 51217 23.3. User ID Ranges 51218 23.4. Rationale 51219 __________________________________________________________ 51220 51221 Chapter 23. Users & Groups 51222 51223 23.1. User and Group Database 51224 51225 The format of the User and Group databases is not specified. 51226 Programs may only read these databases using the provided API. 51227 Changes to these databases should be made using the provided 51228 commands. 51229 __________________________________________________________ 51230 51231 23.2. User & Group Names 51232 51233 Table 23-1 describes required mnemonic user and group names. 51234 This specification makes no attempt to numerically assign user 51235 or group identity numbers, with the exception that both the 51236 User ID and Group ID for the user root shall be equal to 0. 51237 51238 Table 23-1. Required User & Group Names 51239 User Group Comments 51240 root root Administrative user with all appropriate privileges 51241 bin bin Legacy User ID/Group ID[a] 51242 daemon daemon Legacy User ID/Group ID[b] 51243 Notes: 51244 a. The bin User ID/Group ID is included for compatibility with 51245 legacy applications. New applications should no longer use the 51246 bin User ID/Group ID. 51247 b. The daemon User ID/Group ID was used as an unprivileged User 51248 ID/Group ID for daemons to execute under in order to limit 51249 their access to the system. Generally daemons should now run 51250 under individual User ID/Group IDs in order to further 51251 partition daemons from one another. 51252 51253 Table 23-2 is a table of optional mnemonic user and group 51254 names. This specification makes no attempt to numerically 51255 assign uid or gid numbers. If the username exists on a system, 51256 then they should be in the suggested corresponding group. These 51257 user and group names are for use by distributions, not by 51258 applications. 51259 51260 Table 23-2. Optional User & Group Names 51261 User Group Comments 51262 adm adm Administrative special privileges 51263 lp lp Printer special privileges 51264 sync sync Login to sync the system 51265 shutdown shutdown Login to shutdown the system 51266 halt halt Login to halt the system 51267 mail mail Mail special privileges 51268 news news News special privileges 51269 uucp uucp UUCP special privileges 51270 operator root Operator special privileges 51271 man man Man special privileges 51272 nobody nobody Used by NFS 51273 51274 Only a minimum working set of "user names" and their 51275 corresponding "user groups" are required. Applications cannot 51276 assume non system user or group names will be defined. 51277 51278 Applications cannot assume any policy for the default file 51279 creation mask (umask) or the default directory permissions a 51280 user may have. Applications should enforce user only file 51281 permissions on private files such as mailboxes. The location of 51282 the users home directory is also not defined by policy other 51283 than the recommendations of the Filesystem Hierarchy Standard 51284 and should be obtained by the getpwnam(), getpwnam_r(), 51285 getpwent(), getpwuid(), and getpwuid_r() functions. 51286 __________________________________________________________ 51287 51288 23.3. User ID Ranges 51289 51290 The system User IDs from 0 to 99 should be statically allocated 51291 by the system, and shall not be created by applications. 51292 51293 The system User IDs from 100 to 499 should be reserved for 51294 dynamic allocation by system administrators and post install 51295 scripts using useradd. 51296 __________________________________________________________ 51297 51298 23.4. Rationale 51299 51300 The purpose of specifying optional users and groups is to 51301 reduce the potential for name conflicts between applications 51302 and distributions. 51303 51304 X. Network Security Services 51305 51306 Table of Contents 51307 24. Libraries 51308 51309 24.1. Interfaces for libnspr4 51310 51311 24.1.1. Netscape Portable Runtime 51312 51313 24.2. Data Definitions for libnspr4 51314 51315 24.2.1. nspr4/nspr.h 51316 24.2.2. nspr4/plarena.h 51317 24.2.3. nspr4/plhash.h 51318 24.2.4. nspr4/pratom.h 51319 24.2.5. nspr4/prclist.h 51320 24.2.6. nspr4/prcvar.h 51321 24.2.7. nspr4/prerror.h 51322 24.2.8. nspr4/prinit.h 51323 24.2.9. nspr4/prinrval.h 51324 24.2.10. nspr4/prio.h 51325 24.2.11. nspr4/private/pprio.h 51326 24.2.12. nspr4/prlock.h 51327 24.2.13. nspr4/prmem.h 51328 24.2.14. nspr4/prmon.h 51329 24.2.15. nspr4/prnetdb.h 51330 24.2.16. nspr4/prthread.h 51331 24.2.17. nspr4/prtime.h 51332 24.2.18. nspr4/prtypes.h 51333 51334 24.3. Interfaces for libnss3 51335 51336 24.3.1. NSS Utility 51337 51338 24.4. Data Definitions for libnss3 51339 51340 24.4.1. nss3/blapit.h 51341 24.4.2. nss3/cert.h 51342 24.4.3. nss3/certt.h 51343 24.4.4. nss3/cmsreclist.h 51344 24.4.5. nss3/cryptoht.h 51345 24.4.6. nss3/hasht.h 51346 24.4.7. nss3/key.h 51347 24.4.8. nss3/keyhi.h 51348 24.4.9. nss3/keyt.h 51349 24.4.10. nss3/keythi.h 51350 24.4.11. nss3/nss.h 51351 24.4.12. nss3/nssb64.h 51352 24.4.13. nss3/nssb64t.h 51353 24.4.14. nss3/nssilckt.h 51354 24.4.15. nss3/nssrwlkt.h 51355 24.4.16. nss3/ocspt.h 51356 24.4.17. nss3/pk11pub.h 51357 24.4.18. nss3/pkcs11t.h 51358 24.4.19. nss3/pkcs7t.h 51359 24.4.20. nss3/secasn1t.h 51360 24.4.21. nss3/seccomon.h 51361 24.4.22. nss3/secdert.h 51362 24.4.23. nss3/secdigt.h 51363 24.4.24. nss3/secmodt.h 51364 24.4.25. nss3/secoidt.h 51365 24.4.26. nss3/secpkcs5.h 51366 24.4.27. nss3/secport.h 51367 51368 24.5. Interfaces for libssl3 51369 51370 24.5.1. NSS SSL 51371 51372 24.6. Data Definitions for libssl3 51373 51374 24.6.1. nss3/ecl-exp.h 51375 24.6.2. nss3/ssl.h 51376 24.6.3. nss3/sslerr.h 51377 24.6.4. nss3/sslproto.h 51378 24.6.5. nss3/sslt.h 51379 __________________________________________________________ 51380 51381 Chapter 24. Libraries 51382 51383 24.1. Interfaces for libnspr4 51384 51385 Table 24-1 defines the library name and shared object name for 51386 the libnspr4 library 51387 51388 Table 24-1. libnspr4 Definition 51389 Library: libnspr4 51390 SONAME: libnspr4.so 51391 51392 The behavior of the interfaces in this library is specified by 51393 the following specifications: 51394 51395 [NSPR] NSPR Reference 51396 __________________________________________________________ 51397 51398 24.1.1. Netscape Portable Runtime 51399 __________________________________________________________ 51400 51401 24.1.1.1. Interfaces for Netscape Portable Runtime 51402 51403 An LSB conforming implementation shall provide the generic 51404 functions for Netscape Portable Runtime specified in Table 51405 24-2, with the full mandatory functionality as described in the 51406 referenced underlying specification. 51407 51408 Table 24-2. libnspr4 - Netscape Portable Runtime Function 51409 Interfaces 51410 PR_Abort [NSPR] PR_Accept [NSPR] PR_AtomicAdd [NSPR] 51411 PR_AtomicDecrement [NSPR] PR_AtomicIncrement [NSPR] 51412 PR_AtomicSet [NSPR] 51413 PR_Bind [NSPR] PR_Calloc [NSPR] PR_Cleanup [NSPR] 51414 PR_ClearInterrupt [NSPR] PR_Close [NSPR] PR_Connect [NSPR] 51415 PR_ConnectContinue [NSPR] PR_ConvertIPv4AddrToIPv6 [NSPR] 51416 PR_CreateIOLayerStub [NSPR] 51417 PR_CreatePipe [NSPR] PR_DestroyCondVar [NSPR] PR_DestroyLock 51418 [NSPR] 51419 PR_EnumerateAddrInfo [NSPR] PR_ExplodeTime [NSPR] PR_FormatTime 51420 [NSPR] 51421 PR_Free [NSPR] PR_FreeAddrInfo [NSPR] PR_GMTParameters [NSPR] 51422 PR_GetAddrInfoByName [NSPR] PR_GetCanonNameFromAddrInfo [NSPR] 51423 PR_GetDefaultIOMethods [NSPR] 51424 PR_GetDescType [NSPR] PR_GetError [NSPR] PR_GetErrorText [NSPR] 51425 PR_GetErrorTextLength [NSPR] PR_GetLayersIdentity [NSPR] 51426 PR_GetOSError [NSPR] 51427 PR_GetSocketOption [NSPR] PR_GetThreadPrivate [NSPR] 51428 PR_GetThreadScope [NSPR] 51429 PR_GetThreadState [NSPR] PR_GetUniqueIdentity [NSPR] 51430 PR_ImplodeTime [NSPR] 51431 PR_ImportTCPSocket [NSPR] PR_Init [NSPR] PR_Initialize [NSPR] 51432 PR_InitializeNetAddr [NSPR] PR_Initialized [NSPR] PR_Interrupt 51433 [NSPR] 51434 PR_IntervalNow [NSPR] PR_IntervalToMicroseconds [NSPR] 51435 PR_IntervalToMilliseconds [NSPR] 51436 PR_IntervalToSeconds [NSPR] PR_Listen [NSPR] 51437 PR_LocalTimeParameters [NSPR] 51438 PR_Lock [NSPR] PR_Malloc [NSPR] PR_MicrosecondsToInterval 51439 [NSPR] 51440 PR_MillisecondsToInterval [NSPR] PR_NetAddrToString [NSPR] 51441 PR_NewCondVar [NSPR] 51442 PR_NewLock [NSPR] PR_NewThreadPrivateIndex [NSPR] 51443 PR_NormalizeTime [NSPR] 51444 PR_NotifyAllCondVar [NSPR] PR_NotifyCondVar [NSPR] PR_Now 51445 [NSPR] 51446 PR_Open [NSPR] PR_OpenTCPSocket [NSPR] PR_OpenUDPSocket [NSPR] 51447 PR_ParseTimeString [NSPR] PR_ParseTimeStringToExplodedTime 51448 [NSPR] PR_Poll [NSPR] 51449 PR_PopIOLayer [NSPR] PR_ProcessExit [NSPR] PR_PushIOLayer 51450 [NSPR] 51451 PR_Read [NSPR] PR_Realloc [NSPR] PR_Recv [NSPR] 51452 PR_RecvFrom [NSPR] PR_SecondsToInterval [NSPR] PR_Send [NSPR] 51453 PR_SendTo [NSPR] PR_SetError [NSPR] PR_SetErrorText [NSPR] 51454 PR_SetSocketOption [NSPR] PR_SetThreadPrivate [NSPR] 51455 PR_Shutdown [NSPR] 51456 PR_Sleep [NSPR] PR_StringToNetAddr [NSPR] PR_TicksPerSecond 51457 [NSPR] 51458 PR_Unlock [NSPR] PR_WaitCondVar [NSPR] PR_Write [NSPR] 51459 __________________________________________________________ 51460 51461 24.2. Data Definitions for libnspr4 51462 51463 This section defines global identifiers and their values that 51464 are associated with interfaces contained in libnspr4. These 51465 definitions are organized into groups that correspond to system 51466 headers. This convention is used as a convenience for the 51467 reader, and does not imply the existence of these headers, or 51468 their content. Where an interface is defined as requiring a 51469 particular system header file all of the data definitions for 51470 that system header file presented here shall be in effect. 51471 51472 This section gives data definitions to promote binary 51473 application portability, not to repeat source interface 51474 definitions available elsewhere. System providers and 51475 application developers should use this ABI to supplement - not 51476 to replace - source interface definition specifications. 51477 51478 This specification uses the ISO C (1999) C Language as the 51479 reference programming language, and data definitions are 51480 specified in ISO C format. The C language is used here as a 51481 convenient notation. Using a C language description of these 51482 data objects does not preclude their use by other programming 51483 languages. 51484 __________________________________________________________ 51485 51486 24.2.1. nspr4/nspr.h 51487 51488 #define nspr_h___ 51489 __________________________________________________________ 51490 51491 24.2.2. nspr4/plarena.h 51492 51493 #define plarena_h___ 51494 51495 typedef struct PLArenaPool { 51496 struct PLArena first; 51497 struct PLArena *current; 51498 PRUint32 arenasize; 51499 PRUword mask; 51500 } PLArenaPool; 51501 struct PLArena { 51502 struct PLArena *next; 51503 PRUword base; 51504 PRUword limit; 51505 PRUword avail; 51506 }; 51507 __________________________________________________________ 51508 51509 24.2.3. nspr4/plhash.h 51510 51511 #define plhash_h___ 51512 51513 typedef PRUint32 PLHashNumber; 51514 typedef PRIntn(*PLHashComparator) (const void *, const void *); 51515 typedef struct PLHashAllocOps { 51516 void *(*allocTable) (void *, PRSize); 51517 void (*freeTable) (void *, void *); 51518 struct PLHashEntry *(*allocEntry) (void *, const void *); 51519 void (*freeEntry) (void *, struct PLHashEntry *, PRUintn); 51520 } PLHashAllocOps; 51521 typedef PLHashNumber(*PLHashFunction) (const void *); 51522 struct PLHashEntry { 51523 struct PLHashEntry *next; 51524 PLHashNumber keyHash; 51525 const void *key; 51526 void *value; 51527 }; 51528 struct PLHashTable { 51529 struct PLHashEntry **buckets; 51530 PRUint32 nentries; 51531 PRUint32 shift; 51532 PLHashFunction keyHash; 51533 PLHashComparator keyCompare; 51534 PLHashComparator valueCompare; 51535 const PLHashAllocOps *allocOps; 51536 void *allocPriv; 51537 }; 51538 __________________________________________________________ 51539 51540 24.2.4. nspr4/pratom.h 51541 51542 #define PR_ATOMIC_ADD(val) PR_AtomicAdd(val) 51543 #define PR_ATOMIC_DECREMENT(val) PR_AtomicDecrement(val) 51544 #define PR_ATOMIC_INCREMENT(val) PR_AtomicIncrement(val) 51545 #define PR_ATOMIC_SET(val) PR_AtomicSet(val) 51546 51547 extern PRInt32 PR_AtomicAdd(PRInt32 * ptr, PRInt32 val); 51548 extern PRInt32 PR_AtomicDecrement(PRInt32 * val); 51549 extern PRInt32 PR_AtomicIncrement(PRInt32 * val); 51550 extern PRInt32 PR_AtomicSet(PRInt32 * val, PRInt32 newval); 51551 __________________________________________________________ 51552 51553 24.2.5. nspr4/prclist.h 51554 51555 #define prclist_h___ 51556 51557 typedef struct PRCListStr { 51558 PRCList *next; 51559 PRCList *prev; 51560 } PRCList; 51561 __________________________________________________________ 51562 51563 24.2.6. nspr4/prcvar.h 51564 51565 typedef struct PRCondVar PRCondVar; 51566 extern void PR_DestroyCondVar(PRCondVar * cvar); 51567 extern PRCondVar *PR_NewCondVar(PRLock * lock); 51568 extern PRStatus PR_NotifyAllCondVar(PRCondVar * cvar); 51569 extern PRStatus PR_NotifyCondVar(PRCondVar * cvar); 51570 extern PRStatus PR_WaitCondVar(PRCondVar * cvar, PRIntervalTime timeout); 51571 __________________________________________________________ 51572 51573 24.2.7. nspr4/prerror.h 51574 51575 #define prerror_h___ 51576 51577 typedef PRInt32 PRErrorCode; 51578 extern PRErrorCode PR_GetError(void); 51579 extern PRInt32 PR_GetErrorText(char *text); 51580 extern PRInt32 PR_GetErrorTextLength(void); 51581 extern PRInt32 PR_GetOSError(void); 51582 extern void PR_SetError(PRErrorCode errorCode, PRInt32 oserr); 51583 extern void PR_SetErrorText(PRIntn textLength, const char *text); 51584 __________________________________________________________ 51585 51586 24.2.8. nspr4/prinit.h 51587 51588 #define prinit_h___ 51589 51590 typedef PRIntn(*PRPrimordialFn) (PRIntn argc, char **argv); 51591 typedef PRStatus(*PRCallOnceFN) (void); 51592 typedef PRStatus(*PRCallOnceWithArgFN) (void *arg); 51593 extern void PR_Abort(void); 51594 extern PRStatus PR_Cleanup(void); 51595 extern void PR_Init(PRThreadType type, PRThreadPriority priority, 51596 PRUintn maxPTDs); 51597 extern PRIntn PR_Initialize(PRPrimordialFn prmain, PRIntn argc, 51598 char **argv, PRUintn maxPTDs); 51599 extern PRBool PR_Initialized(void); 51600 extern void PR_ProcessExit(PRIntn status); 51601 __________________________________________________________ 51602 51603 24.2.9. nspr4/prinrval.h 51604 51605 #define prinrval_h 51606 #define PR_INTERVAL_NO_WAIT 0UL 51607 #define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL 51608 51609 typedef PRUint32 PRIntervalTime; 51610 extern PRIntervalTime PR_IntervalNow(void); 51611 extern PRUint32 PR_IntervalToMicroseconds(PRIntervalTime ticks); 51612 extern PRUint32 PR_IntervalToMilliseconds(PRIntervalTime ticks); 51613 extern PRUint32 PR_IntervalToSeconds(PRIntervalTime ticks); 51614 extern PRIntervalTime PR_MicrosecondsToInterval(PRUint32 micro); 51615 extern PRIntervalTime PR_MillisecondsToInterval(PRUint32 milli); 51616 extern PRIntervalTime PR_SecondsToInterval(PRUint32 seconds); 51617 extern PRUint32 PR_TicksPerSecond(void); 51618 __________________________________________________________ 51619 51620 24.2.10. nspr4/prio.h 51621 51622 #define prio_h___ 51623 #define PR_RDONLY 0x01 51624 #define PR_WRONLY 0x02 51625 #define PR_RDWR 0x04 51626 #define PR_CREATE_FILE 0x08 51627 #define PR_APPEND 0x10 51628 #define PR_TRUNCATE 0x20 51629 #define PR_SYNC 0x40 51630 #define PR_EXCL 0x80 51631 51632 typedef enum PRDescType { 51633 PR_DESC_FILE = 1, 51634 PR_DESC_SOCKET_TCP = 2, 51635 PR_DESC_SOCKET_UDP = 3, 51636 PR_DESC_LAYERED = 4, 51637 PR_DESC_PIPE = 5 51638 } PRDescType; 51639 typedef struct PRIPv6Addr { 51640 union { 51641 PRUint8 _S6_u8[15]; 51642 PRUint16 _S6_u16[7]; 51643 PRUint32 _S6_u32[3]; 51644 PRUint64 _S6_u64[1]; 51645 } _S6_un; 51646 } PRIPv6Addr; 51647 typedef enum PRTransmitFileFlags { 51648 PR_TRANSMITFILE_KEEP_OPEN = 0, 51649 PR_TRANSMITFILE_CLOSE_SOCKET = 1 51650 } PRTransmitFileFlags; 51651 typedef struct PRLinger { 51652 PRBool polarity; 51653 PRIntervalTime linger; 51654 } PRLinger; 51655 typedef struct PRFilePrivate PRFilePrivate; 51656 typedef struct PRFileDesc { 51657 const struct PRIOMethods *methods; 51658 PRFilePrivate *secret; 51659 PRFileDesc *lower; 51660 PRFileDesc *higher; 51661 void (*dtor) (PRFileDesc *); 51662 PRDescIdentity identity; 51663 } PRFileDesc; 51664 typedef union PRNetAddr { 51665 struct { 51666 PRUint16 family; 51667 char data[14]; 51668 } raw; 51669 struct { 51670 PRUint16 family; 51671 PRUint16 port; 51672 PRUint32 ip; 51673 char pad[7]; 51674 } inet; 51675 struct { 51676 PRUint16 family; 51677 PRUint16 port; 51678 PRUint32 flowinfo; 51679 PRIPv6Addr ip; 51680 PRUint32 scope_id; 51681 } ipv6; 51682 struct { 51683 PRUint16 family; 51684 char path[103]; 51685 } local; 51686 } PRNetAddr; 51687 typedef struct PRMcastRequest { 51688 union PRNetAddr mcaddr; 51689 union PRNetAddr ifaddr; 51690 } PRMcastRequest; 51691 typedef struct PRIOVec { 51692 char *iov_base; 51693 int iov_len; 51694 } PRIOVec; 51695 typedef struct PRSocketOptionData { 51696 PRSockOption option; 51697 union { 51698 PRUintn ip_ttl; 51699 PRUintn mcast_ttl; 51700 PRUintn tos; 51701 PRBool non_blocking; 51702 PRBool reuse_addr; 51703 PRBool keep_alive; 51704 PRBool mcast_loopback; 51705 PRBool no_delay; 51706 PRBool broadcast; 51707 PRSize max_segment; 51708 PRSize recv_buffer_size; 51709 PRSize send_buffer_size; 51710 PRLinger linger; 51711 PRMcastRequest add_member; 51712 PRMcastRequest drop_member; 51713 union PRNetAddr mcast_if; 51714 } value; 51715 } PRSocketOptionData; 51716 typedef PRStatus(*PRFsyncFN) (PRFileDesc * fd); 51717 typedef PRStatus(*PRListenFN) (PRFileDesc * fd, PRIntn how); 51718 typedef enum PRSeekWhence { 51719 PR_SEEK_SET = 0, 51720 PR_SEEK_CUR = 1, 51721 PR_SEEK_END = 2 51722 } PRSeekWhence; 51723 typedef PRInt32(*PRAcceptreadFN) (PRFileDesc * sd, PRFileDesc * *nd, 51724 PRNetAddr * *raddr, void *buf, 51725 PRInt32 amount, PRIntervalTime t); 51726 typedef PRStatus(*PRCloseFN) (PRFileDesc * fd); 51727 typedef PRInt32(*PRTransmitfileFN) (PRFileDesc * sd, PRFileDesc * fd, 51728 const void *headers, PRInt32 hlen, 51729 PRTransmitFileFlags flags, 51730 PRIntervalTime t); 51731 typedef enum PRSockOption { 51732 PR_SockOpt_Nonblocking, 51733 PR_SockOpt_Linger = 1, 51734 PR_SockOpt_Reuseaddr = 2, 51735 PR_SockOpt_Keepalive = 3, 51736 PR_SockOpt_RecvBufferSize = 4, 51737 PR_SockOpt_SendBufferSize = 5, 51738 PR_SockOpt_IpTimeToLive = 6, 51739 PR_SockOpt_IpTypeOfService = 7, 51740 PR_SockOpt_AddMember = 8, 51741 PR_SockOpt_DropMember = 9, 51742 PR_SockOpt_McastInterface = 10, 51743 PR_SockOpt_McastTimeToLive = 11, 51744 PR_SockOpt_McastLoopback = 12, 51745 PR_SockOpt_NoDelay = 13, 51746 PR_SockOpt_MaxSegment = 14, 51747 PR_SockOpt_Broadcast = 15, 51748 PR_SockOpt_Last = 16 51749 } PRSockOption; 51750 typedef PRFileDesc *(*PRAcceptFN) (PRFileDesc * fd, PRNetAddr * addr, 51751 PRIntervalTime timeout); 51752 typedef PRStatus(*PRConnectcontinueFN) (PRFileDesc * fd, 51753 PRInt16 out_flags); 51754 typedef PRInt32(*PRReadFN) (PRFileDesc * fd, void *buf, PRInt32 amount); 51755 typedef struct PRFileInfo64 { 51756 PRFileType type; 51757 PROffset64 size; 51758 PRTime creationTime; 51759 PRTime modifyTime; 51760 } PRFileInfo64; 51761 typedef PRStatus(*PRGetsocketoptionFN) (PRFileDesc * fd, 51762 PRSocketOptionData * data); 51763 typedef PRInt32(*PRSendtoFN) (PRFileDesc * fd, const void *buf, 51764 PRInt32 amount, PRIntn flags, 51765 const PRNetAddr * addr, 51766 PRIntervalTime timeout); 51767 typedef PRStatus(*PRGetsocknameFN) (PRFileDesc * fd, PRNetAddr * addr); 51768 typedef PRInt32(*PRSendFN) (PRFileDesc * fd, const void *buf, 51769 PRInt32 amount, PRIntn flags, 51770 PRIntervalTime timeout); 51771 typedef PROffset32(*PRSeekFN) (PRFileDesc * fd, PROffset32 offset, 51772 PRSeekWhence how); 51773 typedef PRInt64(*PRAvailable64FN) (PRFileDesc * fd); 51774 typedef PRInt32(*PRAvailableFN) (PRFileDesc * fd); 51775 typedef struct PRFileInfo { 51776 PRFileType type; 51777 PROffset32 size; 51778 PRTime creationTime; 51779 PRTime modifyTime; 51780 } PRFileInfo; 51781 typedef PROffset64(*PRSeek64FN) (PRFileDesc * fd, PROffset64 offset, 51782 PRSeekWhence how); 51783 typedef PRStatus(*PRSetsocketoptionFN) (PRFileDesc * fd, 51784 const PRSocketOptionData * data); 51785 typedef PRInt32(*PRRecvFN) (PRFileDesc * fd, void *buf, PRInt32 amount, 51786 PRIntn flags, PRIntervalTime timeout); 51787 typedef struct PRSendFileData { 51788 PRFileDesc *fd; 51789 PRUint32 file_offset; 51790 PRSize file_nbytes; 51791 const void *header; 51792 PRInt32 hlen; 51793 const void *trailer; 51794 PRInt32 tlen; 51795 } PRSendFileData; 51796 typedef PRIntn PRDescIdentity; 51797 typedef PRStatus(*PRConnectFN) (PRFileDesc * fd, const PRNetAddr * addr, 51798 PRIntervalTime timeout); 51799 typedef PRInt32(*PRSendfileFN) (PRFileDesc * networkSocket, 51800 PRSendFileData * sendData, 51801 PRTransmitFileFlags flags, 51802 PRIntervalTime timeout); 51803 typedef PRInt32(*PRRecvfromFN) (PRFileDesc * fd, void *buf, PRInt32 amount, 51804 PRIntn flags, PRNetAddr * addr, 51805 PRIntervalTime timeout); 51806 typedef struct PRPollDesc { 51807 PRFileDesc *fd; 51808 PRInt16 in_flags; 51809 PRInt16 out_flags; 51810 } PRPollDesc; 51811 typedef PRInt32(*PRWriteFN) (PRFileDesc * fd, const void *buf, 51812 PRInt32 amount); 51813 typedef PRStatus(*PRFileInfo64FN) (PRFileDesc * fd, PRFileInfo64 * info); 51814 typedef PRStatus(*PRShutdownFN) (PRFileDesc * fd, PRIntn how); 51815 typedef PRIntn(*PRReservedFN) (PRFileDesc * fd); 51816 typedef PRStatus(*PRFileInfoFN) (PRFileDesc * fd, PRFileInfo * info); 51817 typedef PRInt32(*PRWritevFN) (PRFileDesc * fd, const PRIOVec * iov, 51818 PRInt32 iov_size, PRIntervalTime timeout); 51819 typedef enum PRFileType { 51820 PR_FILE_FILE = 1, 51821 PR_FILE_DIRECTORY = 2, 51822 PR_FILE_OTHER = 3 51823 } PRFileType; 51824 typedef PRStatus(*PRBindFN) (PRFileDesc * fd, const PRNetAddr * addr); 51825 typedef PRInt16(*PRPollFN) (PRFileDesc * fd, PRInt16 in_flags, 51826 PRInt16 * out_flags); 51827 struct PRIOMethods { 51828 PRDescType file_type; 51829 PRCloseFN close; 51830 PRReadFN read; 51831 PRWriteFN write; 51832 PRAvailableFN available; 51833 PRAvailable64FN available64; 51834 PRFsyncFN fsync; 51835 PRSeekFN seek; 51836 PRSeek64FN seek64; 51837 PRFileInfoFN fileInfo; 51838 PRFileInfo64FN fileInfo64; 51839 PRWritevFN writev; 51840 PRConnectFN connect; 51841 PRAcceptFN accept; 51842 PRBindFN bind; 51843 PRListenFN listen; 51844 PRShutdownFN shutdown; 51845 PRRecvFN recv; 51846 PRSendFN send; 51847 PRRecvfromFN recvfrom; 51848 PRSendtoFN sendto; 51849 PRPollFN poll; 51850 PRAcceptreadFN acceptread; 51851 PRTransmitfileFN transmitfile; 51852 PRGetsocknameFN getsockname; 51853 PRGetpeernameFN getpeername; 51854 PRReservedFN reserved_fn_6; 51855 PRReservedFN reserved_fn_5; 51856 PRGetsocketoptionFN getsocketoption; 51857 PRSetsocketoptionFN setsocketoption; 51858 PRSendfileFN sendfile; 51859 PRConnectcontinueFN connectcontinue; 51860 PRReservedFN reserved_fn_3; 51861 PRReservedFN reserved_fn_2; 51862 PRReservedFN reserved_fn_1; 51863 PRReservedFN reserved_fn_0; 51864 }; 51865 typedef PRStatus(*PRGetpeernameFN) (PRFileDesc * fd, PRNetAddr * addr); 51866 typedef enum PRShutdownHow { 51867 PR_SHUTDOWN_RCV = 0, 51868 PR_SHUTDOWN_SEND = 1, 51869 PR_SHUTDOWN_BOTH = 2 51870 } PRShutdownHow; 51871 extern PRFileDesc *PR_Accept(PRFileDesc * fd, PRNetAddr * addr, 51872 PRIntervalTime timeout); 51873 extern PRStatus PR_Bind(PRFileDesc * fd, const PRNetAddr * addr); 51874 extern PRStatus PR_Close(PRFileDesc * fd); 51875 extern PRStatus PR_Connect(PRFileDesc * fd, const PRNetAddr * addr, 51876 PRIntervalTime timeout); 51877 extern PRStatus PR_ConnectContinue(PRFileDesc * fd, PRInt16 out_flags); 51878 extern PRFileDesc *PR_CreateIOLayerStub(PRDescIdentity ident, 51879 const struct PRIOMethods *methods); 51880 extern PRStatus PR_CreatePipe(PRFileDesc * *readPipe, 51881 PRFileDesc * *writePipe); 51882 extern const struct PRIOMethods *PR_GetDefaultIOMethods(void); 51883 extern PRDescType PR_GetDescType(PRFileDesc * file); 51884 extern PRDescIdentity PR_GetLayersIdentity(PRFileDesc * fd); 51885 extern PRStatus PR_GetSocketOption(PRFileDesc * fd, 51886 PRSocketOptionData * data); 51887 extern PRDescIdentity PR_GetUniqueIdentity(const char *layer_name); 51888 extern PRStatus PR_Listen(PRFileDesc * fd, PRIntn backlog); 51889 extern PRFileDesc *PR_Open(const char *name, PRIntn flags, PRIntn mode); 51890 extern PRFileDesc *PR_OpenTCPSocket(PRIntn af); 51891 extern PRFileDesc *PR_OpenUDPSocket(PRIntn af); 51892 extern PRInt32 PR_Poll(PRPollDesc * pds, PRIntn npds, 51893 PRIntervalTime timeout); 51894 extern PRFileDesc *PR_PopIOLayer(PRFileDesc * fd_stack, PRDescIdentity id); 51895 extern PRStatus PR_PushIOLayer(PRFileDesc * fd_stack, PRDescIdentity id, 51896 PRFileDesc * layer); 51897 extern PRInt32 PR_Read(PRFileDesc * fd, void *buf, PRInt32 amount); 51898 extern PRInt32 PR_Recv(PRFileDesc * fd, void *buf, PRInt32 amount, 51899 PRIntn flags, PRIntervalTime timeout); 51900 extern PRInt32 PR_RecvFrom(PRFileDesc * fd, void *buf, PRInt32 amount, 51901 PRIntn flags, PRNetAddr * addr, 51902 PRIntervalTime timeout); 51903 extern PRInt32 PR_Send(PRFileDesc * fd, const void *buf, PRInt32 amount, 51904 PRIntn flags, PRIntervalTime timeout); 51905 extern PRInt32 PR_SendTo(PRFileDesc * fd, const void *buf, PRInt32 amount, 51906 PRIntn flags, const PRNetAddr * addr, 51907 PRIntervalTime timeout); 51908 extern PRStatus PR_SetSocketOption(PRFileDesc * fd, 51909 const PRSocketOptionData * data); 51910 extern PRStatus PR_Shutdown(PRFileDesc * fd, PRShutdownHow how); 51911 extern PRInt32 PR_Write(PRFileDesc * fd, const void *buf, PRInt32 amount); 51912 __________________________________________________________ 51913 51914 24.2.11. nspr4/private/pprio.h 51915 51916 #define pprio_h___ 51917 51918 typedef PRInt32 PROsfd; 51919 extern PRFileDesc *PR_ImportTCPSocket(PROsfd osfd); 51920 __________________________________________________________ 51921 51922 24.2.12. nspr4/prlock.h 51923 51924 #define prlock_h___ 51925 51926 typedef struct PRLock PRLock; 51927 extern void PR_DestroyLock(PRLock * lock); 51928 extern void PR_Lock(PRLock * lock); 51929 extern PRLock *PR_NewLock(void); 51930 extern PRStatus PR_Unlock(PRLock * lock); 51931 __________________________________________________________ 51932 51933 24.2.13. nspr4/prmem.h 51934 51935 #define PR_NEW(_struct) ((_struct *) PR_MALLOC(sizeof(_struct))) 51936 #define PR_NEWZAP(_struct) ((_struct*)PR_Calloc(1, sizeof(_struct))) 51937 #define PR_CALLOC(_size) (PR_Calloc(1, (_size))) 51938 #define PR_MALLOC(_bytes) (PR_Malloc(_bytes)) 51939 #define PR_REALLOC(_ptr, _size) (PR_Realloc((_ptr), (_size))) 51940 #define PR_FREEIF(_ptr) if (_ptr) PR_DELETE(_ptr) 51941 #define PR_DELETE(_ptr) { PR_Free(_ptr); (_ptr) = NULL; } 51942 51943 extern void *PR_Calloc(PRUint32 nelem, PRUint32 elsize); 51944 extern void PR_Free(void *ptr); 51945 extern void *PR_Malloc(PRUint32 size); 51946 extern void *PR_Realloc(void *ptr, PRUint32 size); 51947 __________________________________________________________ 51948 51949 24.2.14. nspr4/prmon.h 51950 51951 #define prmon_h___ 51952 51953 typedef struct PRMonitor PRMonitor; 51954 __________________________________________________________ 51955 51956 24.2.15. nspr4/prnetdb.h 51957 51958 #define prnetdb_h___ 51959 #define PR_NetAddrFamily(addr) ((addr)->raw.family) 51960 #define PR_NetAddrInetPort(addr) \ 51961 ((addr)->raw.family == PR_AF_INET6 ? (addr)->ipv6.port : (addr)->inet.port) 51962 51963 typedef struct PRHostEnt { 51964 char *h_name; 51965 char **h_aliases; 51966 PRInt32 h_addrtype; 51967 PRInt32 h_length; 51968 char **h_addr_list; 51969 } PRHostEnt; 51970 typedef struct PRAddrInfo PRAddrInfo; 51971 typedef enum PRNetAddrValue { 51972 PR_IpAddrNull, 51973 PR_IpAddrAny, 51974 PR_IpAddrLoopback, 51975 PR_IpAddrV4Mapped 51976 } PRNetAddrValue; 51977 extern void PR_ConvertIPv4AddrToIPv6(PRUint32 v4addr, PRIPv6Addr * v6addr); 51978 extern void *PR_EnumerateAddrInfo(void *enumPtr, 51979 const PRAddrInfo * addrInfo, 51980 PRUint16 port, PRNetAddr * result); 51981 extern void PR_FreeAddrInfo(PRAddrInfo * addrInfo); 51982 extern PRAddrInfo *PR_GetAddrInfoByName(const char *hostname, PRUint16 af, 51983 PRIntn flags); 51984 extern const char *PR_GetCanonNameFromAddrInfo(const PRAddrInfo * 51985 addrInfo); 51986 extern PRStatus PR_InitializeNetAddr(PRNetAddrValue val, PRUint16 port, 51987 PRNetAddr * addr); 51988 extern PRStatus PR_NetAddrToString(const PRNetAddr * addr, char *string, 51989 PRUint32 size); 51990 extern PRStatus PR_StringToNetAddr(const char *string, PRNetAddr * addr); 51991 __________________________________________________________ 51992 51993 24.2.16. nspr4/prthread.h 51994 51995 #define prthread_h___ 51996 51997 typedef struct PRThread PRThread; 51998 typedef enum PRThreadType { 51999 PR_USER_THREAD, 52000 PR_SYSTEM_THREAD 52001 } PRThreadType; 52002 typedef enum PRThreadScope { 52003 PR_LOCAL_THREAD, 52004 PR_GLOBAL_THREAD, 52005 PR_GLOBAL_BOUND_THREAD 52006 } PRThreadScope; 52007 typedef enum PRThreadState { 52008 PR_JOINABLE_THREAD, 52009 PR_UNJOINABLE_THREAD 52010 } PRThreadState; 52011 typedef enum PRThreadPriority { 52012 PR_PRIORITY_FIRST = 0, 52013 PR_PRIORITY_LOW = 0, 52014 PR_PRIORITY_NORMAL = 1, 52015 PR_PRIORITY_HIGH = 2, 52016 PR_PRIORITY_URGENT = 3, 52017 PR_PRIORITY_LAST = 3 52018 } PRThreadPriority; 52019 typedef void (*PRThreadPrivateDTOR) (void *priv); 52020 extern PRStatus PR_ClearInterrupt(void); 52021 extern void *PR_GetThreadPrivate(PRUintn tpdIndex); 52022 extern PRThreadScope PR_GetThreadScope(const PRThread * thread); 52023 extern PRThreadState PR_GetThreadState(const PRThread * thread); 52024 extern PRStatus PR_Interrupt(PRThread * thread); 52025 extern PRStatus PR_NewThreadPrivateIndex(PRUintn * newIndex, 52026 PRThreadPrivateDTOR destructor); 52027 extern PRStatus PR_SetThreadPrivate(PRUintn tpIndex, void *priv); 52028 extern PRStatus PR_Sleep(PRIntervalTime ticks); 52029 __________________________________________________________ 52030 52031 24.2.17. nspr4/prtime.h 52032 52033 #define prtime_h___ 52034 52035 typedef PRInt64 PRTime; 52036 typedef struct PRTimeParameters { 52037 PRInt32 tp_gmt_offset; 52038 PRInt32 tp_dst_offset; 52039 } PRTimeParameters; 52040 typedef struct PRExplodedTime { 52041 PRInt32 tm_usec; 52042 PRInt32 tm_sec; 52043 PRInt32 tm_min; 52044 PRInt32 tm_hour; 52045 PRInt32 tm_mday; 52046 PRInt32 tm_month; 52047 PRInt16 tm_year; 52048 PRInt8 tm_wday; 52049 PRInt16 tm_yday; 52050 PRTimeParameters tm_params; 52051 } PRExplodedTime; 52052 typedef PRTimeParameters(*PRTimeParamFn) (const PRExplodedTime * gmt); 52053 extern void PR_ExplodeTime(PRTime usecs, PRTimeParamFn params, 52054 PRExplodedTime * expoded); 52055 extern PRUint32 PR_FormatTime(char *buf, int buflen, const char *fmt, 52056 const PRExplodedTime * tm); 52057 extern PRTimeParameters PR_GMTParameters(const PRExplodedTime * gmt); 52058 extern PRTime PR_ImplodeTime(const PRExplodedTime * exploded); 52059 extern PRTimeParameters PR_LocalTimeParameters(const PRExplodedTime * gmt); 52060 extern void PR_NormalizeTime(PRExplodedTime * exploded, 52061 PRTimeParamFn params); 52062 extern PRTime PR_Now(void); 52063 extern PRStatus PR_ParseTimeString(const char *string, 52064 PRBool default_to_gmt, PRTime * result); 52065 extern PRStatus PR_ParseTimeStringToExplodedTime(const char *string, 52066 PRBool default_to_gmt, 52067 PRExplodedTime * result); 52068 __________________________________________________________ 52069 52070 24.2.18. nspr4/prtypes.h 52071 52072 #define prtypes_h___ 52073 52074 typedef int PRInt32; 52075 typedef unsigned long int PRUword; 52076 typedef int PRIntn; 52077 typedef unsigned long int PRUint64; 52078 typedef unsigned char PRUint8; 52079 typedef short int PRInt16; 52080 typedef long int PRInt64; 52081 typedef PRIntn PRBool; 52082 typedef unsigned short PRUint16; 52083 typedef unsigned int PRUint32; 52084 typedef size_t PRSize; 52085 typedef unsigned int PRUintn; 52086 typedef PRInt64 PROffset64; 52087 typedef PRInt32 PROffset32; 52088 typedef enum { 52089 PR_FAILURE = -1, 52090 PR_SUCCESS = 0 52091 } PRStatus; 52092 typedef signed char PRInt8; 52093 __________________________________________________________ 52094 52095 24.3. Interfaces for libnss3 52096 52097 Table 24-3 defines the library name and shared object name for 52098 the libnss3 library 52099 52100 Table 24-3. libnss3 Definition 52101 Library: libnss3 52102 SONAME: libnss3.so 52103 52104 The behavior of the interfaces in this library is specified by 52105 the following specifications: 52106 52107 [NSS SSL] Mozilla's NSS SSL Reference 52108 __________________________________________________________ 52109 52110 24.3.1. NSS Utility 52111 __________________________________________________________ 52112 52113 24.3.1.1. Interfaces for NSS Utility 52114 52115 An LSB conforming implementation shall provide the generic 52116 functions for NSS Utility specified in Table 24-4, with the 52117 full mandatory functionality as described in the referenced 52118 underlying specification. 52119 52120 Table 24-4. libnss3 - NSS Utility Function Interfaces 52121 CERT_CheckCertValidTimes(NSS_3.2) [NSS SSL] 52122 CERT_DestroyCertificate(NSS_3.2) [NSS SSL] 52123 CERT_DupCertificate(NSS_3.2) [NSS SSL] 52124 CERT_FreeNicknames(NSS_3.2) [NSS SSL] 52125 CERT_GetCertNicknames(NSS_3.2) [NSS SSL] 52126 CERT_GetDefaultCertDB(NSS_3.2) [NSS SSL] 52127 CERT_VerifyCertName(NSS_3.2) [NSS SSL] 52128 CERT_VerifyCertNow(NSS_3.2) [NSS SSL] NSS_Init(NSS_3.2) [NSS 52129 SSL] 52130 NSS_InitReadWrite(NSS_3.2) [NSS SSL] NSS_NoDB_Init(NSS_3.2) 52131 [NSS SSL] NSS_Shutdown(NSS_3.2) [NSS SSL] 52132 PK11_FindCertFromNickname(NSS_3.2) [NSS SSL] 52133 PK11_FindKeyByAnyCert(NSS_3.2) [NSS SSL] 52134 PK11_GetSlotName(NSS_3.2) [NSS SSL] 52135 PK11_GetTokenName(NSS_3.2) [NSS SSL] PK11_IsHW(NSS_3.2) [NSS 52136 SSL] PK11_IsPresent(NSS_3.2) [NSS SSL] 52137 PK11_IsReadOnly(NSS_3.2) [NSS SSL] 52138 PK11_SetPasswordFunc(NSS_3.2) [NSS SSL] 52139 SECKEY_DestroyPrivateKey(NSS_3.2) [NSS SSL] 52140 __________________________________________________________ 52141 52142 24.4. Data Definitions for libnss3 52143 52144 This section defines global identifiers and their values that 52145 are associated with interfaces contained in libnss3. These 52146 definitions are organized into groups that correspond to system 52147 headers. This convention is used as a convenience for the 52148 reader, and does not imply the existence of these headers, or 52149 their content. Where an interface is defined as requiring a 52150 particular system header file all of the data definitions for 52151 that system header file presented here shall be in effect. 52152 52153 This section gives data definitions to promote binary 52154 application portability, not to repeat source interface 52155 definitions available elsewhere. System providers and 52156 application developers should use this ABI to supplement - not 52157 to replace - source interface definition specifications. 52158 52159 This specification uses the ISO C (1999) C Language as the 52160 reference programming language, and data definitions are 52161 specified in ISO C format. The C language is used here as a 52162 convenient notation. Using a C language description of these 52163 data objects does not preclude their use by other programming 52164 languages. 52165 __________________________________________________________ 52166 52167 24.4.1. nss3/blapit.h 52168 52169 #define _BLAPIT_H_ 52170 #define PQG_PBITS_TO_INDEX(bits) \ 52171 (((bits) < 512 || (bits) > 1024 || (bits) % 64) ? -1 : \ 52172 (int)((bits)-512)/64) 52173 #define PQG_INDEX_TO_PBITS(j) \ 52174 (((unsigned)(j) > 8) ? -1 : (512 + 64 * (j))) 52175 #define NSS_AES 0 52176 #define NSS_DES 0 52177 #define NSS_RC2 0 52178 #define NSS_RC5 0 52179 #define NSS_AES_CBC 1 52180 #define NSS_DES_CBC 1 52181 #define NSS_RC2_CBC 1 52182 #define NSS_RC5_CBC 1 52183 #define DSA_MAX_P_BITS 1024 52184 #define DH_MIN_P_BITS 128 52185 #define RSA_MIN_MODULUS_BITS 128 52186 #define AES_BLOCK_SIZE 16 52187 #define DSA_Q_BITS 160 52188 #define NSS_DES_EDE3 2 52189 #define DSA_SUBPRIME_LEN 20 52190 #define NSS_FREEBL_DEFAULT_CHUNKSIZE 2048 52191 #define DH_MAX_P_BITS 2236 52192 #define NSS_DES_EDE3_CBC 3 52193 #define DSA_SIGNATURE_LEN 40 52194 #define DSA_MIN_P_BITS 512 52195 #define AES_KEY_WRAP_BLOCK_SIZE 8 52196 #define AES_KEY_WRAP_IV_BYTES 8 52197 #define DES_KEY_LENGTH 8 52198 52199 typedef struct PQGParamsStr { 52200 PLArenaPool *arena; 52201 SECItem prime; 52202 SECItem subPrime; 52203 SECItem base; 52204 } PQGParams; 52205 typedef struct PQGVerifyStr { 52206 PLArenaPool *arena; 52207 unsigned int counter; 52208 SECItem seed; 52209 SECItem h; 52210 } PQGVerify; 52211 __________________________________________________________ 52212 52213 24.4.2. nss3/cert.h 52214 52215 #define _CERT_H_ 52216 52217 extern SECCertTimeValidity CERT_CheckCertValidTimes(CERTCertificate * cert, 52218 PRTime t, 52219 PRBool allowOverride); 52220 extern void CERT_DestroyCertificate(CERTCertificate * cert); 52221 extern CERTCertificate *CERT_DupCertificate(CERTCertificate * c); 52222 extern void CERT_FreeNicknames(CERTCertNicknames * nicknames); 52223 extern CERTCertNicknames *CERT_GetCertNicknames(CERTCertDBHandle * handle, 52224 int what, void *wincx); 52225 extern CERTCertDBHandle *CERT_GetDefaultCertDB(void); 52226 extern SECStatus CERT_VerifyCertName(CERTCertificate * cert, 52227 const char *hostname); 52228 extern SECStatus CERT_VerifyCertNow(CERTCertDBHandle * handle, 52229 CERTCertificate * cert, 52230 PRBool checkSig, 52231 SECCertUsage certUsage, void *wincx); 52232 __________________________________________________________ 52233 52234 24.4.3. nss3/certt.h 52235 52236 #define _CERTT_H_ 52237 #define NS_CERT_TYPE_CA \ 52238 ( NS_CERT_TYPE_SSL_CA | NS_CERT_TYPE_EMAIL_CA | \ 52239 NS_CERT_TYPE_OBJECT_SIGNING_CA | EXT_KEY_USAGE_STATUS_RESPONDER) 52240 #define NS_CERT_TYPE_APP \ 52241 ( NS_CERT_TYPE_SSL_CLIENT | NS_CERT_TYPE_SSL_SERVER | \ 52242 NS_CERT_TYPE_EMAIL | NS_CERT_TYPE_OBJECT_SIGNING ) 52243 #define SEC_GET_TRUST_FLAGS(trust,type) \ 52244 (((type)==trustSSL)?((trust)->sslFlags): \ 52245 (((type)==trustEmail)?((trust)->emailFlags): \ 52246 (((type)==trustObjectSigning)?((trust)->objectSigningFlags):0))) 52247 #define KU_ALL \ 52248 (KU_DIGITAL_SIGNATURE | KU_NON_REPUDIATION | KU_KEY_ENCIPHERMENT | \ 52249 KU_DATA_ENCIPHERMENT | KU_KEY_AGREEMENT | KU_KEY_CERT_SIGN | \ 52250 KU_CRL_SIGN) 52251 #define CERT_LIST_END(n,l) (((void *)n) == ((void *)&l->list)) 52252 #define CERT_LIST_NEXT(n) ((CERTCertListNode *)n->links.next) 52253 #define CERT_LIST_HEAD(l) ((CERTCertListNode *)PR_LIST_HEAD(&l->list)) 52254 #define certificateUsageSSLClient (0x0001) 52255 #define certificateUsageSSLServer (0x0002) 52256 #define certificateUsageSSLServerWithStepUp (0x0004) 52257 #define certificateUsageSSLCA (0x0008) 52258 #define certificateUsageEmailSigner (0x0010) 52259 #define certificateUsageEmailRecipient (0x0020) 52260 #define certificateUsageObjectSigner (0x0040) 52261 #define certificateUsageUserCertImport (0x0080) 52262 #define NS_CERT_TYPE_OBJECT_SIGNING_CA (0x01) 52263 #define certificateUsageVerifyCA (0x0100) 52264 #define KU_CRL_SIGN (0x02) 52265 #define NS_CERT_TYPE_EMAIL_CA (0x02) 52266 #define RF_CERTIFICATE_HOLD (0x02) 52267 #define certificateUsageProtectedObjectSigner (0x0200) 52268 #define KU_KEY_CERT_SIGN (0x04) 52269 #define NS_CERT_TYPE_SSL_CA (0x04) 52270 #define RF_CESSATION_OF_OPERATION (0x04) 52271 #define certificateUsageStatusResponder (0x0400) 52272 #define KU_KEY_AGREEMENT (0x08) 52273 #define NS_CERT_TYPE_RESERVED (0x08) 52274 #define RF_SUPERSEDED (0x08) 52275 #define certificateUsageAnyCA (0x0800) 52276 #define KU_DATA_ENCIPHERMENT (0x10) 52277 #define NS_CERT_TYPE_OBJECT_SIGNING (0x10) 52278 #define RF_AFFILIATION_CHANGED (0x10) 52279 #define KU_KEY_ENCIPHERMENT (0x20) 52280 #define NS_CERT_TYPE_EMAIL (0x20) 52281 #define RF_CA_COMPROMISE (0x20) 52282 #define KU_NON_REPUDIATION (0x40) 52283 #define NS_CERT_TYPE_SSL_SERVER (0x40) 52284 #define RF_KEY_COMPROMISE (0x40) 52285 #define EXT_KEY_USAGE_STATUS_RESPONDER (0x4000) 52286 #define KU_KEY_AGREEMENT_OR_ENCIPHERMENT (0x4000) 52287 #define KU_DIGITAL_SIGNATURE (0x80) 52288 #define NS_CERT_TYPE_SSL_CLIENT (0x80) 52289 #define RF_UNUSED (0x80) 52290 #define EXT_KEY_USAGE_TIME_STAMP (0x8000) 52291 #define KU_NS_GOVT_APPROVED (0x8000) 52292 #define CERT_UNLIMITED_PATH_CONSTRAINT -2 52293 #define SEC_CERTIFICATE_REQUEST_VERSION 0 52294 #define SEC_CERTIFICATE_VERSION_1 0 52295 #define SEC_CRL_VERSION_1 0 52296 #define SEC_CERTIFICATE_VERSION_2 1 52297 #define SEC_CERT_CLASS_CA 1 52298 #define SEC_CERT_NICKNAMES_ALL 1 52299 #define SEC_CRL_VERSION_2 1 52300 #define SEC_CERTIFICATE_VERSION_3 2 52301 #define SEC_CERT_CLASS_SERVER 2 52302 #define SEC_CERT_NICKNAMES_USER 2 52303 #define CERT_MAX_CERT_CHAIN 20 52304 #define SEC_CERT_CLASS_USER 3 52305 #define SEC_CERT_NICKNAMES_SERVER 3 52306 #define SEC_CERT_CLASS_EMAIL 4 52307 #define SEC_CERT_NICKNAMES_CA 4 52308 #define certificateUsageHighest certificateUsageAnyCA 52309 #define CERT_LIST_EMPTY(l) CERT_LIST_END(CERT_LIST_HEAD(l), l) 52310 52311 typedef struct CERTAVAStr { 52312 SECItem type; 52313 SECItem value; 52314 } CERTAVA; 52315 typedef struct CERTAttributeStr { 52316 SECItem attrType; 52317 SECItem **attrValue; 52318 } CERTAttribute; 52319 typedef struct CERTAuthInfoAccessStr { 52320 SECItem method; 52321 SECItem derLocation; 52322 CERTGeneralName *location; 52323 } CERTAuthInfoAccess; 52324 typedef struct CERTAuthKeyIDStr { 52325 SECItem keyID; 52326 CERTGeneralName *authCertIssuer; 52327 SECItem authCertSerialNumber; 52328 SECItem **DERAuthCertIssuer; 52329 } CERTAuthKeyID; 52330 typedef struct CERTBasicConstraintsStr { 52331 PRBool isCA; 52332 int pathLenConstraint; 52333 } CERTBasicConstraints; 52334 typedef struct NSSTrustDomainStr CERTCertDBHandle; 52335 typedef struct CERTCertExtensionStr { 52336 SECItem id; 52337 SECItem critical; 52338 SECItem value; 52339 } CERTCertExtension; 52340 typedef struct CERTCertListStr { 52341 PRCList list; 52342 PLArenaPool *arena; 52343 } CERTCertList; 52344 typedef struct CERTCertListNodeStr { 52345 PRCList links; 52346 CERTCertificate *cert; 52347 void *appData; 52348 } CERTCertListNode; 52349 typedef struct CERTCertNicknamesStr { 52350 PLArenaPool *arena; 52351 void *head; 52352 int numnicknames; 52353 char **nicknames; 52354 int what; 52355 int totallen; 52356 } CERTCertNicknames; 52357 typedef struct CERTCertTrustStr { 52358 unsigned int sslFlags; 52359 unsigned int emailFlags; 52360 unsigned int objectSigningFlags; 52361 } CERTCertTrust; 52362 typedef struct CERTSignedDataStr { 52363 SECItem data; 52364 SECAlgorithmID signatureAlgorithm; 52365 SECItem signature; 52366 } CERTSignedData; 52367 typedef struct CERTCertificateListStr { 52368 SECItem *certs; 52369 int len; 52370 PLArenaPool *arena; 52371 } CERTCertificateList; 52372 typedef struct CERTNameStr { 52373 PLArenaPool *arena; 52374 CERTRDN **rdns; 52375 } CERTName; 52376 typedef struct CERTCrlStr { 52377 PLArenaPool *arena; 52378 SECItem version; 52379 SECAlgorithmID signatureAlg; 52380 SECItem derName; 52381 CERTName name; 52382 SECItem lastUpdate; 52383 SECItem nextUpdate; 52384 CERTCrlEntry **entries; 52385 CERTCertExtension **extensions; 52386 } CERTCrl; 52387 typedef struct CERTCrlDistributionPointsStr { 52388 CRLDistributionPoint **distPoints; 52389 } CERTCrlDistributionPoints; 52390 typedef struct CERTCrlEntryStr { 52391 SECItem serialNumber; 52392 SECItem revocationDate; 52393 CERTCertExtension **extensions; 52394 } CERTCrlEntry; 52395 typedef struct CERTCrlHeadNodeStr { 52396 PLArenaPool *arena; 52397 CERTCertDBHandle *dbhandle; 52398 CERTCrlNode *first; 52399 CERTCrlNode *last; 52400 } CERTCrlHeadNode; 52401 typedef struct CERTCrlNodeStr { 52402 CERTCrlNode *next; 52403 int type; 52404 CERTSignedCrl *crl; 52405 } CERTCrlNode; 52406 typedef struct CERTDistNamesStr { 52407 PLArenaPool *arena; 52408 int nnames; 52409 SECItem *names; 52410 void *head; 52411 } CERTDistNames; 52412 typedef struct OtherNameStr { 52413 SECItem name; 52414 SECItem oid; 52415 } OtherName; 52416 typedef struct CERTGeneralNameListStr { 52417 PLArenaPool *arena; 52418 CERTGeneralName *name; 52419 int refCount; 52420 int len; 52421 PRLock *lock; 52422 } CERTGeneralNameList; 52423 typedef struct CERTIssuerAndSNStr { 52424 SECItem derIssuer; 52425 CERTName issuer; 52426 SECItem serialNumber; 52427 } CERTIssuerAndSN; 52428 typedef struct CERTSubjectPublicKeyInfoStr { 52429 PLArenaPool *arena; 52430 SECAlgorithmID algorithm; 52431 SECItem subjectPublicKey; 52432 } CERTSubjectPublicKeyInfo; 52433 typedef struct CERTGeneralNameStr { 52434 CERTGeneralNameType type; 52435 union { 52436 CERTName directoryName; 52437 OtherName OthName; 52438 SECItem other; 52439 } name; 52440 SECItem derDirectoryName; 52441 PRCList l; 52442 } CERTGeneralName; 52443 typedef struct CERTNameConstraintsStr { 52444 CERTNameConstraint *permited; 52445 CERTNameConstraint *excluded; 52446 SECItem **DERPermited; 52447 SECItem **DERExcluded; 52448 } CERTNameConstraints; 52449 typedef struct CERTOKDomainNameStr { 52450 CERTOKDomainName *next; 52451 char name[1]; 52452 } CERTOKDomainName; 52453 typedef struct CERTPrivKeyUsagePeriodStr { 52454 SECItem notBefore; 52455 SECItem notAfter; 52456 PLArenaPool *arena; 52457 } CERTPrivKeyUsagePeriod; 52458 typedef struct CERTRDNStr { 52459 CERTAVA **avas; 52460 } CERTRDN; 52461 typedef struct CERTSignedCrlStr { 52462 PLArenaPool *arena; 52463 CERTCrl crl; 52464 void *reserved1; 52465 PRBool reserved2; 52466 PRBool isperm; 52467 PRBool istemp; 52468 int referenceCount; 52469 CERTCertDBHandle *dbhandle; 52470 CERTSignedData signatureWrap; 52471 char *url; 52472 SECItem *derCrl; 52473 PK11SlotInfo *slot; 52474 CK_OBJECT_HANDLE pkcs11ID; 52475 void *opaque; 52476 } CERTSignedCrl; 52477 typedef struct CERTValidityStr { 52478 PLArenaPool *arena; 52479 SECItem notBefore; 52480 SECItem notAfter; 52481 } CERTValidity; 52482 typedef struct CERTStatusConfigStr { 52483 CERTStatusChecker statusChecker; 52484 CERTStatusDestroy statusDestroy; 52485 void *statusContext; 52486 } CERTStatusConfig; 52487 typedef struct CERTSubjectListStr { 52488 PLArenaPool *arena; 52489 int ncerts; 52490 char *emailAddr; 52491 CERTSubjectNode *head; 52492 CERTSubjectNode *tail; 52493 void *entry; 52494 } CERTSubjectList; 52495 typedef struct CERTSubjectNodeStr { 52496 struct CERTSubjectNodeStr *next; 52497 struct CERTSubjectNodeStr *prev; 52498 SECItem certKey; 52499 SECItem keyID; 52500 } CERTSubjectNode; 52501 typedef struct CERTCertificateRequestStr { 52502 PLArenaPool *arena; 52503 SECItem version; 52504 CERTName subject; 52505 CERTSubjectPublicKeyInfo subjectPublicKeyInfo; 52506 CERTAttribute **attributes; 52507 } CERTCertificateRequest; 52508 typedef struct CERTCertificateStr { 52509 PLArenaPool *arena; 52510 char *subjectName; 52511 char *issuerName; 52512 CERTSignedData signatureWrap; 52513 SECItem derCert; 52514 SECItem derIssuer; 52515 SECItem derSubject; 52516 SECItem derPublicKey; 52517 SECItem certKey; 52518 SECItem version; 52519 SECItem serialNumber; 52520 SECAlgorithmID signature; 52521 CERTName issuer; 52522 CERTValidity validity; 52523 CERTName subject; 52524 CERTSubjectPublicKeyInfo subjectPublicKeyInfo; 52525 SECItem issuerID; 52526 SECItem subjectID; 52527 CERTCertExtension **extensions; 52528 char *emailAddr; 52529 CERTCertDBHandle *dbhandle; 52530 SECItem subjectKeyID; 52531 PRBool keyIDGenerated; 52532 unsigned int keyUsage; 52533 unsigned int rawKeyUsage; 52534 PRBool keyUsagePresent; 52535 PRUint32 nsCertType; 52536 PRBool keepSession; 52537 PRBool timeOK; 52538 CERTOKDomainName *domainOK; 52539 PRBool isperm; 52540 PRBool istemp; 52541 char *nickname; 52542 char *dbnickname; 52543 struct NSSCertificateStr *nssCertificate; 52544 CERTCertTrust *trust; 52545 int referenceCount; 52546 CERTSubjectList *subjectList; 52547 CERTAuthKeyID *authKeyID; 52548 PRBool isRoot; 52549 union { 52550 void *apointer; 52551 struct { 52552 unsigned int hasUnsupportedCriticalExt; 52553 } bits; 52554 } options; 52555 int series; 52556 PK11SlotInfo *slot; 52557 CK_OBJECT_HANDLE pkcs11ID; 52558 PRBool ownSlot; 52559 } CERTCertificate; 52560 typedef struct CERTVerifyLogStr { 52561 PLArenaPool *arena; 52562 unsigned int count; 52563 struct CERTVerifyLogNodeStr *head; 52564 struct CERTVerifyLogNodeStr *tail; 52565 } CERTVerifyLog; 52566 typedef struct CRLDistributionPointStr { 52567 DistributionPointTypes distPointType; 52568 union { 52569 CERTGeneralName *fullName; 52570 CERTRDN relativeName; 52571 } distPoint; 52572 SECItem reasons; 52573 CERTGeneralName *crlIssuer; 52574 SECItem derDistPoint; 52575 SECItem derRelativeName; 52576 SECItem **derCrlIssuer; 52577 SECItem **derFullName; 52578 SECItem bitsmap; 52579 } CRLDistributionPoint; 52580 typedef enum SECCertUsageEnum { 52581 certUsageSSLClient, 52582 certUsageSSLServer = 1, 52583 certUsageSSLServerWithStepUp = 2, 52584 certUsageSSLCA = 3, 52585 certUsageEmailSigner = 4, 52586 certUsageEmailRecipient = 5, 52587 certUsageObjectSigner = 6, 52588 certUsageUserCertImport = 7, 52589 certUsageVerifyCA = 8, 52590 certUsageProtectedObjectSigner = 9, 52591 certUsageStatusResponder = 10, 52592 certUsageAnyCA = 11 52593 } SECCertUsage; 52594 typedef PRInt64 SECCertificateUsage; 52595 typedef enum SECCertTimeValidityEnum { 52596 secCertTimeValid, 52597 secCertTimeExpired = 1, 52598 secCertTimeNotValidYet = 2, 52599 secCertTimeUndetermined = 3 52600 } SECCertTimeValidity; 52601 typedef enum CERTCompareValidityStatusEnum { 52602 certValidityUndetermined, 52603 certValidityChooseB = 1, 52604 certValidityEqual = 2, 52605 certValidityChooseA = 3 52606 } CERTCompareValidityStatus; 52607 typedef enum CERTGeneralNameTypeEnum { 52608 certOtherName = 1, 52609 certRFC822Name = 2, 52610 certDNSName = 3, 52611 certX400Address = 4, 52612 certDirectoryName = 5, 52613 certEDIPartyName = 6, 52614 certURI = 7, 52615 certIPAddress = 8, 52616 certRegisterID = 9 52617 } CERTGeneralNameType; 52618 typedef struct CERTNameConstraintStr { 52619 CERTGeneralName name; 52620 SECItem DERName; 52621 SECItem min; 52622 SECItem max; 52623 PRCList l; 52624 } CERTNameConstraint; 52625 typedef enum DistributionPointTypesEnum { 52626 generalName = 1, 52627 relativeDistinguishedName = 2 52628 } DistributionPointTypes; 52629 struct CERTVerifyLogNodeStr { 52630 CERTCertificate *cert; 52631 long int error; 52632 unsigned int depth; 52633 void *arg; 52634 struct CERTVerifyLogNodeStr *next; 52635 struct CERTVerifyLogNodeStr *prev; 52636 }; 52637 typedef SECStatus(*CERTStatusChecker) (CERTCertDBHandle *, 52638 CERTCertificate *, PRInt64, void*); 52639 typedef SECStatus(*CERTStatusDestroy) (CERTStatusConfig *); 52640 typedef struct { 52641 SECOidTag oid; 52642 SECItem qualifierID; 52643 SECItem qualifierValue; 52644 } CERTPolicyQualifier; 52645 typedef struct { 52646 SECOidTag oid; 52647 SECItem policyID; 52648 CERTPolicyQualifier **policyQualifiers; 52649 } CERTPolicyInfo; 52650 typedef struct { 52651 PLArenaPool *arena; 52652 CERTPolicyInfo **policyInfos; 52653 } CERTCertificatePolicies; 52654 typedef struct { 52655 SECItem organization; 52656 SECItem **noticeNumbers; 52657 } CERTNoticeReference; 52658 typedef struct { 52659 PLArenaPool *arena; 52660 CERTNoticeReference noticeReference; 52661 SECItem derNoticeReference; 52662 SECItem displayText; 52663 } CERTUserNotice; 52664 typedef struct { 52665 PLArenaPool *arena; 52666 SECItem **oids; 52667 } CERTOidSequence; 52668 __________________________________________________________ 52669 52670 24.4.4. nss3/cmsreclist.h 52671 52672 #define _CMSRECLIST_H 52673 52674 typedef struct NSSCMSRecipientStr { 52675 int riIndex; 52676 int subIndex; 52677 enum { 52678 RLIssuerSN, 52679 RLSubjKeyID = 1 52680 } kind; 52681 union { 52682 CERTIssuerAndSN *issuerAndSN; 52683 SECItem *subjectKeyID; 52684 } id; 52685 CERTCertificate *cert; 52686 SECKEYPrivateKey *privkey; 52687 PK11SlotInfo *slot; 52688 } NSSCMSRecipient; 52689 __________________________________________________________ 52690 52691 24.4.5. nss3/cryptoht.h 52692 52693 #define _CRYPTOHT_H_ 52694 52695 typedef struct SGNContextStr SGNContext; 52696 typedef struct VFYContextStr VFYContext; 52697 __________________________________________________________ 52698 52699 24.4.6. nss3/hasht.h 52700 52701 #define _HASHT_H_ 52702 #define MD2_LENGTH 16 52703 #define MD5_LENGTH 16 52704 #define SHA1_LENGTH 20 52705 #define SHA256_LENGTH 32 52706 #define SHA384_LENGTH 48 52707 #define SHA512_LENGTH 64 52708 #define HASH_LENGTH_MAX SHA512_LENGTH 52709 52710 typedef struct SECHashObjectStr { 52711 unsigned int length; 52712 void *(*create) (void); 52713 void *(*clone) (void *); 52714 void (*destroy) (void *, PRBool); 52715 void (*begin) (void *); 52716 void (*update) (void *, const unsigned char *, unsigned int); 52717 void (*end) (void *, unsigned char *, unsigned int *, unsigned int); 52718 unsigned int blocklength; 52719 HASH_HashType type; 52720 } SECHashObject; 52721 typedef struct HASHContextStr { 52722 const struct SECHashObjectStr *hashobj; 52723 void *hash_context; 52724 } HASHContext; 52725 typedef enum { 52726 HASH_AlgNULL, 52727 HASH_AlgMD2 = 1, 52728 HASH_AlgMD5 = 2, 52729 HASH_AlgSHA1 = 3, 52730 HASH_AlgSHA256 = 4, 52731 HASH_AlgSHA384 = 5, 52732 HASH_AlgSHA512 = 6, 52733 HASH_AlgTOTAL = 7 52734 } HASH_HashType; 52735 __________________________________________________________ 52736 52737 24.4.7. nss3/key.h 52738 52739 #define _KEY_H_ 52740 __________________________________________________________ 52741 52742 24.4.8. nss3/keyhi.h 52743 52744 #define _KEYHI_H_ 52745 52746 extern void SECKEY_DestroyPrivateKey(SECKEYPrivateKey * key); 52747 __________________________________________________________ 52748 52749 24.4.9. nss3/keyt.h 52750 52751 #define _KEYT_H_ 52752 __________________________________________________________ 52753 52754 24.4.10. nss3/keythi.h 52755 52756 #define _KEYTHI_H_ 52757 52758 typedef enum { 52759 nullKey, 52760 rsaKey = 1, 52761 dsaKey = 2, 52762 fortezzaKey = 3, 52763 dhKey = 4, 52764 keaKey = 5, 52765 ecKey = 6 52766 } KeyType; 52767 typedef struct SECKEYRSAPublicKeyStr { 52768 PLArenaPool *arena; 52769 SECItem modulus; 52770 SECItem publicExponent; 52771 } SECKEYRSAPublicKey; 52772 typedef struct SECKEYPQGParamsStr { 52773 PLArenaPool *arena; 52774 SECItem prime; 52775 SECItem subPrime; 52776 SECItem base; 52777 } SECKEYPQGParams; 52778 typedef struct SECKEYDSAPublicKeyStr { 52779 SECKEYPQGParams params; 52780 SECItem publicValue; 52781 } SECKEYDSAPublicKey; 52782 typedef struct SECKEYDHParamsStr { 52783 PLArenaPool *arena; 52784 SECItem prime; 52785 SECItem base; 52786 } SECKEYDHParams; 52787 typedef struct SECKEYDHPublicKeyStr { 52788 PLArenaPool *arena; 52789 SECItem prime; 52790 SECItem base; 52791 SECItem publicValue; 52792 } SECKEYDHPublicKey; 52793 typedef SECItem SECKEYECParams; 52794 typedef struct SECKEYECPublicKeyStr { 52795 SECKEYECParams DEREncodedParams; 52796 int size; 52797 SECItem publicValue; 52798 } SECKEYECPublicKey; 52799 typedef struct SECKEYFortezzaPublicKeyStr { 52800 int KEAversion; 52801 int DSSversion; 52802 unsigned char KMID[8]; 52803 SECItem clearance; 52804 SECItem KEApriviledge; 52805 SECItem DSSpriviledge; 52806 SECItem KEAKey; 52807 SECItem DSSKey; 52808 SECKEYPQGParams params; 52809 SECKEYPQGParams keaParams; 52810 } SECKEYFortezzaPublicKey; 52811 typedef struct SECKEYKEAParamsStr { 52812 PLArenaPool *arena; 52813 SECItem hash; 52814 } SECKEYKEAParams; 52815 typedef struct SECKEYKEAPublicKeyStr { 52816 SECKEYKEAParams params; 52817 SECItem publicValue; 52818 } SECKEYKEAPublicKey; 52819 typedef struct SECKEYPublicKeyStr { 52820 PLArenaPool *arena; 52821 KeyType keyType; 52822 PK11SlotInfo *pkcs11Slot; 52823 CK_OBJECT_HANDLE pkcs11ID; 52824 union { 52825 SECKEYRSAPublicKey rsa; 52826 SECKEYDSAPublicKey dsa; 52827 SECKEYDHPublicKey dh; 52828 SECKEYKEAPublicKey kea; 52829 SECKEYFortezzaPublicKey fortezza; 52830 SECKEYECPublicKey ec; 52831 } u; 52832 } SECKEYPublicKey; 52833 typedef struct SECKEYPrivateKeyStr { 52834 PLArenaPool *arena; 52835 KeyType keyType; 52836 PK11SlotInfo *pkcs11Slot; 52837 CK_OBJECT_HANDLE pkcs11ID; 52838 PRBool pkcs11IsTemp; 52839 void *wincx; 52840 PRUint32 staticflags; 52841 } SECKEYPrivateKey; 52842 typedef struct { 52843 PRCList links; 52844 SECKEYPrivateKey *key; 52845 } SECKEYPrivateKeyListNode; 52846 typedef struct { 52847 PRCList list; 52848 PLArenaPool *arena; 52849 } SECKEYPrivateKeyList; 52850 typedef struct { 52851 PRCList list; 52852 PLArenaPool *arena; 52853 } SECKEYPublicKeyList; 52854 __________________________________________________________ 52855 52856 24.4.11. nss3/nss.h 52857 52858 #define __nss_h_ 52859 #define NSS_VERSION "3.11.4" 52860 #define NSS_INIT_READONLY 0x1 52861 #define NSS_INIT_NOROOTINIT 0x10 52862 #define NSS_INIT_NOPK11FINALIZE 0x100 52863 #define NSS_INIT_NOCERTDB 0x2 52864 #define NSS_INIT_OPTIMIZESPACE 0x20 52865 #define NSS_INIT_RESERVED 0x200 52866 #define NSS_INIT_NOMODDB 0x4 52867 #define NSS_INIT_PK11THREADSAFE 0x40 52868 #define NSS_INIT_FORCEOPEN 0x8 52869 #define NSS_INIT_PK11RELOAD 0x80 52870 #define NSS_VMINOR 11 52871 #define NSS_VMAJOR 3 52872 #define NSS_VPATCH 4 52873 #define NSS_INIT_COOPERATE NSS_INIT_PK11THREADSAFE | NSS_INIT_PK11RELOAD | NSS_INIT_NOPK11FINALIZE | NSS_INIT_RESERVED 52874 #define SECMOD_DB "secmod.db" 52875 52876 extern SECStatus NSS_Init(const char *configdir); 52877 extern SECStatus NSS_InitReadWrite(const char *configdir); 52878 extern SECStatus NSS_NoDB_Init(const char *configdir); 52879 extern SECStatus NSS_Shutdown(void); 52880 __________________________________________________________ 52881 52882 24.4.12. nss3/nssb64.h 52883 52884 #define _NSSB64_H_ 52885 __________________________________________________________ 52886 52887 24.4.13. nss3/nssb64t.h 52888 52889 #define _NSSB64T_H_ 52890 52891 typedef struct NSSBase64DecoderStr NSSBase64Decoder; 52892 typedef struct NSSBase64EncoderStr NSSBase64Encoder; 52893 __________________________________________________________ 52894 52895 24.4.14. nss3/nssilckt.h 52896 52897 #define _NSSILCKT_H_ 52898 52899 typedef enum { 52900 nssILockArena, 52901 nssILockSession = 1, 52902 nssILockObject = 2, 52903 nssILockRefLock = 3, 52904 nssILockCert = 4, 52905 nssILockCertDB = 5, 52906 nssILockDBM = 6, 52907 nssILockCache = 7, 52908 nssILockSSL = 8, 52909 nssILockList = 9, 52910 nssILockSlot = 10, 52911 nssILockFreelist = 11, 52912 nssILockOID = 12, 52913 nssILockAttribute = 13, 52914 nssILockPK11cxt = 14, 52915 nssILockRWLock = 15, 52916 nssILockOther = 16, 52917 nssILockSelfServ = 17, 52918 nssILockKeyDB = 18, 52919 nssILockLast = 19 52920 } nssILockType; 52921 __________________________________________________________ 52922 52923 24.4.15. nss3/nssrwlkt.h 52924 52925 #define nssrwlkt_h___ 52926 52927 typedef struct nssRWLockStr NSSRWLock; 52928 __________________________________________________________ 52929 52930 24.4.16. nss3/ocspt.h 52931 52932 #define _OCSPT_H_ 52933 52934 typedef struct CERTOCSPRequestStr CERTOCSPRequest; 52935 typedef struct CERTOCSPResponseStr CERTOCSPResponse; 52936 typedef struct CERTOCSPCertIDStr CERTOCSPCertID; 52937 typedef struct CERTOCSPSingleResponseStr CERTOCSPSingleResponse; 52938 __________________________________________________________ 52939 52940 24.4.17. nss3/pk11pub.h 52941 52942 #define _PK11PUB_H_ 52943 52944 extern CERTCertificate *PK11_FindCertFromNickname(const char *nickname, 52945 void *wincx); 52946 extern SECKEYPrivateKey *PK11_FindKeyByAnyCert(CERTCertificate * cert, 52947 void *wincx); 52948 extern char *PK11_GetSlotName(PK11SlotInfo * slot); 52949 extern char *PK11_GetTokenName(PK11SlotInfo * slot); 52950 extern PRBool PK11_IsHW(PK11SlotInfo * slot); 52951 extern PRBool PK11_IsPresent(PK11SlotInfo * slot); 52952 extern PRBool PK11_IsReadOnly(PK11SlotInfo * slot); 52953 extern void PK11_SetPasswordFunc(PK11PasswordFunc func); 52954 __________________________________________________________ 52955 52956 24.4.18. nss3/pkcs11t.h 52957 52958 #define _PKCS11T_H_ 52959 52960 typedef unsigned char CK_BYTE; 52961 typedef CK_BYTE CK_CHAR; 52962 typedef CK_BYTE CK_UTF8CHAR; 52963 typedef unsigned long int CK_ULONG; 52964 typedef CK_ULONG CK_FLAGS; 52965 typedef void *CK_VOID_PTR; 52966 typedef struct CK_VERSION { 52967 CK_BYTE major; 52968 CK_BYTE minor; 52969 } CK_VERSION; 52970 typedef struct CK_INFO { 52971 CK_VERSION cryptokiVersion; 52972 CK_UTF8CHAR manufacturerID[31]; 52973 CK_FLAGS flags; 52974 CK_UTF8CHAR libraryDescription[31]; 52975 CK_VERSION libraryVersion; 52976 } CK_INFO; 52977 typedef CK_ULONG CK_SLOT_ID; 52978 typedef struct CK_SLOT_INFO { 52979 CK_UTF8CHAR slotDescription[63]; 52980 CK_UTF8CHAR manufacturerID[31]; 52981 CK_FLAGS flags; 52982 CK_VERSION hardwareVersion; 52983 CK_VERSION firmwareVersion; 52984 } CK_SLOT_INFO; 52985 typedef struct CK_TOKEN_INFO { 52986 CK_UTF8CHAR label[31]; 52987 CK_UTF8CHAR manufacturerID[31]; 52988 CK_UTF8CHAR model[15]; 52989 CK_CHAR serialNumber[15]; 52990 CK_FLAGS flags; 52991 CK_ULONG ulMaxSessionCount; 52992 CK_ULONG ulSessionCount; 52993 CK_ULONG ulMaxRwSessionCount; 52994 CK_ULONG ulRwSessionCount; 52995 CK_ULONG ulMaxPinLen; 52996 CK_ULONG ulMinPinLen; 52997 CK_ULONG ulTotalPublicMemory; 52998 CK_ULONG ulFreePublicMemory; 52999 CK_ULONG ulTotalPrivateMemory; 53000 CK_ULONG ulFreePrivateMemory; 53001 CK_VERSION hardwareVersion; 53002 CK_VERSION firmwareVersion; 53003 CK_CHAR utcTime[15]; 53004 } CK_TOKEN_INFO; 53005 typedef CK_ULONG CK_SESSION_HANDLE; 53006 typedef CK_ULONG CK_OBJECT_HANDLE; 53007 typedef CK_ULONG CK_OBJECT_CLASS; 53008 typedef CK_ULONG CK_KEY_TYPE; 53009 typedef CK_ULONG CK_ATTRIBUTE_TYPE; 53010 typedef struct CK_ATTRIBUTE { 53011 CK_ATTRIBUTE_TYPE type; 53012 CK_VOID_PTR pValue; 53013 CK_ULONG ulValueLen; 53014 } CK_ATTRIBUTE; 53015 typedef CK_ATTRIBUTE *CK_ATTRIBUTE_PTR; 53016 typedef CK_ULONG CK_MECHANISM_TYPE; 53017 typedef struct CK_MECHANISM { 53018 CK_MECHANISM_TYPE mechanism; 53019 CK_VOID_PTR pParameter; 53020 CK_ULONG ulParameterLen; 53021 } CK_MECHANISM; 53022 typedef CK_MECHANISM *CK_MECHANISM_PTR; 53023 typedef CK_ULONG CK_RV; 53024 __________________________________________________________ 53025 53026 24.4.19. nss3/pkcs7t.h 53027 53028 #define _PKCS7T_H_ 53029 53030 typedef struct SEC_PKCS7RecipientInfoStr { 53031 SECItem version; 53032 CERTIssuerAndSN *issuerAndSN; 53033 SECAlgorithmID keyEncAlg; 53034 SECItem encKey; 53035 CERTCertificate *cert; 53036 } SEC_PKCS7RecipientInfo; 53037 __________________________________________________________ 53038 53039 24.4.20. nss3/secasn1t.h 53040 53041 #define _SECASN1T_H_ 53042 53043 typedef struct sec_ASN1Template_struct { 53044 unsigned long int kind; 53045 unsigned long int offset; 53046 const void *sub; 53047 unsigned int size; 53048 } SEC_ASN1Template; 53049 typedef struct sec_DecoderContext_struct SEC_ASN1DecoderContext; 53050 typedef struct sec_EncoderContext_struct SEC_ASN1EncoderContext; 53051 typedef enum { 53052 SEC_ASN1_Identifier, 53053 SEC_ASN1_Length = 1, 53054 SEC_ASN1_Contents = 2, 53055 SEC_ASN1_EndOfContents = 3 53056 } SEC_ASN1EncodingPart; 53057 typedef void (*SEC_ASN1NotifyProc) (void *, PRBool, void *, int); 53058 typedef void (*SEC_ASN1WriteProc) (void *, const char *, unsigned long int, 53059 int, SEC_ASN1EncodingPart); 53060 __________________________________________________________ 53061 53062 24.4.21. nss3/seccomon.h 53063 53064 #define _SECCOMMON_H_ 53065 53066 typedef enum { 53067 siBuffer, 53068 siClearDataBuffer = 1, 53069 siCipherDataBuffer = 2, 53070 siDERCertBuffer = 3, 53071 siEncodedCertBuffer = 4, 53072 siDERNameBuffer = 5, 53073 siEncodedNameBuffer = 6, 53074 siAsciiNameString = 7, 53075 siAsciiString = 8, 53076 siDEROID = 9, 53077 siUnsignedInteger = 10, 53078 siUTCTime = 11, 53079 siGeneralizedTime = 12, 53080 siVisibleString = 13, 53081 siUTF8String = 14, 53082 siBMPString = 15 53083 } SECItemType; 53084 typedef struct SECItemStr { 53085 SECItemType type; 53086 unsigned char *data; 53087 unsigned int len; 53088 } SECItem; 53089 typedef enum _SECStatus { 53090 SECWouldBlock = -2, 53091 SECFailure = -1, 53092 SECSuccess 53093 } SECStatus; 53094 typedef enum _SECComparison { 53095 SECLessThan = -1, 53096 SECEqual, 53097 SECGreaterThan = 1 53098 } SECComparison; 53099 __________________________________________________________ 53100 53101 24.4.22. nss3/secdert.h 53102 53103 #define _SECDERT_H_ 53104 53105 typedef struct DERTemplateStr { 53106 unsigned long int kind; 53107 unsigned int offset; 53108 DERTemplate *sub; 53109 unsigned long int arg; 53110 } DERTemplate; 53111 __________________________________________________________ 53112 53113 24.4.23. nss3/secdigt.h 53114 53115 #define _SECDIGT_H_ 53116 53117 typedef struct SGNDigestInfoStr { 53118 PLArenaPool *arena; 53119 SECAlgorithmID digestAlgorithm; 53120 SECItem digest; 53121 } SGNDigestInfo; 53122 __________________________________________________________ 53123 53124 24.4.24. nss3/secmodt.h 53125 53126 #define _SECMODT_H_ 53127 #define SECMOD_MAKE_NSS_FLAGS(fips,slot) \ 53128 "Flags=internal,critical"fips" \ 53129 slotparams=("#slot"={"SECMOD_SLOT_FLAGS"})" 53130 #define SECMOD_FIPS_NAME "NSS Internal FIPS PKCS #11 Module" 53131 #define SECMOD_INT_NAME "NSS Internal PKCS #11 Module" 53132 #define SECMOD_SLOT_FLAGS "slotFlags=[RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,SHA256,SHA512]" 53133 #define SECMOD_EXTERNAL 0 53134 #define CRL_IMPORT_DEFAULT_OPTIONS 0x00000000 53135 #define CRL_IMPORT_BYPASS_CHECKS 0x00000001 53136 #define PK11_ATTR_TOKEN 0x00000001L 53137 #define SECMOD_RSA_FLAG 0x00000001L 53138 #define PK11_ATTR_SESSION 0x00000002L 53139 #define SECMOD_DSA_FLAG 0x00000002L 53140 #define PK11_ATTR_PRIVATE 0x00000004L 53141 #define SECMOD_RC2_FLAG 0x00000004L 53142 #define PK11_ATTR_PUBLIC 0x00000008L 53143 #define SECMOD_RC4_FLAG 0x00000008L 53144 #define PK11_ATTR_MODIFIABLE 0x00000010L 53145 #define SECMOD_DES_FLAG 0x00000010L 53146 #define PK11_ATTR_UNMODIFIABLE 0x00000020L 53147 #define SECMOD_DH_FLAG 0x00000020L 53148 #define PK11_ATTR_SENSITIVE 0x00000040L 53149 #define SECMOD_FORTEZZA_FLAG 0x00000040L 53150 #define PK11_ATTR_INSENSITIVE 0x00000080L 53151 #define SECMOD_RC5_FLAG 0x00000080L 53152 #define PK11_ATTR_EXTRACTABLE 0x00000100L 53153 #define SECMOD_SHA1_FLAG 0x00000100L 53154 #define PK11_ATTR_UNEXTRACTABLE 0x00000200L 53155 #define SECMOD_MD5_FLAG 0x00000200L 53156 #define SECMOD_MD2_FLAG 0x00000400L 53157 #define SECMOD_SSL_FLAG 0x00000800L 53158 #define SECMOD_TLS_FLAG 0x00001000L 53159 #define SECMOD_AES_FLAG 0x00002000L 53160 #define SECMOD_SHA256_FLAG 0x00004000L 53161 #define SECMOD_SHA512_FLAG 0x00008000L 53162 #define SECMOD_END_WAIT 0x01 53163 #define SECMOD_WAIT_SIMULATED_EVENT 0x02 53164 #define SECMOD_WAIT_PKCS11_EVENT 0x04 53165 #define SECMOD_RESERVED_FLAG 0X08000000L 53166 #define SECMOD_FRIENDLY_FLAG 0x10000000L 53167 #define PK11_OWN_PW_DEFAULTS 0x20000000L 53168 #define PK11_DISABLE_FLAG 0x40000000L 53169 #define SECMOD_RANDOM_FLAG 0x80000000L 53170 #define CKM_FAKE_RANDOM 0x80000efeL 53171 #define CKM_INVALID_MECHANISM 0xffffffffL 53172 #define SECMOD_INTERNAL 1 53173 #define SECMOD_FIPS 2 53174 #define PK11_PW_AUTHENTICATED "AUTH" 53175 #define PK11_PW_RETRY "RETRY" 53176 #define SECMOD_INT_FLAGS SECMOD_MAKE_NSS_FLAGS("",1) 53177 #define SECMOD_FIPS_FLAGS SECMOD_MAKE_NSS_FLAGS(",fips",3) 53178 #define PK11_PW_TRY "TRY" 53179 53180 typedef struct SECMODModuleStr { 53181 PLArenaPool *arena; 53182 PRBool internal; 53183 PRBool loaded; 53184 PRBool isFIPS; 53185 char *dllName; 53186 char *commonName; 53187 void *library; 53188 void *functionList; 53189 PRLock *refLock; 53190 int refCount; 53191 PK11SlotInfo **slots; 53192 int slotCount; 53193 PK11PreSlotInfo *slotInfo; 53194 int slotInfoCount; 53195 SECMODModuleID moduleID; 53196 PRBool isThreadSafe; 53197 unsigned long int ssl[1]; 53198 char *libraryParams; 53199 void *moduleDBFunc; 53200 SECMODModule *parent; 53201 PRBool isCritical; 53202 PRBool isModuleDB; 53203 PRBool moduleDBOnly; 53204 int trustOrder; 53205 int cipherOrder; 53206 unsigned long int evControlMask; 53207 CK_VERSION cryptokiVersion; 53208 } SECMODModule; 53209 typedef struct SECMODModuleListStr { 53210 SECMODModuleList *next; 53211 SECMODModule *module; 53212 } SECMODModuleList; 53213 typedef NSSRWLock SECMODListLock; 53214 typedef struct PK11SlotInfoStr PK11SlotInfo; 53215 typedef struct PK11PreSlotInfoStr PK11PreSlotInfo; 53216 typedef struct PK11SymKeyStr PK11SymKey; 53217 typedef struct PK11ContextStr PK11Context; 53218 typedef struct PK11SlotListStr PK11SlotList; 53219 typedef struct PK11SlotListElementStr PK11SlotListElement; 53220 typedef unsigned long int SECMODModuleID; 53221 typedef struct PK11DefaultArrayEntryStr PK11DefaultArrayEntry; 53222 typedef struct PK11GenericObjectStr PK11GenericObject; 53223 typedef void (*PK11FreeDataFunc) (void *); 53224 typedef enum { 53225 PK11CertListUnique, 53226 PK11CertListUser = 1, 53227 PK11CertListRootUnique = 2, 53228 PK11CertListCA = 3, 53229 PK11CertListCAUnique = 4, 53230 PK11CertListUserUnique = 5, 53231 PK11CertListAll = 6 53232 } PK11CertListType; 53233 typedef PRUint32 PK11AttrFlags; 53234 typedef enum { 53235 PK11_OriginNULL, 53236 PK11_OriginDerive = 1, 53237 PK11_OriginGenerated = 2, 53238 PK11_OriginFortezzaHack = 3, 53239 PK11_OriginUnwrap = 4 53240 } PK11Origin; 53241 typedef enum { 53242 PK11_DIS_NONE, 53243 PK11_DIS_USER_SELECTED = 1, 53244 PK11_DIS_COULD_NOT_INIT_TOKEN = 2, 53245 PK11_DIS_TOKEN_VERIFY_FAILED = 3, 53246 PK11_DIS_TOKEN_NOT_PRESENT = 4 53247 } PK11DisableReasons; 53248 typedef enum { 53249 PK11_TypeGeneric, 53250 PK11_TypePrivKey = 1, 53251 PK11_TypePubKey = 2, 53252 PK11_TypeCert = 3, 53253 PK11_TypeSymKey = 4 53254 } PK11ObjectType; 53255 typedef char *(*PK11PasswordFunc) (PK11SlotInfo *, PRBool, void *); 53256 typedef struct SECKEYAttributeStr { 53257 SECItem attrType; 53258 SECItem **attrValue; 53259 } SECKEYAttribute; 53260 typedef struct SECKEYPrivateKeyInfoStr { 53261 PLArenaPool *arena; 53262 SECItem version; 53263 SECAlgorithmID algorithm; 53264 SECItem privateKey; 53265 SECKEYAttribute **attributes; 53266 } SECKEYPrivateKeyInfo; 53267 typedef struct SECKEYEncryptedPrivateKeyInfoStr { 53268 PLArenaPool *arena; 53269 SECAlgorithmID algorithm; 53270 SECItem encryptedData; 53271 } SECKEYEncryptedPrivateKeyInfo; 53272 typedef enum { 53273 PK11TokenNotRemovable, 53274 PK11TokenPresent = 1, 53275 PK11TokenChanged = 2, 53276 PK11TokenRemoved = 3 53277 } PK11TokenStatus; 53278 typedef enum { 53279 PK11TokenRemovedOrChangedEvent, 53280 PK11TokenPresentEvent = 1 53281 } PK11TokenEvent; 53282 __________________________________________________________ 53283 53284 24.4.25. nss3/secoidt.h 53285 53286 #define _SECOIDT_H_ 53287 53288 typedef struct SECOidDataStr { 53289 SECItem oid; 53290 SECOidTag offset; 53291 const char *desc; 53292 unsigned long int mechanism; 53293 SECSupportExtenTag supportedExtension; 53294 } SECOidData; 53295 typedef struct SECAlgorithmIDStr { 53296 SECItem algorithm; 53297 SECItem parameters; 53298 } SECAlgorithmID; 53299 typedef enum { 53300 SEC_OID_UNKNOWN, 53301 SEC_OID_MD2 = 1, 53302 SEC_OID_MD4 = 2, 53303 SEC_OID_MD5 = 3, 53304 SEC_OID_SHA1 = 4, 53305 SEC_OID_RC2_CBC = 5, 53306 SEC_OID_RC4 = 6, 53307 SEC_OID_DES_EDE3_CBC = 7, 53308 SEC_OID_RC5_CBC_PAD = 8, 53309 SEC_OID_DES_ECB = 9, 53310 SEC_OID_DES_CBC = 10, 53311 SEC_OID_DES_OFB = 11, 53312 SEC_OID_DES_CFB = 12, 53313 SEC_OID_DES_MAC = 13, 53314 SEC_OID_DES_EDE = 14, 53315 SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE = 15, 53316 SEC_OID_PKCS1_RSA_ENCRYPTION = 16, 53317 SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION = 17, 53318 SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION = 18, 53319 SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION = 19, 53320 SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION = 20, 53321 SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC = 21, 53322 SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC = 22, 53323 SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC = 23, 53324 SEC_OID_PKCS7 = 24, 53325 SEC_OID_PKCS7_DATA = 25, 53326 SEC_OID_PKCS7_SIGNED_DATA = 26, 53327 SEC_OID_PKCS7_ENVELOPED_DATA = 27, 53328 SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA = 28, 53329 SEC_OID_PKCS7_DIGESTED_DATA = 29, 53330 SEC_OID_PKCS7_ENCRYPTED_DATA = 30, 53331 SEC_OID_PKCS9_EMAIL_ADDRESS = 31, 53332 SEC_OID_PKCS9_UNSTRUCTURED_NAME = 32, 53333 SEC_OID_PKCS9_CONTENT_TYPE = 33, 53334 SEC_OID_PKCS9_MESSAGE_DIGEST = 34, 53335 SEC_OID_PKCS9_SIGNING_TIME = 35, 53336 SEC_OID_PKCS9_COUNTER_SIGNATURE = 36, 53337 SEC_OID_PKCS9_CHALLENGE_PASSWORD = 37, 53338 SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS = 38, 53339 SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES = 39, 53340 SEC_OID_PKCS9_SMIME_CAPABILITIES = 40, 53341 SEC_OID_AVA_COMMON_NAME = 41, 53342 SEC_OID_AVA_COUNTRY_NAME = 42, 53343 SEC_OID_AVA_LOCALITY = 43, 53344 SEC_OID_AVA_STATE_OR_PROVINCE = 44, 53345 SEC_OID_AVA_ORGANIZATION_NAME = 45, 53346 SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME = 46, 53347 SEC_OID_AVA_DN_QUALIFIER = 47, 53348 SEC_OID_AVA_DC = 48, 53349 SEC_OID_NS_TYPE_GIF = 49, 53350 SEC_OID_NS_TYPE_JPEG = 50, 53351 SEC_OID_NS_TYPE_URL = 51, 53352 SEC_OID_NS_TYPE_HTML = 52, 53353 SEC_OID_NS_TYPE_CERT_SEQUENCE = 53, 53354 SEC_OID_MISSI_KEA_DSS_OLD = 54, 53355 SEC_OID_MISSI_DSS_OLD = 55, 53356 SEC_OID_MISSI_KEA_DSS = 56, 53357 SEC_OID_MISSI_DSS = 57, 53358 SEC_OID_MISSI_KEA = 58, 53359 SEC_OID_MISSI_ALT_KEA = 59, 53360 SEC_OID_NS_CERT_EXT_NETSCAPE_OK = 60, 53361 SEC_OID_NS_CERT_EXT_ISSUER_LOGO = 61, 53362 SEC_OID_NS_CERT_EXT_SUBJECT_LOGO = 62, 53363 SEC_OID_NS_CERT_EXT_CERT_TYPE = 63, 53364 SEC_OID_NS_CERT_EXT_BASE_URL = 64, 53365 SEC_OID_NS_CERT_EXT_REVOCATION_URL = 65, 53366 SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL = 66, 53367 SEC_OID_NS_CERT_EXT_CA_CRL_URL = 67, 53368 SEC_OID_NS_CERT_EXT_CA_CERT_URL = 68, 53369 SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL = 69, 53370 SEC_OID_NS_CERT_EXT_CA_POLICY_URL = 70, 53371 SEC_OID_NS_CERT_EXT_HOMEPAGE_URL = 71, 53372 SEC_OID_NS_CERT_EXT_ENTITY_LOGO = 72, 53373 SEC_OID_NS_CERT_EXT_USER_PICTURE = 73, 53374 SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME = 74, 53375 SEC_OID_NS_CERT_EXT_COMMENT = 75, 53376 SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL = 76, 53377 SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME = 77, 53378 SEC_OID_NS_KEY_USAGE_GOVT_APPROVED = 78, 53379 SEC_OID_X509_SUBJECT_DIRECTORY_ATTR = 79, 53380 SEC_OID_X509_SUBJECT_KEY_ID = 80, 53381 SEC_OID_X509_KEY_USAGE = 81, 53382 SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD = 82, 53383 SEC_OID_X509_SUBJECT_ALT_NAME = 83, 53384 SEC_OID_X509_ISSUER_ALT_NAME = 84, 53385 SEC_OID_X509_BASIC_CONSTRAINTS = 85, 53386 SEC_OID_X509_NAME_CONSTRAINTS = 86, 53387 SEC_OID_X509_CRL_DIST_POINTS = 87, 53388 SEC_OID_X509_CERTIFICATE_POLICIES = 88, 53389 SEC_OID_X509_POLICY_MAPPINGS = 89, 53390 SEC_OID_X509_POLICY_CONSTRAINTS = 90, 53391 SEC_OID_X509_AUTH_KEY_ID = 91, 53392 SEC_OID_X509_EXT_KEY_USAGE = 92, 53393 SEC_OID_X509_AUTH_INFO_ACCESS = 93, 53394 SEC_OID_X509_CRL_NUMBER = 94, 53395 SEC_OID_X509_REASON_CODE = 95, 53396 SEC_OID_X509_INVALID_DATE = 96, 53397 SEC_OID_X500_RSA_ENCRYPTION = 97, 53398 SEC_OID_RFC1274_UID = 98, 53399 SEC_OID_RFC1274_MAIL = 99, 53400 SEC_OID_PKCS12 = 100, 53401 SEC_OID_PKCS12_MODE_IDS = 101, 53402 SEC_OID_PKCS12_ESPVK_IDS = 102, 53403 SEC_OID_PKCS12_BAG_IDS = 103, 53404 SEC_OID_PKCS12_CERT_BAG_IDS = 104, 53405 SEC_OID_PKCS12_OIDS = 105, 53406 SEC_OID_PKCS12_PBE_IDS = 106, 53407 SEC_OID_PKCS12_SIGNATURE_IDS = 107, 53408 SEC_OID_PKCS12_ENVELOPING_IDS = 108, 53409 SEC_OID_PKCS12_PKCS8_KEY_SHROUDING = 109, 53410 SEC_OID_PKCS12_KEY_BAG_ID = 110, 53411 SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID = 111, 53412 SEC_OID_PKCS12_SECRET_BAG_ID = 112, 53413 SEC_OID_PKCS12_X509_CERT_CRL_BAG = 113, 53414 SEC_OID_PKCS12_SDSI_CERT_BAG = 114, 53415 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4 = 115, 53416 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4 = 116, 53417 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC = 117, 53418 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 118, 53419 SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 119, 53420 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4 = 120, 53421 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4 = 121, 53422 SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES = 122, 53423 SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST = 123, 53424 SEC_OID_ANSIX9_DSA_SIGNATURE = 124, 53425 SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST = 125, 53426 SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST = 126, 53427 SEC_OID_VERISIGN_USER_NOTICES = 127, 53428 SEC_OID_PKIX_CPS_POINTER_QUALIFIER = 128, 53429 SEC_OID_PKIX_USER_NOTICE_QUALIFIER = 129, 53430 SEC_OID_PKIX_OCSP = 130, 53431 SEC_OID_PKIX_OCSP_BASIC_RESPONSE = 131, 53432 SEC_OID_PKIX_OCSP_NONCE = 132, 53433 SEC_OID_PKIX_OCSP_CRL = 133, 53434 SEC_OID_PKIX_OCSP_RESPONSE = 134, 53435 SEC_OID_PKIX_OCSP_NO_CHECK = 135, 53436 SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF = 136, 53437 SEC_OID_PKIX_OCSP_SERVICE_LOCATOR = 137, 53438 SEC_OID_PKIX_REGCTRL_REGTOKEN = 138, 53439 SEC_OID_PKIX_REGCTRL_AUTHENTICATOR = 139, 53440 SEC_OID_PKIX_REGCTRL_PKIPUBINFO = 140, 53441 SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS = 141, 53442 SEC_OID_PKIX_REGCTRL_OLD_CERT_ID = 142, 53443 SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY = 143, 53444 SEC_OID_PKIX_REGINFO_UTF8_PAIRS = 144, 53445 SEC_OID_PKIX_REGINFO_CERT_REQUEST = 145, 53446 SEC_OID_EXT_KEY_USAGE_SERVER_AUTH = 146, 53447 SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH = 147, 53448 SEC_OID_EXT_KEY_USAGE_CODE_SIGN = 148, 53449 SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT = 149, 53450 SEC_OID_EXT_KEY_USAGE_TIME_STAMP = 150, 53451 SEC_OID_OCSP_RESPONDER = 151, 53452 SEC_OID_NETSCAPE_SMIME_KEA = 152, 53453 SEC_OID_FORTEZZA_SKIPJACK = 153, 53454 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4 = 154, 53455 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4 = 155, 53456 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC = 156, 53457 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC = 157, 53458 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC = 158, 53459 SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC = 159, 53460 SEC_OID_PKCS12_SAFE_CONTENTS_ID = 160, 53461 SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID = 161, 53462 SEC_OID_PKCS12_V1_KEY_BAG_ID = 162, 53463 SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID = 163, 53464 SEC_OID_PKCS12_V1_CERT_BAG_ID = 164, 53465 SEC_OID_PKCS12_V1_CRL_BAG_ID = 165, 53466 SEC_OID_PKCS12_V1_SECRET_BAG_ID = 166, 53467 SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID = 167, 53468 SEC_OID_PKCS9_X509_CERT = 168, 53469 SEC_OID_PKCS9_SDSI_CERT = 169, 53470 SEC_OID_PKCS9_X509_CRL = 170, 53471 SEC_OID_PKCS9_FRIENDLY_NAME = 171, 53472 SEC_OID_PKCS9_LOCAL_KEY_ID = 172, 53473 SEC_OID_BOGUS_KEY_USAGE = 173, 53474 SEC_OID_X942_DIFFIE_HELMAN_KEY = 174, 53475 SEC_OID_NETSCAPE_NICKNAME = 175, 53476 SEC_OID_NETSCAPE_RECOVERY_REQUEST = 176, 53477 SEC_OID_CERT_RENEWAL_LOCATOR = 177, 53478 SEC_OID_NS_CERT_EXT_SCOPE_OF_USE = 178, 53479 SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN = 179, 53480 SEC_OID_CMS_3DES_KEY_WRAP = 180, 53481 SEC_OID_CMS_RC2_KEY_WRAP = 181, 53482 SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE = 182, 53483 SEC_OID_AES_128_ECB = 183, 53484 SEC_OID_AES_128_CBC = 184, 53485 SEC_OID_AES_192_ECB = 185, 53486 SEC_OID_AES_192_CBC = 186, 53487 SEC_OID_AES_256_ECB = 187, 53488 SEC_OID_AES_256_CBC = 188, 53489 SEC_OID_SDN702_DSA_SIGNATURE = 189, 53490 SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE = 190, 53491 SEC_OID_SHA256 = 191, 53492 SEC_OID_SHA384 = 192, 53493 SEC_OID_SHA512 = 193, 53494 SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION = 194, 53495 SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION = 195, 53496 SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION = 196, 53497 SEC_OID_AES_128_KEY_WRAP = 197, 53498 SEC_OID_AES_192_KEY_WRAP = 198, 53499 SEC_OID_AES_256_KEY_WRAP = 199, 53500 SEC_OID_ANSIX962_EC_PUBLIC_KEY = 200, 53501 SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE = 201, 53502 SEC_OID_ANSIX962_EC_PRIME192V1 = 202, 53503 SEC_OID_ANSIX962_EC_PRIME192V2 = 203, 53504 SEC_OID_ANSIX962_EC_PRIME192V3 = 204, 53505 SEC_OID_ANSIX962_EC_PRIME239V1 = 205, 53506 SEC_OID_ANSIX962_EC_PRIME239V2 = 206, 53507 SEC_OID_ANSIX962_EC_PRIME239V3 = 207, 53508 SEC_OID_ANSIX962_EC_PRIME256V1 = 208, 53509 SEC_OID_SECG_EC_SECP112R1 = 209, 53510 SEC_OID_SECG_EC_SECP112R2 = 210, 53511 SEC_OID_SECG_EC_SECP128R1 = 211, 53512 SEC_OID_SECG_EC_SECP128R2 = 212, 53513 SEC_OID_SECG_EC_SECP160K1 = 213, 53514 SEC_OID_SECG_EC_SECP160R1 = 214, 53515 SEC_OID_SECG_EC_SECP160R2 = 215, 53516 SEC_OID_SECG_EC_SECP192K1 = 216, 53517 SEC_OID_SECG_EC_SECP224K1 = 217, 53518 SEC_OID_SECG_EC_SECP224R1 = 218, 53519 SEC_OID_SECG_EC_SECP256K1 = 219, 53520 SEC_OID_SECG_EC_SECP384R1 = 220, 53521 SEC_OID_SECG_EC_SECP521R1 = 221, 53522 SEC_OID_ANSIX962_EC_C2PNB163V1 = 222, 53523 SEC_OID_ANSIX962_EC_C2PNB163V2 = 223, 53524 SEC_OID_ANSIX962_EC_C2PNB163V3 = 224, 53525 SEC_OID_ANSIX962_EC_C2PNB176V1 = 225, 53526 SEC_OID_ANSIX962_EC_C2TNB191V1 = 226, 53527 SEC_OID_ANSIX962_EC_C2TNB191V2 = 227, 53528 SEC_OID_ANSIX962_EC_C2TNB191V3 = 228, 53529 SEC_OID_ANSIX962_EC_C2ONB191V4 = 229, 53530 SEC_OID_ANSIX962_EC_C2ONB191V5 = 230, 53531 SEC_OID_ANSIX962_EC_C2PNB208W1 = 231, 53532 SEC_OID_ANSIX962_EC_C2TNB239V1 = 232, 53533 SEC_OID_ANSIX962_EC_C2TNB239V2 = 233, 53534 SEC_OID_ANSIX962_EC_C2TNB239V3 = 234, 53535 SEC_OID_ANSIX962_EC_C2ONB239V4 = 235, 53536 SEC_OID_ANSIX962_EC_C2ONB239V5 = 236, 53537 SEC_OID_ANSIX962_EC_C2PNB272W1 = 237, 53538 SEC_OID_ANSIX962_EC_C2PNB304W1 = 238, 53539 SEC_OID_ANSIX962_EC_C2TNB359V1 = 239, 53540 SEC_OID_ANSIX962_EC_C2PNB368W1 = 240, 53541 SEC_OID_ANSIX962_EC_C2TNB431R1 = 241, 53542 SEC_OID_SECG_EC_SECT113R1 = 242, 53543 SEC_OID_SECG_EC_SECT113R2 = 243, 53544 SEC_OID_SECG_EC_SECT131R1 = 244, 53545 SEC_OID_SECG_EC_SECT131R2 = 245, 53546 SEC_OID_SECG_EC_SECT163K1 = 246, 53547 SEC_OID_SECG_EC_SECT163R1 = 247, 53548 SEC_OID_SECG_EC_SECT163R2 = 248, 53549 SEC_OID_SECG_EC_SECT193R1 = 249, 53550 SEC_OID_SECG_EC_SECT193R2 = 250, 53551 SEC_OID_SECG_EC_SECT233K1 = 251, 53552 SEC_OID_SECG_EC_SECT233R1 = 252, 53553 SEC_OID_SECG_EC_SECT239K1 = 253, 53554 SEC_OID_SECG_EC_SECT283K1 = 254, 53555 SEC_OID_SECG_EC_SECT283R1 = 255, 53556 SEC_OID_SECG_EC_SECT409K1 = 256, 53557 SEC_OID_SECG_EC_SECT409R1 = 257, 53558 SEC_OID_SECG_EC_SECT571K1 = 258, 53559 SEC_OID_SECG_EC_SECT571R1 = 259, 53560 SEC_OID_NETSCAPE_AOLSCREENNAME = 260, 53561 SEC_OID_AVA_SURNAME = 261, 53562 SEC_OID_AVA_SERIAL_NUMBER = 262, 53563 SEC_OID_AVA_STREET_ADDRESS = 263, 53564 SEC_OID_AVA_TITLE = 264, 53565 SEC_OID_AVA_POSTAL_ADDRESS = 265, 53566 SEC_OID_AVA_POSTAL_CODE = 266, 53567 SEC_OID_AVA_POST_OFFICE_BOX = 267, 53568 SEC_OID_AVA_GIVEN_NAME = 268, 53569 SEC_OID_AVA_INITIALS = 269, 53570 SEC_OID_AVA_GENERATION_QUALIFIER = 270, 53571 SEC_OID_AVA_HOUSE_IDENTIFIER = 271, 53572 SEC_OID_AVA_PSEUDONYM = 272, 53573 SEC_OID_PKIX_CA_ISSUERS = 273, 53574 SEC_OID_PKCS9_EXTENSION_REQUEST = 274, 53575 SEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGEST = 275, 53576 SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST = 276, 53577 SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE = 277, 53578 SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE = 278, 53579 SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE = 279, 53580 SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE = 280, 53581 SEC_OID_X509_HOLD_INSTRUCTION_CODE = 281, 53582 SEC_OID_X509_DELTA_CRL_INDICATOR = 282, 53583 SEC_OID_X509_ISSUING_DISTRIBUTION_POINT = 283, 53584 SEC_OID_X509_CERT_ISSUER = 284, 53585 SEC_OID_X509_FRESHEST_CRL = 285, 53586 SEC_OID_X509_INHIBIT_ANY_POLICY = 286, 53587 SEC_OID_X509_SUBJECT_INFO_ACCESS = 287, 53588 SEC_OID_CAMELLIA_128_CBC = 288, 53589 SEC_OID_CAMELLIA_192_CBC = 289, 53590 SEC_OID_CAMELLIA_256_CBC = 290, 53591 SEC_OID_PKCS5_PBKDF2 = 291, 53592 SEC_OID_PKCS5_PBES2 = 292, 53593 SEC_OID_PKCS5_PBMAC1 = 293, 53594 SEC_OID_HMAC_SHA1 = 294, 53595 SEC_OID_HMAC_SHA224 = 295, 53596 SEC_OID_HMAC_SHA256 = 296, 53597 SEC_OID_HMAC_SHA384 = 297, 53598 SEC_OID_HMAC_SHA512 = 298, 53599 SEC_OID_PKIX_TIMESTAMPING = 299, 53600 SEC_OID_PKIX_CA_REPOSITORY = 300, 53601 SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE = 301, 53602 SEC_OID_TOTAL = 302 53603 } SECOidTag; 53604 typedef enum { 53605 INVALID_CERT_EXTENSION, 53606 UNSUPPORTED_CERT_EXTENSION = 1, 53607 SUPPORTED_CERT_EXTENSION = 2 53608 } SECSupportExtenTag; 53609 __________________________________________________________ 53610 53611 24.4.26. nss3/secpkcs5.h 53612 53613 #define _SECPKCS5_H_ 53614 53615 typedef enum { 53616 pbeBitGenIDNull, 53617 pbeBitGenCipherKey = 1, 53618 pbeBitGenCipherIV = 2, 53619 pbeBitGenIntegrityKey = 3 53620 } PBEBitGenID; 53621 typedef struct PBEBitGenContextStr PBEBitGenContext; 53622 __________________________________________________________ 53623 53624 24.4.27. nss3/secport.h 53625 53626 #define _SECPORT_H_ 53627 53628 typedef PRBool(*PORTCharConversionWSwapFunc) (PRBool, unsigned char *, 53629 unsigned int, 53630 unsigned char *, 53631 unsigned int, unsigned int *, 53632 PRBool); 53633 typedef PRBool(*PORTCharConversionFunc) (PRBool, unsigned char *, 53634 unsigned int, unsigned char *, 53635 unsigned int, unsigned int *); 53636 __________________________________________________________ 53637 53638 24.5. Interfaces for libssl3 53639 53640 Table 24-5 defines the library name and shared object name for 53641 the libssl3 library 53642 53643 Table 24-5. libssl3 Definition 53644 Library: libssl3 53645 SONAME: libssl3.so 53646 53647 The behavior of the interfaces in this library is specified by 53648 the following specifications: 53649 53650 [NSS SSL] Mozilla's NSS SSL Reference 53651 __________________________________________________________ 53652 53653 24.5.1. NSS SSL 53654 __________________________________________________________ 53655 53656 24.5.1.1. Interfaces for NSS SSL 53657 53658 An LSB conforming implementation shall provide the generic 53659 functions for NSS SSL specified in Table 24-6, with the full 53660 mandatory functionality as described in the referenced 53661 underlying specification. 53662 53663 Table 24-6. libssl3 - NSS SSL Function Interfaces 53664 NSS_CmpCertChainWCANames(NSS_3.2) [NSS SSL] 53665 NSS_FindCertKEAType(NSS_3.2) [NSS SSL] 53666 NSS_GetClientAuthData(NSS_3.2) [NSS SSL] 53667 SSL_AuthCertificate(NSS_3.2) [NSS SSL] 53668 SSL_AuthCertificateHook(NSS_3.2) [NSS SSL] 53669 SSL_BadCertHook(NSS_3.2) [NSS SSL] 53670 SSL_CipherPolicyGet(NSS_3.2) [NSS SSL] 53671 SSL_CipherPolicySet(NSS_3.2) [NSS SSL] 53672 SSL_CipherPrefGet(NSS_3.2) [NSS SSL] 53673 SSL_CipherPrefGetDefault(NSS_3.2) [NSS SSL] 53674 SSL_CipherPrefSet(NSS_3.2) [NSS SSL] 53675 SSL_CipherPrefSetDefault(NSS_3.2) [NSS SSL] 53676 SSL_ClearSessionCache(NSS_3.2) [NSS SSL] 53677 SSL_ConfigMPServerSIDCache(NSS_3.2) [NSS SSL] 53678 SSL_ConfigSecureServer(NSS_3.2) [NSS SSL] 53679 SSL_ConfigServerSessionIDCache(NSS_3.2) [NSS SSL] 53680 SSL_DataPending(NSS_3.2) [NSS SSL] SSL_ForceHandshake(NSS_3.2) 53681 [NSS SSL] 53682 SSL_GetClientAuthDataHook(NSS_3.2) [NSS SSL] 53683 SSL_GetSessionID(NSS_3.2) [NSS SSL] 53684 SSL_HandshakeCallback(NSS_3.2) [NSS SSL] 53685 SSL_ImportFD(NSS_3.2) [NSS SSL] 53686 SSL_InheritMPServerSIDCache(NSS_3.2) [NSS SSL] 53687 SSL_InvalidateSession(NSS_3.2) [NSS SSL] 53688 SSL_OptionGet(NSS_3.2) [NSS SSL] SSL_OptionGetDefault(NSS_3.2) 53689 [NSS SSL] SSL_OptionSet(NSS_3.2) [NSS SSL] 53690 SSL_OptionSetDefault(NSS_3.2) [NSS SSL] 53691 SSL_PeerCertificate(NSS_3.2) [NSS SSL] SSL_ReHandshake(NSS_3.2) 53692 [NSS SSL] 53693 SSL_ResetHandshake(NSS_3.2) [NSS SSL] SSL_RevealPinArg(NSS_3.2) 53694 [NSS SSL] SSL_RevealURL(NSS_3.2) [NSS SSL] 53695 SSL_SecurityStatus(NSS_3.2) [NSS SSL] 53696 SSL_SetPKCS11PinArg(NSS_3.2) [NSS SSL] 53697 SSL_SetSockPeerID(NSS_3.2) [NSS SSL] 53698 SSL_SetURL(NSS_3.2) [NSS SSL] 53699 __________________________________________________________ 53700 53701 24.6. Data Definitions for libssl3 53702 53703 This section defines global identifiers and their values that 53704 are associated with interfaces contained in libssl3. These 53705 definitions are organized into groups that correspond to system 53706 headers. This convention is used as a convenience for the 53707 reader, and does not imply the existence of these headers, or 53708 their content. Where an interface is defined as requiring a 53709 particular system header file all of the data definitions for 53710 that system header file presented here shall be in effect. 53711 53712 This section gives data definitions to promote binary 53713 application portability, not to repeat source interface 53714 definitions available elsewhere. System providers and 53715 application developers should use this ABI to supplement - not 53716 to replace - source interface definition specifications. 53717 53718 This specification uses the ISO C (1999) C Language as the 53719 reference programming language, and data definitions are 53720 specified in ISO C format. The C language is used here as a 53721 convenient notation. Using a C language description of these 53722 data objects does not preclude their use by other programming 53723 languages. 53724 __________________________________________________________ 53725 53726 24.6.1. nss3/ecl-exp.h 53727 53728 #define __ecl_exp_h_ 53729 #define ECCurve_SECG_CHAR2_163R2 ECCurve_NIST_B163 53730 #define ECCurve_SECG_CHAR2_233R1 ECCurve_NIST_B233 53731 #define ECCurve_WTLS_11 ECCurve_NIST_B233 53732 #define ECCurve_SECG_CHAR2_283R1 ECCurve_NIST_B283 53733 #define ECCurve_SECG_CHAR2_409R1 ECCurve_NIST_B409 53734 #define ECCurve_SECG_CHAR2_571R1 ECCurve_NIST_B571 53735 #define ECCurve_SECG_CHAR2_163K1 ECCurve_NIST_K163 53736 #define ECCurve_WTLS_3 ECCurve_NIST_K163 53737 #define ECCurve_SECG_CHAR2_233K1 ECCurve_NIST_K233 53738 #define ECCurve_WTLS_10 ECCurve_NIST_K233 53739 #define ECCurve_SECG_CHAR2_283K1 ECCurve_NIST_K283 53740 #define ECCurve_SECG_CHAR2_409K1 ECCurve_NIST_K409 53741 #define ECCurve_SECG_CHAR2_571K1 ECCurve_NIST_K571 53742 #define ECCurve_SECG_PRIME_192R1 ECCurve_NIST_P192 53743 #define ECCurve_X9_62_PRIME_192V1 ECCurve_NIST_P192 53744 #define ECCurve_SECG_PRIME_224R1 ECCurve_NIST_P224 53745 #define ECCurve_WTLS_12 ECCurve_NIST_P224 53746 #define ECCurve_SECG_PRIME_256R1 ECCurve_NIST_P256 53747 #define ECCurve_X9_62_PRIME_256V1 ECCurve_NIST_P256 53748 #define ECCurve_SECG_PRIME_384R1 ECCurve_NIST_P384 53749 #define ECCurve_SECG_PRIME_521R1 ECCurve_NIST_P521 53750 #define ECCurve_WTLS_4 ECCurve_SECG_CHAR2_113R1 53751 #define ECCurve_WTLS_6 ECCurve_SECG_PRIME_112R1 53752 #define ECCurve_WTLS_7 ECCurve_SECG_PRIME_160R1 53753 #define ECCurve_WTLS_5 ECCurve_X9_62_CHAR2_PNB163V1 53754 53755 enum ECField { 53756 ECField_GFp = 0, 53757 ECField_GF2m = 1 53758 }; 53759 typedef struct ECCurveParamsStr { 53760 char *text; 53761 enum ECField field; 53762 unsigned int size; 53763 char *irr; 53764 char *curvea; 53765 char *curveb; 53766 char *genx; 53767 char *geny; 53768 char *order; 53769 int cofactor; 53770 } ECCurveParams; 53771 enum ECCurveName { 53772 ECCurve_noName = 0, 53773 ECCurve_NIST_P192 = 1, 53774 ECCurve_NIST_P224 = 2, 53775 ECCurve_NIST_P256 = 3, 53776 ECCurve_NIST_P384 = 4, 53777 ECCurve_NIST_P521 = 5, 53778 ECCurve_NIST_K163 = 6, 53779 ECCurve_NIST_B163 = 7, 53780 ECCurve_NIST_K233 = 8, 53781 ECCurve_NIST_B233 = 9, 53782 ECCurve_NIST_K283 = 10, 53783 ECCurve_NIST_B283 = 11, 53784 ECCurve_NIST_K409 = 12, 53785 ECCurve_NIST_B409 = 13, 53786 ECCurve_NIST_K571 = 14, 53787 ECCurve_NIST_B571 = 15, 53788 ECCurve_X9_62_PRIME_192V2 = 16, 53789 ECCurve_X9_62_PRIME_192V3 = 17, 53790 ECCurve_X9_62_PRIME_239V1 = 18, 53791 ECCurve_X9_62_PRIME_239V2 = 19, 53792 ECCurve_X9_62_PRIME_239V3 = 20, 53793 ECCurve_X9_62_CHAR2_PNB163V1 = 21, 53794 ECCurve_X9_62_CHAR2_PNB163V2 = 22, 53795 ECCurve_X9_62_CHAR2_PNB163V3 = 23, 53796 ECCurve_X9_62_CHAR2_PNB176V1 = 24, 53797 ECCurve_X9_62_CHAR2_TNB191V1 = 25, 53798 ECCurve_X9_62_CHAR2_TNB191V2 = 26, 53799 ECCurve_X9_62_CHAR2_TNB191V3 = 27, 53800 ECCurve_X9_62_CHAR2_PNB208W1 = 28, 53801 ECCurve_X9_62_CHAR2_TNB239V1 = 29, 53802 ECCurve_X9_62_CHAR2_TNB239V2 = 30, 53803 ECCurve_X9_62_CHAR2_TNB239V3 = 31, 53804 ECCurve_X9_62_CHAR2_PNB272W1 = 32, 53805 ECCurve_X9_62_CHAR2_PNB304W1 = 33, 53806 ECCurve_X9_62_CHAR2_TNB359V1 = 34, 53807 ECCurve_X9_62_CHAR2_PNB368W1 = 35, 53808 ECCurve_X9_62_CHAR2_TNB431R1 = 36, 53809 ECCurve_SECG_PRIME_112R1 = 37, 53810 ECCurve_SECG_PRIME_112R2 = 38, 53811 ECCurve_SECG_PRIME_128R1 = 39, 53812 ECCurve_SECG_PRIME_128R2 = 40, 53813 ECCurve_SECG_PRIME_160K1 = 41, 53814 ECCurve_SECG_PRIME_160R1 = 42, 53815 ECCurve_SECG_PRIME_160R2 = 43, 53816 ECCurve_SECG_PRIME_192K1 = 44, 53817 ECCurve_SECG_PRIME_224K1 = 45, 53818 ECCurve_SECG_PRIME_256K1 = 46, 53819 ECCurve_SECG_CHAR2_113R1 = 47, 53820 ECCurve_SECG_CHAR2_113R2 = 48, 53821 ECCurve_SECG_CHAR2_131R1 = 49, 53822 ECCurve_SECG_CHAR2_131R2 = 50, 53823 ECCurve_SECG_CHAR2_163R1 = 51, 53824 ECCurve_SECG_CHAR2_193R1 = 52, 53825 ECCurve_SECG_CHAR2_193R2 = 53, 53826 ECCurve_SECG_CHAR2_239K1 = 54, 53827 ECCurve_WTLS_1 = 55, 53828 ECCurve_WTLS_8 = 56, 53829 ECCurve_WTLS_9 = 57, 53830 ECCurve_pastLastCurve = 58 53831 }; 53832 __________________________________________________________ 53833 53834 24.6.2. nss3/ssl.h 53835 53836 #define __ssl_h_ 53837 #define SSL_IS_SSL2_CIPHER(which) (((which) & 0xfff0) == 0xff00) 53838 #define SSL_REQUIRE_NEVER ((PRBool)0) 53839 #define SSL_REQUIRE_ALWAYS ((PRBool)1) 53840 #define SSL_REQUIRE_FIRST_HANDSHAKE ((PRBool)2) 53841 #define SSL_REQUIRE_NO_ERROR ((PRBool)3) 53842 #define SSL_SECURITY_STATUS_NOOPT -1 53843 #define SSL_NOT_ALLOWED 0 53844 #define SSL_SECURITY_STATUS_OFF 0 53845 #define SSL_ALLOWED 1 53846 #define SSL_SECURITY 1 53847 #define SSL_SECURITY_STATUS_ON_HIGH 1 53848 #define SSL_REQUIRE_CERTIFICATE 10 53849 #define SSL_ENABLE_FDX 11 53850 #define SSL_V2_COMPATIBLE_HELLO 12 53851 #define SSL_ENABLE_TLS 13 53852 #define SSL_ROLLBACK_DETECTION 14 53853 #define SSL_NO_STEP_DOWN 15 53854 #define SSL_BYPASS_PKCS11 16 53855 #define SSL_NO_LOCKS 17 53856 #define SSL_RESTRICTED 2 53857 #define SSL_SECURITY_STATUS_ON_LOW 2 53858 #define SSL_SOCKS 2 53859 #define SSL_REQUEST_CERTIFICATE 3 53860 #define SSL_HANDSHAKE_AS_CLIENT 5 53861 #define SSL_HANDSHAKE_AS_SERVER 6 53862 #define SSL_ENABLE_SSL2 7 53863 #define SSL_ENABLE_SSL3 8 53864 #define SSL_NO_CACHE 9 53865 #define SSL_ENV_VAR_NAME "SSL_INHERITANCE" 53866 53867 typedef SECStatus(*SSLAuthCertificate) (void *, PRFileDesc *, PRBool, 53868 PRBool); 53869 typedef SECStatus(*SSLGetClientAuthData) (void *, PRFileDesc *, 53870 CERTDistNames *, 53871 CERTCertificate * *, 53872 SECKEYPrivateKey * *); 53873 typedef SECStatus(*SSLBadCertHandler) (void *, PRFileDesc *); 53874 typedef void (*SSLHandshakeCallback) (PRFileDesc *, void *); 53875 extern SECStatus NSS_CmpCertChainWCANames(CERTCertificate * cert, 53876 CERTDistNames * caNames); 53877 extern SSLKEAType NSS_FindCertKEAType(CERTCertificate * cert); 53878 extern SECStatus NSS_GetClientAuthData(void *arg, PRFileDesc * socket, 53879 struct CERTDistNamesStr *caNames, 53880 struct CERTCertificateStr 53881 **pRetCert, 53882 struct SECKEYPrivateKeyStr 53883 **pRetKey); 53884 extern SECStatus SSL_AuthCertificate(void *arg, PRFileDesc * fd, 53885 PRBool checkSig, PRBool isServer); 53886 extern SECStatus SSL_AuthCertificateHook(PRFileDesc * fd, 53887 SSLAuthCertificate f, void *arg); 53888 extern SECStatus SSL_BadCertHook(PRFileDesc * fd, SSLBadCertHandler f, 53889 void *arg); 53890 extern SECStatus SSL_CipherPolicyGet(PRInt32 cipher, PRInt32 * policy); 53891 extern SECStatus SSL_CipherPolicySet(PRInt32 cipher, PRInt32 policy); 53892 extern SECStatus SSL_CipherPrefGet(PRFileDesc * fd, PRInt32 cipher, 53893 PRBool * enabled); 53894 extern SECStatus SSL_CipherPrefGetDefault(PRInt32 cipher, 53895 PRBool * enabled); 53896 extern SECStatus SSL_CipherPrefSet(PRFileDesc * fd, PRInt32 cipher, 53897 PRBool enabled); 53898 extern SECStatus SSL_CipherPrefSetDefault(PRInt32 cipher, PRBool enabled); 53899 extern void SSL_ClearSessionCache(void); 53900 extern SECStatus SSL_ConfigMPServerSIDCache(int maxCacheEntries, 53901 PRUint32 timeout, 53902 PRUint32 ssl3_timeout, 53903 const char *directory); 53904 extern SECStatus SSL_ConfigSecureServer(PRFileDesc * fd, 53905 CERTCertificate * cert, 53906 SECKEYPrivateKey * key, 53907 SSLKEAType kea); 53908 extern SECStatus SSL_ConfigServerSessionIDCache(int maxCacheEntries, 53909 PRUint32 timeout, 53910 PRUint32 ssl3_timeout, 53911 const char *directory); 53912 extern int SSL_DataPending(PRFileDesc * fd); 53913 extern SECStatus SSL_ForceHandshake(PRFileDesc * fd); 53914 extern SECStatus SSL_GetClientAuthDataHook(PRFileDesc * fd, 53915 SSLGetClientAuthData f, 53916 void *a); 53917 extern SECItem *SSL_GetSessionID(PRFileDesc * fd); 53918 extern SECStatus SSL_HandshakeCallback(PRFileDesc * fd, 53919 SSLHandshakeCallback cb, 53920 void *client_data); 53921 extern PRFileDesc *SSL_ImportFD(PRFileDesc * model, PRFileDesc * fd); 53922 extern SECStatus SSL_InheritMPServerSIDCache(const char *envString); 53923 extern SECStatus SSL_InvalidateSession(PRFileDesc * fd); 53924 extern SECStatus SSL_OptionGet(PRFileDesc * fd, PRInt32 option, 53925 PRBool * on); 53926 extern SECStatus SSL_OptionGetDefault(PRInt32 option, PRBool * on); 53927 extern SECStatus SSL_OptionSet(PRFileDesc * fd, PRInt32 option, PRBool on); 53928 extern SECStatus SSL_OptionSetDefault(PRInt32 option, PRBool on); 53929 extern CERTCertificate *SSL_PeerCertificate(PRFileDesc * fd); 53930 extern SECStatus SSL_ReHandshake(PRFileDesc * fd, PRBool flushCache); 53931 extern SECStatus SSL_ResetHandshake(PRFileDesc * fd, PRBool asServer); 53932 extern void *SSL_RevealPinArg(PRFileDesc * socket); 53933 extern char *SSL_RevealURL(PRFileDesc * socket); 53934 extern SECStatus SSL_SecurityStatus(PRFileDesc * fd, int *on, 53935 char **cipher, int *keySize, 53936 int *secretKeySize, char **issuer, 53937 char **subject); 53938 extern SECStatus SSL_SetPKCS11PinArg(PRFileDesc * fd, void *a); 53939 extern SECStatus SSL_SetSockPeerID(PRFileDesc * fd, const char *peerID); 53940 extern SECStatus SSL_SetURL(PRFileDesc * fd, const char *url); 53941 __________________________________________________________ 53942 53943 24.6.3. nss3/sslerr.h 53944 53945 #define __SSL_ERR_H_ 53946 #define IS_SSL_ERROR(code) \ 53947 (((code) >= SSL_ERROR_BASE) && ((code) < SSL_ERROR_LIMIT)) 53948 #define SSL_ERROR_BASE (-0x3000) 53949 #define SSL_ERROR_LIMIT (SSL_ERROR_BASE + 1000) 53950 53951 typedef enum { 53952 SSL_ERROR_EXPORT_ONLY_SERVER = (SSL_ERROR_BASE + 0), 53953 SSL_ERROR_US_ONLY_SERVER = (SSL_ERROR_BASE + 1), 53954 SSL_ERROR_NO_CYPHER_OVERLAP = (SSL_ERROR_BASE + 2), 53955 SSL_ERROR_NO_CERTIFICATE = (SSL_ERROR_BASE + 3), 53956 SSL_ERROR_BAD_CERTIFICATE = (SSL_ERROR_BASE + 4), 53957 SSL_ERROR_BAD_CLIENT = (SSL_ERROR_BASE + 6), 53958 SSL_ERROR_BAD_SERVER = (SSL_ERROR_BASE + 7), 53959 SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE = (SSL_ERROR_BASE + 8), 53960 SSL_ERROR_UNSUPPORTED_VERSION = (SSL_ERROR_BASE + 9), 53961 SSL_ERROR_WRONG_CERTIFICATE = (SSL_ERROR_BASE + 11), 53962 SSL_ERROR_BAD_CERT_DOMAIN = (SSL_ERROR_BASE + 12), 53963 SSL_ERROR_POST_WARNING = (SSL_ERROR_BASE + 13), 53964 SSL_ERROR_SSL2_DISABLED = (SSL_ERROR_BASE + 14), 53965 SSL_ERROR_BAD_MAC_READ = (SSL_ERROR_BASE + 15), 53966 SSL_ERROR_BAD_MAC_ALERT = (SSL_ERROR_BASE + 16), 53967 SSL_ERROR_BAD_CERT_ALERT = (SSL_ERROR_BASE + 17), 53968 SSL_ERROR_REVOKED_CERT_ALERT = (SSL_ERROR_BASE + 18), 53969 SSL_ERROR_EXPIRED_CERT_ALERT = (SSL_ERROR_BASE + 19), 53970 SSL_ERROR_SSL_DISABLED = (SSL_ERROR_BASE + 20), 53971 SSL_ERROR_FORTEZZA_PQG = (SSL_ERROR_BASE + 21), 53972 SSL_ERROR_UNKNOWN_CIPHER_SUITE = (SSL_ERROR_BASE + 22), 53973 SSL_ERROR_NO_CIPHERS_SUPPORTED = (SSL_ERROR_BASE + 23), 53974 SSL_ERROR_BAD_BLOCK_PADDING = (SSL_ERROR_BASE + 24), 53975 SSL_ERROR_RX_RECORD_TOO_LONG = (SSL_ERROR_BASE + 25), 53976 SSL_ERROR_TX_RECORD_TOO_LONG = (SSL_ERROR_BASE + 26), 53977 SSL_ERROR_RX_MALFORMED_HELLO_REQUEST = (SSL_ERROR_BASE + 27), 53978 SSL_ERROR_RX_MALFORMED_CLIENT_HELLO = (SSL_ERROR_BASE + 28), 53979 SSL_ERROR_RX_MALFORMED_SERVER_HELLO = (SSL_ERROR_BASE + 29), 53980 SSL_ERROR_RX_MALFORMED_CERTIFICATE = (SSL_ERROR_BASE + 30), 53981 SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH = (SSL_ERROR_BASE + 31), 53982 SSL_ERROR_RX_MALFORMED_CERT_REQUEST = (SSL_ERROR_BASE + 32), 53983 SSL_ERROR_RX_MALFORMED_HELLO_DONE = (SSL_ERROR_BASE + 33), 53984 SSL_ERROR_RX_MALFORMED_CERT_VERIFY = (SSL_ERROR_BASE + 34), 53985 SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH = (SSL_ERROR_BASE + 35), 53986 SSL_ERROR_RX_MALFORMED_FINISHED = (SSL_ERROR_BASE + 36), 53987 SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER = (SSL_ERROR_BASE + 37), 53988 SSL_ERROR_RX_MALFORMED_ALERT = (SSL_ERROR_BASE + 38), 53989 SSL_ERROR_RX_MALFORMED_HANDSHAKE = (SSL_ERROR_BASE + 39), 53990 SSL_ERROR_RX_MALFORMED_APPLICATION_DATA = (SSL_ERROR_BASE + 40), 53991 SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST = (SSL_ERROR_BASE + 41), 53992 SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO = (SSL_ERROR_BASE + 42), 53993 SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO = (SSL_ERROR_BASE + 43), 53994 SSL_ERROR_RX_UNEXPECTED_CERTIFICATE = (SSL_ERROR_BASE + 44), 53995 SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH = (SSL_ERROR_BASE + 45), 53996 SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST = (SSL_ERROR_BASE + 46), 53997 SSL_ERROR_RX_UNEXPECTED_HELLO_DONE = (SSL_ERROR_BASE + 47), 53998 SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY = (SSL_ERROR_BASE + 48), 53999 SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH = (SSL_ERROR_BASE + 49), 54000 SSL_ERROR_RX_UNEXPECTED_FINISHED = (SSL_ERROR_BASE + 50), 54001 SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER = (SSL_ERROR_BASE + 51), 54002 SSL_ERROR_RX_UNEXPECTED_ALERT = (SSL_ERROR_BASE + 52), 54003 SSL_ERROR_RX_UNEXPECTED_HANDSHAKE = (SSL_ERROR_BASE + 53), 54004 SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA = (SSL_ERROR_BASE + 54), 54005 SSL_ERROR_RX_UNKNOWN_RECORD_TYPE = (SSL_ERROR_BASE + 55), 54006 SSL_ERROR_RX_UNKNOWN_HANDSHAKE = (SSL_ERROR_BASE + 56), 54007 SSL_ERROR_RX_UNKNOWN_ALERT = (SSL_ERROR_BASE + 57), 54008 SSL_ERROR_CLOSE_NOTIFY_ALERT = (SSL_ERROR_BASE + 58), 54009 SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT = (SSL_ERROR_BASE + 59), 54010 SSL_ERROR_DECOMPRESSION_FAILURE_ALERT = (SSL_ERROR_BASE + 60), 54011 SSL_ERROR_HANDSHAKE_FAILURE_ALERT = (SSL_ERROR_BASE + 61), 54012 SSL_ERROR_ILLEGAL_PARAMETER_ALERT = (SSL_ERROR_BASE + 62), 54013 SSL_ERROR_UNSUPPORTED_CERT_ALERT = (SSL_ERROR_BASE + 63), 54014 SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT = (SSL_ERROR_BASE + 64), 54015 SSL_ERROR_GENERATE_RANDOM_FAILURE = (SSL_ERROR_BASE + 65), 54016 SSL_ERROR_SIGN_HASHES_FAILURE = (SSL_ERROR_BASE + 66), 54017 SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE = (SSL_ERROR_BASE + 67), 54018 SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE = (SSL_ERROR_BASE + 68), 54019 SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE = (SSL_ERROR_BASE + 69), 54020 SSL_ERROR_ENCRYPTION_FAILURE = (SSL_ERROR_BASE + 70), 54021 SSL_ERROR_DECRYPTION_FAILURE = (SSL_ERROR_BASE + 71), 54022 SSL_ERROR_SOCKET_WRITE_FAILURE = (SSL_ERROR_BASE + 72), 54023 SSL_ERROR_MD5_DIGEST_FAILURE = (SSL_ERROR_BASE + 73), 54024 SSL_ERROR_SHA_DIGEST_FAILURE = (SSL_ERROR_BASE + 74), 54025 SSL_ERROR_MAC_COMPUTATION_FAILURE = (SSL_ERROR_BASE + 75), 54026 SSL_ERROR_SYM_KEY_CONTEXT_FAILURE = (SSL_ERROR_BASE + 76), 54027 SSL_ERROR_SYM_KEY_UNWRAP_FAILURE = (SSL_ERROR_BASE + 77), 54028 SSL_ERROR_PUB_KEY_SIZE_LIMIT_EXCEEDED = (SSL_ERROR_BASE + 78), 54029 SSL_ERROR_IV_PARAM_FAILURE = (SSL_ERROR_BASE + 79), 54030 SSL_ERROR_INIT_CIPHER_SUITE_FAILURE = (SSL_ERROR_BASE + 80), 54031 SSL_ERROR_SESSION_KEY_GEN_FAILURE = (SSL_ERROR_BASE + 81), 54032 SSL_ERROR_NO_SERVER_KEY_FOR_ALG = (SSL_ERROR_BASE + 82), 54033 SSL_ERROR_TOKEN_INSERTION_REMOVAL = (SSL_ERROR_BASE + 83), 54034 SSL_ERROR_TOKEN_SLOT_NOT_FOUND = (SSL_ERROR_BASE + 84), 54035 SSL_ERROR_NO_COMPRESSION_OVERLAP = (SSL_ERROR_BASE + 85), 54036 SSL_ERROR_HANDSHAKE_NOT_COMPLETED = (SSL_ERROR_BASE + 86), 54037 SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE = (SSL_ERROR_BASE + 87), 54038 SSL_ERROR_CERT_KEA_MISMATCH = (SSL_ERROR_BASE + 88), 54039 SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA = (SSL_ERROR_BASE + 89), 54040 SSL_ERROR_SESSION_NOT_FOUND = (SSL_ERROR_BASE + 90), 54041 SSL_ERROR_DECRYPTION_FAILED_ALERT = (SSL_ERROR_BASE + 91), 54042 SSL_ERROR_RECORD_OVERFLOW_ALERT = (SSL_ERROR_BASE + 92), 54043 SSL_ERROR_UNKNOWN_CA_ALERT = (SSL_ERROR_BASE + 93), 54044 SSL_ERROR_ACCESS_DENIED_ALERT = (SSL_ERROR_BASE + 94), 54045 SSL_ERROR_DECODE_ERROR_ALERT = (SSL_ERROR_BASE + 95), 54046 SSL_ERROR_DECRYPT_ERROR_ALERT = (SSL_ERROR_BASE + 96), 54047 SSL_ERROR_EXPORT_RESTRICTION_ALERT = (SSL_ERROR_BASE + 97), 54048 SSL_ERROR_PROTOCOL_VERSION_ALERT = (SSL_ERROR_BASE + 98), 54049 SSL_ERROR_INSUFFICIENT_SECURITY_ALERT = (SSL_ERROR_BASE + 99), 54050 SSL_ERROR_INTERNAL_ERROR_ALERT = (SSL_ERROR_BASE + 100), 54051 SSL_ERROR_USER_CANCELED_ALERT = (SSL_ERROR_BASE + 101), 54052 SSL_ERROR_NO_RENEGOTIATION_ALERT = (SSL_ERROR_BASE + 102), 54053 SSL_ERROR_SERVER_CACHE_NOT_CONFIGURED = (SSL_ERROR_BASE + 103), 54054 SSL_ERROR_UNSUPPORTED_EXTENSION_ALERT = (SSL_ERROR_BASE + 104), 54055 SSL_ERROR_CERTIFICATE_UNOBTAINABLE_ALERT = (SSL_ERROR_BASE + 105), 54056 SSL_ERROR_UNRECOGNIZED_NAME_ALERT = (SSL_ERROR_BASE + 106), 54057 SSL_ERROR_BAD_CERT_STATUS_RESPONSE_ALERT = (SSL_ERROR_BASE + 107), 54058 SSL_ERROR_BAD_CERT_HASH_VALUE_ALERT = (SSL_ERROR_BASE + 108) 54059 } SSLErrorCodes; 54060 __________________________________________________________ 54061 54062 24.6.4. nss3/sslproto.h 54063 54064 #define __sslproto_h_ 54065 #define SSL_MT_ERROR 0 54066 #define SSL_NULL_WITH_NULL_NULL 0x0000 54067 #define SSL_PE_NO_CYPHERS 0x0001 54068 #define SSL_RSA_WITH_NULL_MD5 0x0001 54069 #define SSL_LIBRARY_VERSION_2 0x0002 54070 #define SSL_PE_NO_CERTIFICATE 0x0002 54071 #define SSL_RSA_WITH_NULL_SHA 0x0002 54072 #define SSL_RSA_EXPORT_WITH_RC4_40_MD5 0x0003 54073 #define SSL_PE_BAD_CERTIFICATE 0x0004 54074 #define SSL_RSA_WITH_RC4_128_MD5 0x0004 54075 #define SSL_RSA_WITH_RC4_128_SHA 0x0005 54076 #define SSL_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006 54077 #define SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0x0006 54078 #define SSL_RSA_WITH_IDEA_CBC_SHA 0x0007 54079 #define SSL_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008 54080 #define SSL_RSA_WITH_DES_CBC_SHA 0x0009 54081 #define SSL_RSA_WITH_3DES_EDE_CBC_SHA 0x000a 54082 #define SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000b 54083 #define SSL_DH_DSS_WITH_DES_CBC_SHA 0x000c 54084 #define SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000d 54085 #define SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000e 54086 #define SSL_DH_RSA_WITH_DES_CBC_SHA 0x000f 54087 #define SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010 54088 #define SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011 54089 #define SSL_DHE_DSS_WITH_DES_CBC_SHA 0x0012 54090 #define SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013 54091 #define SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014 54092 #define SSL_DHE_RSA_WITH_DES_CBC_SHA 0x0015 54093 #define SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016 54094 #define SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5 0x0017 54095 #define SSL_DH_ANON_WITH_RC4_128_MD5 0x0018 54096 #define SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA 0x0019 54097 #define SSL_DH_ANON_WITH_DES_CBC_SHA 0x001a 54098 #define SSL_DH_ANON_WITH_3DES_EDE_CBC_SHA 0x001b 54099 #define SSL_FORTEZZA_DMS_WITH_NULL_SHA 0x001c 54100 #define SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA 0x001d 54101 #define SSL_FORTEZZA_DMS_WITH_RC4_128_SHA 0x001e 54102 #define TLS_RSA_WITH_AES_128_CBC_SHA 0x002F 54103 #define TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x0030 54104 #define TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x0031 54105 #define TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x0032 54106 #define TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x0033 54107 #define TLS_DH_ANON_WITH_AES_128_CBC_SHA 0x0034 54108 #define TLS_RSA_WITH_AES_256_CBC_SHA 0x0035 54109 #define TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x0036 54110 #define TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x0037 54111 #define TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x0038 54112 #define TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x0039 54113 #define TLS_DH_ANON_WITH_AES_256_CBC_SHA 0x003A 54114 #define TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x0062 54115 #define TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x0063 54116 #define TLS_RSA_EXPORT1024_WITH_RC4_56_SHA 0x0064 54117 #define TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x0065 54118 #define TLS_DHE_DSS_WITH_RC4_128_SHA 0x0066 54119 #define SSL_AT_MD5_WITH_RSA_ENCRYPTION 0x01 54120 #define SSL_CK_RC4_128_WITH_MD5 0x01 54121 #define SSL_CT_X509_CERTIFICATE 0x01 54122 #define SSL_CK_RC4_128_EXPORT40_WITH_MD5 0x02 54123 #define SSL_CK_RC2_128_CBC_WITH_MD5 0x03 54124 #define SSL_LIBRARY_VERSION_3_0 0x0300 54125 #define SSL_LIBRARY_VERSION_3_1_TLS 0x0301 54126 #define SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x04 54127 #define SSL_CK_IDEA_128_CBC_WITH_MD5 0x05 54128 #define SSL_CK_DES_64_CBC_WITH_MD5 0x06 54129 #define SSL_CK_DES_192_EDE3_CBC_WITH_MD5 0x07 54130 #define TLS_ECDH_ECDSA_WITH_NULL_SHA 0xC001 54131 #define TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0xC002 54132 #define TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC003 54133 #define TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004 54134 #define TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC005 54135 #define TLS_ECDHE_ECDSA_WITH_NULL_SHA 0xC006 54136 #define TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0xC007 54137 #define TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC008 54138 #define TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC009 54139 #define TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC00A 54140 #define TLS_ECDH_RSA_WITH_NULL_SHA 0xC00B 54141 #define TLS_ECDH_RSA_WITH_RC4_128_SHA 0xC00C 54142 #define TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0xC00D 54143 #define TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC00E 54144 #define TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC00F 54145 #define TLS_ECDHE_RSA_WITH_NULL_SHA 0xC010 54146 #define TLS_ECDHE_RSA_WITH_RC4_128_SHA 0xC011 54147 #define TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0xC012 54148 #define TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC013 54149 #define TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC014 54150 #define TLS_ECDH_anon_WITH_NULL_SHA 0xC015 54151 #define TLS_ECDH_anon_WITH_RC4_128_SHA 0xC016 54152 #define TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA 0xC017 54153 #define TLS_ECDH_anon_WITH_AES_128_CBC_SHA 0xC018 54154 #define TLS_ECDH_anon_WITH_AES_256_CBC_SHA 0xC019 54155 #define SSL_RSA_FIPS_WITH_DES_CBC_SHA 0xfefe 54156 #define SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA 0xfeff 54157 #define SSL_RSA_OLDFIPS_WITH_3DES_EDE_CBC_SHA 0xffe0 54158 #define SSL_RSA_OLDFIPS_WITH_DES_CBC_SHA 0xffe1 54159 #define SSL_HL_CLIENT_FINISHED_HBYTES 1 54160 #define SSL_HL_SERVER_FINISHED_HBYTES 1 54161 #define SSL_HL_SERVER_VERIFY_HBYTES 1 54162 #define SSL_MT_CLIENT_HELLO 1 54163 #define SSL_HL_CLIENT_MASTER_KEY_HBYTES 10 54164 #define SSL_HL_SERVER_HELLO_HBYTES 11 54165 #define SSL_HL_REQUEST_CERTIFICATE_HBYTES 2 54166 #define SSL_MT_CLIENT_MASTER_KEY 2 54167 #define SSL_HL_ERROR_HBYTES 3 54168 #define SSL_MT_CLIENT_FINISHED 3 54169 #define SSL_MT_SERVER_HELLO 4 54170 #define SSL_MT_SERVER_VERIFY 5 54171 #define SSL_HL_CLIENT_CERTIFICATE_HBYTES 6 54172 #define SSL_MT_SERVER_FINISHED 6 54173 #define SSL_MT_REQUEST_CERTIFICATE 7 54174 #define SSL_MT_CLIENT_CERTIFICATE 8 54175 #define SSL_HL_CLIENT_HELLO_HBYTES 9 54176 __________________________________________________________ 54177 54178 24.6.5. nss3/sslt.h 54179 54180 #define __sslt_h_ 54181 54182 typedef enum { 54183 ssl_kea_null, 54184 ssl_kea_rsa = 1, 54185 ssl_kea_dh = 2, 54186 ssl_kea_fortezza = 3, 54187 ssl_kea_ecdh = 4, 54188 ssl_kea_size = 5 54189 } SSLKEAType; 54190 typedef enum { 54191 ssl_sign_null, 54192 ssl_sign_rsa = 1, 54193 ssl_sign_dsa = 2, 54194 ssl_sign_ecdsa = 3 54195 } SSLSignType; 54196 typedef enum { 54197 ssl_auth_null, 54198 ssl_auth_rsa = 1, 54199 ssl_auth_dsa = 2, 54200 ssl_auth_kea = 3, 54201 ssl_auth_ecdsa = 4 54202 } SSLAuthType; 54203 typedef enum { 54204 ssl_calg_null, 54205 ssl_calg_rc4 = 1, 54206 ssl_calg_rc2 = 2, 54207 ssl_calg_des = 3, 54208 ssl_calg_3des = 4, 54209 ssl_calg_idea = 5, 54210 ssl_calg_fortezza = 6, 54211 ssl_calg_aes = 7, 54212 ssl_calg_camellia = 8 54213 } SSLCipherAlgorithm; 54214 typedef enum { 54215 ssl_mac_null, 54216 ssl_mac_md5 = 1, 54217 ssl_mac_sha = 2, 54218 ssl_hmac_md5 = 3, 54219 ssl_hmac_sha = 4 54220 } SSLMACAlgorithm; 54221 typedef struct SSLChannelInfoStr { 54222 PRUint32 length; 54223 PRUint16 protocolVersion; 54224 PRUint16 cipherSuite; 54225 PRUint32 authKeyBits; 54226 PRUint32 keaKeyBits; 54227 PRUint32 creationTime; 54228 PRUint32 lastAccessTime; 54229 PRUint32 expirationTime; 54230 PRUint32 sessionIDLength; 54231 PRUint8 sessionID[31]; 54232 } SSLChannelInfo; 54233 typedef struct SSLCipherSuiteInfoStr { 54234 PRUint16 length; 54235 PRUint16 cipherSuite; 54236 const char *cipherSuiteName; 54237 const char *authAlgorithmName; 54238 SSLAuthType authAlgorithm; 54239 const char *keaTypeName; 54240 SSLKEAType keaType; 54241 const char *symCipherName; 54242 SSLCipherAlgorithm symCipher; 54243 PRUint16 symKeyBits; 54244 PRUint16 symKeySpace; 54245 PRUint16 effectiveKeyBits; 54246 const char *macAlgorithmName; 54247 SSLMACAlgorithm macAlgorithm; 54248 PRUint16 macBits; 54249 PRUintn isFIPS:1; 54250 PRUintn isExportable:1; 54251 PRUintn nonStandard:1; 54252 PRUintn reservedBits:29; 54253 } SSLCipherSuiteInfo; 54254 54255 XI. Package Format and Installation 54256 54257 Table of Contents 54258 25. Software Installation 54259 54260 25.1. Introduction 54261 25.2. Package File Format 54262 54263 25.2.1. Lead Section 54264 25.2.2. Header Structure 54265 25.2.3. Signature Section 54266 25.2.4. Header Section 54267 25.2.5. Payload Section 54268 54269 25.3. Package Script Restrictions 54270 25.4. Package Tools 54271 25.5. Package Naming Conventions 54272 25.6. Package Dependencies 54273 25.7. Package Architecture Considerations 54274 __________________________________________________________ 54275 54276 Chapter 25. Software Installation 54277 54278 25.1. Introduction 54279 54280 Applications shall either be packaged in the RPM packaging 54281 format as defined in this specification, or supply an installer 54282 which is LSB conforming (for example, calls LSB commands and 54283 utilities). 54284 54285 Note: Supplying an RPM format package is encouraged because 54286 it makes systems easier to manage. This specification does 54287 not require the implementation to use RPM as the package 54288 manager; it only specifies the format of the package file 54289 and requires that implementations must have some method of 54290 installing conforming packages. 54291 54292 Applications are also encouraged to uninstall cleanly. 54293 54294 A package in the RPM format may include a dependency on the LSB 54295 Core and other LSB specifications, as described in Section 54296 25.6. Packages that are not in the RPM format may test for the 54297 presence of a conforming implementation by means of the 54298 lsb_release utility. 54299 54300 Implementations shall provide a mechanism for installing 54301 applications in the RPM packaging format with some restrictions 54302 listed below. 54303 54304 Note: The implementation itself may use a different 54305 packaging format for its own packages, and may use any 54306 available mechanism for installing conforming packages, 54307 including translation into a different format. 54308 __________________________________________________________ 54309 54310 25.2. Package File Format 54311 54312 An RPM format file consists of 4 sections, the Lead, Signature, 54313 Header, and the Payload. All values are stored in network byte 54314 order. 54315 54316 Table 25-1. RPM File Format 54317 Lead 54318 Signature 54319 Header 54320 Payload 54321 54322 These 4 sections shall exist in the order specified. 54323 54324 The lead section is used to identify the package file. 54325 54326 The signature section is used to verify the integrity, and 54327 optionally, the authenticity of the majority of the package 54328 file. 54329 54330 The header section contains all available information about the 54331 package. Entries such as the package's name, version, and file 54332 list, are contained in the header. 54333 54334 The payload section holds the files to be installed. 54335 __________________________________________________________ 54336 54337 25.2.1. Lead Section 54338 54339 struct rpmlead { 54340 unsigned char magic[4]; 54341 unsigned char major, minor; 54342 short type; 54343 short archnum; 54344 char name[66]; 54345 short osnum; 54346 short signature_type; 54347 char reserved[16]; 54348 } ; 54349 54350 magic 54351 54352 Value identifying this file as an RPM format file. This value 54353 shall be "\355\253\356\333". 54354 major 54355 54356 Value indicating the major version number of the file format 54357 version. This value shall be 3. 54358 minor 54359 54360 Value indicating the minor revision number of file format 54361 version. This value shall be 0. 54362 type 54363 54364 Value indicating whether this is a source or binary package. 54365 This value shall be 0 to indicate a binary package. 54366 archnum 54367 54368 Value indicating the architecture for which this package is 54369 valid. This value is specified in the relevant architecture 54370 specific part of the LSB Core Specification. 54371 name 54372 54373 A NUL terminated string that provides the package name. This 54374 name shall conform with the Package Naming Conventions section 54375 of this specification. 54376 osnum 54377 54378 Value indicating the Operating System for which this package is 54379 valid. This value shall be 1. 54380 signature_type 54381 54382 Value indicating the type of the signature used in the 54383 Signature part of the file. This value shall be 5. 54384 reserved 54385 54386 Reserved space. The value is undefined. 54387 __________________________________________________________ 54388 54389 25.2.2. Header Structure 54390 54391 The Header structure is used for both the Signature and Header 54392 Sections. A Header Structure consists of 3 parts, a Header 54393 record, followed by 1 or more Index records, followed by 0 or 54394 more bytes of data associated with the Index records. A Header 54395 structure shall be aligned to an 8 byte boundary. 54396 54397 Table 25-2. Signature Format 54398 Header Record 54399 Array of Index Records 54400 Store of Index Values 54401 __________________________________________________________ 54402 54403 25.2.2.1. Header Record 54404 54405 struct rpmheader { 54406 unsigned char magic[4]; 54407 unsigned char reserved[4]; 54408 int nindex; 54409 int hsize; 54410 }; 54411 54412 magic 54413 54414 Value identifying this record as an RPM header record. This 54415 value shall be "\216\255\350\001". 54416 reserved 54417 54418 Reserved space. This value shall be "\000\000\000\000". 54419 nindex 54420 54421 The number of Index Records that follow this Header Record. 54422 There should be at least 1 Index Record. 54423 hsize 54424 54425 The size in bytes of the storage area for the data pointed to 54426 by the Index Records. 54427 __________________________________________________________ 54428 54429 25.2.2.2. Index Record 54430 54431 struct rpmhdrindex { 54432 int tag; 54433 int type; 54434 int offset; 54435 int count; 54436 }; 54437 54438 tag 54439 54440 Value identifying the purpose of the data associated with this 54441 Index Record. The value of this field is dependent on the 54442 context in which the Index Record is used, and is defined below 54443 and in later sections. 54444 type 54445 54446 Value identifying the type of the data associated with this 54447 Index Record. The possible type values are defined below. 54448 offset 54449 54450 Location in the Store of the data associated with this Index 54451 Record. This value should between 0 and the value contained in 54452 the hsize of the Header Structure. 54453 count 54454 54455 Size of the data associated with this Index Record. The count 54456 is the number of elements whose size is defined by the type of 54457 this Record. 54458 __________________________________________________________ 54459 54460 25.2.2.2.1. Index Type Values 54461 54462 The possible values for the type field are defined in this 54463 table. 54464 54465 Table 25-3. Index Type values 54466 Type Value Size (in bytes) Alignment 54467 RPM_NULL_TYPE 0 Not Implemented. 54468 RPM_CHAR_TYPE 1 1 1 54469 RPM_INT8_TYPE 2 1 1 54470 RPM_INT16_TYPE 3 2 2 54471 RPM_INT32_TYPE 4 4 4 54472 RPM_INT64_TYPE 5 Reserved. 54473 RPM_STRING_TYPE 6 variable, NUL terminated 1 54474 RPM_BIN_TYPE 7 1 1 54475 RPM_STRING_ARRAY_TYPE 8 Variable, sequence of NUL terminated 54476 strings 1 54477 RPM_I18NSTRING_TYPE 9 variable, sequence of NUL terminated 54478 strings 1 54479 54480 The string arrays specified for entries of type 54481 RPM_STRING_ARRAY_TYPE and RPM_I18NSTRING_TYPE are vectors of 54482 strings in a contiguous block of memory, each element separated 54483 from its neighbors by a NUL character. 54484 54485 Index records with type RPM_I18NSTRING_TYPE shall always have a 54486 count of 1. The array entries in an index of type 54487 RPM_I18NSTRING_TYPE correspond to the locale names contained in 54488 the RPMTAG_HDRI18NTABLE index. 54489 __________________________________________________________ 54490 54491 25.2.2.2.2. Index Tag Values 54492 54493 Some values are designated as header private, and may appear in 54494 any header structure. These are defined here. Additional values 54495 are defined in later sections. 54496 54497 Table 25-4. Header Private Tag Values 54498 Name Tag Value Type Count Status 54499 RPMTAG_HEADERSIGNATURES 62 BIN 16 Optional 54500 RPMTAG_HEADERIMMUTABLE 63 BIN 16 Optional 54501 RPMTAG_HEADERI18NTABLE 100 STRING_ARRAY Optional 54502 54503 RPMTAG_HEADERSIGNATURES 54504 The signature tag differentiates a signature header from 54505 a metadata header, and identifies the original contents 54506 of the signature header. 54507 54508 RPMTAG_HEADERIMMUTABLE 54509 This tag contains an index record which specifies the 54510 portion of the Header Record which was used for the 54511 calculation of a signature. This data shall be preserved 54512 or any header-only signature will be invalidated. 54513 54514 RPMTAG_HEADERI18NTABLE 54515 Contains a list of locales for which strings are 54516 provided in other parts of the package. 54517 54518 Not all Index records defined here will be present in all 54519 packages. Each tag value has a status which is defined here. 54520 54521 Required 54522 54523 This Index Record shall be present. 54524 Optional 54525 54526 This Index Record may be present. 54527 Informational 54528 54529 This Index Record may be present, but does not contribute to 54530 the processing of the package. 54531 Deprecated 54532 54533 This Index Record should not be present. 54534 Obsolete 54535 54536 This Index Record shall not be present. 54537 Reserved 54538 54539 This Index Record shall not be present. 54540 __________________________________________________________ 54541 54542 25.2.2.3. Header Store 54543 54544 The header store contains the values specified by the Index 54545 structures. These values are aligned according to their type 54546 and padding is used if needed. The store is located immediately 54547 following the Index structures. 54548 __________________________________________________________ 54549 54550 25.2.3. Signature Section 54551 54552 The Signature section is implemented using the Header 54553 structure. The signature section defines the following 54554 additional tag values which may be used in the Index 54555 structures. 54556 54557 These values exist to provide additional information about the 54558 rest of the package. 54559 54560 Table 25-5. Signature Tag Values 54561 Name Tag Value Type Count Status 54562 RPMSIGTAG_SIZE 1000 INT32 1 Required 54563 RPMSIGTAG_PAYLOADSIZE 1007 INT32 1 Optional 54564 54565 RPMSIGTAG_SIZE 54566 This tag specifies the combined size of the Header and 54567 Payload sections. 54568 54569 RPMSIGTAG_PAYLOADSIZE 54570 This tag specifies the uncompressed size of the Payload 54571 archive, including the cpio headers. 54572 54573 These values exist to ensure the integrity of the rest of the 54574 package. 54575 54576 Table 25-6. Signature Digest Tag Values 54577 Name Tag Value Type Count Status 54578 RPMSIGTAG_SHA1 269 STRING 1 Optional 54579 RPMSIGTAG_MD5 1004 BIN 16 Required 54580 54581 RPMSIGTAG_SHA1 54582 54583 This index contains the SHA1 checksum of the entire Header 54584 Section, including the Header Record, Index Records and Header 54585 store. 54586 RPMSIGTAG_MD5 54587 54588 This tag specifies the 128-bit MD5 checksum of the combined 54589 Header and Archive sections. 54590 54591 These values exist to provide authentication of the package. 54592 54593 Table 25-7. Signature Signing Tag Values 54594 Name Tag Value Type Count Status 54595 RPMSIGTAG_DSA 267 BIN 65 Optional 54596 RPMSIGTAG_RSA 268 BIN 1 Optional 54597 RPMSIGTAG_PGP 1002 BIN 1 Optional 54598 RPMSIGTAG_GPG 1005 BIN 65 Optional 54599 54600 RPMSIGTAG_DSA 54601 54602 The tag contains the DSA signature of the Header section. The 54603 data is formatted as a Version 3 Signature Packet as specified 54604 in RFC 2440: OpenPGP Message Format. If this tag is present, 54605 then the SIGTAG_GPG tag shall also be present. 54606 RPMSIGTAG_RSA 54607 54608 The tag contains the RSA signature of the Header section.The 54609 data is formatted as a Version 3 Signature Packet as specified 54610 in RFC 2440: OpenPGP Message Format. If this tag is present, 54611 then the SIGTAG_PGP shall also be present. 54612 RPMSIGTAG_PGP 54613 54614 This tag specifies the RSA signature of the combined Header and 54615 Payload sections. The data is formatted as a Version 3 54616 Signature Packet as specified in RFC 2440: OpenPGP Message 54617 Format. 54618 RPMSIGTAG_GPG 54619 54620 The tag contains the DSA signature of the combined Header and 54621 Payload sections. The data is formatted as a Version 3 54622 Signature Packet as specified in RFC 2440: OpenPGP Message 54623 Format. 54624 __________________________________________________________ 54625 54626 25.2.4. Header Section 54627 54628 The Header section is implemented using the Header structure. 54629 The Header section defines the following additional tag values 54630 which may be used in the Index structures. 54631 __________________________________________________________ 54632 54633 25.2.4.1. Package Information 54634 54635 The following tag values are used to indicate information that 54636 describes the package as a whole. 54637 54638 Table 25-8. Package Info Tag Values 54639 Name Tag Value Type Count Status 54640 RPMTAG_NAME 1000 STRING 1 Required 54641 RPMTAG_VERSION 1001 STRING 1 Required 54642 RPMTAG_RELEASE 1002 STRING 1 Required 54643 RPMTAG_SUMMARY 1004 I18NSTRING 1 Required 54644 RPMTAG_DESCRIPTION 1005 I18NSTRING 1 Required 54645 RPMTAG_SIZE 1009 INT32 1 Required 54646 RPMTAG_DISTRIBUTION 1010 STRING 1 Informational 54647 RPMTAG_VENDOR 1011 STRING 1 Informational 54648 RPMTAG_LICENSE 1014 STRING 1 Required 54649 RPMTAG_PACKAGER 1015 STRING 1 Informational 54650 RPMTAG_GROUP 1016 I18NSTRING 1 Required 54651 RPMTAG_URL 1020 STRING 1 Informational 54652 RPMTAG_OS 1021 STRING 1 Required 54653 RPMTAG_ARCH 1022 STRING 1 Required 54654 RPMTAG_SOURCERPM 1044 STRING 1 Informational 54655 RPMTAG_ARCHIVESIZE 1046 INT32 1 Optional 54656 RPMTAG_RPMVERSION 1064 STRING 1 Informational 54657 RPMTAG_COOKIE 1094 STRING 1 Optional 54658 RPMTAG_DISTURL 1123 STRING 1 Informational 54659 RPMTAG_PAYLOADFORMAT 1124 STRING 1 Required 54660 RPMTAG_PAYLOADCOMPRESSOR 1125 STRING 1 Required 54661 RPMTAG_PAYLOADFLAGS 1126 STRING 1 Required 54662 54663 RPMTAG_NAME 54664 This tag specifies the name of the package. 54665 54666 RPMTAG_VERSION 54667 This tag specifies the version of the package. 54668 54669 RPMTAG_RELEASE 54670 This tag specifies the release of the package. 54671 54672 RPMTAG_SUMMARY 54673 This tag specifies the summary description of the 54674 package. The summary value pointed to by this index 54675 record contains a one line description of the package. 54676 54677 RPMTAG_DESCRIPTION 54678 This tag specifies the description of the package. The 54679 description value pointed to by this index record 54680 contains a full desription of the package. 54681 54682 RPMTAG_SIZE 54683 This tag specifies the sum of the sizes of the regular 54684 files in the archive. 54685 54686 RPMTAG_DISTRIBUTION 54687 A string containing the name of the distribution on 54688 which the package was built. 54689 54690 RPMTAG_VENDOR 54691 A string containing the name of the organization that 54692 produced the package. 54693 54694 RPMTAG_LICENSE 54695 This tag specifies the license which applies to this 54696 package. 54697 54698 RPMTAG_PACKAGER 54699 A string identifying the tool used to build the package. 54700 54701 RPMTAG_GROUP 54702 This tag specifies the administrative group to which 54703 this package belongs. 54704 54705 RPMTAG_URL 54706 Generic package information URL. 54707 54708 RPMTAG_OS 54709 This tag specifies the OS of the package. The OS value 54710 pointed to by this index record shall be "linux". 54711 54712 RPMTAG_ARCH 54713 This tag specifies the architecture of the package. The 54714 architecture value pointed to by this index record is 54715 defined in architecture specific LSB specification. 54716 54717 RPMTAG_SOURCERPM 54718 This tag specifies the name of the source RPM. 54719 54720 RPMTAG_ARCHIVESIZE 54721 This tag specifies the uncompressed size of the Payload 54722 archive, including the cpio headers. 54723 54724 RPMTAG_RPMVERSION 54725 This tag indicates the version of RPM tool used to build 54726 this package. The value is unused. 54727 54728 RPMTAG_COOKIE 54729 This tag contains an opaque string whose contents are 54730 undefined. 54731 54732 RPMTAG_DISTURL 54733 URL for package. 54734 54735 RPMTAG_PAYLOADFORMAT 54736 This tag specifies the format of the Archive section. 54737 The format value pointed to by this index record shall 54738 be 'cpio'. 54739 54740 RPMTAG_PAYLOADCOMPRESSOR 54741 This tag specifies the compression used on the Archive 54742 section. The compression value pointed to by this index 54743 record shall be 'gzip'. 54744 54745 RPMTAG_PAYLOADFLAGS 54746 This tag indicates the compression level used for the 54747 Payload. This value shall always be '9'. 54748 __________________________________________________________ 54749 54750 25.2.4.2. Installation Information 54751 54752 The following tag values are used to provide information needed 54753 during the installation of the package. 54754 54755 Table 25-9. Installation Tag Values 54756 Name Tag Value Type Count Status 54757 RPMTAG_PREIN 1023 STRING 1 Optional 54758 RPMTAG_POSTIN 1024 STRING 1 Optional 54759 RPMTAG_PREUN 1025 STRING 1 Optional 54760 RPMTAG_POSTUN 1026 STRING 1 Optional 54761 RPMTAG_PREINPROG 1085 STRING 1 Optional 54762 RPMTAG_POSTINPROG 1086 STRING 1 Optional 54763 RPMTAG_PREUNPROG 1087 STRING 1 Optional 54764 RPMTAG_POSTUNPROG 1088 STRING 1 Optional 54765 54766 RPMTAG_PREIN 54767 54768 This tag specifies the preinstall scriptlet. If present, then 54769 RPMTAG_PREINPROG shall also be present. 54770 RPMTAG_POSTIN 54771 54772 This tag specifies the postinstall scriptlet. If present, then 54773 RPMTAG_POSTINPROG shall also be present. 54774 RPMTAG_PREUN 54775 54776 his tag specifies the preuninstall scriptlet. If present, then 54777 RPMTAG_PREUNPROG shall also be present. 54778 RPMTAG_POSTUN 54779 54780 This tag specified the postuninstall scriptlet. If present, 54781 then RPMTAG_POSTUNPROG shall also be present. 54782 RPMTAG_PREINPROG 54783 54784 This tag specifies the name of the intepreter to which the 54785 preinstall scriptlet will be passed. The intepreter pointed to 54786 by this index record shall be /bin/sh. 54787 RPMTAG_POSTINPROG 54788 54789 This tag specifies the name of the intepreter to which the 54790 postinstall scriptlet will be passed. The intepreter pointed to 54791 by this index record shall be /bin/sh. 54792 RPMTAG_PREUNPROG 54793 54794 This tag specifies the name of the intepreter to which the 54795 preuninstall scriptlet will be passed. The intepreter pointed 54796 to by this index record shall be /bin/sh. 54797 RPMTAG_POSTUNPROG 54798 54799 This program specifies the name of the intepreter to which the 54800 postuninstall scriptlet will be passed. The intepreter pointed 54801 to by this index record shall be /bin/sh. 54802 __________________________________________________________ 54803 54804 25.2.4.3. File Information 54805 54806 The following tag values are used to provide information about 54807 the files in the payload. This information is provided in the 54808 header to allow more efficient access of the information. 54809 54810 Table 25-10. File Info Tag Values 54811 Name Tag Value Type Count Status 54812 RPMTAG_OLDFILENAMES 1027 STRING_ARRAY Optional 54813 RPMTAG_FILESIZES 1028 INT32 Required 54814 RPMTAG_FILEMODES 1030 INT16 Required 54815 RPMTAG_FILERDEVS 1033 INT16 Required 54816 RPMTAG_FILEMTIMES 1034 INT32 Required 54817 RPMTAG_FILEMD5S 1035 STRING_ARRAY Required 54818 RPMTAG_FILELINKTOS 1036 STRING_ARRAY Required 54819 RPMTAG_FILEFLAGS 1037 INT32 Required 54820 RPMTAG_FILEUSERNAME 1039 STRING_ARRAY Required 54821 RPMTAG_FILEGROUPNAME 1040 STRING_ARRAY Required 54822 RPMTAG_FILEDEVICES 1095 INT32 Required 54823 RPMTAG_FILEINODES 1096 INT32 Required 54824 RPMTAG_FILELANGS 1097 STRING_ARRAY Required 54825 RPMTAG_DIRINDEXES 1116 INT32 Optional 54826 RPMTAG_BASENAMES 1117 STRING_ARRAY Optional 54827 RPMTAG_DIRNAMES 1118 STRING_ARRAY Optional 54828 54829 RPMTAG_OLDFILENAMES 54830 54831 This tag specifies the filenames when not in a compressed 54832 format as determined by the absence of 54833 rpmlib(CompressedFileNames) in the RPMTAG_REQUIRENAME index. 54834 RPMTAG_FILESIZES 54835 54836 This tag specifies the size of each file in the archive. 54837 RPMTAG_FILEMODES 54838 54839 This tag specifies the mode of each file in the archive. 54840 RPMTAG_FILERDEVS 54841 54842 This tag specifies the device number from which the file was 54843 copied. 54844 RPMTAG_FILEMTIMES 54845 54846 This tag specifies the modification time in seconds since the 54847 epoch of each file in the archive. 54848 RPMTAG_FILEMD5S 54849 54850 This tag specifies the ASCII representation of the MD5 sum of 54851 the corresponding file contents. This value is empty if the 54852 corresponding archive entry is not a regular file. 54853 RPMTAG_FILELINKTOS 54854 54855 The target for a symlink, otherwise NULL. 54856 RPMTAG_FILEFLAGS 54857 54858 This tag specifies the bit(s) to classify and control how files 54859 are to be installed. See below. 54860 RPMTAG_FILEUSERNAME 54861 54862 This tag specifies the owner of the corresponding file. 54863 RPMTAG_FILEGROUPNAME 54864 54865 This tag specifies the group of the corresponding file. 54866 RPMTAG_FILEDEVICES 54867 54868 This tag specifies the 16 bit device number from which the file 54869 was copied. 54870 RPMTAG_FILEINODES 54871 54872 This tag specifies the inode value from the original file 54873 system on the the system on which it was built. 54874 RPMTAG_FILELANGS 54875 54876 This tag specifies a per-file locale marker used to install 54877 only locale specific subsets of files when the package is 54878 installed. 54879 RPMTAG_DIRINDEXES 54880 54881 This tag specifies the index into the array provided by the 54882 RPMTAG_DIRNAMES Index which contains the directory name for the 54883 corresponding filename. 54884 RPMTAG_BASENAMES 54885 54886 This tag specifies the base portion of the corresponding 54887 filename. 54888 RPMTAG_DIRNAMES 54889 54890 One of RPMTAG_OLDFILENAMES or the tuple 54891 RPMTAG_DIRINDEXES,RPMTAG_BASENAMES,RPMTAG_DIRNAMES shall be 54892 present, but not both. 54893 __________________________________________________________ 54894 54895 25.2.4.3.1. File Flags 54896 54897 The RPMTAG_FILEFLAGS tag value shall identify various 54898 characteristics of the file in the payload that it describes. 54899 It shall be an INT32 value consisting of either the value 54900 RPMFILE_NONE (0) or the bitwise inclusive or of one or more of 54901 the following values: 54902 54903 Table 25-11. File Flags 54904 Name Value 54905 RPMFILE_CONFIG (1 << 0) 54906 RPMFILE_DOC (1 << 1) 54907 RPMFILE_DONOTUSE (1 << 2) 54908 RPMFILE_MISSINGOK (1 << 3) 54909 RPMFILE_NOREPLACE (1 << 4) 54910 RPMFILE_SPECFILE (1 << 5) 54911 RPMFILE_GHOST (1 << 6) 54912 RPMFILE_LICENSE (1 << 7) 54913 RPMFILE_README (1 << 8) 54914 RPMFILE_EXCLUDE (1 << 9) 54915 54916 These bits have the following meaning: 54917 54918 RPMFILE_CONFIG 54919 54920 The file is a configuration file, and an existing file should 54921 be saved during a package upgrade operation and not removed 54922 during a pakage removal operation. 54923 RPMFILE_DOC 54924 54925 The file contains documentation. 54926 RPMFILE_DONOTUSE 54927 54928 This value is reserved for future use; conforming packages may 54929 not use this flag. 54930 RPMFILE_MISSINGOK 54931 54932 The file need not exist on the installed system. 54933 RPMFILE_NOREPLACE 54934 54935 Similar to the RPMFILE_CONFIG, this flag indicates that during 54936 an upgrade operation the original file on the system should not 54937 be altered. 54938 RPMFILE_SPECFILE 54939 54940 The file is a package specification. 54941 RPMFILE_GHOST 54942 54943 The file is not actually included in the payload, but should 54944 still be considered as a part of the package. For example, a 54945 log file generated by the application at run time. 54946 RPMFILE_LICENSE 54947 54948 The file contains the license conditions. 54949 RPMFILE_README 54950 54951 The file contains high level notes about the package. 54952 RPMFILE_EXCLUDE 54953 54954 The corresponding file is not a part of the package, and should 54955 not be installed. 54956 __________________________________________________________ 54957 54958 25.2.4.4. Dependency Information 54959 54960 The following tag values are used to provide information about 54961 interdependencies between packages. 54962 54963 Table 25-12. Package Dependency Tag Values 54964 Name Tag Value Type Count Status 54965 RPMTAG_PROVIDENAME 1047 STRING_ARRAY 1 Required 54966 RPMTAG_REQUIREFLAGS 1048 INT32 Required 54967 RPMTAG_REQUIRENAME 1049 STRING_ARRAY Required 54968 RPMTAG_REQUIREVERSION 1050 STRING_ARRAY Required 54969 RPMTAG_CONFLICTFLAGS 1053 INT32 Optional 54970 RPMTAG_CONFLICTNAME 1054 STRING_ARRAY Optional 54971 RPMTAG_CONFLICTVERSION 1055 STRING_ARRAY Optional 54972 RPMTAG_OBSOLETENAME 1090 STRING_ARRAY Optional 54973 RPMTAG_PROVIDEFLAGS 1112 INT32 Required 54974 RPMTAG_PROVIDEVERSION 1113 STRING_ARRAY Required 54975 RPMTAG_OBSOLETEFLAGS 1114 INT32 1 Optional 54976 RPMTAG_OBSOLETEVERSION 1115 STRING_ARRAY Optional 54977 54978 RPMTAG_PROVIDENAME 54979 This tag indicates the name of the dependency provided 54980 by this package. 54981 54982 RPMTAG_REQUIREFLAGS 54983 Bits(s) to specify the dependency range and context. 54984 54985 RPMTAG_REQUIRENAME 54986 This tag indicates the dependencies for this package. 54987 54988 RPMTAG_REQUIREVERSION 54989 This tag indicates the versions associated with the 54990 values found in the RPMTAG_REQUIRENAME Index. 54991 54992 RPMTAG_CONFLICTFLAGS 54993 Bits(s) to specify the conflict range and context. 54994 54995 RPMTAG_CONFLICTNAME 54996 This tag indicates the conflicting dependencies for this 54997 package. 54998 54999 RPMTAG_CONFLICTVERSION 55000 This tag indicates the versions associated with the 55001 values found in the RPMTAG_CONFLICTNAME Index. 55002 55003 RPMTAG_OBSOLETENAME 55004 This tag indicates the obsoleted dependencies for this 55005 package. 55006 55007 RPMTAG_PROVIDEFLAGS 55008 Bits(s) to specify the conflict range and context. 55009 55010 RPMTAG_PROVIDEVERSION 55011 This tag indicates the versions associated with the 55012 values found in the RPMTAG_PROVIDENAME Index. 55013 55014 RPMTAG_OBSOLETEFLAGS 55015 Bits(s) to specify the conflict range and context. 55016 55017 RPMTAG_OBSOLETEVERSION 55018 This tag indicates the versions associated with the 55019 values found in the RPMTAG_OBSOLETENAME Index. 55020 __________________________________________________________ 55021 55022 25.2.4.4.1. Package Dependency Values 55023 55024 The package dependencies are stored in the RPMTAG_REQUIRENAME 55025 and RPMTAG_REQUIREVERSION index records. The following values 55026 may be used. 55027 55028 Table 25-13. Index Type values 55029 Name Version Meaning Status 55030 rpmlib(VersionedDependencies) 3.0.3-1 Indicates that the 55031 package contains RPMTAG_PROVIDENAME, RPMTAG_OBSOLETENAME or 55032 RPMTAG_PREREQ records that have a version associated with them. 55033 Optional 55034 rpmlib(PayloadFilesHavePrefix) 4.0-1 Indicates the filenames in 55035 the Archive have had "." prepended to them. Optional 55036 rpmlib(CompressedFileNames) 3.0.4-1 Indicates that the 55037 filenames in the Payload are represented in the 55038 RPMTAG_DIRINDEXES, RPMTAG_DIRNAME and RPMTAG_BASENAMES indexes. 55039 Optional 55040 /bin/sh Interpreter usually required for installation 55041 scripts. Optional 55042 55043 Additional dependencies are specified in the Package 55044 Dependencies section of this specification, and in the relevant 55045 architecture specific part of the LSB Core Specification. 55046 __________________________________________________________ 55047 55048 25.2.4.4.2. Package Dependencies Attributes 55049 55050 The package dependency attributes are stored in the 55051 RPMTAG_REQUIREFLAGS, RPMTAG_PROVIDEFLAGS and 55052 RPMTAG_OBSOLETEFLAGS index records. The following values may be 55053 used. 55054 55055 Table 25-14. Package Dependency Attributes 55056 Name Value Meaning 55057 RPMSENSE_LESS 0x02 55058 RPMSENSE_GREATER 0x04 55059 RPMSENSE_EQUAL 0x08 55060 RPMSENSE_PREREQ 0x40 55061 RPMSENSE_INTERP 0x100 55062 RPMSENSE_SCRIPT_PRE 0x200 55063 RPMSENSE_SCRIPT_POST 0x400 55064 RPMSENSE_SCRIPT_PREUN 0x800 55065 RPMSENSE_SCRIPT_POSTUN 0x1000 55066 RPMSENSE_RPMLIB 0x1000000 55067 __________________________________________________________ 55068 55069 25.2.4.5. Other Information 55070 55071 The following tag values are also found in the Header section. 55072 55073 Table 25-15. Other Tag Values 55074 Name Tag Value Type Count Status 55075 RPMTAG_BUILDTIME 1006 INT32 1 Informational 55076 RPMTAG_BUILDHOST 1007 STRING 1 Informational 55077 RPMTAG_FILEVERIFYFLAGS 1045 INT32 Optional 55078 RPMTAG_CHANGELOGTIME 1080 INT32 Optional 55079 RPMTAG_CHANGELOGNAME 1081 STRING_ARRAY Optional 55080 RPMTAG_CHANGELOGTEXT 1082 STRING_ARRAY Optional 55081 RPMTAG_OPTFLAGS 1122 STRING 1 Informational 55082 RPMTAG_RHNPLATFORM 1131 STRING 1 Deprecated 55083 RPMTAG_PLATFORM 1132 STRING 1 Informational 55084 55085 RPMTAG_BUILDTIME 55086 This tag specifies the time as seconds since the epoch 55087 at which the package was built. 55088 55089 RPMTAG_BUILDHOST 55090 This tag specifies the hostname of the system on which 55091 which the package was built. 55092 55093 RPMTAG_FILEVERIFYFLAGS 55094 This tag specifies the bit(s) to control how files are 55095 to be verified after install, specifying which checks 55096 should be performed. 55097 55098 RPMTAG_CHANGELOGTIME 55099 This tag specifies the Unix time in seconds since the 55100 epoch associated with each entry in the Changelog file. 55101 55102 RPMTAG_CHANGELOGNAME 55103 This tag specifies the name of who made a change to this 55104 package. 55105 55106 RPMTAG_CHANGELOGTEXT 55107 This tag specifies the changes asssociated with a 55108 changelog entry. 55109 55110 RPMTAG_OPTFLAGS 55111 This tag indicates additional flags which may have been 55112 passed to the compiler when building this package. 55113 55114 RPMTAG_RHNPLATFORM 55115 This tag contains an opaque string whose contents are 55116 undefined. 55117 55118 RPMTAG_PLATFORM 55119 This tag contains an opaque string whose contents are 55120 undefined. 55121 __________________________________________________________ 55122 55123 25.2.5. Payload Section 55124 55125 The Payload section contains a compressed cpio archive. The 55126 format of this section is defined by RFC 1952: GZIP File Format 55127 Specification. 55128 55129 When uncompressed, the cpio archive contains a sequence of 55130 records for each file. Each record contains a CPIO Header, 55131 Filename, Padding, and File Data. 55132 55133 Table 25-16. CPIO File Format 55134 CPIO Header Header structure as defined below. 55135 Filename NUL terminated ASCII string containing the name of the 55136 file. 55137 Padding 0-3 bytes as needed to align the file stream to a 4 55138 byte boundary. 55139 File data The contents of the file. 55140 Padding 0-3 bytes as needed to align the file stream to a 4 55141 byte boundary. 55142 55143 The CPIO Header uses the following header structure (sometimes 55144 referred to as "new ASCII" or "SVR4 cpio"). All numbers are 55145 stored as ASCII representations of their hexadecimal value with 55146 leading zeros as needed to fill the field. With the exception 55147 of c_namesize and the corresponding name string, and 55148 c_checksum, all information contained in the CPIO Header is 55149 also represented in the Header Section. The values in the CPIO 55150 Header shall match the values contained in the Header Section. 55151 struct { 55152 char c_magic[6]; 55153 char c_ino[8]; 55154 char c_mode[8]; 55155 char c_uid[8]; 55156 char c_gid[8]; 55157 char c_nlink[8]; 55158 char c_mtime[8]; 55159 char c_filesize[8]; 55160 char c_devmajor[8]; 55161 char c_devminor[8]; 55162 char c_rdevmajor[8]; 55163 char c_rdevminor[8]; 55164 char c_namesize[8]; 55165 char c_checksum[8]; 55166 }; 55167 55168 c_magic 55169 55170 Value identifying this cpio format. This value shall be 55171 "070701". 55172 c_ino 55173 55174 This field contains the inode number from the filesystem from 55175 which the file was read. This field is ignored when installing 55176 a package. This field shall match the corresponding value in 55177 the RPMTAG_FILEINODES index in the Header section. 55178 c_mode 55179 55180 Permission bits of the file. This is an ascii representation of 55181 the hexadecimal number representing the bit as defined for the 55182 st_mode field of the stat structure defined for the stat 55183 function. This field shall match the corresponding value in the 55184 RPMTAG_FILEMODES index in the Header section. 55185 c_uid 55186 55187 Value identifying this owner of this file. This value matches 55188 the uid value of the corresponding user in the 55189 RPMTAG_FILEUSERNAME as found on the system where this package 55190 was built. The username specified in RPMTAG_FILEUSERNAME should 55191 take precedence when installing the package. 55192 c_gid 55193 55194 Value identifying this group of this file. This value matches 55195 the gid value of the corresponding user in the 55196 RPMTAG_FILEGROUPNAME as found on the system where this package 55197 was built. The groupname specified in RPMTAG_FILEGROUPNAME 55198 should take precedence when installing the package. 55199 c_nlink 55200 55201 Value identifying the number of links associated with this 55202 file. If the value is greater than 1, then this filename will 55203 be linked to 1 or more files in this archive that has a 55204 matching value for the c_ino, c_devmajor and c_devminor fields. 55205 c_mtime 55206 55207 Value identifying the modification time of the file when it was 55208 read. This field shall match the corresponding value in the 55209 RPMTAG_FILEMTIMES index in the Header section. 55210 c_filesize 55211 55212 Value identifying the size of the file. This field shall match 55213 the corresponding value in the RPMTAG_FILESIZES index in the 55214 Header section. 55215 c_devmajor 55216 55217 The major number of the device containing the file system from 55218 which the file was read. With the exception of processing files 55219 with c_nlink >1, this field is ignored when installing a 55220 package. This field shall match the corresponding value in the 55221 RPMTAG_FILEDEVICES index in the Header section. 55222 c_devminor 55223 55224 The minor number of the device containing the file system from 55225 which the file was read. With the exception of processing files 55226 with c_nlink >1, this field is ignored when installing a 55227 package. This field shall match the corresponding value in the 55228 RPMTAG_FILEDEVICES index in the Header section. 55229 c_rdevmajor 55230 55231 The major number of the raw device containing the file system 55232 from which the file was read. This field is ignored when 55233 installing a package. This field shall match the corresponding 55234 value in the RPMTAG_RDEVS index in the Header section. 55235 c_rdevminor 55236 55237 The minor number of the raw device containing the file system 55238 from which the file was read. This field is ignored when 55239 installing a package. This field shall match the corresponding 55240 value in the RPMTAG_RDEVS index in the Header section. 55241 c_namesize 55242 55243 Value identifying the length of the filename, which is located 55244 immediately following the CPIO Header structure. 55245 c_checksum 55246 55247 Value containing the CRC checksum of the file data. This field 55248 is not used, and shall contain the value "00000000". This field 55249 is ignored when installing a package. 55250 55251 A record with the filename "TRAILER!!!" indicates the last 55252 record in the archive. 55253 __________________________________________________________ 55254 55255 25.3. Package Script Restrictions 55256 55257 Scripts used as part of the package install and uninstall shall 55258 only use commands and interfaces that are specified by the LSB. 55259 All other commands are not guaranteed to be present, or to 55260 behave in expected ways. 55261 55262 Packages shall not use RPM triggers. 55263 55264 Packages shall not depend on the order in which scripts are 55265 executed (pre-install, pre-uninstall, etc), when doing an 55266 upgrade. 55267 __________________________________________________________ 55268 55269 25.4. Package Tools 55270 55271 The LSB does not specify the interface to the tools used to 55272 manipulate LSB-conformant packages. Each conforming 55273 implementation shall provide documentation for installing LSB 55274 packages. 55275 __________________________________________________________ 55276 55277 25.5. Package Naming Conventions 55278 55279 Packages supplied by distributions and applications should 55280 adhere to the following conventions for the name field within 55281 the package. The rules are optional for the filename of the 55282 package file itself. 55283 55284 Note: There are discrepancies among implementations 55285 concerning whether the name might be 55286 frobnicator-1.7-21-ppc32.rpm or 55287 frobnicator-1.7-21-powerpc32.rpm. The architecture aside, 55288 recommended practice is for the filename of the package file 55289 to match the name within the package. 55290 55291 The following conventions apply to the name portion of the 55292 field alone, not including any release or version portion. 55293 55294 Note: If the package name with the release and version is 55295 frobnicator-1.7-21, the name part is frobnicator and falls 55296 under the conventions for a name with no hyphens. 55297 55298 * If the name begins with lsb- and contains no other hyphens, 55299 the name should be a package name registered with the Linux 55300 Assigned Names and Numbers Authority (LANANA), which shall 55301 maintain a registry of LSB names. The name may be 55302 registered by either an implementation or an application. 55303 * If the name begins with lsb- and contains more than one 55304 hyphen the portion of the name between the first and second 55305 hyphens should be either an LSB provider name registered 55306 with the LANANA (for example lsb-gnome-gnumeric if gnome is 55307 registered), or a domain name registered to the provider in 55308 the DNS system. (for example 55309 lsb-distro.example.com-database). The LSB provider name 55310 registered with the LANANA shall only consist of the ASCII 55311 characters [a-z0-9]. The domain name, in accordance with 55312 DNS rules, shall be lower case only. The provider name or 55313 domain name may be either that of a distribution or an 55314 application. 55315 * Package names containing no hyphens are reserved for use by 55316 distributions. Applications shall not use such names. 55317 * Package names which do not start with lsb- and which 55318 contain a hyphen are open to both distributions and 55319 applications. Distributions may name packages in any part 55320 of this namespace. They are encouraged to use names from 55321 one of the other namespaces available to them, but this is 55322 not mandatory due to the large amount of current practice 55323 to the contrary. 55324 55325 Note: Widespread existing practice includes such names as 55326 ssh-common, ssh-client, kernel-pcmcia, and the like. 55327 Possible alternative names include sshcommon, 55328 foolinux-ssh-common (where foolinux is registered to the 55329 distribution), or lsb-foolinux-ssh-common. 55330 Applications may name their packages this way, but only if 55331 the portion of the name before the first hyphen is a 55332 provider name or registered domain name as described above. 55333 55334 Note: If an application vendor has domain name such as 55335 visicalc.example.com and has registered visicalc as a 55336 provider name, they could name packages either in the 55337 visicalc-base style or the visicalc.example.com-charting 55338 style. 55339 Package names in this namespace are available to both the 55340 distribution and an application. Distributions and 55341 applications need to consider the potential for conflicts 55342 when deciding to use these names rather than the 55343 alternatives (such as names starting with lsb-). 55344 __________________________________________________________ 55345 55346 25.6. Package Dependencies 55347 55348 Packages shall have a dependency that indicates which LSB 55349 modules are required. LSB module descriptions are dash 55350 seperated tuples containing the name 'lsb', the module name, 55351 and the architecture name. The following dependencies may be 55352 used. 55353 55354 lsb-core 55355 55356 This dependency is used to indicate that the application is 55357 dependent on features contained in the LSB Core specification. 55358 lsb-core-arch 55359 55360 This dependency is used to indicate that the application is 55361 dependent on features contained in the LSB Core specification 55362 and that the package contains architecture specific features. 55363 This architecture specific dependency is described in the 55364 relevant architecture specific part of the LSB Core 55365 specification. 55366 lsb-core-noarch 55367 55368 This dependency is used to indicate that the application is 55369 dependent on features contained in the LSB Core specification 55370 and that the package does not contain any architecture specific 55371 files. 55372 55373 These dependencies shall have a version of 5.0. 55374 55375 Packages shall not depend on other system-provided 55376 dependencies. They shall not depend on non-system-provided 55377 dependencies unless the package provider also makes available 55378 the LSB conforming packages needed to satisfy such 55379 dependencies. 55380 55381 Other modules in the LSB may supplement this list. The 55382 architecture specific dependencies are described in the 55383 relevant architecture specific LSB. 55384 __________________________________________________________ 55385 55386 25.7. Package Architecture Considerations 55387 55388 Packages which do not contain any architecture specific files 55389 should specify an architecture of noarch. An LSB runtime 55390 environment shall accept values noarch, or the value specified 55391 in the relevant architecture specific part of the LSB Core 55392 Specification. 55393 55394 Additional specifications or restrictions may be found in the 55395 architecture specific LSB specification. 55396 __________________________________________________________ 55397 55398 Appendix A. Alphabetical Listing of Interfaces by Library 55399 55400 A.1. libc 55401 55402 The behavior of the interfaces in this library is specified by 55403 the following Standards. 55404 55405 Large File Support [LFS] 55406 This Specification [LSB] 55407 RFC 5531/4506 RPC & XDR [RPC + XDR] 55408 SUSv2 [SUSv2] 55409 POSIX 1003.1-2001 (ISO/IEC 9945-2003) [SUSv3] 55410 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 55411 SVID Issue 4 [SVID.4] 55412 55413 Table A-1. libc Function Interfaces 55414 _Exit[SUSv4] getdelim[SUSv4] scandir[SUSv4] 55415 _IO_feof[LSB] getdomainname[LSB] scandir64[LSB] 55416 _IO_getc[LSB] getdtablesize[LSB] scanf[LSB] 55417 _IO_putc[LSB] getegid[SUSv4] sched_get_priority_max[SUSv4] 55418 _IO_puts[LSB] getenv[SUSv4] sched_get_priority_min[SUSv4] 55419 __assert_fail[LSB] geteuid[SUSv4] 55420 sched_getaffinity(GLIBC_2.3.4)[LSB] 55421 __chk_fail(GLIBC_2.3.4)[LSB] getgid[SUSv4] 55422 sched_getparam[SUSv4] 55423 __confstr_chk(GLIBC_2.4)[LSB] getgrent[SUSv4] 55424 sched_getscheduler[SUSv4] 55425 __ctype_b_loc(GLIBC_2.3)[LSB] getgrent_r[LSB] 55426 sched_rr_get_interval[SUSv4] 55427 __ctype_get_mb_cur_max[LSB] getgrgid[SUSv4] 55428 sched_setaffinity(GLIBC_2.3.4)[LSB] 55429 __ctype_tolower_loc(GLIBC_2.3)[LSB] getgrgid_r[SUSv4] 55430 sched_setparam[SUSv4] 55431 __ctype_toupper_loc(GLIBC_2.3)[LSB] getgrnam[SUSv4] 55432 sched_setscheduler[LSB] 55433 __cxa_atexit[LSB] getgrnam_r[SUSv4] sched_yield[SUSv4] 55434 __cxa_finalize[LSB] getgrouplist[LSB] seed48[SUSv4] 55435 __errno_location[LSB] getgroups[SUSv4] seed48_r[LSB] 55436 __fgets_chk(GLIBC_2.4)[LSB] gethostbyaddr[SUSv3] seekdir[SUSv4] 55437 __fgets_unlocked_chk(GLIBC_2.4)[LSB] gethostbyaddr_r[LSB] 55438 select[SUSv4] 55439 __fgetws_chk(GLIBC_2.4)[LSB] gethostbyname[SUSv3] semctl[SUSv4] 55440 __fgetws_unlocked_chk(GLIBC_2.4)[LSB] gethostbyname2[LSB] 55441 semget[SUSv4] 55442 __fpending[LSB] gethostbyname2_r[LSB] semop[SUSv4] 55443 __fprintf_chk[LSB] gethostbyname_r[LSB] send[SUSv4] 55444 __fwprintf_chk(GLIBC_2.4)[LSB] gethostid[SUSv4] sendfile[LSB] 55445 __fxstat[LSB] gethostname[SUSv4] sendfile64(GLIBC_2.3)[LSB] 55446 __fxstat64[LSB] getifaddrs(GLIBC_2.3)[LSB] sendmsg[SUSv4] 55447 __fxstatat(GLIBC_2.4)[LSB] getitimer[SUSv4] sendto[SUSv4] 55448 __fxstatat64(GLIBC_2.4)[LSB] getline[SUSv4] setbuf[SUSv4] 55449 __getcwd_chk(GLIBC_2.4)[LSB] getloadavg[LSB] setbuffer[LSB] 55450 __getgroups_chk(GLIBC_2.4)[LSB] getlogin[SUSv4] 55451 setcontext[SUSv3] 55452 __gethostname_chk(GLIBC_2.4)[LSB] getlogin_r[SUSv4] 55453 setegid[SUSv4] 55454 __getlogin_r_chk(GLIBC_2.4)[LSB] getnameinfo[SUSv4] 55455 setenv[SUSv4] 55456 __getpagesize[LSB] getopt[LSB] seteuid[SUSv4] 55457 __getpgid[LSB] getopt_long[LSB] setgid[SUSv4] 55458 __h_errno_location[LSB] getopt_long_only[LSB] setgrent[SUSv4] 55459 __isinf[LSB] getpagesize[LSB] setgroups[LSB] 55460 __isinff[LSB] getpeername[SUSv4] sethostname[LSB] 55461 __isinfl[LSB] getpgid[SUSv4] setitimer[SUSv4] 55462 __isnan[LSB] getpgrp[SUSv4] setlocale[SUSv4] 55463 __isnanf[LSB] getpid[SUSv4] setlogmask[SUSv4] 55464 __isnanl[LSB] getppid[SUSv4] setpgid[SUSv4] 55465 __libc_current_sigrtmax[LSB] getpriority[SUSv4] setpgrp[SUSv4] 55466 __libc_current_sigrtmin[LSB] getprotobyname[SUSv4] 55467 setpriority[SUSv4] 55468 __libc_start_main[LSB] getprotobyname_r[LSB] setprotoent[SUSv4] 55469 __lxstat[LSB] getprotobynumber[SUSv4] setpwent[SUSv4] 55470 __lxstat64[LSB] getprotobynumber_r[LSB] setregid[SUSv4] 55471 __mbsnrtowcs_chk(GLIBC_2.4)[LSB] getprotoent[SUSv4] 55472 setreuid[SUSv4] 55473 __mbsrtowcs_chk(GLIBC_2.4)[LSB] getprotoent_r[LSB] 55474 setrlimit[LSB] 55475 __mbstowcs_chk(GLIBC_2.4)[LSB] getpwent[SUSv4] setrlimit64[LFS] 55476 __memcpy_chk(GLIBC_2.3.4)[LSB] getpwent_r[LSB] 55477 setservent[SUSv4] 55478 __memmove_chk(GLIBC_2.3.4)[LSB] getpwnam[SUSv4] setsid[SUSv4] 55479 __mempcpy[LSB] getpwnam_r[SUSv4] setsockopt[LSB] 55480 __mempcpy_chk(GLIBC_2.3.4)[LSB] getpwuid[SUSv4] setstate[SUSv4] 55481 __memset_chk(GLIBC_2.3.4)[LSB] getpwuid_r[SUSv4] 55482 setstate_r[LSB] 55483 __pread64_chk(GLIBC_2.4)[LSB] getrlimit[LSB] setuid[SUSv4] 55484 __pread_chk(GLIBC_2.4)[LSB] getrlimit64[LFS] setutent[LSB] 55485 __printf_chk[LSB] getrusage[SUSv4] setutxent[SUSv4] 55486 __rawmemchr[LSB] getservbyname[SUSv4] setvbuf[SUSv4] 55487 __read_chk(GLIBC_2.4)[LSB] getservbyname_r[LSB] shmat[SUSv4] 55488 __readlink_chk(GLIBC_2.4)[LSB] getservbyport[SUSv4] 55489 shmctl[SUSv4] 55490 __realpath_chk(GLIBC_2.4)[LSB] getservbyport_r[LSB] 55491 shmdt[SUSv4] 55492 __recv_chk(GLIBC_2.4)[LSB] getservent[SUSv4] shmget[SUSv4] 55493 __recvfrom_chk(GLIBC_2.4)[LSB] getservent_r[LSB] 55494 shutdown[SUSv4] 55495 __register_atfork(GLIBC_2.3.2)[LSB] getsid[SUSv4] 55496 sigaction[SUSv4] 55497 __sigsetjmp[LSB] getsockname[SUSv4] sigaddset[SUSv4] 55498 __snprintf_chk[LSB] getsockopt[LSB] sigaltstack[SUSv4] 55499 __sprintf_chk[LSB] getsubopt[SUSv4] sigandset[LSB] 55500 __stack_chk_fail(GLIBC_2.4)[LSB] gettext[LSB] sigdelset[SUSv4] 55501 __stpcpy[LSB] gettimeofday[SUSv4] sigemptyset[SUSv4] 55502 __stpcpy_chk(GLIBC_2.3.4)[LSB] getuid[SUSv4] sigfillset[SUSv4] 55503 __stpncpy_chk(GLIBC_2.4)[LSB] getutent[LSB] sighold[SUSv4] 55504 __strcat_chk(GLIBC_2.3.4)[LSB] getutent_r[LSB] sigignore[SUSv4] 55505 __strcpy_chk(GLIBC_2.3.4)[LSB] getutxent[SUSv4] 55506 siginterrupt[SUSv4] 55507 __strdup[LSB] getutxid[SUSv4] sigisemptyset[LSB] 55508 __strncat_chk(GLIBC_2.3.4)[LSB] getutxline[SUSv4] 55509 sigismember[SUSv4] 55510 __strncpy_chk(GLIBC_2.3.4)[LSB] getw[SUSv2] siglongjmp[SUSv4] 55511 __strtod_internal[LSB] getwc[SUSv4] signal[SUSv4] 55512 __strtof_internal[LSB] getwc_unlocked[LSB] sigorset[LSB] 55513 __strtok_r[LSB] getwchar[SUSv4] sigpause[LSB] 55514 __strtol_internal[LSB] getwchar_unlocked[LSB] sigpending[SUSv4] 55515 __strtold_internal[LSB] getwd[SUSv3] sigprocmask[SUSv4] 55516 __strtoll_internal[LSB] glob[SUSv4] sigqueue[SUSv4] 55517 __strtoul_internal[LSB] glob64[LSB] sigrelse[SUSv4] 55518 __strtoull_internal[LSB] globfree[SUSv4] sigreturn[LSB] 55519 __swprintf_chk(GLIBC_2.4)[LSB] globfree64[LSB] sigset[SUSv4] 55520 __sysconf[LSB] gmtime[SUSv4] sigsuspend[SUSv4] 55521 __syslog_chk(GLIBC_2.4)[LSB] gmtime_r[SUSv4] 55522 sigtimedwait[SUSv4] 55523 __sysv_signal[LSB] gnu_get_libc_release[LSB] sigwait[SUSv4] 55524 __ttyname_r_chk(GLIBC_2.4)[LSB] gnu_get_libc_version[LSB] 55525 sigwaitinfo[SUSv4] 55526 __vfprintf_chk[LSB] grantpt[SUSv4] sleep[SUSv4] 55527 __vfwprintf_chk(GLIBC_2.4)[LSB] hcreate[SUSv4] snprintf[SUSv4] 55528 __vprintf_chk[LSB] hcreate_r[LSB] sockatmark[SUSv4] 55529 __vsnprintf_chk[LSB] hdestroy[SUSv4] socket[SUSv4] 55530 __vsprintf_chk[LSB] hdestroy_r[LSB] socketpair[SUSv4] 55531 __vswprintf_chk(GLIBC_2.4)[LSB] hsearch[SUSv4] sprintf[SUSv4] 55532 __vsyslog_chk(GLIBC_2.4)[LSB] hsearch_r[LSB] srand[SUSv4] 55533 __vwprintf_chk(GLIBC_2.4)[LSB] htonl[SUSv4] srand48[SUSv4] 55534 __wcpcpy_chk(GLIBC_2.4)[LSB] htons[SUSv4] srand48_r[LSB] 55535 __wcpncpy_chk(GLIBC_2.4)[LSB] iconv[SUSv4] srandom[SUSv4] 55536 __wcrtomb_chk(GLIBC_2.4)[LSB] iconv_close[SUSv4] srandom_r[LSB] 55537 __wcscat_chk(GLIBC_2.4)[LSB] iconv_open[SUSv4] sscanf[LSB] 55538 __wcscpy_chk(GLIBC_2.4)[LSB] if_freenameindex[SUSv4] 55539 statfs[LSB] 55540 __wcsncat_chk(GLIBC_2.4)[LSB] if_indextoname[SUSv4] 55541 statfs64[LSB] 55542 __wcsncpy_chk(GLIBC_2.4)[LSB] if_nameindex[SUSv4] 55543 statvfs[SUSv4] 55544 __wcsnrtombs_chk(GLIBC_2.4)[LSB] if_nametoindex[SUSv4] 55545 statvfs64[LFS] 55546 __wcsrtombs_chk(GLIBC_2.4)[LSB] imaxabs[SUSv4] stime[LSB] 55547 __wcstod_internal[LSB] imaxdiv[SUSv4] stpcpy[SUSv4] 55548 __wcstof_internal[LSB] index[SUSv3] stpncpy[SUSv4] 55549 __wcstol_internal[LSB] inet_addr[SUSv4] strcasecmp[SUSv4] 55550 __wcstold_internal[LSB] inet_aton[LSB] 55551 strcasecmp_l(GLIBC_2.3)[SUSv4] 55552 __wcstombs_chk(GLIBC_2.4)[LSB] inet_ntoa[SUSv4] strcasestr[LSB] 55553 __wcstoul_internal[LSB] inet_ntop[SUSv4] strcat[SUSv4] 55554 __wctomb_chk(GLIBC_2.4)[LSB] inet_pton[SUSv4] strchr[SUSv4] 55555 __wmemcpy_chk(GLIBC_2.4)[LSB] initgroups[LSB] strcmp[SUSv4] 55556 __wmemmove_chk(GLIBC_2.4)[LSB] initstate[SUSv4] strcoll[SUSv4] 55557 __wmempcpy_chk(GLIBC_2.4)[LSB] initstate_r[LSB] 55558 strcoll_l(GLIBC_2.3)[SUSv4] 55559 __wmemset_chk(GLIBC_2.4)[LSB] inotify_add_watch(GLIBC_2.4)[LSB] 55560 strcpy[SUSv4] 55561 __wprintf_chk(GLIBC_2.4)[LSB] inotify_init(GLIBC_2.4)[LSB] 55562 strcspn[SUSv4] 55563 __xmknod[LSB] inotify_rm_watch(GLIBC_2.4)[LSB] strdup[SUSv4] 55564 __xmknodat(GLIBC_2.4)[LSB] insque[SUSv4] strerror[SUSv4] 55565 __xpg_basename[LSB] ioctl[LSB] strerror_l(GLIBC_2.6)[SUSv4] 55566 __xpg_sigpause[LSB] isalnum[SUSv4] strerror_r[LSB] 55567 __xpg_strerror_r(GLIBC_2.3.4)[LSB] isalnum_l(GLIBC_2.3)[SUSv4] 55568 strfmon[SUSv4] 55569 __xstat[LSB] isalpha[SUSv4] strfmon_l(GLIBC_2.3)[SUSv4] 55570 __xstat64[LSB] isalpha_l(GLIBC_2.3)[SUSv4] strftime[SUSv4] 55571 _exit[SUSv4] isascii[SUSv4] strftime_l(GLIBC_2.3)[SUSv4] 55572 _longjmp[SUSv4] isatty[SUSv4] strlen[SUSv4] 55573 _setjmp[SUSv4] isblank[SUSv4] strncasecmp[SUSv4] 55574 _tolower[SUSv4] isblank_l(GLIBC_2.3)[SUSv4] 55575 strncasecmp_l(GLIBC_2.3)[SUSv4] 55576 _toupper[SUSv4] iscntrl[SUSv4] strncat[SUSv4] 55577 a64l[SUSv4] iscntrl_l(GLIBC_2.3)[SUSv4] strncmp[SUSv4] 55578 abort[SUSv4] isdigit[SUSv4] strncpy[SUSv4] 55579 abs[SUSv4] isdigit_l(GLIBC_2.3)[SUSv4] strndup[SUSv4] 55580 accept[SUSv4] isgraph[SUSv4] strnlen[SUSv4] 55581 access[SUSv4] isgraph_l(GLIBC_2.3)[SUSv4] strpbrk[SUSv4] 55582 acct[LSB] islower[SUSv4] strptime[LSB] 55583 adjtime[LSB] islower_l(GLIBC_2.3)[SUSv4] strrchr[SUSv4] 55584 alarm[SUSv4] isprint[SUSv4] strsep[LSB] 55585 alphasort[SUSv4] isprint_l(GLIBC_2.3)[SUSv4] strsignal[SUSv4] 55586 alphasort64[LSB] ispunct[SUSv4] strspn[SUSv4] 55587 argz_add[LSB] ispunct_l(GLIBC_2.3)[SUSv4] strstr[SUSv4] 55588 argz_add_sep[LSB] isspace[SUSv4] strtod[SUSv4] 55589 argz_append[LSB] isspace_l(GLIBC_2.3)[SUSv4] strtof[SUSv4] 55590 argz_count[LSB] isupper[SUSv4] strtoimax[SUSv4] 55591 argz_create[LSB] isupper_l(GLIBC_2.3)[SUSv4] strtok[SUSv4] 55592 argz_create_sep[LSB] iswalnum[SUSv4] strtok_r[SUSv4] 55593 argz_delete[LSB] iswalnum_l(GLIBC_2.3)[SUSv4] strtol[SUSv4] 55594 argz_extract[LSB] iswalpha[SUSv4] strtold[SUSv4] 55595 argz_insert[LSB] iswalpha_l(GLIBC_2.3)[SUSv4] strtoll[SUSv4] 55596 argz_next[LSB] iswblank[SUSv4] strtoq[LSB] 55597 argz_replace[LSB] iswblank_l(GLIBC_2.3)[SUSv4] strtoul[SUSv4] 55598 argz_stringify[LSB] iswcntrl[SUSv4] strtoull[SUSv4] 55599 asctime[SUSv4] iswcntrl_l(GLIBC_2.3)[SUSv4] strtoumax[SUSv4] 55600 asctime_r[SUSv4] iswctype[SUSv4] strtouq[LSB] 55601 asprintf[LSB] iswctype_l(GLIBC_2.3)[SUSv4] strxfrm[SUSv4] 55602 atof[SUSv4] iswdigit[SUSv4] strxfrm_l(GLIBC_2.3)[SUSv4] 55603 atoi[SUSv4] iswdigit_l(GLIBC_2.3)[SUSv4] svc_getreqset[SVID.4] 55604 atol[SUSv4] iswgraph[SUSv4] svc_register[LSB] 55605 atoll[SUSv4] iswgraph_l(GLIBC_2.3)[SUSv4] svc_run[LSB] 55606 authnone_create[SVID.4] iswlower[SUSv4] svc_sendreply[LSB] 55607 backtrace[LSB] iswlower_l(GLIBC_2.3)[SUSv4] svcerr_auth[SVID.4] 55608 backtrace_symbols[LSB] iswprint[SUSv4] svcerr_decode[SVID.4] 55609 backtrace_symbols_fd[LSB] iswprint_l(GLIBC_2.3)[SUSv4] 55610 svcerr_noproc[SVID.4] 55611 basename[LSB] iswpunct[SUSv4] svcerr_noprog[SVID.4] 55612 bcmp[SUSv3] iswpunct_l(GLIBC_2.3)[SUSv4] 55613 svcerr_progvers[SVID.4] 55614 bcopy[SUSv3] iswspace[SUSv4] svcerr_systemerr[SVID.4] 55615 bind[SUSv4] iswspace_l(GLIBC_2.3)[SUSv4] 55616 svcerr_weakauth[SVID.4] 55617 bind_textdomain_codeset[LSB] iswupper[SUSv4] svcfd_create[RPC + 55618 XDR] 55619 bindresvport[LSB] iswupper_l(GLIBC_2.3)[SUSv4] 55620 svcraw_create[RPC + XDR] 55621 bindtextdomain[LSB] iswxdigit[SUSv4] svctcp_create[LSB] 55622 brk[SUSv2] iswxdigit_l(GLIBC_2.3)[SUSv4] svcudp_create[LSB] 55623 bsd_signal[SUSv3] isxdigit[SUSv4] swab[SUSv4] 55624 bsearch[SUSv4] isxdigit_l(GLIBC_2.3)[SUSv4] swapcontext[SUSv3] 55625 btowc[SUSv4] jrand48[SUSv4] swprintf[SUSv4] 55626 bzero[SUSv3] jrand48_r[LSB] swscanf[LSB] 55627 calloc[SUSv4] key_decryptsession[SVID.4] symlink[SUSv4] 55628 callrpc[RPC + XDR] kill[LSB] symlinkat(GLIBC_2.4)[SUSv4] 55629 catclose[SUSv4] killpg[SUSv4] sync[SUSv4] 55630 catgets[SUSv4] l64a[SUSv4] sysconf[LSB] 55631 catopen[SUSv4] labs[SUSv4] sysinfo[LSB] 55632 cfgetispeed[SUSv4] lchown[SUSv4] syslog[SUSv4] 55633 cfgetospeed[SUSv4] lcong48[SUSv4] system[LSB] 55634 cfmakeraw[LSB] lcong48_r[LSB] tcdrain[SUSv4] 55635 cfsetispeed[SUSv4] ldiv[SUSv4] tcflow[SUSv4] 55636 cfsetospeed[SUSv4] lfind[SUSv4] tcflush[SUSv4] 55637 cfsetspeed[LSB] link[LSB] tcgetattr[SUSv4] 55638 chdir[SUSv4] linkat(GLIBC_2.4)[SUSv4] tcgetpgrp[SUSv4] 55639 chmod[SUSv4] listen[SUSv4] tcgetsid[SUSv4] 55640 chown[SUSv4] llabs[SUSv4] tcsendbreak[SUSv4] 55641 chroot[SUSv2] lldiv[SUSv4] tcsetattr[SUSv4] 55642 clearerr[SUSv4] localeconv[SUSv4] tcsetpgrp[SUSv4] 55643 clearerr_unlocked[LSB] localtime[SUSv4] tdelete[SUSv4] 55644 clnt_create[SVID.4] localtime_r[SUSv4] telldir[SUSv4] 55645 clnt_pcreateerror[SVID.4] lockf[SUSv4] tempnam[SUSv4] 55646 clnt_perrno[SVID.4] lockf64[LFS] textdomain[LSB] 55647 clnt_perror[SVID.4] longjmp[SUSv4] tfind[SUSv4] 55648 clnt_spcreateerror[SVID.4] lrand48[SUSv4] time[SUSv4] 55649 clnt_sperrno[SVID.4] lrand48_r[LSB] times[SUSv4] 55650 clnt_sperror[SVID.4] lsearch[SUSv4] tmpfile[SUSv4] 55651 clntraw_create[RPC + XDR] lseek[SUSv4] tmpfile64[LFS] 55652 clnttcp_create[RPC + XDR] lseek64[LFS] tmpnam[SUSv4] 55653 clntudp_bufcreate[RPC + XDR] lutimes(GLIBC_2.3)[LSB] 55654 toascii[SUSv4] 55655 clntudp_create[RPC + XDR] makecontext[SUSv3] tolower[SUSv4] 55656 clock[SUSv4] malloc[SUSv4] tolower_l(GLIBC_2.3)[SUSv4] 55657 close[SUSv4] mblen[SUSv4] toupper[SUSv4] 55658 closedir[SUSv4] mbrlen[SUSv4] toupper_l(GLIBC_2.3)[SUSv4] 55659 closelog[SUSv4] mbrtowc[SUSv4] towctrans[SUSv4] 55660 confstr[SUSv4] mbsinit[SUSv4] towctrans_l(GLIBC_2.3)[SUSv4] 55661 connect[SUSv4] mbsnrtowcs[SUSv4] towlower[SUSv4] 55662 creat[SUSv4] mbsrtowcs[SUSv4] towlower_l(GLIBC_2.3)[SUSv4] 55663 creat64[LFS] mbstowcs[SUSv4] towupper[SUSv4] 55664 ctermid[SUSv4] mbtowc[SUSv4] towupper_l(GLIBC_2.3)[SUSv4] 55665 ctime[SUSv4] memccpy[SUSv4] truncate[SUSv4] 55666 ctime_r[SUSv4] memchr[SUSv4] truncate64[LFS] 55667 cuserid[SUSv2] memcmp[SUSv4] tsearch[SUSv4] 55668 daemon[LSB] memcpy[SUSv4] ttyname[SUSv4] 55669 dcgettext[LSB] memmem[LSB] ttyname_r[SUSv4] 55670 dcngettext[LSB] memmove[SUSv4] twalk[SUSv4] 55671 dgettext[LSB] memrchr[LSB] tzset[SUSv4] 55672 difftime[SUSv4] memset[SUSv4] ualarm[SUSv3] 55673 dirfd[SUSv4] mkdir[SUSv4] ulimit[SUSv4] 55674 dirname[SUSv4] mkdirat(GLIBC_2.4)[SUSv4] umask[SUSv4] 55675 div[SUSv4] mkdtemp[SUSv4] uname[SUSv4] 55676 dl_iterate_phdr[LSB] mkfifo[SUSv4] ungetc[SUSv4] 55677 dngettext[LSB] mkfifoat(GLIBC_2.4)[SUSv4] ungetwc[SUSv4] 55678 dprintf[SUSv4] mkstemp[SUSv4] unlink[LSB] 55679 drand48[SUSv4] mkstemp64[LSB] unlinkat(GLIBC_2.4)[SUSv4] 55680 drand48_r[LSB] mktemp[SUSv3] unlockpt[SUSv4] 55681 dup[SUSv4] mktime[SUSv4] unsetenv[SUSv4] 55682 dup2[SUSv4] mlock[SUSv4] uselocale(GLIBC_2.3)[SUSv4] 55683 duplocale(GLIBC_2.3)[SUSv4] mlockall[SUSv4] usleep[SUSv3] 55684 ecvt[SUSv3] mmap[SUSv4] utime[SUSv4] 55685 endgrent[SUSv4] mmap64[LFS] utimensat(GLIBC_2.6)[SUSv4] 55686 endprotoent[SUSv4] mprotect[SUSv4] utimes[SUSv4] 55687 endpwent[SUSv4] mrand48[SUSv4] utmpname[LSB] 55688 endservent[SUSv4] mrand48_r[LSB] vasprintf[LSB] 55689 endutent[LSB] mremap[LSB] vdprintf[SUSv4] 55690 endutxent[SUSv4] msgctl[SUSv4] verrx[LSB] 55691 envz_add[LSB] msgget[SUSv4] vfork[SUSv3] 55692 envz_entry[LSB] msgrcv[SUSv4] vfprintf[SUSv4] 55693 envz_get[LSB] msgsnd[SUSv4] vfscanf[LSB] 55694 envz_merge[LSB] msync[SUSv4] vfwprintf[SUSv4] 55695 envz_remove[LSB] munlock[SUSv4] vfwscanf[LSB] 55696 envz_strip[LSB] munlockall[SUSv4] vprintf[SUSv4] 55697 epoll_create(GLIBC_2.3.2)[LSB] munmap[SUSv4] vscanf[LSB] 55698 epoll_ctl(GLIBC_2.3.2)[LSB] nanosleep[SUSv4] vsnprintf[SUSv4] 55699 epoll_wait(GLIBC_2.3.2)[LSB] newlocale(GLIBC_2.3)[SUSv4] 55700 vsprintf[SUSv4] 55701 erand48[SUSv4] nftw[SUSv4] vsscanf[LSB] 55702 erand48_r[LSB] nftw64[LFS] vswprintf[SUSv4] 55703 err[LSB] ngettext[LSB] vswscanf[LSB] 55704 error[LSB] nice[SUSv4] vsyslog[LSB] 55705 errx[LSB] nl_langinfo[SUSv4] vwprintf[SUSv4] 55706 execl[SUSv4] nrand48[SUSv4] vwscanf[LSB] 55707 execle[SUSv4] nrand48_r[LSB] wait[SUSv4] 55708 execlp[SUSv4] ntohl[SUSv4] wait4[LSB] 55709 execv[SUSv4] ntohs[SUSv4] waitid[SUSv4] 55710 execve[SUSv4] open[SUSv4] waitpid[SUSv4] 55711 execvp[SUSv4] open64[LFS] warn[LSB] 55712 exit[SUSv4] open_memstream[SUSv4] warnx[LSB] 55713 faccessat(GLIBC_2.4)[SUSv4] open_wmemstream(GLIBC_2.4)[SUSv4] 55714 wcpcpy[SUSv4] 55715 fchdir[SUSv4] openat(GLIBC_2.4)[SUSv4] wcpncpy[SUSv4] 55716 fchmod[SUSv4] openat64(GLIBC_2.4)[LSB] wcrtomb[SUSv4] 55717 fchmodat(GLIBC_2.4)[SUSv4] opendir[SUSv4] wcscasecmp[SUSv4] 55718 fchown[SUSv4] openlog[SUSv4] wcscasecmp_l(GLIBC_2.3)[SUSv4] 55719 fchownat(GLIBC_2.4)[SUSv4] pathconf[SUSv4] wcscat[SUSv4] 55720 fclose[SUSv4] pause[SUSv4] wcschr[SUSv4] 55721 fcntl[LSB] pclose[SUSv4] wcscmp[SUSv4] 55722 fcvt[SUSv3] perror[SUSv4] wcscoll[SUSv4] 55723 fdatasync[SUSv4] pipe[SUSv4] wcscoll_l(GLIBC_2.3)[SUSv4] 55724 fdopen[SUSv4] pmap_getport[LSB] wcscpy[SUSv4] 55725 fdopendir(GLIBC_2.4)[SUSv4] pmap_set[LSB] wcscspn[SUSv4] 55726 feof[SUSv4] pmap_unset[LSB] wcsdup[SUSv4] 55727 feof_unlocked[LSB] poll[SUSv4] wcsftime[SUSv4] 55728 ferror[SUSv4] popen[SUSv4] wcslen[SUSv4] 55729 ferror_unlocked[LSB] posix_fadvise[SUSv4] wcsncasecmp[SUSv4] 55730 fexecve[SUSv4] posix_fadvise64[LSB] 55731 wcsncasecmp_l(GLIBC_2.3)[SUSv4] 55732 fflush[SUSv4] posix_fallocate[SUSv4] wcsncat[SUSv4] 55733 fflush_unlocked[LSB] posix_fallocate64[LSB] wcsncmp[SUSv4] 55734 ffs[SUSv4] posix_madvise[SUSv4] wcsncpy[SUSv4] 55735 fgetc[SUSv4] posix_memalign[SUSv4] wcsnlen[SUSv4] 55736 fgetc_unlocked[LSB] posix_openpt[SUSv4] wcsnrtombs[SUSv4] 55737 fgetpos[SUSv4] posix_spawn[SUSv4] wcspbrk[SUSv4] 55738 fgetpos64[LFS] posix_spawn_file_actions_addclose[SUSv4] 55739 wcsrchr[SUSv4] 55740 fgets[SUSv4] posix_spawn_file_actions_adddup2[SUSv4] 55741 wcsrtombs[SUSv4] 55742 fgets_unlocked[LSB] posix_spawn_file_actions_addopen[SUSv4] 55743 wcsspn[SUSv4] 55744 fgetwc[SUSv4] posix_spawn_file_actions_destroy[SUSv4] 55745 wcsstr[SUSv4] 55746 fgetwc_unlocked[LSB] posix_spawn_file_actions_init[SUSv4] 55747 wcstod[SUSv4] 55748 fgetws[SUSv4] posix_spawnattr_destroy[SUSv4] wcstof[SUSv4] 55749 fgetws_unlocked[LSB] posix_spawnattr_getflags[SUSv4] 55750 wcstoimax[SUSv4] 55751 fileno[SUSv4] posix_spawnattr_getpgroup[SUSv4] wcstok[SUSv4] 55752 fileno_unlocked[LSB] posix_spawnattr_getschedparam[SUSv4] 55753 wcstol[SUSv4] 55754 flock[LSB] posix_spawnattr_getschedpolicy[SUSv4] wcstold[SUSv4] 55755 flockfile[SUSv4] posix_spawnattr_getsigdefault[SUSv4] 55756 wcstoll[SUSv4] 55757 fmemopen[SUSv4] posix_spawnattr_getsigmask[SUSv4] 55758 wcstombs[SUSv4] 55759 fmtmsg[SUSv4] posix_spawnattr_init[SUSv4] wcstoq[LSB] 55760 fnmatch[LSB] posix_spawnattr_setflags[SUSv4] wcstoul[SUSv4] 55761 fopen[SUSv4] posix_spawnattr_setpgroup[SUSv4] wcstoull[SUSv4] 55762 fopen64[LFS] posix_spawnattr_setschedparam[SUSv4] 55763 wcstoumax[SUSv4] 55764 fork[SUSv4] posix_spawnattr_setschedpolicy[SUSv4] wcstouq[LSB] 55765 fpathconf[SUSv4] posix_spawnattr_setsigdefault[SUSv4] 55766 wcswcs[SUSv3] 55767 fprintf[SUSv4] posix_spawnattr_setsigmask[SUSv4] 55768 wcswidth[SUSv4] 55769 fputc[SUSv4] posix_spawnp[SUSv4] wcsxfrm[SUSv4] 55770 fputc_unlocked[LSB] pread[SUSv4] wcsxfrm_l(GLIBC_2.3)[SUSv4] 55771 fputs[SUSv4] pread64[LSB] wctob[SUSv4] 55772 fputs_unlocked[LSB] printf[SUSv4] wctomb[SUSv4] 55773 fputwc[SUSv4] pselect[SUSv4] wctrans[SUSv4] 55774 fputwc_unlocked[LSB] psiginfo(GLIBC_2.10)[SUSv4] 55775 wctrans_l(GLIBC_2.3)[SUSv4] 55776 fputws[SUSv4] psignal[SUSv4] wctype[SUSv4] 55777 fputws_unlocked[LSB] ptrace[LSB] wctype_l(GLIBC_2.3)[SUSv4] 55778 fread[SUSv4] ptsname[SUSv4] wcwidth[SUSv4] 55779 fread_unlocked[LSB] putc[SUSv4] wmemchr[SUSv4] 55780 free[SUSv4] putc_unlocked[SUSv4] wmemcmp[SUSv4] 55781 freeaddrinfo[SUSv4] putchar[SUSv4] wmemcpy[SUSv4] 55782 freeifaddrs(GLIBC_2.3)[LSB] putchar_unlocked[SUSv4] 55783 wmemmove[SUSv4] 55784 freelocale(GLIBC_2.3)[SUSv4] putenv[SUSv4] wmemset[SUSv4] 55785 freopen[SUSv4] puts[SUSv4] wordexp[SUSv4] 55786 freopen64[LFS] pututxline[SUSv4] wordfree[SUSv4] 55787 fscanf[LSB] putw[SUSv2] wprintf[SUSv4] 55788 fseek[SUSv4] putwc[SUSv4] write[SUSv4] 55789 fseeko[SUSv4] putwc_unlocked[LSB] writev[SUSv4] 55790 fseeko64[LFS] putwchar[SUSv4] wscanf[LSB] 55791 fsetpos[SUSv4] putwchar_unlocked[LSB] 55792 xdr_accepted_reply[SVID.4] 55793 fsetpos64[LFS] pwrite[SUSv4] xdr_array[SVID.4] 55794 fstatfs[LSB] pwrite64[LSB] xdr_bool[SVID.4] 55795 fstatfs64[LSB] qsort[SUSv4] xdr_bytes[SVID.4] 55796 fstatvfs[SUSv4] raise[SUSv4] xdr_callhdr[SVID.4] 55797 fstatvfs64[LFS] rand[SUSv4] xdr_callmsg[SVID.4] 55798 fsync[SUSv4] rand_r[SUSv4] xdr_char[SVID.4] 55799 ftell[SUSv4] random[SUSv4] xdr_double[SVID.4] 55800 ftello[SUSv4] random_r[LSB] xdr_enum[SVID.4] 55801 ftello64[LFS] read[SUSv4] xdr_float[SVID.4] 55802 ftime[SUSv3] readdir[SUSv4] xdr_free[SVID.4] 55803 ftok[SUSv4] readdir64[LFS] xdr_int[SVID.4] 55804 ftruncate[SUSv4] readdir64_r[LSB] xdr_long[SVID.4] 55805 ftruncate64[LFS] readdir_r[SUSv4] xdr_opaque[SVID.4] 55806 ftrylockfile[SUSv4] readlink[SUSv4] xdr_opaque_auth[SVID.4] 55807 ftw[SUSv4] readlinkat(GLIBC_2.4)[SUSv4] xdr_pointer[SVID.4] 55808 ftw64[LFS] readv[SUSv4] xdr_reference[SVID.4] 55809 funlockfile[SUSv4] realloc[SUSv4] xdr_rejected_reply[SVID.4] 55810 futimens(GLIBC_2.6)[SUSv4] realpath[SUSv4] xdr_replymsg[SVID.4] 55811 futimes(GLIBC_2.3)[LSB] recv[SUSv4] xdr_short[SVID.4] 55812 fwide[SUSv4] recvfrom[SUSv4] xdr_string[SVID.4] 55813 fwprintf[SUSv4] recvmsg[SUSv4] xdr_u_char[SVID.4] 55814 fwrite[SUSv4] regcomp[SUSv4] xdr_u_int[LSB] 55815 fwrite_unlocked[LSB] regerror[SUSv4] xdr_u_long[SVID.4] 55816 fwscanf[LSB] regexec[LSB] xdr_u_short[SVID.4] 55817 gai_strerror[SUSv4] regfree[SUSv4] xdr_union[SVID.4] 55818 gcvt[SUSv3] remove[SUSv4] xdr_vector[SVID.4] 55819 getaddrinfo[SUSv4] remque[SUSv4] xdr_void[SVID.4] 55820 getc[SUSv4] rename[SUSv4] xdr_wrapstring[SVID.4] 55821 getc_unlocked[SUSv4] renameat(GLIBC_2.4)[SUSv4] 55822 xdrmem_create[SVID.4] 55823 getchar[SUSv4] rewind[SUSv4] xdrrec_create[SVID.4] 55824 getchar_unlocked[SUSv4] rewinddir[SUSv4] xdrrec_endofrecord[RPC 55825 + XDR] 55826 getcontext[SUSv3] rindex[SUSv3] xdrrec_eof[SVID.4] 55827 getcwd[LSB] rmdir[SUSv4] xdrrec_skiprecord[RPC + XDR] 55828 getdate[SUSv4] sbrk[SUSv2] xdrstdio_create[LSB] 55829 55830 Table A-2. libc Data Interfaces 55831 __daylight[LSB] __tzname[LSB] in6addr_loopback[SUSv3] 55832 __environ[LSB] _sys_errlist[LSB] 55833 __timezone[LSB] in6addr_any[SUSv3] 55834 __________________________________________________________ 55835 55836 A.2. libcrypt 55837 55838 The behavior of the interfaces in this library is specified by 55839 the following Standards. 55840 55841 This Specification [LSB] 55842 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 55843 55844 Table A-3. libcrypt Function Interfaces 55845 crypt[SUSv4] encrypt[SUSv4] setkey[SUSv4] 55846 crypt_r[LSB] encrypt_r[LSB] setkey_r[LSB] 55847 __________________________________________________________ 55848 55849 A.3. libdl 55850 55851 The behavior of the interfaces in this library is specified by 55852 the following Standards. 55853 55854 This Specification [LSB] 55855 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 55856 55857 Table A-4. libdl Function Interfaces 55858 dladdr[LSB] dlerror[SUSv4] dlsym[LSB] 55859 dlclose[SUSv4] dlopen[LSB] dlvsym[LSB] 55860 __________________________________________________________ 55861 55862 A.4. libgcc_s 55863 55864 The behavior of the interfaces in this library is specified by 55865 the following Standards. 55866 55867 This Specification [LSB] 55868 55869 Table A-5. libgcc_s Function Interfaces 55870 _Unwind_Backtrace[LSB] _Unwind_GetGR[LSB] 55871 _Unwind_RaiseException[LSB] 55872 _Unwind_DeleteException[LSB] _Unwind_GetIP[LSB] 55873 _Unwind_Resume[LSB] 55874 _Unwind_FindEnclosingFunction[LSB] 55875 _Unwind_GetIPInfo(GCC_4.2.0)[LSB] 55876 _Unwind_Resume_or_Rethrow[LSB] 55877 _Unwind_ForcedUnwind[LSB] _Unwind_GetLanguageSpecificData[LSB] 55878 _Unwind_SetGR[LSB] 55879 _Unwind_GetCFA[LSB] _Unwind_GetRegionStart[LSB] 55880 _Unwind_SetIP[LSB] 55881 __________________________________________________________ 55882 55883 A.5. libm 55884 55885 The behavior of the interfaces in this library is specified by 55886 the following Standards. 55887 55888 This Specification [LSB] 55889 POSIX 1003.1-2001 (ISO/IEC 9945-2003) [SUSv3] 55890 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 55891 55892 Table A-6. libm Function Interfaces 55893 __finite[LSB] csinl[SUSv4] llroundf[SUSv4] 55894 __finitef[LSB] csqrt[SUSv4] llroundl[SUSv4] 55895 __finitel[LSB] csqrtf[SUSv4] log[SUSv4] 55896 __fpclassify[LSB] csqrtl[SUSv4] log10[SUSv4] 55897 __fpclassifyf[LSB] ctan[SUSv4] log10f[SUSv4] 55898 __signbit[LSB] ctanf[SUSv4] log10l[SUSv4] 55899 __signbitf[LSB] ctanh[SUSv4] log1p[SUSv4] 55900 acos[SUSv4] ctanhf[SUSv4] log1pf[SUSv4] 55901 acosf[SUSv4] ctanhl[SUSv4] log1pl[SUSv4] 55902 acosh[SUSv4] ctanl[SUSv4] log2[SUSv4] 55903 acoshf[SUSv4] drem[LSB] log2f[SUSv4] 55904 acoshl[SUSv4] dremf[LSB] log2l[SUSv4] 55905 acosl[SUSv4] dreml[LSB] logb[SUSv4] 55906 asin[SUSv4] erf[SUSv4] logbf[SUSv4] 55907 asinf[SUSv4] erfc[SUSv4] logbl[SUSv4] 55908 asinh[SUSv4] erfcf[SUSv4] logf[SUSv4] 55909 asinhf[SUSv4] erfcl[SUSv4] logl[SUSv4] 55910 asinhl[SUSv4] erff[SUSv4] lrint[SUSv4] 55911 asinl[SUSv4] erfl[SUSv4] lrintf[SUSv4] 55912 atan[SUSv4] exp[SUSv4] lrintl[SUSv4] 55913 atan2[SUSv4] exp10[LSB] lround[SUSv4] 55914 atan2f[SUSv4] exp10f[LSB] lroundf[SUSv4] 55915 atan2l[SUSv4] exp10l[LSB] lroundl[SUSv4] 55916 atanf[SUSv4] exp2[SUSv4] matherr[LSB] 55917 atanh[SUSv4] exp2f[SUSv4] modf[SUSv4] 55918 atanhf[SUSv4] expf[SUSv4] modff[SUSv4] 55919 atanhl[SUSv4] expl[SUSv4] modfl[SUSv4] 55920 atanl[SUSv4] expm1[SUSv4] nan[SUSv4] 55921 cabs[SUSv4] expm1f[SUSv4] nanf[SUSv4] 55922 cabsf[SUSv4] expm1l[SUSv4] nanl[SUSv4] 55923 cabsl[SUSv4] fabs[SUSv4] nearbyint[SUSv4] 55924 cacos[SUSv4] fabsf[SUSv4] nearbyintf[SUSv4] 55925 cacosf[SUSv4] fabsl[SUSv4] nearbyintl[SUSv4] 55926 cacosh[SUSv4] fdim[SUSv4] nextafter[SUSv4] 55927 cacoshf[SUSv4] fdimf[SUSv4] nextafterf[SUSv4] 55928 cacoshl[SUSv4] fdiml[SUSv4] nextafterl[SUSv4] 55929 cacosl[SUSv4] feclearexcept[SUSv4] nexttoward[SUSv4] 55930 carg[SUSv4] fedisableexcept[LSB] nexttowardf[SUSv4] 55931 cargf[SUSv4] feenableexcept[LSB] nexttowardl[SUSv4] 55932 cargl[SUSv4] fegetenv[SUSv4] pow[SUSv4] 55933 casin[SUSv4] fegetexcept[LSB] pow10[LSB] 55934 casinf[SUSv4] fegetexceptflag[SUSv4] pow10f[LSB] 55935 casinh[SUSv4] fegetround[SUSv4] pow10l[LSB] 55936 casinhf[SUSv4] feholdexcept[SUSv4] powf[SUSv4] 55937 casinhl[SUSv4] feraiseexcept[SUSv4] powl[SUSv4] 55938 casinl[SUSv4] fesetenv[SUSv4] remainder[SUSv4] 55939 catan[SUSv4] fesetexceptflag[SUSv4] remainderf[SUSv4] 55940 catanf[SUSv4] fesetround[SUSv4] remainderl[SUSv4] 55941 catanh[SUSv4] fetestexcept[SUSv4] remquo[SUSv4] 55942 catanhf[SUSv4] feupdateenv[SUSv4] remquof[SUSv4] 55943 catanhl[SUSv4] finite[LSB] remquol[SUSv4] 55944 catanl[SUSv4] finitef[LSB] rint[SUSv4] 55945 cbrt[SUSv4] finitel[LSB] rintf[SUSv4] 55946 cbrtf[SUSv4] floor[SUSv4] rintl[SUSv4] 55947 cbrtl[SUSv4] floorf[SUSv4] round[SUSv4] 55948 ccos[SUSv4] floorl[SUSv4] roundf[SUSv4] 55949 ccosf[SUSv4] fma[SUSv4] roundl[SUSv4] 55950 ccosh[SUSv4] fmaf[SUSv4] scalb[SUSv3] 55951 ccoshf[SUSv4] fmal[SUSv4] scalbf[LSB] 55952 ccoshl[SUSv4] fmax[SUSv4] scalbl[LSB] 55953 ccosl[SUSv4] fmaxf[SUSv4] scalbln[SUSv4] 55954 ceil[SUSv4] fmaxl[SUSv4] scalblnf[SUSv4] 55955 ceilf[SUSv4] fmin[SUSv4] scalblnl[SUSv4] 55956 ceill[SUSv4] fminf[SUSv4] scalbn[SUSv4] 55957 cexp[SUSv4] fminl[SUSv4] scalbnf[SUSv4] 55958 cexpf[SUSv4] fmod[SUSv4] scalbnl[SUSv4] 55959 cexpl[SUSv4] fmodf[SUSv4] significand[LSB] 55960 cimag[SUSv4] fmodl[SUSv4] significandf[LSB] 55961 cimagf[SUSv4] frexp[SUSv4] significandl[LSB] 55962 cimagl[SUSv4] frexpf[SUSv4] sin[SUSv4] 55963 clog[SUSv4] frexpl[SUSv4] sincos[LSB] 55964 clog10[LSB] gamma[LSB] sincosf[LSB] 55965 clog10f[LSB] gammaf[LSB] sincosl[LSB] 55966 clog10l[LSB] gammal[LSB] sinf[SUSv4] 55967 clogf[SUSv4] hypot[SUSv4] sinh[SUSv4] 55968 clogl[SUSv4] hypotf[SUSv4] sinhf[SUSv4] 55969 conj[SUSv4] hypotl[SUSv4] sinhl[SUSv4] 55970 conjf[SUSv4] ilogb[SUSv4] sinl[SUSv4] 55971 conjl[SUSv4] ilogbf[SUSv4] sqrt[SUSv4] 55972 copysign[SUSv4] ilogbl[SUSv4] sqrtf[SUSv4] 55973 copysignf[SUSv4] j0[SUSv4] sqrtl[SUSv4] 55974 copysignl[SUSv4] j0f[LSB] tan[SUSv4] 55975 cos[SUSv4] j0l[LSB] tanf[SUSv4] 55976 cosf[SUSv4] j1[SUSv4] tanh[SUSv4] 55977 cosh[SUSv4] j1f[LSB] tanhf[SUSv4] 55978 coshf[SUSv4] j1l[LSB] tanhl[SUSv4] 55979 coshl[SUSv4] jn[SUSv4] tanl[SUSv4] 55980 cosl[SUSv4] jnf[LSB] tgamma[SUSv4] 55981 cpow[SUSv4] jnl[LSB] tgammaf[SUSv4] 55982 cpowf[SUSv4] ldexp[SUSv4] tgammal[SUSv4] 55983 cpowl[SUSv4] ldexpf[SUSv4] trunc[SUSv4] 55984 cproj[SUSv4] ldexpl[SUSv4] truncf[SUSv4] 55985 cprojf[SUSv4] lgamma[SUSv4] truncl[SUSv4] 55986 cprojl[SUSv4] lgamma_r[LSB] y0[SUSv4] 55987 creal[SUSv4] lgammaf[SUSv4] y0f[LSB] 55988 crealf[SUSv4] lgammaf_r[LSB] y0l[LSB] 55989 creall[SUSv4] lgammal[SUSv4] y1[SUSv4] 55990 csin[SUSv4] lgammal_r[LSB] y1f[LSB] 55991 csinf[SUSv4] llrint[SUSv4] y1l[LSB] 55992 csinh[SUSv4] llrintf[SUSv4] yn[SUSv4] 55993 csinhf[SUSv4] llrintl[SUSv4] ynf[LSB] 55994 csinhl[SUSv4] llround[SUSv4] ynl[LSB] 55995 55996 Table A-7. libm Data Interfaces 55997 signgam[SUSv4] 55998 __________________________________________________________ 55999 56000 A.6. libncurses 56001 56002 The behavior of the interfaces in this library is specified by 56003 the following Standards. 56004 56005 This Specification [LSB] 56006 X/Open Curses, Issue 7 [X-CURSES] 56007 56008 Table A-8. libncurses Function Interfaces 56009 addch[X-CURSES] mvdelch[X-CURSES] slk_refresh[X-CURSES] 56010 addchnstr[X-CURSES] mvderwin[X-CURSES] slk_restore[X-CURSES] 56011 addchstr[X-CURSES] mvgetch[X-CURSES] slk_set[X-CURSES] 56012 addnstr[X-CURSES] mvgetnstr[X-CURSES] slk_touch[X-CURSES] 56013 addstr[X-CURSES] mvgetstr[X-CURSES] standend[X-CURSES] 56014 attr_get[X-CURSES] mvhline[X-CURSES] standout[X-CURSES] 56015 attr_off[X-CURSES] mvinch[X-CURSES] start_color[X-CURSES] 56016 attr_on[X-CURSES] mvinchnstr[LSB] subpad[X-CURSES] 56017 attr_set[X-CURSES] mvinchstr[LSB] subwin[X-CURSES] 56018 attroff[X-CURSES] mvinnstr[X-CURSES] syncok[X-CURSES] 56019 attron[X-CURSES] mvinsch[X-CURSES] termattrs[X-CURSES] 56020 attrset[X-CURSES] mvinsnstr[X-CURSES] termname[X-CURSES] 56021 baudrate[X-CURSES] mvinsstr[X-CURSES] tgetent[X-CURSES] 56022 beep[X-CURSES] mvinstr[LSB] tgetflag[X-CURSES] 56023 bkgd[X-CURSES] mvprintw[X-CURSES] tgetnum[X-CURSES] 56024 bkgdset[X-CURSES] mvscanw[LSB] tgetstr[X-CURSES] 56025 border[X-CURSES] mvvline[X-CURSES] tgoto[X-CURSES] 56026 box[X-CURSES] mvwaddch[X-CURSES] tigetflag[X-CURSES] 56027 can_change_color[X-CURSES] mvwaddchnstr[X-CURSES] 56028 tigetnum[X-CURSES] 56029 cbreak[X-CURSES] mvwaddchstr[X-CURSES] tigetstr[X-CURSES] 56030 chgat[X-CURSES] mvwaddnstr[X-CURSES] timeout[X-CURSES] 56031 clear[X-CURSES] mvwaddstr[X-CURSES] touchline[X-CURSES] 56032 clearok[X-CURSES] mvwchgat[X-CURSES] touchwin[X-CURSES] 56033 clrtobot[X-CURSES] mvwdelch[X-CURSES] tparm[X-CURSES] 56034 clrtoeol[X-CURSES] mvwgetch[X-CURSES] tputs[X-CURSES] 56035 color_content[X-CURSES] mvwgetnstr[X-CURSES] 56036 typeahead[X-CURSES] 56037 color_set[X-CURSES] mvwgetstr[X-CURSES] unctrl[X-CURSES] 56038 copywin[X-CURSES] mvwhline[X-CURSES] ungetch[X-CURSES] 56039 curs_set[X-CURSES] mvwin[X-CURSES] untouchwin[X-CURSES] 56040 def_prog_mode[X-CURSES] mvwinch[X-CURSES] use_env[X-CURSES] 56041 def_shell_mode[X-CURSES] mvwinchnstr[LSB] vidattr[X-CURSES] 56042 del_curterm[X-CURSES] mvwinchstr[LSB] vidputs[X-CURSES] 56043 delay_output[X-CURSES] mvwinnstr[X-CURSES] vline[X-CURSES] 56044 delch[X-CURSES] mvwinsch[X-CURSES] vw_printw[X-CURSES] 56045 deleteln[X-CURSES] mvwinsnstr[X-CURSES] vw_scanw[LSB] 56046 delscreen[X-CURSES] mvwinsstr[X-CURSES] vwprintw[X-CURSES] 56047 delwin[X-CURSES] mvwinstr[LSB] vwscanw[LSB] 56048 derwin[X-CURSES] mvwprintw[X-CURSES] waddch[X-CURSES] 56049 doupdate[X-CURSES] mvwscanw[LSB] waddchnstr[X-CURSES] 56050 dupwin[X-CURSES] mvwvline[X-CURSES] waddchstr[X-CURSES] 56051 echo[X-CURSES] napms[X-CURSES] waddnstr[X-CURSES] 56052 echochar[X-CURSES] newpad[X-CURSES] waddstr[X-CURSES] 56053 endwin[X-CURSES] newterm[X-CURSES] wattr_get[X-CURSES] 56054 erase[X-CURSES] newwin[X-CURSES] wattr_off[X-CURSES] 56055 erasechar[X-CURSES] nl[X-CURSES] wattr_on[X-CURSES] 56056 filter[X-CURSES] nocbreak[X-CURSES] wattr_set[X-CURSES] 56057 flash[X-CURSES] nodelay[X-CURSES] wattroff[X-CURSES] 56058 flushinp[X-CURSES] noecho[X-CURSES] wattron[X-CURSES] 56059 getbkgd[X-CURSES] nonl[X-CURSES] wattrset[X-CURSES] 56060 getch[X-CURSES] noqiflush[X-CURSES] wbkgd[X-CURSES] 56061 getnstr[X-CURSES] noraw[X-CURSES] wbkgdset[X-CURSES] 56062 getstr[X-CURSES] notimeout[X-CURSES] wborder[X-CURSES] 56063 getwin[X-CURSES] overlay[X-CURSES] wchgat[X-CURSES] 56064 halfdelay[X-CURSES] overwrite[X-CURSES] wclear[X-CURSES] 56065 has_colors[X-CURSES] pair_content[X-CURSES] wclrtobot[X-CURSES] 56066 has_ic[X-CURSES] pechochar[X-CURSES] wclrtoeol[X-CURSES] 56067 has_il[X-CURSES] pnoutrefresh[X-CURSES] wcolor_set[X-CURSES] 56068 hline[X-CURSES] prefresh[X-CURSES] wcursyncup[X-CURSES] 56069 idcok[X-CURSES] printw[X-CURSES] wdelch[X-CURSES] 56070 idlok[X-CURSES] putp[X-CURSES] wdeleteln[X-CURSES] 56071 immedok[X-CURSES] putwin[X-CURSES] wechochar[X-CURSES] 56072 inch[X-CURSES] qiflush[X-CURSES] werase[X-CURSES] 56073 inchnstr[LSB] raw[X-CURSES] wgetch[X-CURSES] 56074 inchstr[LSB] redrawwin[X-CURSES] wgetnstr[X-CURSES] 56075 init_color[X-CURSES] refresh[X-CURSES] wgetstr[X-CURSES] 56076 init_pair[X-CURSES] reset_prog_mode[X-CURSES] whline[X-CURSES] 56077 initscr[X-CURSES] reset_shell_mode[X-CURSES] winch[X-CURSES] 56078 innstr[X-CURSES] resetty[X-CURSES] winchnstr[LSB] 56079 insch[X-CURSES] restartterm[X-CURSES] winchstr[LSB] 56080 insdelln[X-CURSES] ripoffline[LSB] winnstr[X-CURSES] 56081 insertln[X-CURSES] savetty[X-CURSES] winsch[X-CURSES] 56082 insnstr[X-CURSES] scanw[LSB] winsdelln[X-CURSES] 56083 insstr[X-CURSES] scr_dump[X-CURSES] winsertln[X-CURSES] 56084 instr[LSB] scr_init[X-CURSES] winsnstr[X-CURSES] 56085 intrflush[X-CURSES] scr_restore[X-CURSES] winsstr[X-CURSES] 56086 is_linetouched[X-CURSES] scr_set[X-CURSES] winstr[LSB] 56087 is_wintouched[X-CURSES] scrl[X-CURSES] wmove[X-CURSES] 56088 isendwin[X-CURSES] scroll[X-CURSES] wnoutrefresh[X-CURSES] 56089 keyname[X-CURSES] scrollok[X-CURSES] wprintw[X-CURSES] 56090 keypad[X-CURSES] set_curterm[X-CURSES] wredrawln[X-CURSES] 56091 killchar[X-CURSES] set_term[X-CURSES] wrefresh[X-CURSES] 56092 leaveok[X-CURSES] setscrreg[X-CURSES] wscanw[LSB] 56093 longname[X-CURSES] setupterm[X-CURSES] wscrl[X-CURSES] 56094 meta[X-CURSES] slk_attr_set[X-CURSES] wsetscrreg[X-CURSES] 56095 move[X-CURSES] slk_attroff[X-CURSES] wstandend[X-CURSES] 56096 mvaddch[X-CURSES] slk_attron[X-CURSES] wstandout[X-CURSES] 56097 mvaddchnstr[X-CURSES] slk_attrset[X-CURSES] wsyncdown[X-CURSES] 56098 mvaddchstr[X-CURSES] slk_clear[X-CURSES] wsyncup[X-CURSES] 56099 mvaddnstr[X-CURSES] slk_color[X-CURSES] wtimeout[X-CURSES] 56100 mvaddstr[X-CURSES] slk_init[X-CURSES] wtouchln[X-CURSES] 56101 mvchgat[X-CURSES] slk_label[X-CURSES] wvline[X-CURSES] 56102 mvcur[LSB] slk_noutrefresh[X-CURSES] 56103 56104 Table A-9. libncurses Data Interfaces 56105 COLORS[X-CURSES] acs_map[X-CURSES] stdscr[X-CURSES] 56106 COLOR_PAIRS[X-CURSES] cur_term[X-CURSES] ttytype[X-CURSES] 56107 COLS[X-CURSES] curscr[X-CURSES] 56108 LINES[X-CURSES] newscr[LSB] 56109 __________________________________________________________ 56110 56111 A.7. libncursesw 56112 56113 The behavior of the interfaces in this library is specified by 56114 the following Standards. 56115 56116 Libncursesw API [Libncursesw] 56117 This Specification [LSB] 56118 Libncursesw Placeholder [ncursesw] 56119 X/Open Curses, Issue 7 [X-CURSES] 56120 56121 Table A-10. libncursesw Function Interfaces 56122 add_wch[Libncursesw] mvaddnwstr[Libncursesw] 56123 slk_init[Libncursesw] 56124 add_wchnstr[Libncursesw] mvaddstr[Libncursesw] 56125 slk_label[Libncursesw] 56126 add_wchstr[Libncursesw] mvaddwstr[Libncursesw] 56127 slk_noutrefresh[Libncursesw] 56128 addch[Libncursesw] mvchgat[Libncursesw] 56129 slk_refresh[Libncursesw] 56130 addchnstr[Libncursesw] mvcur[Libncursesw] 56131 slk_restore[Libncursesw] 56132 addchstr[Libncursesw] mvdelch[Libncursesw] slk_set[Libncursesw] 56133 addnstr[Libncursesw] mvderwin[Libncursesw] 56134 slk_touch[Libncursesw] 56135 addnwstr[Libncursesw] mvget_wch[Libncursesw] 56136 slk_wset[Libncursesw] 56137 addstr[Libncursesw] mvget_wstr[Libncursesw] 56138 standend[Libncursesw] 56139 addwstr[Libncursesw] mvgetch[Libncursesw] standout[Libncursesw] 56140 assume_default_colors[Libncursesw] mvgetn_wstr[Libncursesw] 56141 start_color[Libncursesw] 56142 attr_get[Libncursesw] mvgetnstr[Libncursesw] 56143 subpad[Libncursesw] 56144 attr_off[Libncursesw] mvgetstr[Libncursesw] subwin[Libncursesw] 56145 attr_on[Libncursesw] mvhline[Libncursesw] syncok[Libncursesw] 56146 attr_set[Libncursesw] mvhline_set[Libncursesw] 56147 term_attrs[X-CURSES] 56148 attroff[Libncursesw] mvin_wch[Libncursesw] 56149 termattrs[Libncursesw] 56150 attron[Libncursesw] mvin_wchnstr[Libncursesw] 56151 termname[Libncursesw] 56152 attrset[Libncursesw] mvin_wchstr[Libncursesw] 56153 tgetent[Libncursesw] 56154 baudrate[Libncursesw] mvinch[Libncursesw] tgetflag[Libncursesw] 56155 beep[Libncursesw] mvinchnstr[Libncursesw] tgetnum[Libncursesw] 56156 bkgd[Libncursesw] mvinchstr[Libncursesw] tgetstr[Libncursesw] 56157 bkgdset[Libncursesw] mvinnstr[Libncursesw] tgoto[Libncursesw] 56158 bkgrnd[Libncursesw] mvinnwstr[Libncursesw] 56159 tigetflag[Libncursesw] 56160 bkgrndset[Libncursesw] mvins_nwstr[Libncursesw] 56161 tigetnum[Libncursesw] 56162 border[Libncursesw] mvins_wch[Libncursesw] 56163 tigetstr[Libncursesw] 56164 border_set[Libncursesw] mvins_wstr[Libncursesw] 56165 timeout[Libncursesw] 56166 box[Libncursesw] mvinsch[Libncursesw] touchline[Libncursesw] 56167 box_set[Libncursesw] mvinsnstr[Libncursesw] 56168 touchwin[Libncursesw] 56169 can_change_color[Libncursesw] mvinsstr[Libncursesw] 56170 tparm[Libncursesw] 56171 cbreak[Libncursesw] mvinstr[Libncursesw] tputs[Libncursesw] 56172 chgat[Libncursesw] mvinwstr[Libncursesw] typeahead[Libncursesw] 56173 clear[Libncursesw] mvprintw[Libncursesw] unctrl[Libncursesw] 56174 clearok[Libncursesw] mvscanw[Libncursesw] 56175 unget_wch[Libncursesw] 56176 clrtobot[Libncursesw] mvvline[Libncursesw] ungetch[Libncursesw] 56177 clrtoeol[Libncursesw] mvvline_set[Libncursesw] 56178 ungetmouse[Libncursesw] 56179 color_content[Libncursesw] mvwadd_wch[Libncursesw] 56180 untouchwin[Libncursesw] 56181 color_set[Libncursesw] mvwadd_wchnstr[Libncursesw] 56182 use_default_colors[Libncursesw] 56183 copywin[Libncursesw] mvwadd_wchstr[Libncursesw] 56184 use_env[Libncursesw] 56185 curs_set[Libncursesw] mvwaddch[Libncursesw] 56186 use_extended_names[Libncursesw] 56187 curses_version[Libncursesw] mvwaddchnstr[Libncursesw] 56188 vid_attr[X-CURSES] 56189 def_prog_mode[Libncursesw] mvwaddchstr[Libncursesw] 56190 vid_puts[Libncursesw] 56191 def_shell_mode[Libncursesw] mvwaddnstr[Libncursesw] 56192 vidattr[Libncursesw] 56193 define_key[Libncursesw] mvwaddnwstr[Libncursesw] 56194 vidputs[Libncursesw] 56195 del_curterm[Libncursesw] mvwaddstr[Libncursesw] 56196 vline[Libncursesw] 56197 delay_output[Libncursesw] mvwaddwstr[Libncursesw] 56198 vline_set[Libncursesw] 56199 delch[Libncursesw] mvwchgat[Libncursesw] vw_printw[Libncursesw] 56200 deleteln[Libncursesw] mvwdelch[Libncursesw] 56201 vw_scanw[Libncursesw] 56202 delscreen[Libncursesw] mvwget_wch[Libncursesw] 56203 vwprintw[Libncursesw] 56204 delwin[Libncursesw] mvwget_wstr[Libncursesw] 56205 vwscanw[Libncursesw] 56206 derwin[Libncursesw] mvwgetch[Libncursesw] wadd_wch[Libncursesw] 56207 doupdate[Libncursesw] mvwgetn_wstr[Libncursesw] 56208 wadd_wchnstr[Libncursesw] 56209 dupwin[Libncursesw] mvwgetnstr[Libncursesw] 56210 wadd_wchstr[Libncursesw] 56211 echo[Libncursesw] mvwgetstr[Libncursesw] waddch[Libncursesw] 56212 echo_wchar[Libncursesw] mvwhline[Libncursesw] 56213 waddchnstr[Libncursesw] 56214 echochar[Libncursesw] mvwhline_set[Libncursesw] 56215 waddchstr[Libncursesw] 56216 endwin[Libncursesw] mvwin[Libncursesw] waddnstr[Libncursesw] 56217 erase[Libncursesw] mvwin_wch[Libncursesw] 56218 waddnwstr[Libncursesw] 56219 erasechar[Libncursesw] mvwin_wchnstr[Libncursesw] 56220 waddstr[Libncursesw] 56221 erasewchar[Libncursesw] mvwin_wchstr[Libncursesw] 56222 waddwstr[Libncursesw] 56223 filter[Libncursesw] mvwinch[Libncursesw] wattr_get[Libncursesw] 56224 flash[Libncursesw] mvwinchnstr[Libncursesw] 56225 wattr_off[Libncursesw] 56226 flushinp[Libncursesw] mvwinchstr[Libncursesw] 56227 wattr_on[Libncursesw] 56228 get_wch[Libncursesw] mvwinnstr[Libncursesw] 56229 wattr_set[Libncursesw] 56230 get_wstr[Libncursesw] mvwinnwstr[Libncursesw] 56231 wattroff[Libncursesw] 56232 getbkgd[Libncursesw] mvwins_nwstr[Libncursesw] 56233 wattron[Libncursesw] 56234 getbkgrnd[Libncursesw] mvwins_wch[Libncursesw] 56235 wattrset[Libncursesw] 56236 getcchar[Libncursesw] mvwins_wstr[Libncursesw] 56237 wbkgd[Libncursesw] 56238 getch[Libncursesw] mvwinsch[Libncursesw] wbkgdset[Libncursesw] 56239 getmouse[Libncursesw] mvwinsnstr[Libncursesw] 56240 wbkgrnd[Libncursesw] 56241 getn_wstr[Libncursesw] mvwinsstr[Libncursesw] 56242 wbkgrndset[Libncursesw] 56243 getnstr[Libncursesw] mvwinstr[Libncursesw] wborder[Libncursesw] 56244 getstr[Libncursesw] mvwinwstr[Libncursesw] 56245 wborder_set[Libncursesw] 56246 getwin[Libncursesw] mvwprintw[Libncursesw] wchgat[Libncursesw] 56247 halfdelay[Libncursesw] mvwscanw[Libncursesw] 56248 wclear[Libncursesw] 56249 has_colors[Libncursesw] mvwvline[Libncursesw] 56250 wclrtobot[Libncursesw] 56251 has_ic[Libncursesw] mvwvline_set[Libncursesw] 56252 wclrtoeol[Libncursesw] 56253 has_il[Libncursesw] napms[Libncursesw] wcolor_set[Libncursesw] 56254 has_key[Libncursesw] newpad[Libncursesw] 56255 wcursyncup[Libncursesw] 56256 has_mouse[LSB] newterm[Libncursesw] wdelch[Libncursesw] 56257 hline[Libncursesw] newwin[Libncursesw] wdeleteln[Libncursesw] 56258 hline_set[Libncursesw] nl[Libncursesw] wecho_wchar[Libncursesw] 56259 idcok[Libncursesw] nocbreak[Libncursesw] wechochar[Libncursesw] 56260 idlok[Libncursesw] nodelay[Libncursesw] werase[Libncursesw] 56261 immedok[Libncursesw] noecho[Libncursesw] wget_wch[Libncursesw] 56262 in_wch[Libncursesw] nonl[Libncursesw] wget_wstr[Libncursesw] 56263 in_wchnstr[Libncursesw] noqiflush[Libncursesw] 56264 wgetbkgrnd[Libncursesw] 56265 in_wchstr[Libncursesw] noraw[Libncursesw] wgetch[Libncursesw] 56266 inch[Libncursesw] notimeout[Libncursesw] 56267 wgetn_wstr[Libncursesw] 56268 inchnstr[Libncursesw] overlay[Libncursesw] 56269 wgetnstr[Libncursesw] 56270 inchstr[Libncursesw] overwrite[Libncursesw] 56271 wgetstr[Libncursesw] 56272 init_color[Libncursesw] pair_content[Libncursesw] 56273 whline[Libncursesw] 56274 init_pair[Libncursesw] pecho_wchar[Libncursesw] 56275 whline_set[Libncursesw] 56276 initscr[Libncursesw] pechochar[Libncursesw] 56277 win_wch[Libncursesw] 56278 innstr[Libncursesw] pnoutrefresh[Libncursesw] 56279 win_wchnstr[Libncursesw] 56280 innwstr[Libncursesw] prefresh[Libncursesw] 56281 win_wchstr[Libncursesw] 56282 ins_nwstr[Libncursesw] printw[Libncursesw] winch[Libncursesw] 56283 ins_wch[Libncursesw] putp[Libncursesw] winchnstr[Libncursesw] 56284 ins_wstr[Libncursesw] putwin[Libncursesw] winchstr[Libncursesw] 56285 insch[Libncursesw] qiflush[Libncursesw] winnstr[Libncursesw] 56286 insdelln[Libncursesw] raw[Libncursesw] winnwstr[Libncursesw] 56287 insertln[Libncursesw] redrawwin[Libncursesw] 56288 wins_nwstr[Libncursesw] 56289 insnstr[Libncursesw] refresh[Libncursesw] wins_wch[Libncursesw] 56290 insstr[Libncursesw] reset_prog_mode[Libncursesw] 56291 wins_wstr[Libncursesw] 56292 instr[Libncursesw] reset_shell_mode[Libncursesw] 56293 winsch[Libncursesw] 56294 intrflush[Libncursesw] resetty[Libncursesw] 56295 winsdelln[Libncursesw] 56296 inwstr[Libncursesw] resizeterm[Libncursesw] 56297 winsertln[Libncursesw] 56298 is_linetouched[Libncursesw] restartterm[Libncursesw] 56299 winsnstr[Libncursesw] 56300 is_wintouched[Libncursesw] ripoffline[Libncursesw] 56301 winsstr[Libncursesw] 56302 isendwin[Libncursesw] savetty[Libncursesw] winstr[Libncursesw] 56303 key_name[Libncursesw] scanw[Libncursesw] winwstr[Libncursesw] 56304 keybound[Libncursesw] scr_dump[Libncursesw] 56305 wmouse_trafo[Libncursesw] 56306 keyname[Libncursesw] scr_init[Libncursesw] wmove[Libncursesw] 56307 keyok[Libncursesw] scr_restore[Libncursesw] 56308 wnoutrefresh[Libncursesw] 56309 keypad[LSB] scr_set[Libncursesw] wprintw[Libncursesw] 56310 killchar[Libncursesw] scrl[Libncursesw] wredrawln[Libncursesw] 56311 killwchar[Libncursesw] scroll[Libncursesw] 56312 wrefresh[Libncursesw] 56313 leaveok[Libncursesw] scrollok[Libncursesw] wresize[Libncursesw] 56314 longname[Libncursesw] set_curterm[Libncursesw] 56315 wscanw[Libncursesw] 56316 mcprint[Libncursesw] set_term[Libncursesw] wscrl[Libncursesw] 56317 meta[Libncursesw] setcchar[Libncursesw] wsetscrreg[Libncursesw] 56318 mouse_trafo[Libncursesw] setscrreg[Libncursesw] 56319 wstandend[Libncursesw] 56320 mouseinterval[Libncursesw] setupterm[Libncursesw] 56321 wstandout[Libncursesw] 56322 mousemask[Libncursesw] slk_attr[X-CURSES] 56323 wsyncdown[Libncursesw] 56324 move[Libncursesw] slk_attr_off[X-CURSES] wsyncup[Libncursesw] 56325 mvadd_wch[Libncursesw] slk_attr_on[X-CURSES] 56326 wtimeout[Libncursesw] 56327 mvadd_wchnstr[Libncursesw] slk_attr_set[Libncursesw] 56328 wtouchln[Libncursesw] 56329 mvadd_wchstr[Libncursesw] slk_attroff[Libncursesw] 56330 wunctrl[Libncursesw] 56331 mvaddch[Libncursesw] slk_attron[Libncursesw] 56332 wvline[Libncursesw] 56333 mvaddchnstr[Libncursesw] slk_attrset[Libncursesw] 56334 wvline_set[Libncursesw] 56335 mvaddchstr[Libncursesw] slk_clear[Libncursesw] 56336 mvaddnstr[Libncursesw] slk_color[Libncursesw] 56337 56338 Table A-11. libncursesw Data Interfaces 56339 COLORS[ncursesw] acs_map[LSB] stdscr[ncursesw] 56340 COLOR_PAIRS[ncursesw] cur_term[LSB] ttytype[ncursesw] 56341 COLS[ncursesw] curscr[ncursesw] 56342 LINES[ncursesw] newscr[ncursesw] 56343 __________________________________________________________ 56344 56345 A.8. libpam 56346 56347 The behavior of the interfaces in this library is specified by 56348 the following Standards. 56349 56350 This Specification [LSB] 56351 PAM [PAM] 56352 56353 Table A-12. libpam Function Interfaces 56354 pam_acct_mgmt(LIBPAM_1.0)[LSB] pam_get_data(LIBPAM_1.0)[PAM] 56355 pam_putenv(LIBPAM_1.0)[LSB] 56356 pam_authenticate(LIBPAM_1.0)[LSB] pam_get_item(LIBPAM_1.0)[LSB] 56357 pam_set_data(LIBPAM_1.0)[PAM] 56358 pam_chauthtok(LIBPAM_1.0)[LSB] pam_get_user(LIBPAM_1.0)[PAM] 56359 pam_set_item(LIBPAM_1.0)[LSB] 56360 pam_close_session(LIBPAM_1.0)[LSB] pam_getenv(LIBPAM_1.0)[LSB] 56361 pam_setcred(LIBPAM_1.0)[LSB] 56362 pam_end(LIBPAM_1.0)[LSB] pam_getenvlist(LIBPAM_1.0)[LSB] 56363 pam_start(LIBPAM_1.0)[LSB] 56364 pam_fail_delay(LIBPAM_1.0)[LSB] 56365 pam_open_session(LIBPAM_1.0)[LSB] pam_strerror(LIBPAM_1.0)[LSB] 56366 __________________________________________________________ 56367 56368 A.9. libpthread 56369 56370 The behavior of the interfaces in this library is specified by 56371 the following Standards. 56372 56373 Large File Support [LFS] 56374 This Specification [LSB] 56375 POSIX 1003.1-2001 (ISO/IEC 9945-2003) [SUSv3] 56376 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 56377 56378 Table A-13. libpthread Function Interfaces 56379 __errno_location[LSB] pthread_cond_destroy[SUSv4] 56380 pthread_rwlock_tryrdlock[SUSv4] 56381 __h_errno_location[LSB] pthread_cond_init[SUSv4] 56382 pthread_rwlock_trywrlock[SUSv4] 56383 __libc_current_sigrtmax[LSB] pthread_cond_signal[SUSv4] 56384 pthread_rwlock_unlock[SUSv4] 56385 __libc_current_sigrtmin[LSB] pthread_cond_timedwait[SUSv4] 56386 pthread_rwlock_wrlock[SUSv4] 56387 _pthread_cleanup_pop[LSB] pthread_cond_wait[SUSv4] 56388 pthread_rwlockattr_destroy[SUSv4] 56389 _pthread_cleanup_push[LSB] pthread_condattr_destroy[SUSv4] 56390 pthread_rwlockattr_getkind_np[LSB] 56391 accept[SUSv4] pthread_condattr_getclock(GLIBC_2.3.3)[SUSv4] 56392 pthread_rwlockattr_getpshared[SUSv4] 56393 close[SUSv4] pthread_condattr_getpshared[SUSv4] 56394 pthread_rwlockattr_init[SUSv4] 56395 connect[SUSv4] pthread_condattr_init[SUSv4] 56396 pthread_rwlockattr_setkind_np[LSB] 56397 fcntl[LSB] pthread_condattr_setclock(GLIBC_2.3.3)[SUSv4] 56398 pthread_rwlockattr_setpshared[SUSv4] 56399 flockfile[SUSv4] pthread_condattr_setpshared[SUSv4] 56400 pthread_self[SUSv4] 56401 fork[SUSv4] pthread_create[SUSv4] pthread_setcancelstate[SUSv4] 56402 fsync[SUSv4] pthread_detach[SUSv4] pthread_setcanceltype[SUSv4] 56403 ftrylockfile[SUSv4] pthread_equal[SUSv4] 56404 pthread_setconcurrency[SUSv4] 56405 funlockfile[SUSv4] pthread_exit[SUSv4] 56406 pthread_setschedparam[SUSv4] 56407 longjmp[SUSv4] pthread_getattr_np[LSB] 56408 pthread_setschedprio(GLIBC_2.3.4)[SUSv4] 56409 lseek[SUSv4] pthread_getconcurrency[SUSv4] 56410 pthread_setspecific[SUSv4] 56411 lseek64[LFS] pthread_getcpuclockid[SUSv4] 56412 pthread_sigmask[SUSv4] 56413 msync[SUSv4] pthread_getschedparam[SUSv4] 56414 pthread_spin_destroy[SUSv4] 56415 nanosleep[SUSv4] pthread_getspecific[SUSv4] 56416 pthread_spin_init[SUSv4] 56417 open[SUSv4] pthread_join[SUSv4] pthread_spin_lock[SUSv4] 56418 open64[LFS] pthread_key_create[SUSv4] 56419 pthread_spin_trylock[SUSv4] 56420 pause[SUSv4] pthread_key_delete[SUSv4] 56421 pthread_spin_unlock[SUSv4] 56422 pread[SUSv4] pthread_kill[SUSv4] pthread_testcancel[SUSv4] 56423 pread64[LSB] pthread_mutex_consistent(GLIBC_2.12)[SUSv4] 56424 pwrite[SUSv4] 56425 pthread_attr_destroy[SUSv4] pthread_mutex_consistent_np[LSB] 56426 pwrite64[LSB] 56427 pthread_attr_getdetachstate[SUSv4] pthread_mutex_destroy[SUSv4] 56428 raise[SUSv4] 56429 pthread_attr_getguardsize[SUSv4] 56430 pthread_mutex_getprioceiling(GLIBC_2.4)[SUSv4] read[SUSv4] 56431 pthread_attr_getinheritsched[SUSv4] pthread_mutex_init[SUSv4] 56432 recv[SUSv4] 56433 pthread_attr_getschedparam[SUSv4] pthread_mutex_lock[SUSv4] 56434 recvfrom[SUSv4] 56435 pthread_attr_getschedpolicy[SUSv4] 56436 pthread_mutex_setprioceiling(GLIBC_2.4)[SUSv4] recvmsg[SUSv4] 56437 pthread_attr_getscope[SUSv4] pthread_mutex_timedlock[SUSv4] 56438 sem_close[SUSv4] 56439 pthread_attr_getstack[SUSv4] pthread_mutex_trylock[SUSv4] 56440 sem_destroy[SUSv4] 56441 pthread_attr_getstackaddr[SUSv3] pthread_mutex_unlock[SUSv4] 56442 sem_getvalue[SUSv4] 56443 pthread_attr_getstacksize[SUSv4] 56444 pthread_mutexattr_destroy[SUSv4] sem_init[SUSv4] 56445 pthread_attr_init[SUSv4] 56446 pthread_mutexattr_getprioceiling(GLIBC_2.4)[SUSv4] 56447 sem_open[SUSv4] 56448 pthread_attr_setdetachstate[SUSv4] 56449 pthread_mutexattr_getprotocol(GLIBC_2.4)[SUSv4] sem_post[SUSv4] 56450 pthread_attr_setguardsize[SUSv4] 56451 pthread_mutexattr_getpshared[SUSv4] sem_timedwait[SUSv4] 56452 pthread_attr_setinheritsched[SUSv4] 56453 pthread_mutexattr_getrobust(GLIBC_2.12)[SUSv4] 56454 sem_trywait[SUSv4] 56455 pthread_attr_setschedparam[SUSv4] 56456 pthread_mutexattr_getrobust_np[LSB] sem_unlink[SUSv4] 56457 pthread_attr_setschedpolicy[SUSv4] 56458 pthread_mutexattr_gettype[SUSv4] sem_wait[SUSv4] 56459 pthread_attr_setscope[SUSv4] pthread_mutexattr_init[SUSv4] 56460 send[SUSv4] 56461 pthread_attr_setstack[SUSv4] 56462 pthread_mutexattr_setprioceiling(GLIBC_2.4)[SUSv4] 56463 sendmsg[SUSv4] 56464 pthread_attr_setstackaddr[SUSv3] 56465 pthread_mutexattr_setprotocol(GLIBC_2.4)[SUSv4] sendto[SUSv4] 56466 pthread_attr_setstacksize[SUSv4] 56467 pthread_mutexattr_setpshared[SUSv4] sigaction[SUSv4] 56468 pthread_barrier_destroy[SUSv4] 56469 pthread_mutexattr_setrobust(GLIBC_2.12)[SUSv4] 56470 siglongjmp[SUSv4] 56471 pthread_barrier_init[SUSv4] pthread_mutexattr_setrobust_np[LSB] 56472 sigwait[SUSv4] 56473 pthread_barrier_wait[SUSv4] pthread_mutexattr_settype[SUSv4] 56474 system[LSB] 56475 pthread_barrierattr_destroy[SUSv4] pthread_once[SUSv4] 56476 tcdrain[SUSv4] 56477 pthread_barrierattr_getpshared(GLIBC_2.3.3)[SUSv4] 56478 pthread_rwlock_destroy[SUSv4] vfork[SUSv3] 56479 pthread_barrierattr_init[SUSv4] pthread_rwlock_init[SUSv4] 56480 wait[SUSv4] 56481 pthread_barrierattr_setpshared[SUSv4] 56482 pthread_rwlock_rdlock[SUSv4] waitpid[LSB] 56483 pthread_cancel[SUSv4] pthread_rwlock_timedrdlock[SUSv4] 56484 write[SUSv4] 56485 pthread_cond_broadcast[SUSv4] pthread_rwlock_timedwrlock[SUSv4] 56486 __________________________________________________________ 56487 56488 A.10. librt 56489 56490 The behavior of the interfaces in this library is specified by 56491 the following Standards. 56492 56493 Large File Support [LFS] 56494 POSIX 1003.1-2008 (ISO/IEC 9945-2009) [SUSv4] 56495 56496 Table A-14. librt Function Interfaces 56497 aio_cancel[SUSv4] aio_write64[LFS] mq_send(GLIBC_2.3.4)[SUSv4] 56498 aio_cancel64[LFS] clock_getcpuclockid[SUSv4] 56499 mq_setattr(GLIBC_2.3.4)[SUSv4] 56500 aio_error[SUSv4] clock_getres[SUSv4] 56501 mq_timedreceive(GLIBC_2.3.4)[SUSv4] 56502 aio_error64[LFS] clock_gettime[SUSv4] 56503 mq_timedsend(GLIBC_2.3.4)[SUSv4] 56504 aio_fsync[SUSv4] clock_nanosleep[SUSv4] 56505 mq_unlink(GLIBC_2.3.4)[SUSv4] 56506 aio_fsync64[LFS] clock_settime[SUSv4] shm_open[SUSv4] 56507 aio_read[SUSv4] lio_listio(GLIBC_2.4)[SUSv4] shm_unlink[SUSv4] 56508 aio_read64[LFS] lio_listio64(GLIBC_2.4)[LFS] 56509 timer_create[SUSv4] 56510 aio_return[SUSv4] mq_close(GLIBC_2.3.4)[SUSv4] 56511 timer_delete[SUSv4] 56512 aio_return64[LFS] mq_getattr(GLIBC_2.3.4)[SUSv4] 56513 timer_getoverrun[SUSv4] 56514 aio_suspend[SUSv4] mq_notify(GLIBC_2.3.4)[SUSv4] 56515 timer_gettime[SUSv4] 56516 aio_suspend64[LFS] mq_open(GLIBC_2.3.4)[SUSv4] 56517 timer_settime[SUSv4] 56518 aio_write[SUSv4] mq_receive(GLIBC_2.3.4)[SUSv4] 56519 __________________________________________________________ 56520 56521 A.11. libutil 56522 56523 The behavior of the interfaces in this library is specified by 56524 the following Standards. 56525 56526 This Specification [LSB] 56527 56528 Table A-15. libutil Function Interfaces 56529 forkpty[LSB] login_tty[LSB] logwtmp[LSB] 56530 login[LSB] logout[LSB] openpty[LSB] 56531 __________________________________________________________ 56532 56533 A.12. libz 56534 56535 The behavior of the interfaces in this library is specified by 56536 the following Standards. 56537 56538 This Specification [LSB] 56539 56540 Table A-16. libz Function Interfaces 56541 adler32[LSB] gzclose[LSB] inflate[LSB] 56542 compress[LSB] gzdopen[LSB] inflateBack(ZLIB_1.2.0)[LSB] 56543 compress2[LSB] gzeof[LSB] inflateBackEnd(ZLIB_1.2.0)[LSB] 56544 compressBound(ZLIB_1.2.0)[LSB] gzerror[LSB] 56545 inflateBackInit_(ZLIB_1.2.0)[LSB] 56546 crc32[LSB] gzflush[LSB] inflateCopy(ZLIB_1.2.0)[LSB] 56547 deflate[LSB] gzgetc[LSB] inflateEnd[LSB] 56548 deflateBound(ZLIB_1.2.0)[LSB] gzgets[LSB] inflateInit2_[LSB] 56549 deflateCopy[LSB] gzopen[LSB] inflateInit_[LSB] 56550 deflateEnd[LSB] gzprintf[LSB] inflateReset[LSB] 56551 deflateInit2_[LSB] gzputc[LSB] inflateSetDictionary[LSB] 56552 deflateInit_[LSB] gzputs[LSB] inflateSync[LSB] 56553 deflateParams[LSB] gzread[LSB] inflateSyncPoint[LSB] 56554 deflatePrime(ZLIB_1.2.0.8)[LSB] gzrewind[LSB] uncompress[LSB] 56555 deflateReset[LSB] gzseek[LSB] zError[LSB] 56556 deflateSetDictionary[LSB] gzsetparams[LSB] zlibVersion[LSB] 56557 get_crc_table[LSB] gztell[LSB] 56558 gzclearerr(ZLIB_1.2.0.2)[LSB] gzwrite[LSB] 56559 __________________________________________________________ 56560 56561 A.13. libnspr4 56562 56563 The behavior of the interfaces in this library is specified by 56564 the following Standards. 56565 56566 NSPR Reference [NSPR] 56567 56568 Table A-17. libnspr4 Function Interfaces 56569 PR_Abort[NSPR] PR_GetErrorTextLength[NSPR] 56570 PR_NotifyAllCondVar[NSPR] 56571 PR_Accept[NSPR] PR_GetLayersIdentity[NSPR] 56572 PR_NotifyCondVar[NSPR] 56573 PR_AtomicAdd[NSPR] PR_GetOSError[NSPR] PR_Now[NSPR] 56574 PR_AtomicDecrement[NSPR] PR_GetSocketOption[NSPR] PR_Open[NSPR] 56575 PR_AtomicIncrement[NSPR] PR_GetThreadPrivate[NSPR] 56576 PR_OpenTCPSocket[NSPR] 56577 PR_AtomicSet[NSPR] PR_GetThreadScope[NSPR] 56578 PR_OpenUDPSocket[NSPR] 56579 PR_Bind[NSPR] PR_GetThreadState[NSPR] PR_ParseTimeString[NSPR] 56580 PR_Calloc[NSPR] PR_GetUniqueIdentity[NSPR] 56581 PR_ParseTimeStringToExplodedTime[NSPR] 56582 PR_Cleanup[NSPR] PR_ImplodeTime[NSPR] PR_Poll[NSPR] 56583 PR_ClearInterrupt[NSPR] PR_ImportTCPSocket[NSPR] 56584 PR_PopIOLayer[NSPR] 56585 PR_Close[NSPR] PR_Init[NSPR] PR_ProcessExit[NSPR] 56586 PR_Connect[NSPR] PR_Initialize[NSPR] PR_PushIOLayer[NSPR] 56587 PR_ConnectContinue[NSPR] PR_InitializeNetAddr[NSPR] 56588 PR_Read[NSPR] 56589 PR_ConvertIPv4AddrToIPv6[NSPR] PR_Initialized[NSPR] 56590 PR_Realloc[NSPR] 56591 PR_CreateIOLayerStub[NSPR] PR_Interrupt[NSPR] PR_Recv[NSPR] 56592 PR_CreatePipe[NSPR] PR_IntervalNow[NSPR] PR_RecvFrom[NSPR] 56593 PR_DestroyCondVar[NSPR] PR_IntervalToMicroseconds[NSPR] 56594 PR_SecondsToInterval[NSPR] 56595 PR_DestroyLock[NSPR] PR_IntervalToMilliseconds[NSPR] 56596 PR_Send[NSPR] 56597 PR_EnumerateAddrInfo[NSPR] PR_IntervalToSeconds[NSPR] 56598 PR_SendTo[NSPR] 56599 PR_ExplodeTime[NSPR] PR_Listen[NSPR] PR_SetError[NSPR] 56600 PR_FormatTime[NSPR] PR_LocalTimeParameters[NSPR] 56601 PR_SetErrorText[NSPR] 56602 PR_Free[NSPR] PR_Lock[NSPR] PR_SetSocketOption[NSPR] 56603 PR_FreeAddrInfo[NSPR] PR_Malloc[NSPR] PR_SetThreadPrivate[NSPR] 56604 PR_GMTParameters[NSPR] PR_MicrosecondsToInterval[NSPR] 56605 PR_Shutdown[NSPR] 56606 PR_GetAddrInfoByName[NSPR] PR_MillisecondsToInterval[NSPR] 56607 PR_Sleep[NSPR] 56608 PR_GetCanonNameFromAddrInfo[NSPR] PR_NetAddrToString[NSPR] 56609 PR_StringToNetAddr[NSPR] 56610 PR_GetDefaultIOMethods[NSPR] PR_NewCondVar[NSPR] 56611 PR_TicksPerSecond[NSPR] 56612 PR_GetDescType[NSPR] PR_NewLock[NSPR] PR_Unlock[NSPR] 56613 PR_GetError[NSPR] PR_NewThreadPrivateIndex[NSPR] 56614 PR_WaitCondVar[NSPR] 56615 PR_GetErrorText[NSPR] PR_NormalizeTime[NSPR] PR_Write[NSPR] 56616 __________________________________________________________ 56617 56618 A.14. libnss3 56619 56620 The behavior of the interfaces in this library is specified by 56621 the following Standards. 56622 56623 Mozilla's NSS SSL Reference [NSS SSL] 56624 56625 Table A-18. libnss3 Function Interfaces 56626 CERT_CheckCertValidTimes(NSS_3.2)[NSS SSL] 56627 CERT_VerifyCertNow(NSS_3.2)[NSS SSL] 56628 PK11_GetSlotName(NSS_3.2)[NSS SSL] 56629 CERT_DestroyCertificate(NSS_3.2)[NSS SSL] NSS_Init(NSS_3.2)[NSS 56630 SSL] PK11_GetTokenName(NSS_3.2)[NSS SSL] 56631 CERT_DupCertificate(NSS_3.2)[NSS SSL] 56632 NSS_InitReadWrite(NSS_3.2)[NSS SSL] PK11_IsHW(NSS_3.2)[NSS SSL] 56633 CERT_FreeNicknames(NSS_3.2)[NSS SSL] NSS_NoDB_Init(NSS_3.2)[NSS 56634 SSL] PK11_IsPresent(NSS_3.2)[NSS SSL] 56635 CERT_GetCertNicknames(NSS_3.2)[NSS SSL] 56636 NSS_Shutdown(NSS_3.2)[NSS SSL] PK11_IsReadOnly(NSS_3.2)[NSS 56637 SSL] 56638 CERT_GetDefaultCertDB(NSS_3.2)[NSS SSL] 56639 PK11_FindCertFromNickname(NSS_3.2)[NSS SSL] 56640 PK11_SetPasswordFunc(NSS_3.2)[NSS SSL] 56641 CERT_VerifyCertName(NSS_3.2)[NSS SSL] 56642 PK11_FindKeyByAnyCert(NSS_3.2)[NSS SSL] 56643 SECKEY_DestroyPrivateKey(NSS_3.2)[NSS SSL] 56644 __________________________________________________________ 56645 56646 A.15. libssl3 56647 56648 The behavior of the interfaces in this library is specified by 56649 the following Standards. 56650 56651 Mozilla's NSS SSL Reference [NSS SSL] 56652 56653 Table A-19. libssl3 Function Interfaces 56654 NSS_CmpCertChainWCANames(NSS_3.2)[NSS SSL] 56655 SSL_ConfigMPServerSIDCache(NSS_3.2)[NSS SSL] 56656 SSL_OptionSet(NSS_3.2)[NSS SSL] 56657 NSS_FindCertKEAType(NSS_3.2)[NSS SSL] 56658 SSL_ConfigSecureServer(NSS_3.2)[NSS SSL] 56659 SSL_OptionSetDefault(NSS_3.2)[NSS SSL] 56660 NSS_GetClientAuthData(NSS_3.2)[NSS SSL] 56661 SSL_ConfigServerSessionIDCache(NSS_3.2)[NSS SSL] 56662 SSL_PeerCertificate(NSS_3.2)[NSS SSL] 56663 SSL_AuthCertificate(NSS_3.2)[NSS SSL] 56664 SSL_DataPending(NSS_3.2)[NSS SSL] SSL_ReHandshake(NSS_3.2)[NSS 56665 SSL] 56666 SSL_AuthCertificateHook(NSS_3.2)[NSS SSL] 56667 SSL_ForceHandshake(NSS_3.2)[NSS SSL] 56668 SSL_ResetHandshake(NSS_3.2)[NSS SSL] 56669 SSL_BadCertHook(NSS_3.2)[NSS SSL] 56670 SSL_GetClientAuthDataHook(NSS_3.2)[NSS SSL] 56671 SSL_RevealPinArg(NSS_3.2)[NSS SSL] 56672 SSL_CipherPolicyGet(NSS_3.2)[NSS SSL] 56673 SSL_GetSessionID(NSS_3.2)[NSS SSL] SSL_RevealURL(NSS_3.2)[NSS 56674 SSL] 56675 SSL_CipherPolicySet(NSS_3.2)[NSS SSL] 56676 SSL_HandshakeCallback(NSS_3.2)[NSS SSL] 56677 SSL_SecurityStatus(NSS_3.2)[NSS SSL] 56678 SSL_CipherPrefGet(NSS_3.2)[NSS SSL] SSL_ImportFD(NSS_3.2)[NSS 56679 SSL] SSL_SetPKCS11PinArg(NSS_3.2)[NSS SSL] 56680 SSL_CipherPrefGetDefault(NSS_3.2)[NSS SSL] 56681 SSL_InheritMPServerSIDCache(NSS_3.2)[NSS SSL] 56682 SSL_SetSockPeerID(NSS_3.2)[NSS SSL] 56683 SSL_CipherPrefSet(NSS_3.2)[NSS SSL] 56684 SSL_InvalidateSession(NSS_3.2)[NSS SSL] SSL_SetURL(NSS_3.2)[NSS 56685 SSL] 56686 SSL_CipherPrefSetDefault(NSS_3.2)[NSS SSL] 56687 SSL_OptionGet(NSS_3.2)[NSS SSL] 56688 SSL_ClearSessionCache(NSS_3.2)[NSS SSL] 56689 SSL_OptionGetDefault(NSS_3.2)[NSS SSL] 56690 __________________________________________________________ 56691 56692 Appendix B. GNU Free Documentation License (Informative) 56693 56694 This specification is published under the terms of the GNU Free 56695 Documentation License, Version 1.1, March 2000 56696 56697 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple 56698 Place, Suite 330, Boston, MA 02111-1307 USA Everyone is 56699 permitted to copy and distribute verbatim copies of this 56700 license document, but changing it is not allowed. 56701 __________________________________________________________ 56702 56703 B.1. PREAMBLE 56704 56705 The purpose of this License is to make a manual, textbook, or 56706 other written document "free" in the sense of freedom: to 56707 assure everyone the effective freedom to copy and redistribute 56708 it, with or without modifying it, either commercially or 56709 noncommercially. Secondarily, this License preserves for the 56710 author and publisher a way to get credit for their work, while 56711 not being considered responsible for modifications made by 56712 others. 56713 56714 This License is a kind of "copyleft", which means that 56715 derivative works of the document must themselves be free in the 56716 same sense. It complements the GNU General Public License, 56717 which is a copyleft license designed for free software. 56718 56719 We have designed this License in order to use it for manuals 56720 for free software, because free software needs free 56721 documentation: a free program should come with manuals 56722 providing the same freedoms that the software does. But this 56723 License is not limited to software manuals; it can be used for 56724 any textual work, regardless of subject matter or whether it is 56725 published as a printed book. We recommend this License 56726 principally for works whose purpose is instruction or 56727 reference. 56728 __________________________________________________________ 56729 56730 B.2. APPLICABILITY AND DEFINITIONS 56731 56732 This License applies to any manual or other work that contains 56733 a notice placed by the copyright holder saying it can be 56734 distributed under the terms of this License. The "Document", 56735 below, refers to any such manual or work. Any member of the 56736 public is a licensee, and is addressed as "you". 56737 56738 A "Modified Version" of the Document means any work containing 56739 the Document or a portion of it, either copied verbatim, or 56740 with modifications and/or translated into another language. 56741 56742 A "Secondary Section" is a named appendix or a front-matter 56743 section of the Document that deals exclusively with the 56744 relationship of the publishers or authors of the Document to 56745 the Document's overall subject (or to related matters) and 56746 contains nothing that could fall directly within that overall 56747 subject. (For example, if the Document is in part a textbook of 56748 mathematics, a Secondary Section may not explain any 56749 mathematics.) The relationship could be a matter of historical 56750 connection with the subject or with related matters, or of 56751 legal, commercial, philosophical, ethical or political position 56752 regarding them. 56753 56754 The "Invariant Sections" are certain Secondary Sections whose 56755 titles are designated, as being those of Invariant Sections, in 56756 the notice that says that the Document is released under this 56757 License. 56758 56759 The "Cover Texts" are certain short passages of text that are 56760 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 56761 that says that the Document is released under this License. 56762 56763 A "Transparent" copy of the Document means a machine-readable 56764 copy, represented in a format whose specification is available 56765 to the general public, whose contents can be viewed and edited 56766 directly and straightforwardly with generic text editors or 56767 (for images composed of pixels) generic paint programs or (for 56768 drawings) some widely available drawing editor, and that is 56769 suitable for input to text formatters or for automatic 56770 translation to a variety of formats suitable for input to text 56771 formatters. A copy made in an otherwise Transparent file format 56772 whose markup has been designed to thwart or discourage 56773 subsequent modification by readers is not Transparent. A copy 56774 that is not "Transparent" is called "Opaque". 56775 56776 Examples of suitable formats for Transparent copies include 56777 plain ASCII without markup, Texinfo input format, LaTeX input 56778 format, SGML or XML using a publicly available DTD, and 56779 standard-conforming simple HTML designed for human 56780 modification. Opaque formats include PostScript, PDF, 56781 proprietary formats that can be read and edited only by 56782 proprietary word processors, SGML or XML for which the DTD 56783 and/or processing tools are not generally available, and the 56784 machine-generated HTML produced by some word processors for 56785 output purposes only. 56786 56787 The "Title Page" means, for a printed book, the title page 56788 itself, plus such following pages as are needed to hold, 56789 legibly, the material this License requires to appear in the 56790 title page. For works in formats which do not have any title 56791 page as such, "Title Page" means the text near the most 56792 prominent appearance of the work's title, preceding the 56793 beginning of the body of the text. 56794 __________________________________________________________ 56795 56796 B.3. VERBATIM COPYING 56797 56798 You may copy and distribute the Document in any medium, either 56799 commercially or noncommercially, provided that this License, 56800 the copyright notices, and the license notice saying this 56801 License applies to the Document are reproduced in all copies, 56802 and that you add no other conditions whatsoever to those of 56803 this License. You may not use technical measures to obstruct or 56804 control the reading or further copying of the copies you make 56805 or distribute. However, you may accept compensation in exchange 56806 for copies. If you distribute a large enough number of copies 56807 you must also follow the conditions in section 3. 56808 56809 You may also lend copies, under the same conditions stated 56810 above, and you may publicly display copies. 56811 __________________________________________________________ 56812 56813 B.4. COPYING IN QUANTITY 56814 56815 If you publish printed copies of the Document numbering more 56816 than 100, and the Document's license notice requires Cover 56817 Texts, you must enclose the copies in covers that carry, 56818 clearly and legibly, all these Cover Texts: Front-Cover Texts 56819 on the front cover, and Back-Cover Texts on the back cover. 56820 Both covers must also clearly and legibly identify you as the 56821 publisher of these copies. The front cover must present the 56822 full title with all words of the title equally prominent and 56823 visible. You may add other material on the covers in addition. 56824 Copying with changes limited to the covers, as long as they 56825 preserve the title of the Document and satisfy these 56826 conditions, can be treated as verbatim copying in other 56827 respects. 56828 56829 If the required texts for either cover are too voluminous to 56830 fit legibly, you should put the first ones listed (as many as 56831 fit reasonably) on the actual cover, and continue the rest onto 56832 adjacent pages. 56833 56834 If you publish or distribute Opaque copies of the Document 56835 numbering more than 100, you must either include a 56836 machine-readable Transparent copy along with each Opaque copy, 56837 or state in or with each Opaque copy a publicly-accessible 56838 computer-network location containing a complete Transparent 56839 copy of the Document, free of added material, which the general 56840 network-using public has access to download anonymously at no 56841 charge using public-standard network protocols. If you use the 56842 latter option, you must take reasonably prudent steps, when you 56843 begin distribution of Opaque copies in quantity, to ensure that 56844 this Transparent copy will remain thus accessible at the stated 56845 location until at least one year after the last time you 56846 distribute an Opaque copy (directly or through your agents or 56847 retailers) of that edition to the public. 56848 56849 It is requested, but not required, that you contact the authors 56850 of the Document well before redistributing any large number of 56851 copies, to give them a chance to provide you with an updated 56852 version of the Document. 56853 __________________________________________________________ 56854 56855 B.5. MODIFICATIONS 56856 56857 You may copy and distribute a Modified Version of the Document 56858 under the conditions of sections 2 and 3 above, provided that 56859 you release the Modified Version under precisely this License, 56860 with the Modified Version filling the role of the Document, 56861 thus licensing distribution and modification of the Modified 56862 Version to whoever possesses a copy of it. In addition, you 56863 must do these things in the Modified Version: 56864 56865 A. Use in the Title Page (and on the covers, if any) a title 56866 distinct from that of the Document, and from those of 56867 previous versions (which should, if there were any, be 56868 listed in the History section of the Document). You may use 56869 the same title as a previous version if the original 56870 publisher of that version gives permission. 56871 B. List on the Title Page, as authors, one or more persons or 56872 entities responsible for authorship of the modifications in 56873 the Modified Version, together with at least five of the 56874 principal authors of the Document (all of its principal 56875 authors, if it has less than five). 56876 C. State on the Title page the name of the publisher of the 56877 Modified Version, as the publisher. 56878 D. Preserve all the copyright notices of the Document. 56879 E. Add an appropriate copyright notice for your modifications 56880 adjacent to the other copyright notices. 56881 F. Include, immediately after the copyright notices, a license 56882 notice giving the public permission to use the Modified 56883 Version under the terms of this License, in the form shown 56884 in the Addendum below. 56885 G. Preserve in that license notice the full lists of Invariant 56886 Sections and required Cover Texts given in the Document's 56887 license notice. 56888 H. Include an unaltered copy of this License. 56889 I. Preserve the section entitled "History", and its title, and 56890 add to it an item stating at least the title, year, new 56891 authors, and publisher of the Modified Version as given on 56892 the Title Page. If there is no section entitled "History" 56893 in the Document, create one stating the title, year, 56894 authors, and publisher of the Document as given on its 56895 Title Page, then add an item describing the Modified 56896 Version as stated in the previous sentence. 56897 J. Preserve the network location, if any, given in the 56898 Document for public access to a Transparent copy of the 56899 Document, and likewise the network locations given in the 56900 Document for previous versions it was based on. These may 56901 be placed in the "History" section. You may omit a network 56902 location for a work that was published at least four years 56903 before the Document itself, or if the original publisher of 56904 the version it refers to gives permission. 56905 K. In any section entitled "Acknowledgements" or 56906 "Dedications", preserve the section's title, and preserve 56907 in the section all the substance and tone of each of the 56908 contributor acknowledgements and/or dedications given 56909 therein. 56910 L. Preserve all the Invariant Sections of the Document, 56911 unaltered in their text and in their titles. Section 56912 numbers or the equivalent are not considered part of the 56913 section titles. 56914 M. Delete any section entitled "Endorsements". Such a section 56915 may not be included in the Modified Version. 56916 N. Do not retitle any existing section as "Endorsements" or to 56917 conflict in title with any Invariant Section. 56918 56919 If the Modified Version includes new front-matter sections or 56920 appendices that qualify as Secondary Sections and contain no 56921 material copied from the Document, you may at your option 56922 designate some or all of these sections as invariant. To do 56923 this, add their titles to the list of Invariant Sections in the 56924 Modified Version's license notice. These titles must be 56925 distinct from any other section titles. 56926 56927 You may add a section entitled "Endorsements", provided it 56928 contains nothing but endorsements of your Modified Version by 56929 various parties--for example, statements of peer review or that 56930 the text has been approved by an organization as the 56931 authoritative definition of a standard. 56932 56933 You may add a passage of up to five words as a Front-Cover 56934 Text, and a passage of up to 25 words as a Back-Cover Text, to 56935 the end of the list of Cover Texts in the Modified Version. 56936 Only one passage of Front-Cover Text and one of Back-Cover Text 56937 may be added by (or through arrangements made by) any one 56938 entity. If the Document already includes a cover text for the 56939 same cover, previously added by you or by arrangement made by 56940 the same entity you are acting on behalf of, you may not add 56941 another; but you may replace the old one, on explicit 56942 permission from the previous publisher that added the old one. 56943 56944 The author(s) and publisher(s) of the Document do not by this 56945 License give permission to use their names for publicity for or 56946 to assert or imply endorsement of any Modified Version. 56947 __________________________________________________________ 56948 56949 B.6. COMBINING DOCUMENTS 56950 56951 You may combine the Document with other documents released 56952 under this License, under the terms defined in section 4 above 56953 for modified versions, provided that you include in the 56954 combination all of the Invariant Sections of all of the 56955 original documents, unmodified, and list them all as Invariant 56956 Sections of your combined work in its license notice. 56957 56958 The combined work need only contain one copy of this License, 56959 and multiple identical Invariant Sections may be replaced with 56960 a single copy. If there are multiple Invariant Sections with 56961 the same name but different contents, make the title of each 56962 such section unique by adding at the end of it, in parentheses, 56963 the name of the original author or publisher of that section if 56964 known, or else a unique number. Make the same adjustment to the 56965 section titles in the list of Invariant Sections in the license 56966 notice of the combined work. 56967 56968 In the combination, you must combine any sections entitled 56969 "History" in the various original documents, forming one 56970 section entitled "History"; likewise combine any sections 56971 entitled "Acknowledgements", and any sections entitled 56972 "Dedications". You must delete all sections entitled 56973 "Endorsements." 56974 __________________________________________________________ 56975 56976 B.7. COLLECTIONS OF DOCUMENTS 56977 56978 You may make a collection consisting of the Document and other 56979 documents released under this License, and replace the 56980 individual copies of this License in the various documents with 56981 a single copy that is included in the collection, provided that 56982 you follow the rules of this License for verbatim copying of 56983 each of the documents in all other respects. 56984 56985 You may extract a single document from such a collection, and 56986 distribute it individually under this License, provided you 56987 insert a copy of this License into the extracted document, and 56988 follow this License in all other respects regarding verbatim 56989 copying of that document. 56990 __________________________________________________________ 56991 56992 B.8. AGGREGATION WITH INDEPENDENT WORKS 56993 56994 A compilation of the Document or its derivatives with other 56995 separate and independent documents or works, in or on a volume 56996 of a storage or distribution medium, does not as a whole count 56997 as a Modified Version of the Document, provided no compilation 56998 copyright is claimed for the compilation. Such a compilation is 56999 called an "aggregate", and this License does not apply to the 57000 other self-contained works thus compiled with the Document, on 57001 account of their being thus compiled, if they are not 57002 themselves derivative works of the Document. 57003 57004 If the Cover Text requirement of section 3 is applicable to 57005 these copies of the Document, then if the Document is less than 57006 one quarter of the entire aggregate, the Document's Cover Texts 57007 may be placed on covers that surround only the Document within 57008 the aggregate. Otherwise they must appear on covers around the 57009 whole aggregate. 57010 __________________________________________________________ 57011 57012 B.9. TRANSLATION 57013 57014 Translation is considered a kind of modification, so you may 57015 distribute translations of the Document under the terms of 57016 section 4. Replacing Invariant Sections with translations 57017 requires special permission from their copyright holders, but 57018 you may include translations of some or all Invariant Sections 57019 in addition to the original versions of these Invariant 57020 Sections. You may include a translation of this License 57021 provided that you also include the original English version of 57022 this License. In case of a disagreement between the translation 57023 and the original English version of this License, the original 57024 English version will prevail. 57025 __________________________________________________________ 57026 57027 B.10. TERMINATION 57028 57029 You may not copy, modify, sublicense, or distribute the 57030 Document except as expressly provided for under this License. 57031 Any other attempt to copy, modify, sublicense or distribute the 57032 Document is void, and will automatically terminate your rights 57033 under this License. However, parties who have received copies, 57034 or rights, from you under this License will not have their 57035 licenses terminated so long as such parties remain in full 57036 compliance. 57037 __________________________________________________________ 57038 57039 B.11. FUTURE REVISIONS OF THIS LICENSE 57040 57041 The Free Software Foundation may publish new, revised versions 57042 of the GNU Free Documentation License from time to time. Such 57043 new versions will be similar in spirit to the present version, 57044 but may differ in detail to address new problems or concerns. 57045 See http://www.gnu.org/copyleft/. 57046 57047 Each version of the License is given a distinguishing version 57048 number. If the Document specifies that a particular numbered 57049 version of this License "or any later version" applies to it, 57050 you have the option of following the terms and conditions 57051 either of that specified version or of any later version that 57052 has been published (not as a draft) by the Free Software 57053 Foundation. If the Document does not specify a version number 57054 of this License, you may choose any version ever published (not 57055 as a draft) by the Free Software Foundation. 57056 __________________________________________________________ 57057 57058 B.12. How to use this License for your documents 57059 57060 To use this License in a document you have written, include a 57061 copy of the License in the document and put the following 57062 copyright and license notices just after the title page: 57063 57064 Copyright (c) YEAR YOUR NAME. Permission is granted to copy, 57065 distribute and/or modify this document under the terms of 57066 the GNU Free Documentation License, Version 1.1 or any later 57067 version published by the Free Software Foundation; with the 57068 Invariant Sections being LIST THEIR TITLES, with the 57069 Front-Cover Texts being LIST, and with the Back-Cover Texts 57070 being LIST. A copy of the license is included in the section 57071 entitled "GNU Free Documentation License". 57072 57073 If you have no Invariant Sections, write "with no Invariant 57074 Sections" instead of saying which ones are invariant. If you 57075 have no Front-Cover Texts, write "no Front-Cover Texts" instead 57076 of "Front-Cover Texts being LIST"; likewise for Back-Cover 57077 Texts. 57078 57079 If your document contains nontrivial examples of program code, 57080 we recommend releasing these examples in parallel under your 57081 choice of free software license, such as the GNU General Public 57082 License, to permit their use in free software.