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;
|
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,
|
const struct b_file_info *file_info,
|
||||||
struct ec3_vnode *out);
|
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
|
#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,
|
.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(
|
static enum ec3_status load_vnode(
|
||||||
struct ec3_volume *volume,
|
struct ec3_volume *volume,
|
||||||
size_t id,
|
size_t id,
|
||||||
@@ -507,7 +485,7 @@ enum ec3_status ec3_volume_get_vnode(
|
|||||||
return EC3_ERR_IO_FAILURE;
|
return EC3_ERR_IO_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
decode_vnode(&vnode, out);
|
ec3_vnode_decode(&vnode, out);
|
||||||
return EC3_SUCCESS;
|
return EC3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,13 +494,15 @@ enum ec3_status ec3_volume_put_vnode(
|
|||||||
struct ec3_volume *volume,
|
struct ec3_volume *volume,
|
||||||
const struct ec3_vnode *vnode)
|
const struct ec3_vnode *vnode)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
printf("put(%zu, %x%x)\n",
|
printf("put(%zu, %x%x)\n",
|
||||||
vnode->v_id,
|
vnode->v_id,
|
||||||
vnode->v_data[0],
|
vnode->v_data[0],
|
||||||
vnode->v_data[1]);
|
vnode->v_data[1]);
|
||||||
|
#endif
|
||||||
|
|
||||||
struct ec3_bin_vnode bin_vnode;
|
struct ec3_bin_vnode bin_vnode;
|
||||||
encode_vnode(vnode, &bin_vnode);
|
ec3_vnode_encode(vnode, &bin_vnode);
|
||||||
int err = b_tree_put(
|
int err = b_tree_put(
|
||||||
&volume->v_vnode_table,
|
&volume->v_vnode_table,
|
||||||
(b_tree_node_entry *)&bin_vnode);
|
(b_tree_node_entry *)&bin_vnode);
|
||||||
|
|||||||
Reference in New Issue
Block a user