/* Generated from cb.xg */
#include "cb.h"

#include "cb.ss.h"

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <netinet/in.h>
#ifndef HAVE_BCOPY
#define bcopy(a,b,c) memcpy((b),(a),(c))
#endif /* !HAVE_BCOPY */

int _RXAFSCB_CallBack(
struct rx_call *call)
{
int _result;
AFSCBFids a_fidArrayP;
AFSCBs a_callBackArrayP;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_fidArrayP.len = ntohl (u);
}
a_fidArrayP.val = (struct AFSFid *)malloc(sizeof(struct AFSFid ) * a_fidArrayP.len);
{
int i0;
for(i0 = 0; i0 < a_fidArrayP.len;++i0){
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_fidArrayP.val[i0].Volume = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_fidArrayP.val[i0].Vnode = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_fidArrayP.val[i0].Unique = ntohl (u);
}
}
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_callBackArrayP.len = ntohl (u);
}
a_callBackArrayP.val = (struct AFSCallBack *)malloc(sizeof(struct AFSCallBack ) * a_callBackArrayP.len);
{
int i0;
for(i0 = 0; i0 < a_callBackArrayP.len;++i0){
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_callBackArrayP.val[i0].CallBackVersion = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_callBackArrayP.val[i0].ExpirationTime = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
a_callBackArrayP.val[i0].CallBackType = ntohl (u);
}
}
}
_result = RXAFSCB_CallBack(call, &a_fidArrayP, &a_callBackArrayP);
return _result;
}

int _RXAFSCB_InitCallBackState(
struct rx_call *call)
{
int _result;

_result = RXAFSCB_InitCallBackState(call);
return _result;
}

int _RXAFSCB_Probe(
struct rx_call *call)
{
int _result;

_result = RXAFSCB_Probe(call);
return _result;
}

int RXAFSCB_ExecuteRequest(struct rx_call *call)
{
unsigned opcode;
int _result;
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
opcode = ntohl (u);
}
switch(opcode) {
case 204: {
_result = _RXAFSCB_CallBack(call);
break;
}
case 205: {
_result = _RXAFSCB_InitCallBackState(call);
break;
}
case 206: {
_result = _RXAFSCB_Probe(call);
break;
}
default:
fprintf (stderr, "Ignoring %d\n", opcode);
}
return _result;
}

