home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 8.ddi / usr / include / sys / cred.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-08  |  1.8 KB  |  69 lines

  1. /*    Copyright (c) 1990 UNIX System Laboratories, Inc.    */
  2. /*    Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T    */
  3. /*      All Rights Reserved      */
  4.  
  5. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF         */
  6. /*    UNIX System Laboratories, Inc.                         */
  7. /*    The copyright notice above does not evidence any       */
  8. /*    actual or intended publication of such source code.    */
  9.  
  10. #ifndef _SYS_CRED_H
  11. #define _SYS_CRED_H
  12.  
  13. #ident    "@(#)/usr/include/sys/cred.h.sl 1.1 4.0 12/08/90 36837 AT&T-USL"
  14. /*
  15.  * User credentials.  The size of the cr_groups[] array is configurable
  16.  * but is the same (ngroups_max) for all cred structures; cr_ngroups
  17.  * records the number of elements currently in use, not the array size.
  18.  */
  19.  
  20. typedef struct cred {
  21.     ushort    cr_ref;            /* reference count */
  22.     ushort    cr_ngroups;        /* number of groups in cr_groups */
  23.     uid_t    cr_uid;            /* effective user id */
  24.     gid_t    cr_gid;            /* effective group id */
  25.     uid_t    cr_ruid;        /* real user id */
  26.     gid_t    cr_rgid;        /* real group id */
  27.     uid_t    cr_suid;        /* "saved" user id (from exec) */
  28.     gid_t    cr_sgid;        /* "saved" group id (from exec) */
  29.     gid_t    cr_groups[1];        /* supplementary group list */
  30. } cred_t;
  31.  
  32. #ifdef _KERNEL
  33.  
  34. #define    crhold(cr)    (cr)->cr_ref++
  35.  
  36. extern int ngroups_max;
  37.  
  38. #if defined(__STDC__)
  39.  
  40. extern void cred_init(void);
  41. extern void crfree(cred_t *);
  42. extern cred_t *crget(void);
  43. extern cred_t *crcopy(cred_t *);
  44. extern cred_t *crdup(cred_t *);
  45. extern cred_t *crgetcred(void);
  46. extern int suser(cred_t *);
  47. extern int groupmember(gid_t, cred_t *);
  48. extern int hasprocperm(cred_t *, cred_t *);
  49.  
  50. #else
  51.  
  52. extern void cred_init();
  53. extern void crfree();
  54. extern cred_t *crget();
  55. extern cred_t *crcopy();
  56. extern cred_t *crdup();
  57. extern cred_t *crgetcred();
  58. extern int suser();
  59. extern int groupmember();
  60. extern int hasprocperm();
  61.  
  62.  
  63. #endif    /* __STDC */
  64.  
  65.  
  66. #endif
  67.  
  68. #endif    /* _SYS_CRED_H */
  69.