volume: move vnode encode/decode functions to vnode.c

This commit is contained in:
2025-06-23 13:44:16 +01:00
parent 10231ecb3e
commit d0d7eb05ac
3 changed files with 33 additions and 24 deletions

View File

@@ -18,3 +18,25 @@ enum ec3_status ec3_vnode_from_file_info(
return EC3_SUCCESS;
}
void ec3_vnode_encode(const struct ec3_vnode *in, struct ec3_bin_vnode *out)
{
out->n_id = b_i32_htob(in->v_id);
out->n_ctime = b_i32_htob(in->v_ctime);
out->n_mtime = b_i32_htob(in->v_mtime);
out->n_mode = b_i16_htob(in->v_mode);
out->n_uid = b_i16_htob(in->v_uid);
out->n_gid = b_i16_htob(in->v_gid);
memcpy(out->n_data, in->v_data, sizeof in->v_data);
}
void ec3_vnode_decode(const struct ec3_bin_vnode *in, struct ec3_vnode *out)
{
out->v_id = b_i32_btoh(in->n_id);
out->v_ctime = b_i32_btoh(in->n_ctime);
out->v_mtime = b_i32_btoh(in->n_mtime);
out->v_mode = b_i16_btoh(in->n_mode);
out->v_uid = b_i16_btoh(in->n_uid);
out->v_gid = b_i16_btoh(in->n_gid);
memcpy(out->v_data, in->n_data, sizeof in->n_data);
}

View File

@@ -18,4 +18,11 @@ extern enum ec3_status ec3_vnode_from_file_info(
const struct b_file_info *file_info,
struct ec3_vnode *out);
extern void ec3_vnode_encode(
const struct ec3_vnode *in,
struct ec3_bin_vnode *out);
extern void ec3_vnode_decode(
const struct ec3_bin_vnode *in,
struct ec3_vnode *out);
#endif

View File

@@ -359,28 +359,6 @@ static const struct b_tree_ops vnode_table_ops = {
.entry_compare = entry_compare,
};
static void encode_vnode(const struct ec3_vnode *in, struct ec3_bin_vnode *out)
{
out->n_id = b_i32_htob(in->v_id);
out->n_ctime = b_i32_htob(in->v_ctime);
out->n_mtime = b_i32_htob(in->v_mtime);
out->n_mode = b_i16_htob(in->v_mode);
out->n_uid = b_i16_htob(in->v_uid);
out->n_gid = b_i16_htob(in->v_gid);
memcpy(out->n_data, in->v_data, sizeof in->v_data);
}
static void decode_vnode(const struct ec3_bin_vnode *in, struct ec3_vnode *out)
{
out->v_id = b_i32_btoh(in->n_id);
out->v_ctime = b_i32_btoh(in->n_ctime);
out->v_mtime = b_i32_btoh(in->n_mtime);
out->v_mode = b_i16_btoh(in->n_mode);
out->v_uid = b_i16_btoh(in->n_uid);
out->v_gid = b_i16_btoh(in->n_gid);
memcpy(out->v_data, in->n_data, sizeof in->n_data);
}
static enum ec3_status load_vnode(
struct ec3_volume *volume,
size_t id,
@@ -507,7 +485,7 @@ enum ec3_status ec3_volume_get_vnode(
return EC3_ERR_IO_FAILURE;
}
decode_vnode(&vnode, out);
ec3_vnode_decode(&vnode, out);
return EC3_SUCCESS;
}
@@ -516,13 +494,15 @@ enum ec3_status ec3_volume_put_vnode(
struct ec3_volume *volume,
const struct ec3_vnode *vnode)
{
#if 0
printf("put(%zu, %x%x)\n",
vnode->v_id,
vnode->v_data[0],
vnode->v_data[1]);
#endif
struct ec3_bin_vnode bin_vnode;
encode_vnode(vnode, &bin_vnode);
ec3_vnode_encode(vnode, &bin_vnode);
int err = b_tree_put(
&volume->v_vnode_table,
(b_tree_node_entry *)&bin_vnode);