Added several file server requests
Added server-side pipes and consoles
diff --git a/include/server/object.h b/include/server/object.h
index d55b8101..f0c4938 100644
--- a/include/server/object.h
+++ b/include/server/object.h
@@ -34,6 +34,12 @@
int (*signaled)(struct object *,struct thread *);
/* wait satisfied; return 1 if abandoned */
int (*satisfied)(struct object *,struct thread *);
+ /* return a Unix fd that can be used to read from the object */
+ int (*get_read_fd)(struct object *);
+ /* return a Unix fd that can be used to write to the object */
+ int (*get_write_fd)(struct object *);
+ /* flush the object buffers */
+ int (*flush)(struct object *);
/* destroy on refcount == 0 */
void (*destroy)(struct object *);
};
@@ -57,6 +63,11 @@
extern struct object *grab_object( void *obj );
extern void release_object( void *obj );
extern struct object *find_object( const char *name );
+extern int no_satisfied( struct object *obj, struct thread *thread );
+extern int no_read_fd( struct object *obj );
+extern int no_write_fd( struct object *obj );
+extern int no_flush( struct object *obj );
+extern void default_select_event( int fd, int event, void *private );
/* request handlers */
@@ -161,7 +172,22 @@
extern struct object *create_file( int fd );
extern int file_get_unix_handle( int handle, unsigned int access );
+extern int set_file_pointer( int handle, int *low, int *high, int whence );
+extern int truncate_file( int handle );
extern int get_file_info( int handle, struct get_file_info_reply *reply );
+extern void file_set_error(void);
+
+
+/* pipe functions */
+
+extern int create_pipe( struct object *obj[2] );
+
+
+/* console functions */
+
+extern int create_console( int fd, struct object *obj[2] );
+extern int set_console_fd( int handle, int fd );
+
extern int debug_level;