1 module squiz_box.c.lzma; 2 3 version (HaveSquizLzma) 4 { 5 } 6 else 7 { 8 static assert(false, "LZMA and XZ support is disabled"); 9 } 10 11 import std.traits : isIntegral; 12 13 private alias uint8_t = ubyte; 14 private alias uint32_t = uint; 15 private alias uint64_t = ulong; 16 17 // lzma/version.h 18 19 enum LZMA_VERSION_MAJOR = 5; 20 enum LZMA_VERSION_MINOR = 2; 21 enum LZMA_VERSION_PATCH = 5; 22 enum LZMA_VERSION_STABILITY = LZMA_VERSION_STABILITY_STABLE; 23 24 /* 25 * Map symbolic stability levels to integers. 26 */ 27 enum LZMA_VERSION_STABILITY_ALPHA = 0; 28 enum LZMA_VERSION_STABILITY_BETA = 1; 29 enum LZMA_VERSION_STABILITY_STABLE = 2; 30 31 enum uint LZMA_VERSION = LZMA_VERSION_MAJOR * 10_000_000 32 + LZMA_VERSION_MINOR * 10_000 33 + LZMA_VERSION_PATCH * 10 34 + LZMA_VERSION_STABILITY; 35 36 enum LZMA_VERSION_STRING = "5.2.5"; 37 38 extern (C) uint lzma_version_number() nothrow; 39 40 extern (C) const(char)* lzma_version_string() nothrow; 41 42 // lzma/base.h 43 44 alias lzma_bool = bool; 45 46 static assert(lzma_bool.sizeof == 1); 47 48 enum lzma_reserved_enum 49 { 50 LZMA_RESERVED_ENUM = 0, 51 } 52 53 enum lzma_ret 54 { 55 OK = 0, 56 STREAM_END = 1, 57 NO_CHECK = 2, 58 UNSUPPORTED_CHECK = 3, 59 GET_CHECK = 4, 60 MEM_ERROR = 5, 61 MEMLIMIT_ERROR = 6, 62 FORMAT_ERROR = 7, 63 OPTIONS_ERROR = 8, 64 DATA_ERROR = 9, 65 BUF_ERROR = 10, 66 PROG_ERROR = 11, 67 } 68 69 enum lzma_action 70 { 71 RUN = 0, 72 SYNC_FLUSH = 1, 73 FULL_FLUSH = 2, 74 FULL_BARRIER = 4, 75 FINISH = 3 76 } 77 78 struct lzma_allocator 79 { 80 extern (C) void* function(void* opaque, size_t nmemb, size_t size) alloc; 81 extern (C) void function(void* opaque, void* ptr) free; 82 void* opaque; 83 } 84 85 struct lzma_internal; 86 87 struct lzma_stream 88 { 89 const(uint8_t)* next_in; 90 size_t avail_in; 91 uint64_t total_in; 92 93 uint8_t* next_out; 94 size_t avail_out; 95 uint64_t total_out; 96 97 const(lzma_allocator)* allocator; 98 99 lzma_internal* internal; 100 101 void* reserved_ptr1; 102 void* reserved_ptr2; 103 void* reserved_ptr3; 104 void* reserved_ptr4; 105 uint64_t reserved_int1; 106 uint64_t reserved_int2; 107 size_t reserved_int3; 108 size_t reserved_int4; 109 lzma_reserved_enum reserved_enum1; 110 lzma_reserved_enum reserved_enum2; 111 } 112 113 extern (C) lzma_ret lzma_code(lzma_stream* strm, lzma_action action) nothrow; 114 115 extern (C) void lzma_end(lzma_stream* strm) nothrow; 116 117 extern (C) void lzma_get_progress(lzma_stream* strm, 118 uint64_t* progress_in, uint64_t* progress_out) nothrow; 119 120 extern (C) uint64_t lzma_memusage(const(lzma_stream)* strm) 121 nothrow pure; 122 123 extern (C) uint64_t lzma_memlimit_get(const(lzma_stream)* strm) 124 nothrow pure; 125 126 extern (C) lzma_ret lzma_memlimit_set( 127 lzma_stream* strm, uint64_t memlimit) nothrow; 128 129 // lzma/vli.h 130 131 enum LZMA_VLI_MAX = uint64_t.max / 2; 132 133 enum LZMA_VLI_UNKNOWN = uint64_t.max; 134 135 enum LZMA_VLI_BYTES_MAX = 9; 136 137 lzma_vli LZMA_VLI_C(N)(N n) if (isIntegral!N) 138 { 139 return n; 140 } 141 142 alias lzma_vli = uint64_t; 143 144 bool lzma_vli_is_valid(lzma_vli vli) 145 { 146 return vli <= LZMA_VLI_MAX || vli == LZMA_VLI_UNKNOWN; 147 } 148 149 extern (C) lzma_ret lzma_vli_encode(lzma_vli vli, size_t* vli_pos, 150 uint8_t* out_, size_t* out_pos, size_t out_size) nothrow; 151 152 extern (C) lzma_ret lzma_vli_decode(lzma_vli* vli, size_t* vli_pos, 153 const uint8_t* in_, size_t* in_pos, size_t in_size) 154 nothrow; 155 156 extern (C) uint32_t lzma_vli_size(lzma_vli vli) 157 nothrow pure; 158 159 // lzma/check.h 160 161 enum lzma_check 162 { 163 NONE = 0, 164 CRC32 = 1, 165 CRC64 = 4, 166 SHA256 = 10 167 } 168 169 enum LZMA_CHECK_ID_MAX = 15; 170 171 extern (C) lzma_bool lzma_check_is_supported(lzma_check check) 172 nothrow; 173 174 extern (C) uint32_t lzma_check_size(lzma_check check) 175 nothrow; 176 177 enum LZMA_CHECK_SIZE_MAX = 64; 178 179 extern (C) uint32_t lzma_crc32( 180 const uint8_t* buf, size_t size, uint32_t crc) 181 nothrow pure; 182 183 extern (C) uint64_t lzma_crc64( 184 const uint8_t* buf, size_t size, uint64_t crc) 185 nothrow pure; 186 187 extern (C) lzma_check lzma_get_check(const lzma_stream* strm) 188 nothrow; 189 190 // lzma/filter.h 191 enum LZMA_FILTERS_MAX = 4; 192 193 struct lzma_filter 194 { 195 lzma_vli id; 196 void* options; 197 } 198 199 extern (C) lzma_bool lzma_filter_encoder_is_supported(lzma_vli id) 200 nothrow; 201 202 extern (C) lzma_bool lzma_filter_decoder_is_supported(lzma_vli id) 203 nothrow; 204 205 extern (C) lzma_ret lzma_filters_copy( 206 const lzma_filter* src, lzma_filter* dest, 207 const lzma_allocator* allocator) nothrow; 208 209 extern (C) uint64_t lzma_raw_encoder_memusage(const lzma_filter* filters) 210 nothrow pure; 211 212 extern (C) uint64_t lzma_raw_decoder_memusage(const lzma_filter* filters) 213 nothrow pure; 214 215 extern (C) lzma_ret lzma_raw_encoder( 216 lzma_stream* strm, const lzma_filter* filters) 217 nothrow; 218 219 extern (C) lzma_ret lzma_raw_decoder( 220 lzma_stream* strm, const lzma_filter* filters) 221 nothrow; 222 223 extern (C) lzma_ret lzma_filters_update( 224 lzma_stream* strm, const lzma_filter* filters) nothrow; 225 226 extern (C) lzma_ret lzma_raw_buffer_encode( 227 const lzma_filter* filters, const lzma_allocator* allocator, 228 const uint8_t* in_, size_t in_size, uint8_t* out_, 229 size_t* out_pos, size_t out_size) nothrow; 230 231 extern (C) lzma_ret lzma_raw_buffer_decode( 232 const lzma_filter* filters, const lzma_allocator* allocator, 233 const uint8_t* in_, size_t* in_pos, size_t in_size, 234 uint8_t* out_, size_t* out_pos, size_t out_size) nothrow; 235 236 extern (C) lzma_ret lzma_properties_size( 237 uint32_t* size, const lzma_filter* filter) nothrow; 238 239 extern (C) lzma_ret lzma_properties_encode( 240 const lzma_filter* filter, uint8_t* props) nothrow; 241 242 extern (C) lzma_ret lzma_properties_decode( 243 lzma_filter* filter, const lzma_allocator* allocator, 244 const uint8_t* props, size_t props_size) nothrow; 245 246 extern (C) lzma_ret lzma_filter_flags_size( 247 uint32_t* size, const lzma_filter* filter) 248 nothrow; 249 250 extern (C) lzma_ret lzma_filter_flags_encode(const lzma_filter* filter, 251 uint8_t* out_, size_t* out_pos, size_t out_size) 252 nothrow; 253 254 extern (C) lzma_ret lzma_filter_flags_decode( 255 lzma_filter* filter, const lzma_allocator* allocator, 256 const uint8_t* in_, size_t* in_pos, size_t in_size) 257 nothrow; 258 259 // lzma/bcj.h 260 261 enum LZMA_FILTER_X86 = LZMA_VLI_C(0x04); 262 263 enum LZMA_FILTER_POWERPC = LZMA_VLI_C(0x05); 264 265 enum LZMA_FILTER_IA64 = LZMA_VLI_C(0x06); 266 267 enum LZMA_FILTER_ARM = LZMA_VLI_C(0x07); 268 269 enum LZMA_FILTER_ARMTHUMB = LZMA_VLI_C(0x08); 270 271 enum LZMA_FILTER_SPARC = LZMA_VLI_C(0x09); 272 273 struct lzma_options_bcj 274 { 275 uint32_t start_offset; 276 } 277 278 // lzma/delta.h 279 280 enum LZMA_FILTER_DELTA = LZMA_VLI_C(0x03); 281 282 enum lzma_delta_type 283 { 284 LZMA_DELTA_TYPE_BYTE 285 } 286 287 enum LZMA_DELTA_DIST_MIN = 1; 288 enum LZMA_DELTA_DIST_MAX = 256; 289 290 struct lzma_options_delta 291 { 292 lzma_delta_type type; 293 294 uint32_t dist; 295 uint32_t reserved_int1; 296 uint32_t reserved_int2; 297 uint32_t reserved_int3; 298 uint32_t reserved_int4; 299 void* reserved_ptr1; 300 void* reserved_ptr2; 301 } 302 303 // lzma/lzma12.h 304 305 enum LZMA_FILTER_LZMA1 = LZMA_VLI_C(0x4000000000000001); 306 307 enum LZMA_FILTER_LZMA2 = LZMA_VLI_C(0x21); 308 309 enum lzma_match_finder 310 { 311 LZMA_MF_HC3 = 0x03, 312 LZMA_MF_HC4 = 0x04, 313 314 LZMA_MF_BT2 = 0x12, 315 316 LZMA_MF_BT3 = 0x13, 317 318 LZMA_MF_BT4 = 0x14 319 } 320 321 extern (C) lzma_bool lzma_mf_is_supported(lzma_match_finder match_finder) 322 nothrow; 323 324 enum lzma_mode 325 { 326 LZMA_MODE_FAST = 1, 327 LZMA_MODE_NORMAL = 2 328 } 329 330 extern (C) lzma_bool lzma_mode_is_supported(lzma_mode mode) 331 nothrow; 332 333 enum LZMA_DICT_SIZE_MIN = 4096; 334 enum LZMA_DICT_SIZE_DEFAULT = 1 << 23; 335 enum LZMA_LCLP_MIN = 0; 336 enum LZMA_LCLP_MAX = 4; 337 enum LZMA_LC_DEFAULT = 3; 338 enum LZMA_LP_DEFAULT = 0; 339 enum LZMA_PB_MIN = 0; 340 enum LZMA_PB_MAX = 4; 341 enum LZMA_PB_DEFAULT = 2; 342 343 struct lzma_options_lzma 344 { 345 uint32_t dict_size; 346 347 const uint8_t* preset_dict; 348 349 uint32_t preset_dict_size; 350 351 uint32_t lc; 352 353 uint32_t lp; 354 355 uint32_t pb; 356 lzma_mode mode; 357 358 uint32_t nice_len; 359 360 lzma_match_finder mf; 361 362 uint32_t depth; 363 364 uint32_t reserved_int1; 365 uint32_t reserved_int2; 366 uint32_t reserved_int3; 367 uint32_t reserved_int4; 368 uint32_t reserved_int5; 369 uint32_t reserved_int6; 370 uint32_t reserved_int7; 371 uint32_t reserved_int8; 372 lzma_reserved_enum reserved_enum1; 373 lzma_reserved_enum reserved_enum2; 374 lzma_reserved_enum reserved_enum3; 375 lzma_reserved_enum reserved_enum4; 376 void* reserved_ptr1; 377 void* reserved_ptr2; 378 } 379 380 extern (C) lzma_bool lzma_lzma_preset( 381 lzma_options_lzma* options, uint32_t preset) nothrow; 382 383 // lzma/containers.h 384 /************ 385 * Encoding * 386 ************/ 387 388 enum uint32_t LZMA_PRESET_DEFAULT = 6; 389 390 enum uint32_t LZMA_PRESET_LEVEL_MASK = 0x1F; 391 392 enum uint32_t LZMA_PRESET_EXTREME = 1 << 31; 393 394 struct lzma_mt 395 { 396 uint32_t flags; 397 398 uint32_t threads; 399 400 uint64_t block_size; 401 402 uint32_t timeout; 403 404 uint32_t preset; 405 406 const lzma_filter* filters; 407 408 lzma_check check; 409 410 lzma_reserved_enum reserved_enum1; 411 lzma_reserved_enum reserved_enum2; 412 lzma_reserved_enum reserved_enum3; 413 uint32_t reserved_int1; 414 uint32_t reserved_int2; 415 uint32_t reserved_int3; 416 uint32_t reserved_int4; 417 uint64_t reserved_int5; 418 uint64_t reserved_int6; 419 uint64_t reserved_int7; 420 uint64_t reserved_int8; 421 void* reserved_ptr1; 422 void* reserved_ptr2; 423 void* reserved_ptr3; 424 void* reserved_ptr4; 425 } 426 427 extern (C) uint64_t lzma_easy_encoder_memusage(uint32_t preset) 428 nothrow pure; 429 430 extern (C) uint64_t lzma_easy_decoder_memusage(uint32_t preset) 431 nothrow pure; 432 433 extern (C) lzma_ret lzma_easy_encoder( 434 lzma_stream* strm, uint32_t preset, lzma_check check) 435 nothrow; 436 437 extern (C) lzma_ret lzma_easy_buffer_encode( 438 uint32_t preset, lzma_check check, 439 const lzma_allocator* allocator, 440 const uint8_t* in_, size_t in_size, 441 uint8_t* out_, size_t* out_pos, size_t out_size) nothrow; 442 443 extern (C) lzma_ret lzma_stream_encoder(lzma_stream* strm, 444 const lzma_filter* filters, lzma_check check) 445 nothrow; 446 447 extern (C) uint64_t lzma_stream_encoder_mt_memusage( 448 const lzma_mt* options) nothrow pure; 449 450 extern (C) lzma_ret lzma_stream_encoder_mt( 451 lzma_stream* strm, const lzma_mt* options) 452 nothrow; 453 454 extern (C) lzma_ret lzma_alone_encoder( 455 lzma_stream* strm, const lzma_options_lzma* options) 456 nothrow; 457 458 extern (C) size_t lzma_stream_buffer_bound(size_t uncompressed_size) 459 nothrow; 460 461 extern (C) lzma_ret lzma_stream_buffer_encode( 462 lzma_filter* filters, lzma_check check, 463 const lzma_allocator* allocator, 464 const uint8_t* in_, size_t in_size, 465 uint8_t* out_, size_t* out_pos, size_t out_size) 466 nothrow; 467 468 /************ 469 * Decoding * 470 ************/ 471 enum uint32_t LZMA_TELL_NO_CHECK = 0x01; 472 473 enum uint32_t LZMA_TELL_UNSUPPORTED_CHECK = 0x02; 474 475 enum uint32_t LZMA_TELL_ANY_CHECK = 0x04; 476 477 enum uint32_t LZMA_IGNORE_CHECK = 0x10; 478 479 enum uint32_t LZMA_CONCATENATED = 0x08; 480 481 extern (C) lzma_ret lzma_stream_decoder( 482 lzma_stream* strm, uint64_t memlimit, uint32_t flags) 483 nothrow; 484 485 extern (C) lzma_ret lzma_auto_decoder( 486 lzma_stream* strm, uint64_t memlimit, uint32_t flags) 487 nothrow; 488 489 extern (C) lzma_ret lzma_alone_decoder( 490 lzma_stream* strm, uint64_t memlimit) 491 nothrow; 492 493 extern (C) lzma_ret lzma_stream_buffer_decode( 494 uint64_t* memlimit, uint32_t flags, 495 const lzma_allocator* allocator, 496 const uint8_t* in_, size_t* in_pos, size_t in_size, 497 uint8_t* out_, size_t* out_pos, size_t out_size) 498 nothrow; 499 500 // lzma/stream_flags.h 501 502 enum LZMA_STREAM_HEADER_SIZE = 12; 503 504 enum LZMA_BACKWARD_SIZE_MIN = 4; 505 enum LZMA_BACKWARD_SIZE_MAX = (LZMA_VLI_C(1) << 34); 506 507 struct lzma_stream_flags 508 { 509 uint32_t version_; 510 lzma_vli backward_size; 511 lzma_check check; 512 513 lzma_reserved_enum reserved_enum1; 514 lzma_reserved_enum reserved_enum2; 515 lzma_reserved_enum reserved_enum3; 516 lzma_reserved_enum reserved_enum4; 517 lzma_bool reserved_bool1; 518 lzma_bool reserved_bool2; 519 lzma_bool reserved_bool3; 520 lzma_bool reserved_bool4; 521 lzma_bool reserved_bool5; 522 lzma_bool reserved_bool6; 523 lzma_bool reserved_bool7; 524 lzma_bool reserved_bool8; 525 uint32_t reserved_int1; 526 uint32_t reserved_int2; 527 } 528 529 extern (C) lzma_ret lzma_stream_header_encode( 530 const lzma_stream_flags* options, uint8_t* out_) 531 nothrow; 532 533 extern (C) lzma_ret lzma_stream_footer_encode( 534 const lzma_stream_flags* options, uint8_t* out_) 535 nothrow; 536 537 extern (C) lzma_ret lzma_stream_header_decode( 538 lzma_stream_flags* options, const uint8_t* in_) 539 nothrow; 540 541 extern (C) lzma_ret lzma_stream_footer_decode( 542 lzma_stream_flags* options, const uint8_t* in_) 543 nothrow; 544 545 extern (C) lzma_ret lzma_stream_flags_compare( 546 const lzma_stream_flags* a, const lzma_stream_flags* b) 547 nothrow pure; 548 549 // lzma/block.h 550 551 enum LZMA_BLOCK_HEADER_SIZE_MIN = 8; 552 enum LZMA_BLOCK_HEADER_SIZE_MAX = 1024; 553 554 struct lzma_block 555 { 556 uint32_t version_; 557 558 uint32_t header_size; 559 560 lzma_check check; 561 562 lzma_vli compressed_size; 563 564 lzma_vli uncompressed_size; 565 566 lzma_filter* filters; 567 568 uint8_t[LZMA_CHECK_SIZE_MAX] raw_check; 569 570 void* reserved_ptr1; 571 void* reserved_ptr2; 572 void* reserved_ptr3; 573 uint32_t reserved_int1; 574 uint32_t reserved_int2; 575 lzma_vli reserved_int3; 576 lzma_vli reserved_int4; 577 lzma_vli reserved_int5; 578 lzma_vli reserved_int6; 579 lzma_vli reserved_int7; 580 lzma_vli reserved_int8; 581 lzma_reserved_enum reserved_enum1; 582 lzma_reserved_enum reserved_enum2; 583 lzma_reserved_enum reserved_enum3; 584 lzma_reserved_enum reserved_enum4; 585 586 lzma_bool ignore_check; 587 588 lzma_bool reserved_bool2; 589 lzma_bool reserved_bool3; 590 lzma_bool reserved_bool4; 591 lzma_bool reserved_bool5; 592 lzma_bool reserved_bool6; 593 lzma_bool reserved_bool7; 594 lzma_bool reserved_bool8; 595 } 596 597 uint32_t lzma_block_header_size_decode(B)(B b) 598 { 599 return (b + 1) * 4; 600 } 601 602 extern (C) lzma_ret lzma_block_header_size(lzma_block* block) 603 nothrow; 604 605 extern (C) lzma_ret lzma_block_header_encode( 606 const lzma_block* block, uint8_t* out_) 607 nothrow; 608 609 extern (C) lzma_ret lzma_block_header_decode(lzma_block* block, 610 const lzma_allocator* allocator, const uint8_t* in_) 611 nothrow; 612 613 extern (C) lzma_ret lzma_block_compressed_size( 614 lzma_block* block, lzma_vli unpadded_size) 615 nothrow; 616 617 extern (C) lzma_vli lzma_block_unpadded_size(const lzma_block* block) 618 nothrow pure; 619 620 extern (C) lzma_vli lzma_block_total_size(const lzma_block* block) 621 nothrow pure; 622 623 extern (C) lzma_ret lzma_block_encoder( 624 lzma_stream* strm, lzma_block* block) 625 nothrow; 626 627 extern (C) lzma_ret lzma_block_decoder( 628 lzma_stream* strm, lzma_block* block) 629 nothrow; 630 631 extern (C) size_t lzma_block_buffer_bound(size_t uncompressed_size) 632 nothrow; 633 634 extern (C) lzma_ret lzma_block_buffer_encode( 635 lzma_block* block, const lzma_allocator* allocator, 636 const uint8_t* in_, size_t in_size, 637 uint8_t* out_, size_t* out_pos, size_t out_size) 638 nothrow; 639 640 extern (C) lzma_ret lzma_block_uncomp_encode(lzma_block* block, 641 const uint8_t* in_, size_t in_size, 642 uint8_t* out_, size_t* out_pos, size_t out_size) 643 nothrow; 644 645 extern (C) lzma_ret lzma_block_buffer_decode( 646 lzma_block* block, const lzma_allocator* allocator, 647 const uint8_t* in_, size_t* in_pos, size_t in_size, 648 uint8_t* out_, size_t* out_pos, size_t out_size) 649 nothrow; 650 651 // lzma/index.h 652 653 struct lzma_index; 654 655 struct lzma_index_iter_stream 656 { 657 const lzma_stream_flags* flags; 658 659 const void* reserved_ptr1; 660 const void* reserved_ptr2; 661 const void* reserved_ptr3; 662 663 lzma_vli number; 664 665 lzma_vli block_count; 666 667 lzma_vli compressed_offset; 668 669 lzma_vli uncompressed_offset; 670 671 lzma_vli compressed_size; 672 673 lzma_vli uncompressed_size; 674 675 lzma_vli padding; 676 677 lzma_vli reserved_vli1; 678 lzma_vli reserved_vli2; 679 lzma_vli reserved_vli3; 680 lzma_vli reserved_vli4; 681 } 682 683 struct lzma_index_iter_block 684 { 685 lzma_vli number_in_file; 686 687 lzma_vli compressed_file_offset; 688 689 lzma_vli uncompressed_file_offset; 690 691 lzma_vli number_in_stream; 692 693 lzma_vli compressed_stream_offset; 694 695 lzma_vli uncompressed_stream_offset; 696 697 lzma_vli uncompressed_size; 698 699 lzma_vli unpadded_size; 700 701 lzma_vli total_size; 702 703 lzma_vli reserved_vli1; 704 lzma_vli reserved_vli2; 705 lzma_vli reserved_vli3; 706 lzma_vli reserved_vli4; 707 708 const void* reserved_ptr1; 709 const void* reserved_ptr2; 710 const void* reserved_ptr3; 711 const void* reserved_ptr4; 712 } 713 714 union lzma_index_iter_internal 715 { 716 const void* p; 717 size_t s; 718 lzma_vli v; 719 } 720 721 struct lzma_index_iter 722 { 723 lzma_index_iter_stream stream; 724 lzma_index_iter_block block; 725 lzma_index_iter_internal[6] internal; 726 } 727 728 enum lzma_index_iter_mode 729 { 730 LZMA_INDEX_ITER_ANY = 0, 731 732 LZMA_INDEX_ITER_STREAM = 1, 733 734 LZMA_INDEX_ITER_BLOCK = 2, 735 736 LZMA_INDEX_ITER_NONEMPTY_BLOCK = 3 737 } 738 739 extern (C) uint64_t lzma_index_memusage( 740 lzma_vli streams, lzma_vli blocks) nothrow; 741 742 extern (C) uint64_t lzma_index_memused(const lzma_index* i) 743 nothrow; 744 745 extern (C) lzma_index* lzma_index_init(const lzma_allocator* allocator) 746 nothrow; 747 748 extern (C) void lzma_index_end( 749 lzma_index* i, const lzma_allocator* allocator) nothrow; 750 751 extern (C) lzma_ret lzma_index_append( 752 lzma_index* i, const lzma_allocator* allocator, 753 lzma_vli unpadded_size, lzma_vli uncompressed_size) 754 nothrow; 755 756 extern (C) lzma_ret lzma_index_stream_flags( 757 lzma_index* i, const lzma_stream_flags* stream_flags) 758 nothrow; 759 760 extern (C) uint32_t lzma_index_checks(const lzma_index* i) 761 nothrow pure; 762 763 extern (C) lzma_ret lzma_index_stream_padding( 764 lzma_index* i, lzma_vli stream_padding) 765 nothrow; 766 767 extern (C) lzma_vli lzma_index_stream_count(const lzma_index* i) 768 nothrow pure; 769 770 extern (C) lzma_vli lzma_index_block_count(const lzma_index* i) 771 nothrow pure; 772 773 extern (C) lzma_vli lzma_index_size(const lzma_index* i) 774 nothrow pure; 775 776 extern (C) lzma_vli lzma_index_stream_size(const lzma_index* i) 777 nothrow pure; 778 779 extern (C) lzma_vli lzma_index_total_size(const lzma_index* i) 780 nothrow pure; 781 782 extern (C) lzma_vli lzma_index_file_size(const lzma_index* i) 783 nothrow pure; 784 785 extern (C) lzma_vli lzma_index_uncompressed_size(const lzma_index* i) 786 nothrow pure; 787 788 extern (C) void lzma_index_iter_init( 789 lzma_index_iter* iter, const lzma_index* i) nothrow; 790 791 extern (C) void lzma_index_iter_rewind(lzma_index_iter* iter) 792 nothrow; 793 794 extern (C) lzma_bool lzma_index_iter_next( 795 lzma_index_iter* iter, lzma_index_iter_mode mode) 796 nothrow; 797 798 extern (C) lzma_bool lzma_index_iter_locate( 799 lzma_index_iter* iter, lzma_vli target) nothrow; 800 801 extern (C) lzma_ret lzma_index_cat(lzma_index* dest, lzma_index* src, 802 const lzma_allocator* allocator) 803 nothrow; 804 805 extern (C) lzma_index* lzma_index_dup( 806 const lzma_index* i, const lzma_allocator* allocator) 807 nothrow; 808 809 extern (C) lzma_ret lzma_index_encoder( 810 lzma_stream* strm, const lzma_index* i) 811 nothrow; 812 813 extern (C) lzma_ret lzma_index_decoder( 814 lzma_stream* strm, lzma_index** i, uint64_t memlimit) 815 nothrow; 816 817 extern (C) lzma_ret lzma_index_buffer_encode(const lzma_index* i, 818 uint8_t* out_, size_t* out_pos, size_t out_size) nothrow; 819 820 extern (C) lzma_ret lzma_index_buffer_decode(lzma_index** i, 821 uint64_t* memlimit, const lzma_allocator* allocator, 822 const uint8_t* in_, size_t* in_pos, size_t in_size) 823 nothrow; 824 825 // lzma/index_hash.h 826 827 struct lzma_index_hash; 828 829 extern (C) lzma_index_hash* lzma_index_hash_init( 830 lzma_index_hash* index_hash, const lzma_allocator* allocator) 831 nothrow; 832 833 extern (C) void lzma_index_hash_end( 834 lzma_index_hash* index_hash, const lzma_allocator* allocator) 835 nothrow; 836 837 extern (C) lzma_ret lzma_index_hash_append(lzma_index_hash* index_hash, 838 lzma_vli unpadded_size, lzma_vli uncompressed_size) 839 nothrow; 840 841 extern (C) lzma_ret lzma_index_hash_decode(lzma_index_hash* index_hash, 842 const uint8_t* in_, size_t* in_pos, size_t in_size) 843 nothrow; 844 845 extern (C) lzma_vli lzma_index_hash_size( 846 const lzma_index_hash* index_hash) 847 nothrow pure; 848 849 // lzma/hardware.h 850 851 extern (C) uint64_t lzma_physmem() nothrow; 852 853 extern (C) uint32_t lzma_cputhreads() nothrow;