replace ec3_reader and ec3_writer with a unified image and tag io interface

This commit is contained in:
2025-02-23 20:52:59 +00:00
parent 2e4ee5c1b6
commit 9aeae388a4
32 changed files with 3458 additions and 264 deletions

View File

@@ -1,7 +1,6 @@
#ifndef PIPELINE_H_
#define PIPELINE_H_
#include "cluster.h"
#include "status.h"
#include <blue/core/queue.h>
@@ -54,17 +53,7 @@ struct ec3_pipeline_stage_args {
};
struct ec3_pipeline {
FILE *p_target;
size_t p_target_base_offset;
size_t p_cluster_size;
unsigned int p_cluster_flags;
struct cluster_table p_cluster_table;
size_t p_next_cluster_id;
size_t p_data_offset;
void *p_read_buf;
b_queue p_stages;
};
@@ -72,30 +61,31 @@ extern enum ec3_status ec3_pipeline_create(
struct ec3_pipeline_stage_args stages[],
size_t nr_stages,
size_t cluster_size,
FILE *target,
size_t target_base_offset,
FILE *cluster_table,
size_t cluster_table_base_offset,
struct ec3_pipeline **out);
extern void ec3_pipeline_destroy(struct ec3_pipeline *p);
extern enum ec3_status ec3_pipeline_write_cluster(
extern enum ec3_status ec3_pipeline_encode_cluster(
struct ec3_pipeline *pipeline,
void *p,
size_t len,
size_t *bytes_written);
extern enum ec3_status ec3_pipeline_read_cluster(
void *in,
size_t in_len,
void *out,
size_t out_max,
size_t *out_len);
extern enum ec3_status ec3_pipeline_decode_cluster(
struct ec3_pipeline *pipeline,
void *p,
size_t cluster_id,
size_t *nr_read);
void *in,
size_t in_len,
void *out,
size_t out_max,
size_t *out_len);
#if 0
extern enum ec3_status ec3_pipeline_copy_all(
struct ec3_pipeline *dest,
struct cluster_table *clusters,
FILE *data);
#endif
extern size_t ec3_get_cluster_size(unsigned int v);
extern enum ec3_pipeline_stage_type_id
ec3_get_pipeline_stage_for_encryption_func(unsigned int func);
extern enum ec3_pipeline_stage_type_id