ARPDAS_QNX6 1.0
cis.h
Go to the documentation of this file.
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 */
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines