volume: move vnode encode/decode functions to vnode.c
This commit is contained in:
22
src/vnode.c
22
src/vnode.c
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
28
src/volume.c
28
src/volume.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user