3 Replies Latest reply: May 14, 2010 11:25 AM by 807559 RSS

    fsat syscall

    807559
      does anybody know some documentation about 'fsat' syscall? What does the syscall do?

      neither google nor docs.sun.com helps ...
        • 1. Re: fsat syscall
          807559
          This excerpt is taken from the source code file in which it appears.

          43 /*
          44 * This file contains the emulation functions for all of the
          45 * obsolete system call traps that existed in Solaris 10 but
          46 * that have been deleted in the current version of Solaris.
          47 */

          I doubt there is much else to discover, unless a knowledgeable kernel engineer chimes in, or you want to dig through PSARC archives...

          Regards,

          Michael
          • 2. Re: fsat syscall
            807559
            From:

            http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/brand/solaris10/s10_brand/common/s10_deleted.c#419

            418 /*
            419 * This is the fsat() system call trap in s10.
            420 * It has been removed in the current system.
            421 */
            422 int
            423 s10_fsat(sysret_t *rval,
            424 int code, uintptr_t arg1, uintptr_t arg2,
            425 uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
            426 {
            427      switch (code) {
            428      case 0:          /* openat */
            429           return (s10_openat(rval, (int)arg1,
            430           (const char *)arg2, (int)arg3, (mode_t)arg4));
            431      case 1:          /* openat64 */
            432 #if defined(_LP64)
            433           return (EINVAL);
            434 #else
            435           return (s10_openat64(rval, (int)arg1,
            436           (const char *)arg2, (int)arg3, (mode_t)arg4));
            437 #endif
            438      case 2:          /* fstatat64 */
            439 #if defined(_LP64)
            440           return (EINVAL);
            441 #else
            442           return (s10_fstatat64(rval, (int)arg1,
            443           (const char *)arg2, (struct stat64 *)arg3, (int)arg4));
            444 #endif
            445      case 3:          /* fstatat */
            446           return (s10_fstatat(rval, (int)arg1,
            447           (const char *)arg2, (struct stat *)arg3, (int)arg4));
            448      case 4:          /* fchownat */
            449           return (s10_fchownat(rval, (int)arg1, (char *)arg2,
            450           (uid_t)arg3, (gid_t)arg4, (int)arg5));
            451      case 5:          /* unlinkat */
            452           return (s10_unlinkat(rval, (int)arg1, (char *)arg2,
            453           (int)arg3));
            454      case 6:          /* futimesat */
            455           return (s10_futimesat(rval, (int)arg1,
            456           (const char *)arg2, (const struct timeval *)arg3));
            457      case 7:          /* renameat */
            458           return (s10_renameat(rval, (int)arg1, (char *)arg2,
            459           (int)arg3, (char *)arg4));
            460      case 8:          /* faccessat */
            461           return (s10_faccessat(rval, (int)arg1, (char *)arg2,
            462           (int)arg3, (int)arg4));
            463      case 9:          /* openattrdirat */
            464           return (s10_openat(rval, (int)arg1,
            465           (const char *)arg2, FXATTRDIROPEN, 0));
            466      }
            467      return (EINVAL);
            468 }
            469

            and here:

            http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/sysent.c#510

            508      /* 74 */ SYSENT_CI("rctlsys",          rctlsys,     6),
            509      /* 75 */ SYSENT_2CI("sidsys",          sidsys,          4),
            510      /* 76 */ SYSENT_LOADABLE(),               /* (was fsat) */
            511      /* 77 */ SYSENT_CI("lwp_park",          syslwp_park,     3),
            512      /* 78 */ SYSENT_CL("sendfilev",          sendfilev,     5),

            From the above, we can guess that fsat() was obsoleted, but essentially it is a merging of a lot of other raw file system call primitives lumped together.
            • 3. Re: fsat syscall
              807559
              On a related matter, I came across a PSARC caselog for removing obsolete system call traps. You can read what discussion is available here:

              http://arc.opensolaris.org/caselog/PSARC/2009/657/

              Regards,

              Michael