--- sio.h 2002/11/14 09:10:53 1.5
+++ sio.h 2002/11/14 15:56:10 1.6
@@ -33,15 +33,17 @@
typedef enum {
SIO_OK,
+ SIO_TRUE = SIO_OK,
+ SIO_FALSE,
SIO_ERR_ARG,
SIO_ERR_MEM,
SIO_ERR_EOF,
SIO_ERR_SYS,
SIO_ERR_INT,
- SIO_UPSTREAM,
- SIO_DOWNSTREAM,
- SIO_XSTREAM,
- SIO_LOOP
+ SIO_SCHED_UP,
+ SIO_SCHED_DOWN,
+ SIO_SCHED_CROSS,
+ SIO_SCHED_LOOP
} sio_rc_t;
typedef enum {
@@ -83,9 +85,35 @@
sio_rc_t sio_push (sio_t *sio);
-int sio_flag (sio_t *sio, sio_flag_t fl);
-int sio_clearflag (sio_t *sio, sio_flag_t fl);
+sio_rc_t sio_flag (sio_t *sio, sio_flag_t fl);
+sio_rc_t sio_clearflag (sio_t *sio, sio_flag_t fl);
const char *sio_error (sio_rc_t rc);
+/*
+ * data internal to modules that should not be exposed to
+ * applications
+ */
+
+struct sio_module_st {
+ const char *name;
+ sio_rc_t (*init) (sio_t *, void **);
+ sio_rc_t (*configure) (sio_t *, void *, void *, void *);
+ sio_rc_t (*cleanup) (sio_t *, void *);
+ sio_rc_t (*openr) (sio_t *, al_t *, void *);
+ sio_rc_t (*closer) (sio_t *, al_t *, void *);
+ sio_rc_t (*openw) (sio_t *, al_t *, void *);
+ sio_rc_t (*closew) (sio_t *, al_t *, void *);
+ sio_rc_t (*input) (sio_t *, al_t *, void *);
+ sio_rc_t (*output) (sio_t *, al_t *, void *);
+};
+
+typedef enum {
+ SIO_LN_DATA,
+ SIO_LN_ERROR,
+ SIO_LN_EOF
+} sio_labelnum_t;
+
+sio_rc_t sio_label(sio_t *, sio_labelnum_t, al_label_t *);
+
#endif /* __SIO_H__ */
|