Hi,

I'm trying to write a kernel module as example for mounting and unmounting 
tmpfs. For that, I read the mount_tmpfs code and in line 247 I found the call 
for mount() syscall here:
https://nxr.netbsd.org/xref/src/sbin/mount_tmpfs/mount_tmpfs.c#247

Then I looked for how the kernel mounts file systems and found there are 
_mount() function for every file system:
https://nxr.netbsd.org/xref/src/sys/sys/mount.h#254

Now, I just needed to know how to use tmpfs_mount() and find it here:
https://nxr.netbsd.org/xref/src/sys/fs/tmpfs/tmpfs_vfsops.c#86
but I still don't know how to use it. I created the struct 
[tmpfs_args](https://nxr.netbsd.org/source/s?defs=tmpfs_args&project=src) 
[args](https://nxr.netbsd.org/source/s?refs=args&project=src) and size_t 
args_len = sizeof args variables to pass to data and data_len arguments in 
tmpfs_mount(). And the directory I'm mounting is "/tmp". So, I have 3 of 4 
arguments needed to tmpfs_mount(), the last one is the struct mount *mp.

I know the mount() syscall takes 
[MOUNT_TMPFS](https://nxr.netbsd.org/source/s?defs=MOUNT_TMPFS&project=src) as 
first argument, but I'm not understanding the magic behind struct mount mp and 
what I need to assign to the struct mount variable to pass it to that argument. 
Any hint?

Thanks for the help,

Bruno Melo.

Reply via email to