Coda Distributed File System
Classes | Macros | Typedefs
multi.h File Reference
#include <rpc2/rpc2.h>
#include <rpc2/se.h>
Include dependency graph for multi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  PARM
 
struct  arg_info
 

Macros

#define MAXSERVERS   100
 
#define ARG_MARSHALL(mode, type, name, object, howmany)
 
#define ARG_MARSHALL_BS(mode, type, name, object, howmany, maxbslen)
 
#define ARG_MARSHALL_ARRAY(mode, type, name, numelts, maxelts, object, howmany)
 
#define ARG_UNMARSHALL(name, object, ix)   (object) = name##_bufs[ix];
 
#define ARG_UNMARSHALL_BS(name, object, ix)
 
#define ARG_UNMARSHALL_ARRAY(name, numelts, object, ix)
 

Typedefs

typedef long RPC2_HandleResult_func(int HowMany, RPC2_Handle ConnList[], long offset, long rpcval,...)
 
typedef union PARM PARM
 
typedef struct arg_info ARG_INFO
 

Macro Definition Documentation

◆ ARG_MARSHALL

#define ARG_MARSHALL (   mode,
  type,
  name,
  object,
  howmany 
)
Value:
type *name##_ptrs[howmany] __attribute__((unused)); \
type name##_bufs[howmany]; \
{ \
memset(&name##_bufs, 0, sizeof(type) * howmany); \
for (unsigned int name##_local_i = 0; name##_local_i < howmany; \
name##_local_i++) { \
name##_ptrs[name##_local_i] = &name##_bufs[name##_local_i]; \
if (mode == IN_OUT_MODE) \
name##_bufs[name##_local_i] = (object); \
} \
}
dictionary unused
Definition: find_unused_symbols.py:92
name
Definition: pwdtopdbtool.py:40
void(* type)()
Definition: rp2main.c:424
@ IN_OUT_MODE
Definition: rpc2.h:566

◆ ARG_MARSHALL_ARRAY

#define ARG_MARSHALL_ARRAY (   mode,
  type,
  name,
  numelts,
  maxelts,
  object,
  howmany 
)
Value:
type *name##_ptrs[howmany]; \
type name##_bufs[howmany][maxelts]; /* maxelts must be a constant */ \
{ \
for (unsigned int name##_local_i = 0; name##_local_i < howmany; \
name##_local_i++) { \
name##_ptrs[name##_local_i] = name##_bufs[name##_local_i]; \
if (mode == IN_OUT_MODE) { \
for (unsigned int name##_local_j = 0; \
name##_local_j < numelts; name##_local_j++) \
name##_bufs[name##_local_i][name##_local_j] = \
(object)[name##_local_j]; \
} \
} \
}

◆ ARG_MARSHALL_BS

#define ARG_MARSHALL_BS (   mode,
  type,
  name,
  object,
  howmany,
  maxbslen 
)
Value:
type *name##_ptrs[howmany]; \
type name##_bufs[howmany]; \
char name##_data[maxbslen * howmany]; \
{ \
for (unsigned int name##_local_i = 0; name##_local_i < howmany; \
name##_local_i++) { \
name##_ptrs[name##_local_i] = &name##_bufs[name##_local_i]; \
if (mode == OUT_MODE) \
(object).SeqLen = 0; \
name##_bufs[name##_local_i] = (object); \
name##_bufs[name##_local_i].SeqBody = \
(RPC2_ByteSeq) & name##_data[name##_local_i * maxbslen]; \
if ((object).SeqLen > 0) \
memcpy(name##_bufs[name##_local_i].SeqBody, (object).SeqBody, \
(int)(object).SeqLen); \
} \
}
RPC2_Byte * RPC2_ByteSeq
Definition: rpc2.h:306
@ OUT_MODE
Definition: rpc2.h:565

◆ ARG_UNMARSHALL

#define ARG_UNMARSHALL (   name,
  object,
  ix 
)    (object) = name##_bufs[ix];

◆ ARG_UNMARSHALL_ARRAY

#define ARG_UNMARSHALL_ARRAY (   name,
  numelts,
  object,
  ix 
)
Value:
{ \
for (unsigned int name##_local_i = 0; name##_local_i < (numelts); \
name##_local_i++) \
(object)[name##_local_i] = name##_bufs[ix][name##_local_i]; \
}

◆ ARG_UNMARSHALL_BS

#define ARG_UNMARSHALL_BS (   name,
  object,
  ix 
)
Value:
{ \
RPC2_Integer seqlen = name##_bufs[ix].SeqLen; \
(object).SeqLen = seqlen; \
if (seqlen > 0) \
memcpy((object).SeqBody, name##_bufs[ix].SeqBody, (int)seqlen); \
}

◆ MAXSERVERS

#define MAXSERVERS   100

Typedef Documentation

◆ ARG_INFO

typedef struct arg_info ARG_INFO

◆ PARM

typedef union PARM PARM

◆ RPC2_HandleResult_func

typedef long RPC2_HandleResult_func(int HowMany, RPC2_Handle ConnList[], long offset, long rpcval,...)