1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
/// @file WASM shim for libarchive's archive.h
/// Provides just enough for headers to compile; tarfile.cc is excluded from WASM.
#pragma once
#include <stddef.h>
#include <stdint.h>

struct archive;
struct archive_entry;

typedef int64_t la_int64_t;
typedef size_t la_ssize_t;

#define ARCHIVE_OK 0
#define ARCHIVE_EOF 1
#define ARCHIVE_WARN (-20)
#define ARCHIVE_FAILED (-25)
#define ARCHIVE_FATAL (-30)
#define ARCHIVE_FORMAT_TAR 0x30000

static inline struct archive * archive_read_new(void)
{
    return nullptr;
}
static inline void archive_read_free(struct archive *) {}
static inline int archive_read_support_filter_all(struct archive *)
{
    return 0;
}
static inline int archive_read_support_format_all(struct archive *)
{
    return 0;
}
static inline int archive_read_next_header(struct archive *, struct archive_entry **)
{
    return ARCHIVE_EOF;
}
static inline la_ssize_t archive_read_data(struct archive *, void *, size_t)
{
    return 0;
}
static inline int archive_read_open_filename(struct archive *, const char *, size_t)
{
    return ARCHIVE_FATAL;
}
static inline const char * archive_error_string(struct archive *)
{
    return "";
}
static inline int archive_filter_count(struct archive *)
{
    return 0;
}
static inline struct archive * archive_write_new(void)
{
    return nullptr;
}
static inline int archive_write_free(struct archive *)
{
    return 0;
}
static inline int archive_write_close(struct archive *)
{
    return 0;
}
static inline int archive_write_add_filter_by_name(struct archive *, const char *)
{
    return 0;
}
static inline int archive_write_set_format_raw(struct archive *)
{
    return 0;
}
static inline int archive_write_set_filter_option(struct archive *, const char *, const char *, const char *)
{
    return 0;
}
static inline int archive_write_set_bytes_per_block(struct archive *, int)
{
    return 0;
}
static inline int archive_write_set_bytes_in_last_block(struct archive *, int)
{
    return 0;
}
static inline la_ssize_t archive_write_data(struct archive *, const void *, size_t)
{
    return 0;
}
static inline int archive_write_open(struct archive *, void *, void *, void *, void *)
{
    return 0;
}
static inline int archive_write_header(struct archive *, struct archive_entry *)
{
    return 0;
}
static inline int archive_errno(struct archive *)
{
    return 0;
}
static inline struct archive_entry * archive_entry_new(void)
{
    return nullptr;
}
static inline void archive_entry_free(struct archive_entry *) {}
static inline void archive_entry_set_filetype(struct archive_entry *, unsigned int) {}