Diff for /libaitrpc/inc/aitrpc.h between versions 1.13 and 1.13.2.2

version 1.13, 2013/03/07 23:10:50 version 1.13.2.2, 2013/04/02 15:32:03
Line 62  SUCH DAMAGE. Line 62  SUCH DAMAGE.
 #include <aitsched.h>  #include <aitsched.h>
   
   
#define RPC_VERSION             5#define RPC_VERSION             6
 #define RPC_DEFPORT             2611  #define RPC_DEFPORT             2611
   
 /* RPC call request flags */  /* RPC call request flags */
Line 91  SUCH DAMAGE. Line 91  SUCH DAMAGE.
 typedef enum {  typedef enum {
         ok, error, no,                          /* for blob reply */          ok, error, no,                          /* for blob reply */
         get, set, unset                         /* for blob request */          get, set, unset                         /* for blob request */
} cmd_type_t;} blob_cmd_type_t;
   
   
 #define RPC_CALLBACK_CHECK_INPUT(x)     do { \  #define RPC_CALLBACK_CHECK_INPUT(x)     do { \
Line 107  typedef enum { Line 107  typedef enum {
 /* RPC session identification */  /* RPC session identification */
   
 typedef struct {  typedef struct {
        uint8_t             sess_version;#if BYTE_ORDER == LITTLE_ENDIAN
        uint32_t      sess_program;        uint16_t    sess_instance:8;
        uint8_t             sess_process;        uint16_t        sess_version:8;
} __packed rpc_sess_t;          /* size == 6 bytes */#endif
 #if BYTE_ORDER == BIG_ENDIAN
         uint16_t      sess_version:8;
         uint16_t        sess_instance:8;
 #endif
 } __packed rpc_sess_t;  /* size == 2 bytes */
   
   
 /* Server managment RPC functions ... */  /* Server managment RPC functions ... */
Line 137  struct tagRPCCall { Line 142  struct tagRPCCall {
         uint16_t        call_tag;          uint16_t        call_tag;
         uint16_t        call_argc;          uint16_t        call_argc;
         ait_val_t       call_argv[0];          ait_val_t       call_argv[0];
} __packed;                     /* size == 24 bytes */} __packed;                     /* size == 20 bytes */
 #define RPC_CHK_NOREPLY(x)      ((x)->call_req.flags & RPC_NOREPLY)  #define RPC_CHK_NOREPLY(x)      ((x)->call_req.flags & RPC_NOREPLY)
   
 /* Network BLOB packet - Header */  /* Network BLOB packet - Header */
Line 148  struct tagBLOBHdr { Line 153  struct tagBLOBHdr {
         uint32_t        hdr_var;          uint32_t        hdr_var;
         uint32_t        hdr_len;          uint32_t        hdr_len;
         uint32_t        hdr_ret;          uint32_t        hdr_ret;
         uint16_t        hdr_crc;  
         uint8_t         hdr_pad;          uint8_t         hdr_pad;
} __packed;                     /* size == 22 bytes */} __packed;                     /* size == 16 bytes */
   
 /* Network RPC client & server elements */  /* Network RPC client & server elements */
   
Line 296  int rpc_register_blobServices(rpc_srv_t * __restrict s Line 300  int rpc_register_blobServices(rpc_srv_t * __restrict s
 /*  /*
  * rpc_srv_initServer() - Init & create RPC Server   * rpc_srv_initServer() - Init & create RPC Server
  *   *
 * @regProgID = ProgramID for authentication & recognition * @InstID = Instance for authentication & recognition
 * @regProcID = ProcessID for authentication & recognition 
  * @concurentClients = Concurent clients at same time to this server   * @concurentClients = Concurent clients at same time to this server
  * @netBuf = Network buffer length (min:512 bytes), if =0 == BUFSIZ (also meaning max RPC packet)   * @netBuf = Network buffer length (min:512 bytes), if =0 == BUFSIZ (also meaning max RPC packet)
  * @csHost = Host name or address for bind server, if NULL any address   * @csHost = Host name or address for bind server, if NULL any address
Line 305  int rpc_register_blobServices(rpc_srv_t * __restrict s Line 308  int rpc_register_blobServices(rpc_srv_t * __restrict s
  * @proto = Protocol, if == 0 choose SOCK_STREAM   * @proto = Protocol, if == 0 choose SOCK_STREAM
  * return: NULL == error or !=NULL bind and created RPC server instance   * return: NULL == error or !=NULL bind and created RPC server instance
  */   */
rpc_srv_t *rpc_srv_initServer(unsigned int regProgID, unsigned char regProcID, rpc_srv_t *rpc_srv_initServer(unsigned char InstID, int concurentClients, int netBuf, 
                int concurentClients, int netBuf,  
                 const char *csHost, unsigned short Port, int proto);                  const char *csHost, unsigned short Port, int proto);
 /*  /*
  * rpc_srv_endServer() - Destroy RPC server, close all opened sockets and free resources   * rpc_srv_endServer() - Destroy RPC server, close all opened sockets and free resources
Line 521  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli, Line 523  inline int rpc_cli_getBLOB(rpc_cli_t * __restrict cli,
 /*  /*
  * rpc_cli_openClient() - Connect to RPC Server   * rpc_cli_openClient() - Connect to RPC Server
  *   *
 * @ProgID = ProgramID for RPC session request * @InstID = InstID for RPC session request
 * @ProcID = ProcessID for RPC session request 
  * @netBuf = Network buffer length (min:512 bytes), if =0 == BUFSIZ (also meaning max RPC packet)   * @netBuf = Network buffer length (min:512 bytes), if =0 == BUFSIZ (also meaning max RPC packet)
  * @csHost = Host name or IP address for bind server   * @csHost = Host name or IP address for bind server
  * @Port = Port for bind server, if Port == 0 default port is selected   * @Port = Port for bind server, if Port == 0 default port is selected
  * @proto = Protocol, if == 0 choose SOCK_STREAM   * @proto = Protocol, if == 0 choose SOCK_STREAM
  * return: NULL == error or !=NULL connection to RPC server established   * return: NULL == error or !=NULL connection to RPC server established
  */   */
rpc_cli_t *rpc_cli_openClient(unsigned int ProgID, unsigned char ProcID, int netBuf, rpc_cli_t *rpc_cli_openClient(unsigned char InstID, int netBuf, 
                 const char *csHost, unsigned short Port, int proto);                  const char *csHost, unsigned short Port, int proto);
 /*  /*
  * rpc_cli_closeClient() - Close connection to RPC server and free resources   * rpc_cli_closeClient() - Close connection to RPC server and free resources
Line 569  int rpc_pkt_Receive(int sock, int type, sockaddr_t * _ Line 570  int rpc_pkt_Receive(int sock, int type, sockaddr_t * _
  * @tag = Function tag for execution   * @tag = Function tag for execution
  * @vars = Function argument array of values, may be NULL   * @vars = Function argument array of values, may be NULL
  * @noreply = We not want RPC reply   * @noreply = We not want RPC reply
    * @nocrc = Without CRC calculation
  * return: -1 error or != -1 prepared bytes into packet   * return: -1 error or != -1 prepared bytes into packet
  */   */
 int rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_sess_t * __restrict sess,   int rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_sess_t * __restrict sess, 
                unsigned short tag, array_t * __restrict vars, int noreply);                unsigned short tag, array_t * __restrict vars, int noreply, int nocrc);
 /*  /*
  * rpc_pkt_Replay() - Decode RPC Replay packet   * rpc_pkt_Replay() - Decode RPC Replay packet
  *   *
Line 580  int rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_se Line 582  int rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_se
  * @sess = RPC session info   * @sess = RPC session info
  * @tag = Function tag   * @tag = Function tag
  * @vars = Function argument array of values, may be NULL   * @vars = Function argument array of values, may be NULL
    * @nocrc = Without CRC calculation
  * return: -1 error or != -1 return value from function   * return: -1 error or != -1 return value from function
  */   */
 int rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t * __restrict sess,   int rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t * __restrict sess, 
                unsigned short tag, array_t ** __restrict vars);                unsigned short tag, array_t ** __restrict vars, int nocrc);
 /*  /*
  * rpc_cli_execCall() - Execute RPC call   * rpc_cli_execCall() - Execute RPC call
  *   *

Removed from v.1.13  
changed lines
  Added in v.1.13.2.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>