*/
struct read_memory_data {
- unsigned char *start;
- unsigned char *p;
- unsigned char *end;
+ const unsigned char *start;
+ const unsigned char *p;
+ const unsigned char *end;
size_t read_size;
size_t copy_buff_size;
size_t copy_buff_offset;
static int64_t memory_read_seek(struct archive *, void *, int64_t request, int whence);
static int64_t memory_read_skip(struct archive *, void *, int64_t request);
static ssize_t memory_read(struct archive *, void *, const void **buff);
-static int read_open_memory_internal(struct archive *a, void *buff,
+static int read_open_memory_internal(struct archive *a, const void *buff,
size_t size, size_t read_size, int fullapi);
int
-read_open_memory(struct archive *a, void *buff, size_t size, size_t read_size)
+read_open_memory(struct archive *a, const void *buff, size_t size, size_t read_size)
{
return read_open_memory_internal(a, buff, size, read_size, 2);
}
* that internals work correctly with just the minimal entry points.
*/
int
-read_open_memory_minimal(struct archive *a, void *buff, size_t size, size_t read_size)
+read_open_memory_minimal(struct archive *a, const void *buff, size_t size, size_t read_size)
{
return read_open_memory_internal(a, buff, size, read_size, 1);
}
* Include a seek callback as well.
*/
int
-read_open_memory_seek(struct archive *a, void *buff, size_t size, size_t read_size)
+read_open_memory_seek(struct archive *a, const void *buff, size_t size, size_t read_size)
{
return read_open_memory_internal(a, buff, size, read_size, 3);
}
static int
-read_open_memory_internal(struct archive *a, void *buff,
+read_open_memory_internal(struct archive *a, const void *buff,
size_t size, size_t read_size, int level)
{
struct read_memory_data *mine;
#include "archive_entry.h"
/* Special customized read-from-memory interface. */
-int read_open_memory(struct archive *, void *, size_t, size_t);
+int read_open_memory(struct archive *, const void *, size_t, size_t);
/* _minimal version exercises a slightly different set of libarchive APIs. */
-int read_open_memory_minimal(struct archive *, void *, size_t, size_t);
+int read_open_memory_minimal(struct archive *, const void *, size_t, size_t);
/* _seek version produces a seekable file. */
-int read_open_memory_seek(struct archive *, void *, size_t, size_t);
+int read_open_memory_seek(struct archive *, const void *, size_t, size_t);
/* Versions of above that accept an archive argument for additional info. */
#define assertA(e) assertion_assert(__FILE__, __LINE__, (e), #e, (a))