Here are the examples of the csharp api System.Collections.Generic.List.Add(inode) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
4 Examples
19
Source : PFSBuilder.cs
with The Unlicense
from marcussacana
with The Unlicense
from marcussacana
void addDirInodes()
{
inodes.Add(properties.root.ino);
foreach (var dir in allDirs.OrderBy(x => x.FullPath()))
{
var ino = MakeInode(
Mode: InodeMode.dir | inode.RXOnly,
Number: (uint)inodes.Count,
Blocks: 1,
Size: 65536,
Flags: InodeFlags.@readonly,
Nlink: 2 // 1 link each for its own dirent and its . dirent
);
dir.ino = ino;
dir.Dirents.Add(new PfsDirent { Name = ".", InodeNumber = ino.Number, Type = DirentType.Dot });
dir.Dirents.Add(new PfsDirent { Name = "..", InodeNumber = dir.Parent.ino.Number, Type = DirentType.DotDot });
var dirent = new PfsDirent { Name = dir.name, InodeNumber = (uint)inodes.Count, Type = DirentType.Directory };
dir.Parent.Dirents.Add(dirent);
dir.Parent.ino.Nlink++;
inodes.Add(ino);
}
}
19
Source : PFSBuilder.cs
with The Unlicense
from marcussacana
with The Unlicense
from marcussacana
void addDirInodes()
{
inodes.Add(properties.root.ino);
foreach (var dir in allDirs.OrderBy(x => x.FullPath()))
{
var ino = MakeInode(
Mode: InodeMode.dir | inode.RXOnly,
Number: (uint)inodes.Count,
Blocks: 1,
Size: 65536,
Flags: InodeFlags.@readonly,
Nlink: 2 // 1 link each for its own dirent and its . dirent
);
dir.ino = ino;
dir.Dirents.Add(new PfsDirent { Name = ".", InodeNumber = ino.Number, Type = DirentType.Dot });
dir.Dirents.Add(new PfsDirent { Name = "..", InodeNumber = dir.Parent.ino.Number, Type = DirentType.DotDot });
var dirent = new PfsDirent { Name = dir.name, InodeNumber = (uint)inodes.Count, Type = DirentType.Directory };
dir.Parent.Dirents.Add(dirent);
dir.Parent.ino.Nlink++;
inodes.Add(ino);
}
}
19
Source : PFSBuilder.cs
with The Unlicense
from marcussacana
with The Unlicense
from marcussacana
void addFileInodes()
{
foreach (var file in allFiles.OrderBy(x => x.FullPath()))
{
var ino = MakeInode(
Mode: InodeMode.file | inode.RXOnly,
Size: file.Size,
SizeCompressed: file.CompressedSize,
Number: (uint)inodes.Count,
Blocks: (uint)CeilDiv(file.Size, hdr.BlockSize),
Flags: InodeFlags.@readonly | (file.Compress ? InodeFlags.compressed : 0)
);
if (properties.Sign) // HACK: Outer PFS images don't use readonly?
{
ino.Flags &= ~InodeFlags.@readonly;
}
file.ino = ino;
var dirent = new PfsDirent { Name = file.name, Type = DirentType.File, InodeNumber = (uint)inodes.Count };
file.Parent.Dirents.Add(dirent);
inodes.Add(ino);
}
}
19
Source : PFSBuilder.cs
with The Unlicense
from marcussacana
with The Unlicense
from marcussacana
void SetupRootStructure(bool hasCollision)
{
var inodeNum = 0u;
inodes.Add(super_root_ino = MakeInode(
Mode: InodeMode.dir | inode.RXOnly,
Blocks: 1,
Size: 65536,
SizeCompressed: 65536,
Nlink: 1,
Number: inodeNum++,
Flags: InodeFlags.@internal | InodeFlags.@readonly
));
inodes.Add(fpt_ino = MakeInode(
Mode: InodeMode.file | inode.RXOnly,
Blocks: 1,
Number: inodeNum++,
Flags: InodeFlags.@internal | InodeFlags.@readonly
));
if(hasCollision)
{
inodes.Add(cr_ino = MakeInode(
Mode: InodeMode.file | inode.RXOnly,
Blocks: 1,
Number: inodeNum++,
Flags: InodeFlags.@internal | InodeFlags.@readonly
));
}
var uroot_ino = MakeInode(
Mode: InodeMode.dir | inode.RXOnly,
Number: inodeNum++,
Size: 65536,
SizeCompressed: 65536,
Blocks: 1,
Flags: InodeFlags.@readonly,
Nlink: 3
);
super_root_dirents = new List<PfsDirent>
{
new PfsDirent { InodeNumber = fpt_ino.Number, Name = "flat_path_table", Type = DirentType.File },
};
if(hasCollision)
{
super_root_dirents.Add(
new PfsDirent { InodeNumber = cr_ino.Number, Name = "collision_resolver", Type = DirentType.File });
}
super_root_dirents.Add(
new PfsDirent { InodeNumber = uroot_ino.Number, Name = "uroot", Type = DirentType.Directory });
properties.root.name = "uroot";
properties.root.ino = uroot_ino;
properties.root.Dirents = new List<PfsDirent>
{
new PfsDirent { Name = ".", Type = DirentType.Dot, InodeNumber = uroot_ino.Number },
new PfsDirent { Name = "..", Type = DirentType.DotDot, InodeNumber = uroot_ino.Number }
};
if(properties.Sign) // HACK: Outer PFS lacks readonly flags
{
super_root_ino.Flags &= ~InodeFlags.@readonly;
fpt_ino.Flags &= ~InodeFlags.@readonly;
uroot_ino.Flags &= ~InodeFlags.@readonly;
}
}