summaryrefslogtreecommitdiff
path: root/netfs/ice/typeConvert.cpp
blob: cc3ee935d524b8e1333478032010ceeed9fdad54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "typeConvert.h"

void
operator<<(struct stat & s, const AttrSource & a)
{
	s.st_dev = a.attr.dev;
	s.st_ino = a.attr.inode;
	s.st_mode = a.attr.mode;
	s.st_nlink = a.attr.links;
	a.user(a.attr.uid, &s.st_uid);
	a.group(a.attr.gid, &s.st_gid);
	s.st_rdev = a.attr.rdev;
	s.st_size = a.attr.size;
	s.st_blksize = a.attr.blockSize;
	s.st_blocks = a.attr.blocks;
	s.st_atime = a.attr.atime;
	s.st_mtime = a.attr.mtime;
	s.st_ctime = a.attr.ctime;
}

void
operator<<(struct statvfs & vfs, const NetFS::VFS & v)
{
	vfs.f_bsize = v.blockSize;
	vfs.f_frsize = v.fragmentSize;
	vfs.f_blocks = v.blocks;
	vfs.f_bfree = v.freeBlocks;
	vfs.f_bavail = v.availBlocks;
	vfs.f_files = v.files;
	vfs.f_ffree = v.freeFiles;
	vfs.f_favail = v.availFiles;
	vfs.f_fsid = v.FSID;
	vfs.f_flag = v.flags;
	vfs.f_namemax = v.maxNameLen;
}

void
operator<<(NetFS::Attr & a, const struct StatSource & s)
{
	a.dev = s.stat.st_dev;
	a.inode = s.stat.st_ino;
	a.mode = s.stat.st_mode;
	a.links = s.stat.st_nlink;
	s.user(s.stat.st_uid, &a.uid);
	s.group(s.stat.st_gid, &a.gid);
	a.rdev = s.stat.st_rdev;
	a.size = s.stat.st_size;
	a.blockSize = s.stat.st_blksize;
	a.blocks = s.stat.st_blocks;
	a.atime = s.stat.st_atime;
	a.mtime = s.stat.st_mtime;
	a.ctime = s.stat.st_ctime;
}

void
operator<<(NetFS::VFS & t, const struct statvfs & s)
{
	t.blockSize = s.f_bsize;
	t.fragmentSize = s.f_frsize;
	t.blocks = s.f_blocks;
	t.freeBlocks = s.f_bfree;
	t.availBlocks = s.f_bavail;
	t.files = s.f_files;
	t.freeFiles = s.f_ffree;
	t.availFiles = s.f_favail;
	t.FSID = s.f_fsid;
	t.flags = s.f_flag;
	t.maxNameLen = s.f_namemax;
}