libnfs-server-example/make-stub.js

49 lines
990 B
JavaScript

const rpc = [
'GETATTR',
'SETATTR',
'LOOKUP',
'ACCESS',
'READLINK',
'READ',
'WRITE',
'CREATE',
'MKDIR',
'SYMLINK',
'MKNOD',
'REMOVE',
'RMDIR',
'RENAME',
'LINK',
'READDIR',
'READDIRPLUS',
'FSSTAT',
'FSINFO',
'PATHCONF',
'COMMIT',
];
const len = rpc.reduce((a, c) => a < c.length ? c.length : a, 0);
let t = '';
let s = '';
for (const f of rpc)
{
let pad = '';
for (let i = f.length; i < len; i++)
pad += ' ';
t += ` {NFS3_${f}, ${pad}nfs3_${f.toLowerCase()}_proc, ${pad}(zdrproc_t)zdr_${f}3args, ${pad}sizeof(${f}3args)},\n`;
s += `static int nfs3_${f.toLowerCase()}_proc(struct rpc_context *rpc, struct rpc_msg *call)
{
${f}3args *args = call->body.cbody.args;
${f}3res reply;
rpc_send_reply(rpc, call, &reply, (zdrproc_t)zdr_${f}3res, sizeof(${f}3res));
return 0;
}
`;
}
t = `struct service_proc nfs3_pt[] = {\n${t}};\n`;
console.log(t);
console.log(s);