/* Reference-counted blocks of memory, used for passing data in and out of
* storage backends and in other places. */
typedef struct {
gint refcount;
/* Reference-counted blocks of memory, used for passing data in and out of
* storage backends and in other places. */
typedef struct {
gint refcount;
gchar *name; /* Descriptive name for the filesystem */
GHashTable *inodes; /* Cached inodes */
uint64_t next_inum; /* Next available inode for allocation */
gchar *name; /* Descriptive name for the filesystem */
GHashTable *inodes; /* Cached inodes */
uint64_t next_inum; /* Next available inode for allocation */
} BlueSkyBlock;
BlueSkyFS *bluesky_new_fs(gchar *name);
int64_t bluesky_get_current_time();
void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime);
uint64_t bluesky_fs_alloc_inode(BlueSkyFS *fs);
} BlueSkyBlock;
BlueSkyFS *bluesky_new_fs(gchar *name);
int64_t bluesky_get_current_time();
void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime);
uint64_t bluesky_fs_alloc_inode(BlueSkyFS *fs);
BlueSkyInode *bluesky_get_inode(BlueSkyFS *fs, uint64_t inum);
void bluesky_insert_inode(BlueSkyFS *fs, BlueSkyInode *inode);
BlueSkyInode *bluesky_get_inode(BlueSkyFS *fs, uint64_t inum);
void bluesky_insert_inode(BlueSkyFS *fs, BlueSkyInode *inode);
void bluesky_directory_dump(BlueSkyInode *dir);
void bluesky_block_touch(BlueSkyInode *inode, uint64_t i);
void bluesky_directory_dump(BlueSkyInode *dir);
void bluesky_block_touch(BlueSkyInode *inode, uint64_t i);
void bluesky_file_truncate(BlueSkyInode *inode, uint64_t size);
void bluesky_file_write(BlueSkyInode *inode, uint64_t offset,
const char *data, gint len);
void bluesky_file_read(BlueSkyInode *inode, uint64_t offset,
char *buf, gint len);
void bluesky_file_truncate(BlueSkyInode *inode, uint64_t size);
void bluesky_file_write(BlueSkyInode *inode, uint64_t offset,
const char *data, gint len);
void bluesky_file_read(BlueSkyInode *inode, uint64_t offset,
char *buf, gint len);
+struct S3Store *s3store_new();
+BlueSkyRCStr *s3store_get(struct S3Store *store, const gchar *key);
+void s3store_put(struct S3Store *store, const gchar *key, BlueSkyRCStr *val);
+
+#ifdef __cplusplus
+}
+#endif
+