7.3-STABLE and Linux version of SIMetrix
Andre Albsmeier
Andre.Albsmeier at siemens.com
Thu Jan 6 10:40:59 UTC 2011
On Thu, 06-Jan-2011 at 09:01:30 +0100, Alexander Leidinger wrote:
> Quoting Andre Albsmeier <Andre.Albsmeier at siemens.com> (from Wed, 5 Jan
> 2011 20:19:15 +0100):
>
> > Got it running... A short explanation:
> >
> > Linux' shm_open() fails because it wants to find some funky shmfs
> > to construct the full pathname. It starts to search at the default
> > mountpoint which is /dev/shm. If this fails it runs through fstab
> > and searches for shmfs and tmpfs. Whatever it finds will be
> > statfs()'ed to be checked for Linux' fs magic for shmfs (0x01021994).
>
> What does it expect as a filesystem type if it does not find shmfs in
> fstab but tmpfs? If it does not find tmpfs, will it try /tmp anyway
> (but check for some fstype magic)?
It searches for every mount which is of type tmpfs or shm.
Whatever it finds must have the fs magic SHMFS_SUPER_MAGIC
(0x01021994). It's in sysdeps/unix/sysv/linux/shm_open.c:
------------------------- snip -------------------
/* Now read the entries. */
while ((mp = __getmntent_r (fp, &resmem, buf, sizeof buf)) != NULL)
/* The original name is "shm" but this got changed in early Linux
2.4.x to "tmpfs". */
if (strcmp (mp->mnt_type, "tmpfs") == 0
#ifndef __ASSUME_TMPFS_NAME
|| strcmp (mp->mnt_type, "shm") == 0
#endif
)
{
/* Found it. There might be more than one place where the
filesystem is mounted but one is enough for us. */
size_t namelen;
/* First make sure this really is the correct entry. At least
some versions of the kernel give wrong information because
of the implicit mount of the shmfs for SysV IPC. */
if (__statfs (mp->mnt_dir, &f) != 0 || f.f_type != SHMFS_SUPER_MAGIC)
continue;
------------------------- snap -------------------
-Andre
>
> Bye,
> Alexander.
>
> --
> Money cannot buy love, nor even friendship.
>
> http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
> http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
>
--
FreeBSD: We eat penguins for breakfast
More information about the freebsd-emulation
mailing list