void bluesky_serialize_superblock(GString *out, BlueSkyFS *fs);
BlueSkyFS *bluesky_deserialize_superblock(const gchar *buf);
void bluesky_serialize_inode(GString *out, BlueSkyInode *inode);
void bluesky_serialize_superblock(GString *out, BlueSkyFS *fs);
BlueSkyFS *bluesky_deserialize_superblock(const gchar *buf);
void bluesky_serialize_inode(GString *out, BlueSkyInode *inode);
/* Storage layer. Requests can be performed asynchronously, so these objects
* help keep track of operations in progress. */
/* Storage layer. Requests can be performed asynchronously, so these objects
* help keep track of operations in progress. */
/* The abstraction layer for storage, allowing multiple implementations. */
typedef struct {
/* Create a new store instance and return a handle to it. */
/* The abstraction layer for storage, allowing multiple implementations. */
typedef struct {
/* Create a new store instance and return a handle to it. */
void bluesky_store_async_ref(BlueSkyStoreAsync *async);
void bluesky_store_async_unref(BlueSkyStoreAsync *async);
void bluesky_store_async_wait(BlueSkyStoreAsync *async);
void bluesky_store_async_ref(BlueSkyStoreAsync *async);
void bluesky_store_async_unref(BlueSkyStoreAsync *async);
void bluesky_store_async_wait(BlueSkyStoreAsync *async);
void bluesky_block_flush(BlueSkyFS *fs, BlueSkyBlock *block,
BlueSkyStoreAsync *barrier);
void bluesky_file_flush(BlueSkyInode *inode, BlueSkyStoreAsync *barrier);
void bluesky_block_flush(BlueSkyFS *fs, BlueSkyBlock *block,
BlueSkyStoreAsync *barrier);
void bluesky_file_flush(BlueSkyInode *inode, BlueSkyStoreAsync *barrier);