9ns: Add CCTL_DEBUG
[akaros.git] / kern / include / ros / fs.h
index c2debed..453d6bf 100644 (file)
@@ -73,8 +73,19 @@ struct kstat {
 #define F_SETFL                4       /* Set file status flags */
 #define F_SYNC         101     /* fsync() */
 #define F_ADVISE       102     /* posix_fadvise{,64}() */
+#define F_CHANCTL_BASE                 1000
+
+/* We don't need a GET_FL.  The caller has the chan / FID.  If you have the
+ * chan, you already have the flags.  It's not like when you have an FD and
+ * don't (yet) have the Unix struct file. */
+#define CCTL_SET_FL                            (F_CHANCTL_BASE + 0)
+#define CCTL_SYNC                              (F_CHANCTL_BASE + 1)
+#define CCTL_DEBUG                             (F_CHANCTL_BASE + 2)
+
 /* For F_[GET|SET]FD */
 #define FD_CLOEXEC     1
+#define FD_VALID_FLAGS (FD_CLOEXEC)
+
 /* Advise to `posix_fadvise'.  */
 #define POSIX_FADV_NORMAL              0       /* No further special treatment */
 #define POSIX_FADV_RANDOM              1       /* Expect random page references */
@@ -85,8 +96,12 @@ struct kstat {
 
 /* TODO: have userpsace use our stuff from bits/stats.h */
 #ifdef ROS_KERNEL
-#define stat kstat
-#define dirent kdirent
+
+/* Access mode bits (unistd.h) */
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
 
 /* File creation modes (access controls) */
 #define S_IRWXU 00700  /* user (file owner) has read, write and execute perms */