view release on metacpan or search on metacpan
libnfs/include/libnfs-private.h view on Meta::CPAN
void rpc_free_all_fragments(struct rpc_context *rpc);
int rpc_is_udp_socket(struct rpc_context *rpc);
uint64_t rpc_current_time(void);
void *zdr_malloc(ZDR *zdrs, uint32_t size);
struct nfs_cb_data;
void free_nfs_cb_data(struct nfs_cb_data *data);
struct nfs_specdata {
uint32_t specdata1;
uint32_t specdata2;
};
struct nfs_time {
uint32_t seconds;
uint32_t nseconds;
};
struct nfs_attr {
uint32_t type;
uint32_t mode;
uint32_t uid;
uint32_t gid;
uint32_t nlink;
uint64_t size;
uint64_t used;
uint64_t fsid;
struct nfs_specdata rdev;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
struct nfs_fh {
int len;
char *val;
};
libnfs/lib/nfs_v3.c view on Meta::CPAN
#include <sys/stat.h>
#include <fcntl.h>
#include "libnfs-zdr.h"
#include "slist.h"
#include "libnfs.h"
#include "libnfs-raw.h"
#include "libnfs-raw-mount.h"
#include "libnfs-private.h"
static dev_t
specdata3_to_rdev(struct specdata3 *rdev)
{
#ifdef makedev
return makedev(rdev->specdata1, rdev->specdata2);
#else
return 0;
#endif
}
struct mount_attr_cb {
int wait_count;
struct nfs_cb_data *data;
};
libnfs/lib/nfs_v3.c view on Meta::CPAN
fattr3_to_nfs_attr(struct nfs_attr *attr, fattr3 *fa3)
{
attr->type = fa3->type;
attr->mode = fa3->mode;
attr->uid = fa3->uid;
attr->gid = fa3->gid;
attr->nlink = fa3->nlink;
attr->size = fa3->size;
attr->used = fa3->used;
attr->fsid = fa3->fsid;
attr->rdev.specdata1 = fa3->rdev.specdata1;
attr->rdev.specdata2 = fa3->rdev.specdata2;
attr->atime.seconds = fa3->atime.seconds;
attr->atime.nseconds = fa3->atime.nseconds;
attr->mtime.seconds = fa3->mtime.seconds;
attr->mtime.nseconds = fa3->mtime.nseconds;
attr->ctime.seconds = fa3->ctime.seconds;
attr->ctime.nseconds = fa3->ctime.nseconds;
}
static void
nfs3_lookup_path_1_cb(struct rpc_context *rpc, int status, void *command_data,
libnfs/lib/nfs_v3.c view on Meta::CPAN
nfsdirent->mtime.tv_sec = attributes->mtime.seconds;
nfsdirent->mtime.tv_usec = attributes->mtime.nseconds/1000;
nfsdirent->mtime_nsec = attributes->mtime.nseconds;
nfsdirent->ctime.tv_sec = attributes->ctime.seconds;
nfsdirent->ctime.tv_usec = attributes->ctime.nseconds/1000;
nfsdirent->ctime_nsec = attributes->ctime.nseconds;
nfsdirent->uid = attributes->uid;
nfsdirent->gid = attributes->gid;
nfsdirent->nlink = attributes->nlink;
nfsdirent->dev = attributes->fsid;
nfsdirent->rdev = specdata3_to_rdev(&attributes->rdev);
nfsdirent->blksize = NFS_BLKSIZE;
nfsdirent->blocks = (attributes->used + 512 - 1) / 512;
nfsdirent->used = attributes->used;
}
}
if (rdpe_cb_data->getattrcount == 0) {
if (rdpe_cb_data->status != RPC_STATUS_SUCCESS) {
nfs_set_error(nfs, "READDIRPLUS emulation "
"failed: %s", rpc_get_error(rpc));
libnfs/lib/nfs_v3.c view on Meta::CPAN
if (mnt->path[splen] != '/')
continue;
if (strcmp(mnt->path + splen + 1, entry->name))
continue;
attr = mnt->attr;
has_attr = 1;
break;
}
}
if (has_attr) {
struct specdata3 sd3 = { attr.rdev.specdata1,
attr.rdev.specdata2 };
nfsdirent->type = attr.type;
nfsdirent->mode = attr.mode;
switch (nfsdirent->type) {
case NF3REG: nfsdirent->mode |= S_IFREG; break;
case NF3DIR: nfsdirent->mode |= S_IFDIR; break;
case NF3BLK: nfsdirent->mode |= S_IFBLK; break;
case NF3CHR: nfsdirent->mode |= S_IFCHR; break;
case NF3LNK: nfsdirent->mode |= S_IFLNK; break;
case NF3SOCK: nfsdirent->mode |= S_IFSOCK; break;
libnfs/lib/nfs_v3.c view on Meta::CPAN
nfsdirent->mtime.tv_sec = attr.mtime.seconds;
nfsdirent->mtime.tv_usec = attr.mtime.nseconds/1000;
nfsdirent->mtime_nsec = attr.mtime.nseconds;
nfsdirent->ctime.tv_sec = attr.ctime.seconds;
nfsdirent->ctime.tv_usec = attr.ctime.nseconds/1000;
nfsdirent->ctime_nsec = attr.ctime.nseconds;
nfsdirent->uid = attr.uid;
nfsdirent->gid = attr.gid;
nfsdirent->nlink = attr.nlink;
nfsdirent->dev = attr.fsid;
nfsdirent->rdev = specdata3_to_rdev(&sd3);
nfsdirent->blksize = NFS_BLKSIZE;
nfsdirent->blocks = (attr.used + 512 - 1) / 512;
nfsdirent->used = attr.used;
}
nfsdirent->next = nfsdir->entries;
nfsdir->entries = nfsdirent;
cookie = entry->cookie;
entry = entry->nextentry;
libnfs/lib/nfs_v3.c view on Meta::CPAN
str = &str[strlen(str) + 1];
args.where.dir.data.data_len = data->fh.len;
args.where.dir.data.data_val = data->fh.val;
args.where.name = str;
switch (cb_data->mode & S_IFMT) {
case S_IFCHR:
args.what.type = NF3CHR;
args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_it = 1;
args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
args.what.mknoddata3_u.chr_device.spec.specdata1 = cb_data->major;
args.what.mknoddata3_u.chr_device.spec.specdata2 = cb_data->minor;
break;
case S_IFBLK:
args.what.type = NF3BLK;
args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_it = 1;
args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
args.what.mknoddata3_u.blk_device.spec.specdata1 = cb_data->major;
args.what.mknoddata3_u.blk_device.spec.specdata2 = cb_data->minor;
break;
case S_IFSOCK:
args.what.type = NF3SOCK;
args.what.mknoddata3_u.sock_attributes.mode.set_it = 1;
args.what.mknoddata3_u.sock_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
break;
case S_IFIFO:
args.what.type = NF3FIFO;
args.what.mknoddata3_u.pipe_attributes.mode.set_it = 1;
args.what.mknoddata3_u.pipe_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
libnfs/lib/nfs_v3.c view on Meta::CPAN
case NF3SOCK:
st.st_mode |= S_IFSOCK;
break;
case NF3FIFO:
st.st_mode |= S_IFIFO;
break;
}
st.st_nlink = res->GETATTR3res_u.resok.obj_attributes.nlink;
st.st_uid = res->GETATTR3res_u.resok.obj_attributes.uid;
st.st_gid = res->GETATTR3res_u.resok.obj_attributes.gid;
st.st_rdev = specdata3_to_rdev(&res->GETATTR3res_u.resok.obj_attributes.rdev);
st.st_size = res->GETATTR3res_u.resok.obj_attributes.size;
#ifndef WIN32
st.st_blksize = NFS_BLKSIZE;
st.st_blocks = (res->GETATTR3res_u.resok.obj_attributes.used + 512 - 1) / 512;
#endif//WIN32
st.st_atime = res->GETATTR3res_u.resok.obj_attributes.atime.seconds;
st.st_mtime = res->GETATTR3res_u.resok.obj_attributes.mtime.seconds;
st.st_ctime = res->GETATTR3res_u.resok.obj_attributes.ctime.seconds;
#ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
st.st_atim.tv_nsec = res->GETATTR3res_u.resok.obj_attributes.atime.nseconds;
libnfs/lib/nfs_v3.c view on Meta::CPAN
case NF3SOCK:
st.nfs_mode |= S_IFSOCK;
break;
case NF3FIFO:
st.nfs_mode |= S_IFIFO;
break;
}
st.nfs_nlink = res->GETATTR3res_u.resok.obj_attributes.nlink;
st.nfs_uid = res->GETATTR3res_u.resok.obj_attributes.uid;
st.nfs_gid = res->GETATTR3res_u.resok.obj_attributes.gid;
st.nfs_rdev = specdata3_to_rdev(&res->GETATTR3res_u.resok.obj_attributes.rdev);
st.nfs_size = res->GETATTR3res_u.resok.obj_attributes.size;
st.nfs_blksize = NFS_BLKSIZE;
st.nfs_blocks = (res->GETATTR3res_u.resok.obj_attributes.used + 512 - 1) / 512;
st.nfs_atime = res->GETATTR3res_u.resok.obj_attributes.atime.seconds;
st.nfs_mtime = res->GETATTR3res_u.resok.obj_attributes.mtime.seconds;
st.nfs_ctime = res->GETATTR3res_u.resok.obj_attributes.ctime.seconds;
st.nfs_atime_nsec = res->GETATTR3res_u.resok.obj_attributes.atime.nseconds;
st.nfs_mtime_nsec = res->GETATTR3res_u.resok.obj_attributes.mtime.nseconds;
st.nfs_ctime_nsec = res->GETATTR3res_u.resok.obj_attributes.ctime.nseconds;
st.nfs_used = res->GETATTR3res_u.resok.obj_attributes.used;
libnfs/lib/nfs_v3.c view on Meta::CPAN
/* align end offset to blocksize */
count += NFS_BLKSIZE - 1 ;
count &= ~(NFS_BLKSIZE - 1);
}
data->offset = offset;
data->count = (count3)count;
if (nfsfh->pagecache.num_entries) {
while (count > 0) {
char *cdata = nfs_pagecache_get(&nfsfh->pagecache,
offset);
if (!cdata) {
break;
}
/* we copy data from the pagecache so we need a
* reassembly buffer */
if (data->buffer == NULL) {
data->buffer = malloc(data->count);
if (data->buffer == NULL) {
free_nfs_cb_data(data);
return -ENOMEM;
}
}
memcpy(data->buffer + offset - data->offset, cdata,
NFS_BLKSIZE);
offset += NFS_BLKSIZE;
count -= NFS_BLKSIZE;
}
if (!count) {
data->nfsfh->ra.fh_offset = data->offset + data->count;
if (update_pos) {
data->nfsfh->offset = data->org_offset + data->org_count;
}
data->cb(data->org_count, nfs, data->buffer + (data->org_offset - data->offset), data->private_data);
libnfs/lib/nfs_v4.c view on Meta::CPAN
}
if (linkdata) {
cargs->objtype.createtype4_u.linkdata.utf8string_len =
strlen(linkdata);
cargs->objtype.createtype4_u.linkdata.utf8string_val =
discard_const(linkdata);
}
switch (type) {
case NF4CHR:
cargs->objtype.type = NF4CHR;
cargs->objtype.createtype4_u.devdata.specdata1 = major(dev);
cargs->objtype.createtype4_u.devdata.specdata2 = minor(dev);
break;
case NF4BLK:
cargs->objtype.type = NF4BLK;
cargs->objtype.createtype4_u.devdata.specdata1 = major(dev);
cargs->objtype.createtype4_u.devdata.specdata2 = minor(dev);
break;
default:
;
}
return 1;
}
static int
nfs4_op_commit(struct nfs_context *nfs, nfs_argop4 *op)
{
libnfs/nfs/libnfs-raw-nfs.c view on Meta::CPAN
{
register int32_t *buf;
buf = NULL;
if (!zdr_uint64_t (zdrs, objp))
return FALSE;
return TRUE;
}
uint32_t
zdr_specdata3 (ZDR *zdrs, specdata3 *objp)
{
register int32_t *buf;
buf = NULL;
if (!zdr_u_int (zdrs, &objp->specdata1))
return FALSE;
if (!zdr_u_int (zdrs, &objp->specdata2))
return FALSE;
return TRUE;
}
uint32_t
zdr_nfstime3 (ZDR *zdrs, nfstime3 *objp)
{
register int32_t *buf;
buf = NULL;
libnfs/nfs/libnfs-raw-nfs.c view on Meta::CPAN
if (!zdr_u_int (zdrs, &objp->nlink))
return FALSE;
if (!zdr_uid3 (zdrs, &objp->uid))
return FALSE;
if (!zdr_gid3 (zdrs, &objp->gid))
return FALSE;
if (!zdr_size3 (zdrs, &objp->size))
return FALSE;
if (!zdr_size3 (zdrs, &objp->used))
return FALSE;
if (!zdr_specdata3 (zdrs, &objp->rdev))
return FALSE;
if (!zdr_uint64_t (zdrs, &objp->fsid))
return FALSE;
if (!zdr_fileid3 (zdrs, &objp->fileid))
return FALSE;
if (!zdr_nfstime3 (zdrs, &objp->atime))
return FALSE;
if (!zdr_nfstime3 (zdrs, &objp->mtime))
return FALSE;
if (!zdr_nfstime3 (zdrs, &objp->ctime))
libnfs/nfs/libnfs-raw-nfs.c view on Meta::CPAN
}
uint32_t
zdr_devicedata3 (ZDR *zdrs, devicedata3 *objp)
{
register int32_t *buf;
buf = NULL;
if (!zdr_sattr3 (zdrs, &objp->dev_attributes))
return FALSE;
if (!zdr_specdata3 (zdrs, &objp->spec))
return FALSE;
return TRUE;
}
uint32_t
zdr_mknoddata3 (ZDR *zdrs, mknoddata3 *objp)
{
register int32_t *buf;
buf = NULL;
libnfs/nfs/libnfs-raw-nfs.h view on Meta::CPAN
typedef u_int mode3;
typedef u_int uid3;
typedef u_int gid3;
typedef uint64_t size3;
typedef uint64_t fileid3;
struct specdata3 {
u_int specdata1;
u_int specdata2;
};
typedef struct specdata3 specdata3;
struct nfstime3 {
u_int seconds;
u_int nseconds;
};
typedef struct nfstime3 nfstime3;
struct fattr3 {
ftype3 type;
mode3 mode;
u_int nlink;
uid3 uid;
gid3 gid;
size3 size;
size3 used;
specdata3 rdev;
uint64_t fsid;
fileid3 fileid;
nfstime3 atime;
nfstime3 mtime;
nfstime3 ctime;
};
typedef struct fattr3 fattr3;
struct post_op_attr {
uint32_t attributes_follow;
libnfs/nfs/libnfs-raw-nfs.h view on Meta::CPAN
nfsstat3 status;
union {
READLINK3resok resok;
READLINK3resfail resfail;
} READLINK3res_u;
};
typedef struct READLINK3res READLINK3res;
struct devicedata3 {
sattr3 dev_attributes;
specdata3 spec;
};
typedef struct devicedata3 devicedata3;
struct mknoddata3 {
ftype3 type;
union {
devicedata3 chr_device;
devicedata3 blk_device;
sattr3 sock_attributes;
sattr3 pipe_attributes;
libnfs/nfs/libnfs-raw-nfs.h view on Meta::CPAN
extern uint32_t zdr_cookie3 (ZDR *, cookie3*);
extern uint32_t zdr_nfs_fh3 (ZDR *, nfs_fh3*);
extern uint32_t zdr_filename3 (ZDR *, filename3*);
extern uint32_t zdr_diropargs3 (ZDR *, diropargs3*);
extern uint32_t zdr_ftype3 (ZDR *, ftype3*);
extern uint32_t zdr_mode3 (ZDR *, mode3*);
extern uint32_t zdr_uid3 (ZDR *, uid3*);
extern uint32_t zdr_gid3 (ZDR *, gid3*);
extern uint32_t zdr_size3 (ZDR *, size3*);
extern uint32_t zdr_fileid3 (ZDR *, fileid3*);
extern uint32_t zdr_specdata3 (ZDR *, specdata3*);
extern uint32_t zdr_nfstime3 (ZDR *, nfstime3*);
extern uint32_t zdr_fattr3 (ZDR *, fattr3*);
extern uint32_t zdr_post_op_attr (ZDR *, post_op_attr*);
extern uint32_t zdr_nfsstat3 (ZDR *, nfsstat3*);
extern uint32_t zdr_stable_how (ZDR *, stable_how*);
extern uint32_t zdr_offset3 (ZDR *, offset3*);
extern uint32_t zdr_count3 (ZDR *, count3*);
extern uint32_t zdr_wcc_attr (ZDR *, wcc_attr*);
extern uint32_t zdr_pre_op_attr (ZDR *, pre_op_attr*);
extern uint32_t zdr_wcc_data (ZDR *, wcc_data*);
libnfs/nfs/libnfs-raw-nfs.h view on Meta::CPAN
extern uint32_t zdr_cookie3 ();
extern uint32_t zdr_nfs_fh3 ();
extern uint32_t zdr_filename3 ();
extern uint32_t zdr_diropargs3 ();
extern uint32_t zdr_ftype3 ();
extern uint32_t zdr_mode3 ();
extern uint32_t zdr_uid3 ();
extern uint32_t zdr_gid3 ();
extern uint32_t zdr_size3 ();
extern uint32_t zdr_fileid3 ();
extern uint32_t zdr_specdata3 ();
extern uint32_t zdr_nfstime3 ();
extern uint32_t zdr_fattr3 ();
extern uint32_t zdr_post_op_attr ();
extern uint32_t zdr_nfsstat3 ();
extern uint32_t zdr_stable_how ();
extern uint32_t zdr_offset3 ();
extern uint32_t zdr_count3 ();
extern uint32_t zdr_wcc_attr ();
extern uint32_t zdr_pre_op_attr ();
extern uint32_t zdr_wcc_data ();
libnfs/nfs/nfs.c view on Meta::CPAN
memset(&args, 0, sizeof(MKNOD3args));
args.where.dir.data.data_len = fh->data.data_len;
args.where.dir.data.data_val = fh->data.data_val;
args.where.name = file;
switch (mode & S_IFMT) {
case S_IFCHR:
args.what.type = NF3CHR;
args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_it = 1;
args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
args.what.mknoddata3_u.chr_device.spec.specdata1 = major;
args.what.mknoddata3_u.chr_device.spec.specdata2 = minor;
break;
case S_IFBLK:
args.what.type = NF3BLK;
args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_it = 1;
args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
args.what.mknoddata3_u.blk_device.spec.specdata1 = major;
args.what.mknoddata3_u.blk_device.spec.specdata2 = minor;
case S_IFSOCK:
args.what.type = NF3SOCK;
args.what.mknoddata3_u.sock_attributes.mode.set_it = 1;
args.what.mknoddata3_u.sock_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
break;
case S_IFIFO:
args.what.type = NF3FIFO;
args.what.mknoddata3_u.pipe_attributes.mode.set_it = 1;
args.what.mknoddata3_u.pipe_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
break;
libnfs/nfs/nfs.x view on Meta::CPAN
typedef unsigned int mode3;
typedef unsigned int uid3;
typedef unsigned int gid3;
typedef uint64_t size3;
typedef uint64_t fileid3;
struct specdata3 {
unsigned int specdata1;
unsigned int specdata2;
};
struct nfstime3 {
unsigned int seconds;
unsigned int nseconds;
};
struct fattr3 {
ftype3 type;
mode3 mode;
unsigned int nlink;
uid3 uid;
gid3 gid;
size3 size;
size3 used;
specdata3 rdev;
uint64_t fsid;
fileid3 fileid;
nfstime3 atime;
nfstime3 mtime;
nfstime3 ctime;
};
union post_op_attr switch (bool attributes_follow) {
case TRUE:
fattr3 attributes;
libnfs/nfs/nfs.x view on Meta::CPAN
union READLINK3res switch (nfsstat3 status) {
case NFS3_OK:
READLINK3resok resok;
default:
READLINK3resfail resfail;
};
struct devicedata3 {
sattr3 dev_attributes;
specdata3 spec;
};
union mknoddata3 switch (ftype3 type) {
case NF3CHR:
devicedata3 chr_device;
case NF3BLK:
devicedata3 blk_device;
case NF3SOCK:
sattr3 sock_attributes;
case NF3FIFO:
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
if (!zdr_aceflag4 (zdrs, &objp->flag))
return FALSE;
if (!zdr_acemask4 (zdrs, &objp->access_mask))
return FALSE;
if (!zdr_utf8str_mixed (zdrs, &objp->who))
return FALSE;
return TRUE;
}
uint32_t
zdr_specdata4 (ZDR *zdrs, specdata4 *objp)
{
if (!zdr_uint32_t (zdrs, &objp->specdata1))
return FALSE;
if (!zdr_uint32_t (zdrs, &objp->specdata2))
return FALSE;
return TRUE;
}
uint32_t
zdr_fattr4_supported_attrs (ZDR *zdrs, fattr4_supported_attrs *objp)
{
if (!zdr_bitmap4 (zdrs, objp))
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
if (!zdr_uint64_t (zdrs, objp))
return FALSE;
return TRUE;
}
uint32_t
zdr_fattr4_rawdev (ZDR *zdrs, fattr4_rawdev *objp)
{
if (!zdr_specdata4 (zdrs, objp))
return FALSE;
return TRUE;
}
uint32_t
zdr_fattr4_space_avail (ZDR *zdrs, fattr4_space_avail *objp)
{
if (!zdr_uint64_t (zdrs, objp))
libnfs/nfs4/libnfs-raw-nfs4.c view on Meta::CPAN
if (!zdr_nfs_ftype4 (zdrs, &objp->type))
return FALSE;
switch (objp->type) {
case NF4LNK:
if (!zdr_linktext4 (zdrs, &objp->createtype4_u.linkdata))
return FALSE;
break;
case NF4BLK:
case NF4CHR:
if (!zdr_specdata4 (zdrs, &objp->createtype4_u.devdata))
return FALSE;
break;
case NF4SOCK:
case NF4FIFO:
case NF4DIR:
break;
default:
break;
}
return TRUE;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
#define MODE4_RUSR 0x100
#define MODE4_WUSR 0x080
#define MODE4_XUSR 0x040
#define MODE4_RGRP 0x020
#define MODE4_WGRP 0x010
#define MODE4_XGRP 0x008
#define MODE4_ROTH 0x004
#define MODE4_WOTH 0x002
#define MODE4_XOTH 0x001
struct specdata4 {
uint32_t specdata1;
uint32_t specdata2;
};
typedef struct specdata4 specdata4;
#define FH4_PERSISTENT 0x00000000
#define FH4_NOEXPIRE_WITH_OPEN 0x00000001
#define FH4_VOLATILE_ANY 0x00000002
#define FH4_VOL_MIGRATION 0x00000004
#define FH4_VOL_RENAME 0x00000008
typedef bitmap4 fattr4_supported_attrs;
typedef nfs_ftype4 fattr4_type;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
typedef utf8str_mixed fattr4_owner;
typedef utf8str_mixed fattr4_owner_group;
typedef uint64_t fattr4_quota_avail_hard;
typedef uint64_t fattr4_quota_avail_soft;
typedef uint64_t fattr4_quota_used;
typedef specdata4 fattr4_rawdev;
typedef uint64_t fattr4_space_avail;
typedef uint64_t fattr4_space_free;
typedef uint64_t fattr4_space_total;
typedef uint64_t fattr4_space_used;
typedef uint32_t fattr4_system;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
union {
COMMIT4resok resok4;
} COMMIT4res_u;
};
typedef struct COMMIT4res COMMIT4res;
struct createtype4 {
nfs_ftype4 type;
union {
linktext4 linkdata;
specdata4 devdata;
} createtype4_u;
};
typedef struct createtype4 createtype4;
struct CREATE4args {
createtype4 objtype;
component4 objname;
fattr4 createattrs;
};
typedef struct CREATE4args CREATE4args;
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
extern uint32_t zdr_layout4 (ZDR *, layout4*);
extern uint32_t zdr_settime4 (ZDR *, settime4*);
extern uint32_t zdr_nfs_fh4 (ZDR *, nfs_fh4*);
extern uint32_t zdr_fsid4 (ZDR *, fsid4*);
extern uint32_t zdr_fs_location4 (ZDR *, fs_location4*);
extern uint32_t zdr_fs_locations4 (ZDR *, fs_locations4*);
extern uint32_t zdr_acetype4 (ZDR *, acetype4*);
extern uint32_t zdr_aceflag4 (ZDR *, aceflag4*);
extern uint32_t zdr_acemask4 (ZDR *, acemask4*);
extern uint32_t zdr_nfsace4 (ZDR *, nfsace4*);
extern uint32_t zdr_specdata4 (ZDR *, specdata4*);
extern uint32_t zdr_fattr4_supported_attrs (ZDR *, fattr4_supported_attrs*);
extern uint32_t zdr_fattr4_type (ZDR *, fattr4_type*);
extern uint32_t zdr_fattr4_fh_expire_type (ZDR *, fattr4_fh_expire_type*);
extern uint32_t zdr_fattr4_change (ZDR *, fattr4_change*);
extern uint32_t zdr_fattr4_size (ZDR *, fattr4_size*);
extern uint32_t zdr_fattr4_link_support (ZDR *, fattr4_link_support*);
extern uint32_t zdr_fattr4_symlink_support (ZDR *, fattr4_symlink_support*);
extern uint32_t zdr_fattr4_named_attr (ZDR *, fattr4_named_attr*);
extern uint32_t zdr_fattr4_fsid (ZDR *, fattr4_fsid*);
extern uint32_t zdr_fattr4_unique_handles (ZDR *, fattr4_unique_handles*);
libnfs/nfs4/libnfs-raw-nfs4.h view on Meta::CPAN
extern uint32_t zdr_layout4 ();
extern uint32_t zdr_settime4 ();
extern uint32_t zdr_nfs_fh4 ();
extern uint32_t zdr_fsid4 ();
extern uint32_t zdr_fs_location4 ();
extern uint32_t zdr_fs_locations4 ();
extern uint32_t zdr_acetype4 ();
extern uint32_t zdr_aceflag4 ();
extern uint32_t zdr_acemask4 ();
extern uint32_t zdr_nfsace4 ();
extern uint32_t zdr_specdata4 ();
extern uint32_t zdr_fattr4_supported_attrs ();
extern uint32_t zdr_fattr4_type ();
extern uint32_t zdr_fattr4_fh_expire_type ();
extern uint32_t zdr_fattr4_change ();
extern uint32_t zdr_fattr4_size ();
extern uint32_t zdr_fattr4_link_support ();
extern uint32_t zdr_fattr4_symlink_support ();
extern uint32_t zdr_fattr4_named_attr ();
extern uint32_t zdr_fattr4_fsid ();
extern uint32_t zdr_fattr4_unique_handles ();
libnfs/nfs4/nfs4.x view on Meta::CPAN
const MODE4_WGRP = 0x010; /* write permission: group */
const MODE4_XGRP = 0x008; /* execute permission: group */
const MODE4_ROTH = 0x004; /* read permission: other */
const MODE4_WOTH = 0x002; /* write permission: other */
const MODE4_XOTH = 0x001; /* execute permission: other */
/*
* Special data/attribute associated with
* file types NF4BLK and NF4CHR.
*/
struct specdata4 {
uint32_t specdata1; /* major device number */
uint32_t specdata2; /* minor device number */
};
/*
* Values for fattr4_fh_expire_type
*/
const FH4_PERSISTENT = 0x00000000;
const FH4_NOEXPIRE_WITH_OPEN = 0x00000001;
const FH4_VOLATILE_ANY = 0x00000002;
const FH4_VOL_MIGRATION = 0x00000004;
const FH4_VOL_RENAME = 0x00000008;
libnfs/nfs4/nfs4.x view on Meta::CPAN
typedef utf8str_cs fattr4_mimetype;
typedef mode4 fattr4_mode;
typedef uint64_t fattr4_mounted_on_fileid;
typedef bool fattr4_no_trunc;
typedef uint32_t fattr4_numlinks;
typedef utf8str_mixed fattr4_owner;
typedef utf8str_mixed fattr4_owner_group;
typedef uint64_t fattr4_quota_avail_hard;
typedef uint64_t fattr4_quota_avail_soft;
typedef uint64_t fattr4_quota_used;
typedef specdata4 fattr4_rawdev;
typedef uint64_t fattr4_space_avail;
typedef uint64_t fattr4_space_free;
typedef uint64_t fattr4_space_total;
typedef uint64_t fattr4_space_used;
typedef bool fattr4_system;
typedef nfstime4 fattr4_time_access;
typedef settime4 fattr4_time_access_set;
typedef nfstime4 fattr4_time_backup;
typedef nfstime4 fattr4_time_create;
typedef nfstime4 fattr4_time_delta;
libnfs/nfs4/nfs4.x view on Meta::CPAN
};
/*
* CREATE: Create a non-regular file
*/
union createtype4 switch (nfs_ftype4 type) {
case NF4LNK:
linktext4 linkdata;
case NF4BLK:
case NF4CHR:
specdata4 devdata;
case NF4SOCK:
case NF4FIFO:
case NF4DIR:
void;
default:
void; /* server should return NFS4ERR_BADTYPE */
};
struct CREATE4args {
/* CURRENT_FH: directory for creation */