New BlueSky interface for implementing readdir.
[bluesky.git] / bluesky / bluesky.h
index dbb69bb..9808434 100644 (file)
 extern "C" {
 #endif
 
+/* BlueSky status and error codes.  Various frontends should translate these to
+ * the appropriate error code for whatever protocol they implement. */
+typedef enum {
+    BSTATUS_OK = 0,             /* No error */
+    BSTATUS_IOERR,              /* I/O error of some form */
+    BSTATUS_NOENT,              /* File does not exist */
+} BlueSkyStatus;
+
 void bluesky_init(void);
 
 gchar *bluesky_lowercase(const gchar *s);
@@ -202,6 +210,7 @@ void bluesky_insert_inode(BlueSkyFS *fs, BlueSkyInode *inode);
 void bluesky_dirent_destroy(gpointer dirent);
 uint64_t bluesky_directory_lookup(BlueSkyInode *inode, gchar *name);
 uint64_t bluesky_directory_ilookup(BlueSkyInode *inode, gchar *name);
+BlueSkyDirent *bluesky_directory_read(BlueSkyInode *dir, uint32_t cookie);
 gboolean bluesky_directory_insert(BlueSkyInode *dir, const gchar *name,
                                   uint64_t inum);
 void bluesky_directory_dump(BlueSkyInode *dir);