home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 8.ddi / usr / include / sys / session.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-08  |  1.8 KB  |  70 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_SESSION_H
  11. #define _SYS_SESSION_H
  12.  
  13. #ident    "@(#)/usr/include/sys/session.h.sl 1.1 4.0 12/08/90 26453 AT&T-USL"
  14. typedef struct sess {
  15.  
  16.     short s_ref;             /* reference count */
  17.     short s_mode;            /* /sess current permissions */
  18.     uid_t s_uid;            /* /sess current user ID */
  19.     gid_t s_gid;            /* /sess current group ID */
  20.     ulong s_ctime;            /* /sess change time */
  21.     dev_t s_dev;            /* tty's device number */
  22.     struct vnode *s_vp;        /* tty's vnode */
  23.     struct pid *s_sidp;        /* session ID info */
  24.     struct cred *s_cred;        /* allocation credentials */
  25.  
  26. } sess_t;
  27.  
  28. #define s_sid s_sidp->pid_id
  29.  
  30. extern sess_t session0;
  31.  
  32. /*
  33.  * Enumeration of the types of access that can be requested for a 
  34.  * controlling terminal under job control.
  35.  */
  36.  
  37. enum jcaccess {
  38.     JCREAD,            /* read data on a ctty */
  39.     JCWRITE,        /* write data to a ctty */
  40.     JCSETP,            /* set ctty parameters */
  41.     JCGETP            /* get ctty parameters */
  42. };
  43.  
  44. #define SESS_HOLD(sp)    (++(sp)->s_ref)
  45. #define SESS_RELE(sp)    (--(sp)->s_ref > 0 ? 0 : sess_rele(sp))
  46.  
  47. #if defined(__STDC__)
  48.  
  49. extern int sess_rele(sess_t *);
  50. extern void sess_create(void);
  51. extern void freectty(sess_t *);
  52. extern void alloctty(proc_t *, vnode_t *);
  53. extern int realloctty(proc_t *, pid_t);
  54. extern dev_t cttydev(proc_t *);
  55. extern int hascttyperm(sess_t *, cred_t *, mode_t);
  56.  
  57. #else
  58.  
  59. extern int sess_rele();
  60. extern void sess_create();
  61. extern void freectty();
  62. extern void alloctty();
  63. extern int realloctty();
  64. extern dev_t cttydev();
  65. extern int hascttyperm();
  66.  
  67. #endif
  68.  
  69. #endif
  70.