ARPDAS_QNX6 1.0
|
00001 #ifndef CIS_H_INCLUDED 00002 #define CIS_H_INCLUDED 00003 // This is the internal header file for cis.c 00004 #include "cmdalgo.h" // defines IOFUNC_ATTR_T 00005 00006 /* These defs must preceed the following includes: */ 00007 struct ocb; 00008 struct ioattr_s; 00009 // Define IOFUNC_OCB_T to our local definition. 00010 // RESMGR_OCB_T gets defined to IOFUNC_OCB_T in <sys/iofunc.h> 00011 #define IOFUNC_OCB_T struct ocb 00012 #define IOFUNC_ATTR_T struct ioattr_s 00013 #define THREAD_POOL_PARAM_T dispatch_context_t 00014 00015 #include <sys/iofunc.h> 00016 #include <sys/dispatch.h> 00017 00018 #define CMD_MAX_COMMAND_OUT 160 // Maximum command message output length 00019 #define CMD_MAX_COMMAND_IN 300 // Maximum command message input length 00020 00021 typedef struct command_out_s { 00022 struct command_out_s *next; 00023 int ref_count; 00024 char command[CMD_MAX_COMMAND_OUT]; 00025 int cmdlen; 00026 } command_out_t; 00027 00028 typedef struct ocb { 00029 iofunc_ocb_t hdr; 00030 command_out_t *next_command; 00031 struct ocb *next_ocb; // for blocked list 00032 int rcvid; 00033 int nbytes_requested; 00034 } ocb_t; 00035 00036 /* IOFUNC_ATTR_T extended to provide blocked-ocb-list 00037 for each mountpoint */ 00038 typedef struct ioattr_s { 00039 iofunc_attr_t attr; 00040 iofunc_notify_t notify[3]; /* notification list used by iofunc_notify*() */ 00041 ocb_t *blocked; 00042 command_out_t *first_cmd; 00043 command_out_t *last_cmd; 00044 struct ioattr_s *next; 00045 char *nodename; 00046 } ioattr_t; 00047 00048 00049 extern IOFUNC_ATTR_T *cis_setup_rdr( char *node ); 00050 00051 #endif /* CIS_H_INCLUDED */