anchor.diff:              (values name passwd uid gid gecos dir shell))))))
   
   (defentrypoint %sys-getpwuid (uid)
  -  "Gets the password-entry of a user, by user id. (reentrant)"
  +  "Gets the password-entry of a user, by user id (reentrant)."
     (funcall-getpw #'%%sys-getpwuid-r uid))
   
   (defentrypoint %sys-getpwnam (name)
  -  "Gets the password-entry of a user, by username. (reentrant)"
  +  "Gets the password-entry of a user, by username (reentrant)."
     (funcall-getpw #'%%sys-getpwnam-r name))
    
  
positive.code:   (bufsize size-t))
  
  (defentrypoint %sys-readlink (path)
    "Read value of a symbolic link."
    (with-foreign-pointer (buf 4096 bufsize)
      (let ((count (%%sys-readlink path buf bufsize)))
        (values (foreign-string-to-lisp buf :count count)))))
  
  (defsyscall (%sys-unlink "unlink") :int
    (path filename-designator))
  
  (defsyscall* (%sys-chown "chown") :int
    "Change ownership of a file."
    (path  filename-designator)
    (owner uid-t)
    (group uid-t))
  
  (defsyscall* (%sys-fchown "fchown") :int
    "Change ownership of an open file."
    (fd    :int)
    (owner uid-t)
    (group uid-t))
  
  (defsyscall* (%sys-lchown "lchown") :int
    "Change ownership of a file or symlink."
    (path  filename-designator)
    (owner uid-t)
    (group uid-t))
  
  (defsyscall* (%sys-chmod "chmod") :int
    (path filename-designator)
    (mode mode-t))
  
  (defsyscall* (%sys-fchmod "fchmod") :int
    (fd   :int)
    (mode mode-t))
  
  
negative.code:   (offset off-t))
  
  (defsyscall (%sys-munmap "munmap") :int
    "Unmap pages of memory starting at address ADDR with length LENGTH."
    (addr   :pointer)
    (length size-t))
  
  
  