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

#include "volumeserver.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 _VOLSER_AFSVolCreateVolume(
struct rx_call *call)
{
int _result;
int32_t partition;
char name;
int32_t type;
int32_t parent;
int32_t volid;
int32_t trans;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
partition = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
name = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
type = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
parent = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
volid = ntohl (u);
}
_result = VOLSER_AFSVolCreateVolume(call, partition, &name, type, parent, &volid, &trans);
{ u_int32_t u;
u = htonl (volid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (trans);
rx_Write(call, &u, sizeof(u));
}
return _result;
}

int _VOLSER_AFSVolTransCreate(
struct rx_call *call)
{
int _result;
int32_t volume;
int32_t partition;
int32_t flags;
int32_t trans;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
volume = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
partition = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
flags = ntohl (u);
}
_result = VOLSER_AFSVolTransCreate(call, volume, partition, flags, &trans);
{ u_int32_t u;
u = htonl (trans);
rx_Write(call, &u, sizeof(u));
}
return _result;
}

int _VOLSER_AFSVolEndTrans(
struct rx_call *call)
{
int _result;
int32_t trans;
int32_t rcode;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
trans = ntohl (u);
}
_result = VOLSER_AFSVolEndTrans(call, trans, &rcode);
{ u_int32_t u;
u = htonl (rcode);
rx_Write(call, &u, sizeof(u));
}
return _result;
}

int _VOLSER_AFSVolGetFlags(
struct rx_call *call)
{
int _result;
int32_t trans;
int32_t flags;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
trans = ntohl (u);
}
_result = VOLSER_AFSVolGetFlags(call, trans, &flags);
{ u_int32_t u;
u = htonl (flags);
rx_Write(call, &u, sizeof(u));
}
return _result;
}

int _VOLSER_AFSVolSetFlags(
struct rx_call *call)
{
int _result;
int32_t trans;
int32_t flags;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
trans = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
flags = ntohl (u);
}
_result = VOLSER_AFSVolSetFlags(call, trans, flags);
return _result;
}

int _VOLSER_AFSVolGetName(
struct rx_call *call)
{
int _result;
int32_t tid;
char *tname;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
tid = ntohl (u);
}
_result = VOLSER_AFSVolGetName(call, tid, tname);
{ unsigned len;
char zero[4] = {0, 0, 0, 0};
len = strlen(tname);
{ u_int32_t u;
u = htonl (len);
rx_Write(call, &u, sizeof(u));
}
rx_Write(call, tname, len);
rx_Write(call, zero, (4 - (len % 4)) % 4);
}
return _result;
}

int _VOLSER_AFSVolSetDate(
struct rx_call *call)
{
int _result;
int32_t tid;
int32_t newDate;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
tid = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
newDate = ntohl (u);
}
_result = VOLSER_AFSVolSetDate(call, tid, newDate);
return _result;
}

int _VOLSER_AFSVolListPartitions(
struct rx_call *call)
{
int _result;
struct pIDs partIDs;

_result = VOLSER_AFSVolListPartitions(call, &partIDs);
{
int i0;
for(i0 = 0; i0 < 26;++i0){
{ u_int32_t u;
u = htonl (partIDs.partIds[i0]);
rx_Write(call, &u, sizeof(u));
}
}
}
return _result;
}

int _VOLSER_AFSVolPartitionInfo(
struct rx_call *call)
{
int _result;
char *name;
struct diskPartition partition;

{ unsigned len;
char zero[4] = {0, 0, 0, 0};
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
len = ntohl (u);
}
rx_Read(call, name, len);
rx_Read(call, zero, (4 - (len % 4)) % 4);
}
_result = VOLSER_AFSVolPartitionInfo(call, name, &partition);
{
int i0;
for(i0 = 0; i0 < 32;++i0){
{ u_int32_t u;
u = htonl (partition.name[i0]);
rx_Write(call, &u, sizeof(u));
}
}
}
{
int i0;
for(i0 = 0; i0 < 32;++i0){
{ u_int32_t u;
u = htonl (partition.devName[i0]);
rx_Write(call, &u, sizeof(u));
}
}
}
{ u_int32_t u;
u = htonl (partition.lock_fd);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (partition.totalUsable);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (partition.free);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (partition.minFree);
rx_Write(call, &u, sizeof(u));
}
return _result;
}

int _VOLSER_AFSVolListVolumes(
struct rx_call *call)
{
int _result;
int32_t partID;
int32_t flags;
volEntries resultEntries;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
partID = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
flags = ntohl (u);
}
_result = VOLSER_AFSVolListVolumes(call, partID, flags, &resultEntries);
{ u_int32_t u;
u = htonl (resultEntries.len);
rx_Write(call, &u, sizeof(u));
}
{
int i0;
for(i0 = 0; i0 < resultEntries.len;++i0){
{
int i1;
for(i1 = 0; i1 < 32;++i1){
{ u_int32_t u;
u = htonl (resultEntries.val[i0].name[i1]);
rx_Write(call, &u, sizeof(u));
}
}
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].volid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].type);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].backupID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].parentID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].cloneID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].status);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].copyDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].inUse);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].needsSalvaged);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].destroyMe);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].creationDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].accessDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].updateDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].backupDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].dayUse);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].filecount);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].maxquota);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].size);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].flags);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare0);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare1);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare2);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare3);
rx_Write(call, &u, sizeof(u));
}
}
}
return _result;
}

int _VOLSER_AFSVolListOneVolume(
struct rx_call *call)
{
int _result;
int32_t partID;
int32_t volid;
volEntries resultEntries;

{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
partID = ntohl (u);
}
{ u_int32_t u;
rx_Read(call, &u, sizeof(u));
volid = ntohl (u);
}
_result = VOLSER_AFSVolListOneVolume(call, partID, volid, &resultEntries);
{ u_int32_t u;
u = htonl (resultEntries.len);
rx_Write(call, &u, sizeof(u));
}
{
int i0;
for(i0 = 0; i0 < resultEntries.len;++i0){
{
int i1;
for(i1 = 0; i1 < 32;++i1){
{ u_int32_t u;
u = htonl (resultEntries.val[i0].name[i1]);
rx_Write(call, &u, sizeof(u));
}
}
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].volid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].type);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].backupID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].parentID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].cloneID);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].status);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].copyDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].inUse);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].needsSalvaged);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].destroyMe);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].creationDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].accessDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].updateDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].backupDate);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].dayUse);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].filecount);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].maxquota);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].size);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].flags);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare0);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare1);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare2);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (resultEntries.val[i0].spare3);
rx_Write(call, &u, sizeof(u));
}
}
}
return _result;
}

int _VOLSER_AFSVolVolMonitor(
struct rx_call *call)
{
int _result;
transDebugEntries result;

_result = VOLSER_AFSVolVolMonitor(call, &result);
{ u_int32_t u;
u = htonl (result.len);
rx_Write(call, &u, sizeof(u));
}
{
int i0;
for(i0 = 0; i0 < result.len;++i0){
{ u_int32_t u;
u = htonl (result.val[i0].tid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].time);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].creationTime);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].returnCode);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].volid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].partition);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].iflags);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].vflags);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].tflags);
rx_Write(call, &u, sizeof(u));
}
{
int i1;
for(i1 = 0; i1 < 30;++i1){
{ u_int32_t u;
u = htonl (result.val[i0].lastProcName[i1]);
rx_Write(call, &u, sizeof(u));
}
}
}
{ u_int32_t u;
u = htonl (result.val[i0].callValid);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].readNext);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].transmitNext);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].lastSendTime);
rx_Write(call, &u, sizeof(u));
}
{ u_int32_t u;
u = htonl (result.val[i0].lastReceiveTime);
rx_Write(call, &u, sizeof(u));
}
}
}
return _result;
}

int VOLSER_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 100: {
_result = _VOLSER_AFSVolCreateVolume(call);
break;
}
case 108: {
_result = _VOLSER_AFSVolTransCreate(call);
break;
}
case 104: {
_result = _VOLSER_AFSVolEndTrans(call);
break;
}
case 107: {
_result = _VOLSER_AFSVolGetFlags(call);
break;
}
case 106: {
_result = _VOLSER_AFSVolSetFlags(call);
break;
}
case 112: {
_result = _VOLSER_AFSVolGetName(call);
break;
}
case 123: {
_result = _VOLSER_AFSVolSetDate(call);
break;
}
case 115: {
_result = _VOLSER_AFSVolListPartitions(call);
break;
}
case 119: {
_result = _VOLSER_AFSVolPartitionInfo(call);
break;
}
case 116: {
_result = _VOLSER_AFSVolListVolumes(call);
break;
}
case 121: {
_result = _VOLSER_AFSVolListOneVolume(call);
break;
}
case 118: {
_result = _VOLSER_AFSVolVolMonitor(call);
break;
}
default:
fprintf (stderr, "Ignoring %d\n", opcode);
}
return _result;
}

