view release on metacpan or search on metacpan
easyxs/ppport.h view on Meta::CPAN
PL_body_arenas|5.009004||Viu
PL_body_roots|5.009003||Viu
PL_bodytarget|5.005000||Viu
PL_breakable_sub_gen|5.010001||Viu
PL_bufend||5.003007|ponu
PL_bufptr||5.003007|ponu
PL_CCC_non0_non230|5.029008||Viu
PL_check|5.009003|5.006000|
PL_checkav|5.006000||Viu
PL_checkav_save|5.008001||Viu
PL_chopset|5.005000||Viu
PL_clocktick|5.008001||Viu
PL_collation_ix|5.005000||Viu
PL_collation_name|5.005000||Viu
PL_collation_standard|5.005000||Viu
PL_collxfrm_base|5.005000||Viu
PL_collxfrm_mult|5.005000||Viu
PL_colors|5.005000||Viu
PL_colorset|5.005000||Viu
PL_compcv|5.005000||Viu
PL_compiling|5.005000|5.003007|poVnu
libnfs/examples/nfs4-cat-talloc.c view on Meta::CPAN
in6 = (struct sockaddr_in6 *)&ss;
inet_ntop(AF_INET6, &in6->sin6_addr, str, sizeof(str));
port = ntohs(in6->sin6_port);
break;
}
sprintf(addr, "%s.%d.%d", str, port >> 8, port & 0xff);
memset(op, 0, sizeof(op));
op[0].argop = OP_SETCLIENTID;
sc4args = &op[0].nfs_argop4_u.opsetclientid;
memcpy(sc4args->client.verifier, client->verifier, sizeof(verifier4));
sc4args->client.id.id_len = strlen(client->id);
sc4args->client.id.id_val = client->id;
sc4args->callback.cb_program = NFS4_CALLBACK;
sc4args->callback.cb_location.r_netid = netid;
sc4args->callback.cb_location.r_addr = addr;
sc4args->callback_ident = 0x00000001;
memset(&args, 0, sizeof(args));
args.argarray.argarray_len = sizeof(op) / sizeof(nfs_argop4);
libnfs/examples/nfs4-cat-talloc.c view on Meta::CPAN
static void send_setclientid_confirm(struct rpc_context *rpc,
rpc_cb cb, void *private_data)
{
struct client *client = private_data;
COMPOUND4args args;
SETCLIENTID_CONFIRM4args *scc4args;
nfs_argop4 op[1];
memset(op, 0, sizeof(op));
op[0].argop = OP_SETCLIENTID_CONFIRM;
scc4args = &op[0].nfs_argop4_u.opsetclientid_confirm;
scc4args->clientid = client->clientid;
memcpy(scc4args->setclientid_confirm, client->setclientid_confirm,
NFS4_VERIFIER_SIZE);
memset(&args, 0, sizeof(args));
args.argarray.argarray_len = sizeof(op) / sizeof(nfs_argop4);
args.argarray.argarray_val = op;
if (rpc_nfs4_compound_async(rpc, cb, &args, private_data) != 0) {
fprintf(stderr, "Failed to send nfs4 SETCLIENTID_CONFIRM request\n");
libnfs/examples/nfs4-cat-talloc.c view on Meta::CPAN
exit(10);
}
if (res->status != NFS4_OK) {
fprintf(stderr, "Failed to set client id on server %s\n",
client->server);
talloc_free(client);
exit(10);
}
sc4res = &res->resarray.resarray_val[0].nfs_resop4_u.opsetclientid;
client->clientid = sc4res->SETCLIENTID4res_u.resok4.clientid;
memcpy(client->setclientid_confirm,
sc4res->SETCLIENTID4res_u.resok4.setclientid_confirm,
NFS4_VERIFIER_SIZE);
send_setclientid_confirm(rpc, setclientid_confirm_cb, client);
}
/*
* NULL procedure for the callback protocol.
libnfs/examples/nfs4-cat.c view on Meta::CPAN
*/
static void send_setclientid_confirm(struct rpc_context *rpc,
rpc_cb cb, void *private_data)
{
struct client *client = private_data;
COMPOUND4args args;
nfs_argop4 op[1];
memset(op, 0, sizeof(op));
op[0].argop = OP_SETCLIENTID_CONFIRM;
op[0].nfs_argop4_u.opsetclientid_confirm.clientid = client->clientid;
memcpy(op[0].nfs_argop4_u.opsetclientid_confirm.setclientid_confirm, client->setclientid_confirm, NFS4_VERIFIER_SIZE);
memset(&args, 0, sizeof(args));
args.argarray.argarray_len = sizeof(op) / sizeof(nfs_argop4);
args.argarray.argarray_val = op;
if (rpc_nfs4_compound_async(rpc, cb, &args, private_data) != 0) {
fprintf(stderr, "Failed to send nfs4 SETCLIENTID_CONFIRM request\n");
exit(10);
}
}
libnfs/examples/nfs4-cat.c view on Meta::CPAN
netid = "tcp6";
in6 = (struct sockaddr_in6 *)&ss;
inet_ntop(AF_INET6, &in6->sin6_addr, str, sizeof(str));
port = ntohs(in6->sin6_port);
break;
}
sprintf(addr, "%s.%d.%d", str, port >> 8, port & 0xff);
memset(op, 0, sizeof(op));
op[0].argop = OP_SETCLIENTID;
memcpy(op[0].nfs_argop4_u.opsetclientid.client.verifier, client->verifier, sizeof(verifier4));
op[0].nfs_argop4_u.opsetclientid.client.id.id_len = strlen(client->id);
op[0].nfs_argop4_u.opsetclientid.client.id.id_val = client->id;
op[0].nfs_argop4_u.opsetclientid.callback.cb_program = NFS4_CALLBACK;
op[0].nfs_argop4_u.opsetclientid.callback.cb_location.r_netid = netid;
op[0].nfs_argop4_u.opsetclientid.callback.cb_location.r_addr = addr;
op[0].nfs_argop4_u.opsetclientid.callback_ident = 0x00000001;
memset(&args, 0, sizeof(args));
args.argarray.argarray_len = sizeof(op) / sizeof(nfs_argop4);
args.argarray.argarray_val = op;
if (rpc_nfs4_compound_async(rpc, cb, &args, private_data) != 0) {
fprintf(stderr, "Failed to send nfs4 SETCLIENTID request\n");
exit(10);
}
}
libnfs/examples/nfs4-cat.c view on Meta::CPAN
client->server);
exit(10);
}
if (res->status != NFS4_OK) {
fprintf(stderr, "Failed to set client id on server %s\n",
client->server);
exit(10);
}
client->clientid = res->resarray.resarray_val[0].nfs_resop4_u.opsetclientid.SETCLIENTID4res_u.resok4.clientid;
memcpy(client->setclientid_confirm, res->resarray.resarray_val[0].nfs_resop4_u.opsetclientid.SETCLIENTID4res_u.resok4.setclientid_confirm, NFS4_VERIFIER_SIZE);
send_setclientid_confirm(rpc, setclientid_confirm_cb, client);
}
/*
* NULL procedure for the callback protocol.
*/
static int cb_null_proc(struct rpc_context *rpc, struct rpc_msg *call, void *opaque)
{
rpc_send_reply(rpc, call, NULL, (zdrproc_t)zdr_void, 0);
libnfs/lib/nfs_v4.c view on Meta::CPAN
return 1;
}
static int
nfs4_op_setclientid(struct nfs_context *nfs, nfs_argop4 *op, verifier4 verifier,
const char *client_name)
{
SETCLIENTID4args *scidargs;
op[0].argop = OP_SETCLIENTID;
scidargs = &op[0].nfs_argop4_u.opsetclientid;
memcpy(scidargs->client.verifier, verifier, sizeof(verifier4));
scidargs->client.id.id_len = strlen(client_name);
scidargs->client.id.id_val = discard_const(client_name);
/* TODO: Decide what we should do here. As long as we only
* expose a single FD to the application we will not be able to
* do NFSv4 callbacks easily.
* Just give it garbage for now until we figure out how we should
* solve this. Until then we will just have to avoid doing things
* that require a callback.
* ( Clients (i.e. Linux) ignore this anyway and just call back to
libnfs/lib/nfs_v4.c view on Meta::CPAN
static int
nfs4_op_truncate(struct nfs_context *nfs, nfs_argop4 *op, struct nfsfh *fh,
void *sabuf)
{
SETATTR4args *saargs;
static uint32_t mask[2] = {1 << (FATTR4_SIZE),
1 << (FATTR4_TIME_MODIFY_SET - 32)};
op[0].argop = OP_SETATTR;
saargs = &op[0].nfs_argop4_u.opsetattr;
saargs->stateid.seqid = fh->stateid.seqid;
memcpy(saargs->stateid.other, fh->stateid.other, 12);
saargs->obj_attributes.attrmask.bitmap4_len = 2;
saargs->obj_attributes.attrmask.bitmap4_val = mask;
saargs->obj_attributes.attr_vals.attrlist4_len = 12;
saargs->obj_attributes.attr_vals.attrlist4_val = sabuf;
return 1;
libnfs/lib/nfs_v4.c view on Meta::CPAN
static int
nfs4_op_chmod(struct nfs_context *nfs, nfs_argop4 *op, struct nfsfh *fh,
void *sabuf)
{
SETATTR4args *saargs;
static uint32_t mask[2] = {0,
1 << (FATTR4_MODE - 32)};
op[0].argop = OP_SETATTR;
saargs = &op[0].nfs_argop4_u.opsetattr;
if (fh) {
saargs->stateid.seqid = fh->stateid.seqid;
memcpy(saargs->stateid.other, fh->stateid.other, 12);
}
saargs->obj_attributes.attrmask.bitmap4_len = 2;
saargs->obj_attributes.attrmask.bitmap4_val = mask;
saargs->obj_attributes.attr_vals.attrlist4_len = 4;
saargs->obj_attributes.attr_vals.attrlist4_val = sabuf;
libnfs/lib/nfs_v4.c view on Meta::CPAN
static int
nfs4_op_chown(struct nfs_context *nfs, nfs_argop4 *op, struct nfsfh *fh,
void *sabuf, int len)
{
SETATTR4args *saargs;
static uint32_t mask[2] = {0,
1 << (FATTR4_OWNER - 32) |
1 << (FATTR4_OWNER_GROUP - 32)};
op[0].argop = OP_SETATTR;
saargs = &op[0].nfs_argop4_u.opsetattr;
if (fh) {
saargs->stateid.seqid = fh->stateid.seqid;
memcpy(saargs->stateid.other, fh->stateid.other, 12);
}
saargs->obj_attributes.attrmask.bitmap4_len = 2;
saargs->obj_attributes.attrmask.bitmap4_val = mask;
saargs->obj_attributes.attr_vals.attrlist4_len = len;
saargs->obj_attributes.attr_vals.attrlist4_val = sabuf;
libnfs/lib/nfs_v4.c view on Meta::CPAN
static int
nfs4_op_utimes(struct nfs_context *nfs, nfs_argop4 *op, struct nfsfh *fh,
void *sabuf, int len)
{
SETATTR4args *saargs;
static uint32_t mask[2] = {0,
1 << (FATTR4_TIME_ACCESS_SET - 32) |
1 << (FATTR4_TIME_MODIFY_SET - 32)};
op[0].argop = OP_SETATTR;
saargs = &op[0].nfs_argop4_u.opsetattr;
if (fh) {
saargs->stateid.seqid = fh->stateid.seqid;
memcpy(saargs->stateid.other, fh->stateid.other, 12);
}
saargs->obj_attributes.attrmask.bitmap4_len = 2;
saargs->obj_attributes.attrmask.bitmap4_val = mask;
saargs->obj_attributes.attr_vals.attrlist4_len = len;
saargs->obj_attributes.attr_vals.attrlist4_val = sabuf;
libnfs/lib/nfs_v4.c view on Meta::CPAN
return 1;
}
static int
nfs4_op_setclientid_confirm(struct nfs_context *nfs, struct nfs_argop4 *op,
uint64_t clientid, verifier4 verifier)
{
SETCLIENTID_CONFIRM4args *scidcargs;
op[0].argop = OP_SETCLIENTID_CONFIRM;
scidcargs = &op[0].nfs_argop4_u.opsetclientid_confirm;
scidcargs->clientid = clientid;
memcpy(scidcargs->setclientid_confirm, verifier, NFS4_VERIFIER_SIZE);
return 1;
}
static int
nfs4_op_putrootfh(struct nfs_context *nfs, nfs_argop4 *op)
{
op[0].argop = OP_PUTROOTFH;
libnfs/lib/nfs_v4.c view on Meta::CPAN
nfs_argop4 op[1];
SETCLIENTID4resok *scidresok;
int i;
assert(rpc->magic == RPC_CONTEXT_MAGIC);
if (check_nfs4_error(nfs, status, data, res, "SETCLIENTID")) {
return;
}
scidresok = &res->resarray.resarray_val[0].nfs_resop4_u.opsetclientid.SETCLIENTID4res_u.resok4;
nfs->nfsi->clientid = scidresok->clientid;
memcpy(nfs->nfsi->setclientid_confirm,
scidresok->setclientid_confirm,
NFS4_VERIFIER_SIZE);
memset(op, 0, sizeof(op));
i = nfs4_op_setclientid_confirm(nfs, &op[0], nfs->nfsi->clientid,
nfs->nfsi->setclientid_confirm);
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
break;
case OP_RESTOREFH:
break;
case OP_SAVEFH:
break;
case OP_SECINFO:
if (!zdr_SECINFO4args (zdrs, &objp->nfs_argop4_u.opsecinfo))
return FALSE;
break;
case OP_SETATTR:
if (!zdr_SETATTR4args (zdrs, &objp->nfs_argop4_u.opsetattr))
return FALSE;
break;
case OP_SETCLIENTID:
if (!zdr_SETCLIENTID4args (zdrs, &objp->nfs_argop4_u.opsetclientid))
return FALSE;
break;
case OP_SETCLIENTID_CONFIRM:
if (!zdr_SETCLIENTID_CONFIRM4args (zdrs, &objp->nfs_argop4_u.opsetclientid_confirm))
return FALSE;
break;
case OP_VERIFY:
if (!zdr_VERIFY4args (zdrs, &objp->nfs_argop4_u.opverify))
return FALSE;
break;
case OP_WRITE:
if (!zdr_WRITE4args (zdrs, &objp->nfs_argop4_u.opwrite))
return FALSE;
break;
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
break;
case OP_SECINFO_NO_NAME:
if (!zdr_SECINFO_NO_NAME4args (zdrs, &objp->nfs_argop4_u.opsecinfononame))
return FALSE;
break;
case OP_SEQUENCE:
if (!zdr_SEQUENCE4args (zdrs, &objp->nfs_argop4_u.opsequence))
return FALSE;
break;
case OP_SET_SSV:
if (!zdr_SET_SSV4args (zdrs, &objp->nfs_argop4_u.opsetssv))
return FALSE;
break;
case OP_TEST_STATEID:
if (!zdr_TEST_STATEID4args (zdrs, &objp->nfs_argop4_u.opteststateid))
return FALSE;
break;
case OP_WANT_DELEGATION:
if (!zdr_WANT_DELEGATION4args (zdrs, &objp->nfs_argop4_u.opwantdelegation))
return FALSE;
break;
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
break;
case OP_SAVEFH:
if (!zdr_SAVEFH4res (zdrs, &objp->nfs_resop4_u.opsavefh))
return FALSE;
break;
case OP_SECINFO:
if (!zdr_SECINFO4res (zdrs, &objp->nfs_resop4_u.opsecinfo))
return FALSE;
break;
case OP_SETATTR:
if (!zdr_SETATTR4res (zdrs, &objp->nfs_resop4_u.opsetattr))
return FALSE;
break;
case OP_SETCLIENTID:
if (!zdr_SETCLIENTID4res (zdrs, &objp->nfs_resop4_u.opsetclientid))
return FALSE;
break;
case OP_SETCLIENTID_CONFIRM:
if (!zdr_SETCLIENTID_CONFIRM4res (zdrs, &objp->nfs_resop4_u.opsetclientid_confirm))
return FALSE;
break;
case OP_VERIFY:
if (!zdr_VERIFY4res (zdrs, &objp->nfs_resop4_u.opverify))
return FALSE;
break;
case OP_WRITE:
if (!zdr_WRITE4res (zdrs, &objp->nfs_resop4_u.opwrite))
return FALSE;
break;
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
break;
case OP_SECINFO_NO_NAME:
if (!zdr_SECINFO_NO_NAME4res (zdrs, &objp->nfs_resop4_u.opsecinfononame))
return FALSE;
break;
case OP_SEQUENCE:
if (!zdr_SEQUENCE4res (zdrs, &objp->nfs_resop4_u.opsequence))
return FALSE;
break;
case OP_SET_SSV:
if (!zdr_SET_SSV4res (zdrs, &objp->nfs_resop4_u.opsetssv))
return FALSE;
break;
case OP_TEST_STATEID:
if (!zdr_TEST_STATEID4res (zdrs, &objp->nfs_resop4_u.opteststateid))
return FALSE;
break;
case OP_WANT_DELEGATION:
if (!zdr_WANT_DELEGATION4res (zdrs, &objp->nfs_resop4_u.opwantdelegation))
return FALSE;
break;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
OPENATTR4args opopenattr;
OPEN_CONFIRM4args opopen_confirm;
OPEN_DOWNGRADE4args opopen_downgrade;
PUTFH4args opputfh;
READ4args opread;
READDIR4args opreaddir;
REMOVE4args opremove;
RENAME4args oprename;
RENEW4args oprenew;
SECINFO4args opsecinfo;
SETATTR4args opsetattr;
SETCLIENTID4args opsetclientid;
SETCLIENTID_CONFIRM4args opsetclientid_confirm;
VERIFY4args opverify;
WRITE4args opwrite;
RELEASE_LOCKOWNER4args oprelease_lockowner;
BIND_CONN_TO_SESSION4args opbindconntosession;
EXCHANGE_ID4args opexchangeid;
CREATE_SESSION4args opcreatesession;
DESTROY_SESSION4args opdestroysession;
FREE_STATEID4args opfreestateid;
GET_DIR_DELEGATION4args opgetdirdelegation;
GETDEVICEINFO4args opgetdeviceinfo;
GETDEVICELIST4args opgetdevicelist;
LAYOUTCOMMIT4args oplayoutcommit;
LAYOUTGET4args oplayoutget;
LAYOUTRETURN4args oplayoutreturn;
SECINFO_NO_NAME4args opsecinfononame;
SEQUENCE4args opsequence;
SET_SSV4args opsetssv;
TEST_STATEID4args opteststateid;
WANT_DELEGATION4args opwantdelegation;
DESTROY_CLIENTID4args opdestroyclientid;
RECLAIM_COMPLETE4args opreclaimcomplete;
} nfs_argop4_u;
};
typedef struct nfs_argop4 nfs_argop4;
struct nfs_resop4 {
nfs_opnum4 resop;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
PUTROOTFH4res opputrootfh;
READ4res opread;
READDIR4res opreaddir;
READLINK4res opreadlink;
REMOVE4res opremove;
RENAME4res oprename;
RENEW4res oprenew;
RESTOREFH4res oprestorefh;
SAVEFH4res opsavefh;
SECINFO4res opsecinfo;
SETATTR4res opsetattr;
SETCLIENTID4res opsetclientid;
SETCLIENTID_CONFIRM4res opsetclientid_confirm;
VERIFY4res opverify;
WRITE4res opwrite;
RELEASE_LOCKOWNER4res oprelease_lockowner;
BIND_CONN_TO_SESSION4res opbindconntosession;
EXCHANGE_ID4res opexchangeid;
CREATE_SESSION4res opcreatesession;
DESTROY_SESSION4res opdestroysession;
FREE_STATEID4res opfreestateid;
GET_DIR_DELEGATION4res opgetdirdelegation;
GETDEVICEINFO4res opgetdeviceinfo;
GETDEVICELIST4res opgetdevicelist;
LAYOUTCOMMIT4res oplayoutcommit;
LAYOUTGET4res oplayoutget;
LAYOUTRETURN4res oplayoutreturn;
SECINFO_NO_NAME4res opsecinfononame;
SEQUENCE4res opsequence;
SET_SSV4res opsetssv;
TEST_STATEID4res opteststateid;
WANT_DELEGATION4res opwantdelegation;
DESTROY_CLIENTID4res opdestroyclientid;
RECLAIM_COMPLETE4res opreclaimcomplete;
ILLEGAL4res opillegal;
} nfs_resop4_u;
};
typedef struct nfs_resop4 nfs_resop4;
struct COMPOUND4args {
libnfs/nfs4/nfs4.x view on Meta::CPAN
case OP_PUTROOTFH: void;
case OP_READ: READ4args opread;
case OP_READDIR: READDIR4args opreaddir;
case OP_READLINK: void;
case OP_REMOVE: REMOVE4args opremove;
case OP_RENAME: RENAME4args oprename;
case OP_RENEW: RENEW4args oprenew;
case OP_RESTOREFH: void;
case OP_SAVEFH: void;
case OP_SECINFO: SECINFO4args opsecinfo;
case OP_SETATTR: SETATTR4args opsetattr;
case OP_SETCLIENTID: SETCLIENTID4args opsetclientid;
case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4args
opsetclientid_confirm;
case OP_VERIFY: VERIFY4args opverify;
case OP_WRITE: WRITE4args opwrite;
case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4args
oprelease_lockowner;
case OP_BIND_CONN_TO_SESSION: BIND_CONN_TO_SESSION4args opbindconntosession;
case OP_EXCHANGE_ID: EXCHANGE_ID4args opexchangeid;
case OP_CREATE_SESSION: CREATE_SESSION4args opcreatesession;
case OP_DESTROY_SESSION: DESTROY_SESSION4args opdestroysession;
case OP_FREE_STATEID: FREE_STATEID4args opfreestateid;
case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4args opgetdirdelegation;
case OP_GETDEVICEINFO: GETDEVICEINFO4args opgetdeviceinfo;
case OP_GETDEVICELIST: GETDEVICELIST4args opgetdevicelist;
case OP_LAYOUTCOMMIT: LAYOUTCOMMIT4args oplayoutcommit;
case OP_LAYOUTGET: LAYOUTGET4args oplayoutget;
case OP_LAYOUTRETURN: LAYOUTRETURN4args oplayoutreturn;
case OP_SECINFO_NO_NAME: SECINFO_NO_NAME4args opsecinfononame;
case OP_SEQUENCE: SEQUENCE4args opsequence;
case OP_SET_SSV: SET_SSV4args opsetssv;
case OP_TEST_STATEID: TEST_STATEID4args opteststateid;
case OP_WANT_DELEGATION: WANT_DELEGATION4args opwantdelegation;
case OP_DESTROY_CLIENTID: DESTROY_CLIENTID4args opdestroyclientid;
case OP_RECLAIM_COMPLETE: RECLAIM_COMPLETE4args opreclaimcomplete;
case OP_ILLEGAL: void;
};
union nfs_resop4 switch (nfs_opnum4 resop){
case OP_ACCESS: ACCESS4res opaccess;
case OP_CLOSE: CLOSE4res opclose;
libnfs/nfs4/nfs4.x view on Meta::CPAN
case OP_PUTROOTFH: PUTROOTFH4res opputrootfh;
case OP_READ: READ4res opread;
case OP_READDIR: READDIR4res opreaddir;
case OP_READLINK: READLINK4res opreadlink;
case OP_REMOVE: REMOVE4res opremove;
case OP_RENAME: RENAME4res oprename;
case OP_RENEW: RENEW4res oprenew;
case OP_RESTOREFH: RESTOREFH4res oprestorefh;
case OP_SAVEFH: SAVEFH4res opsavefh;
case OP_SECINFO: SECINFO4res opsecinfo;
case OP_SETATTR: SETATTR4res opsetattr;
case OP_SETCLIENTID: SETCLIENTID4res opsetclientid;
case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4res
opsetclientid_confirm;
case OP_VERIFY: VERIFY4res opverify;
case OP_WRITE: WRITE4res opwrite;
case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4res
oprelease_lockowner;
case OP_BIND_CONN_TO_SESSION: BIND_CONN_TO_SESSION4res opbindconntosession;
case OP_EXCHANGE_ID: EXCHANGE_ID4res opexchangeid;
case OP_CREATE_SESSION: CREATE_SESSION4res opcreatesession;
case OP_DESTROY_SESSION: DESTROY_SESSION4res opdestroysession;
case OP_FREE_STATEID: FREE_STATEID4res opfreestateid;
case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4res opgetdirdelegation;
case OP_GETDEVICEINFO: GETDEVICEINFO4res opgetdeviceinfo;
case OP_GETDEVICELIST: GETDEVICELIST4res opgetdevicelist;
case OP_LAYOUTCOMMIT: LAYOUTCOMMIT4res oplayoutcommit;
case OP_LAYOUTGET: LAYOUTGET4res oplayoutget;
case OP_LAYOUTRETURN: LAYOUTRETURN4res oplayoutreturn;
case OP_SECINFO_NO_NAME: SECINFO_NO_NAME4res opsecinfononame;
case OP_SEQUENCE: SEQUENCE4res opsequence;
case OP_SET_SSV: SET_SSV4res opsetssv;
case OP_TEST_STATEID: TEST_STATEID4res opteststateid;
case OP_WANT_DELEGATION: WANT_DELEGATION4res opwantdelegation;
case OP_DESTROY_CLIENTID: DESTROY_CLIENTID4res opdestroyclientid;
case OP_RECLAIM_COMPLETE: RECLAIM_COMPLETE4res opreclaimcomplete;
case OP_ILLEGAL: ILLEGAL4res opillegal;
};
struct COMPOUND4args {
utf8str_cs tag;
uint32_t minorversion;