Print this page
14249 pseudo-terminal nomenclature should reflect POSIX
Change-Id: Ib4a3cef899ff4c71b09cb0dc6878863c5e8357bc

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/ptms.h
          +++ new/usr/src/uts/common/sys/ptms.h
↓ open down ↓ 27 lines elided ↑ open up ↑
  28   28  #ifndef _SYS_PTMS_H
  29   29  #define _SYS_PTMS_H
  30   30  
  31   31  #ifdef  __cplusplus
  32   32  extern "C" {
  33   33  #endif
  34   34  
  35   35  #ifdef _KERNEL
  36   36  
  37   37  /*
  38      - * Structures and definitions supporting the pseudo terminal
  39      - * drivers. This structure is private and should not be used by any
  40      - * applications.
       38 + * Structures and definitions supporting the pseudo-terminal drivers. This
       39 + * structure is private and should not be used by any applications.
  41   40   */
  42   41  struct pt_ttys {
  43      -        queue_t *ptm_rdq;       /* master's read queue pointer */
  44      -        queue_t *pts_rdq;       /* slave's read queue pointer */
       42 +        queue_t *ptm_rdq;       /* manager's read queue pointer */
       43 +        queue_t *pts_rdq;       /* subsidiary's read queue pointer */
  45   44          mblk_t  *pt_nullmsg;    /* 0-bytes message block for pts close */
  46   45          pid_t    pt_pid;        /* process id (for debugging) */
  47   46          minor_t  pt_minor;      /* Minor number of this pty */
  48   47          int      pt_refcnt;     /* reference count for ptm_rdq/pts_rdq uses */
  49      -        ushort_t pt_state;      /* state of master/slave pair */
       48 +        ushort_t pt_state;      /* state of manager/subsidiary pair */
  50   49          kcondvar_t pt_cv;       /* condition variable for exclusive access */
  51   50          kmutex_t pt_lock;       /* Per-element lock */
  52   51          zoneid_t pt_zoneid;     /* Zone membership for this pty */
  53   52          uid_t    pt_ruid;       /* Real owner of pty */
  54   53          gid_t    pt_rgid;       /* Real group owner of pty */
  55   54  };
  56   55  
  57   56  /*
  58   57   * pt_state values
  59   58   */
  60      -#define PTLOCK          0x01    /* master/slave pair is locked */
  61      -#define PTMOPEN         0x02    /* master side is open */
  62      -#define PTSOPEN         0x04    /* slave side is open */
  63      -#define PTSTTY          0x08    /* slave side is tty */
       59 +#define PTLOCK          0x01    /* manager/subsidiary pair is locked */
       60 +#define PTMOPEN         0x02    /* manager side is open */
       61 +#define PTSOPEN         0x04    /* subsidiary side is open */
       62 +#define PTSTTY          0x08    /* subsidiary side is tty */
  64   63  
  65   64  /*
  66   65   * Multi-threading primitives.
  67   66   * Values of pt_refcnt: -1 if a writer is accessing the struct
  68   67   *                      0  if no one is reading or writing
  69   68   *                      > 0 equals to the number of readers accessing the struct
  70   69   */
  71   70  #define PT_ENTER_READ(p) {                      \
  72   71          mutex_enter(&(p)->pt_lock);             \
  73   72          while ((p)->pt_refcnt < 0)              \
↓ open down ↓ 23 lines elided ↑ open up ↑
  97   96          ASSERT((p)->pt_refcnt == -1);           \
  98   97          (p)->pt_refcnt = 0;                     \
  99   98          cv_broadcast(&(p)->pt_cv);              \
 100   99          mutex_exit(&(p)->pt_lock);              \
 101  100  }
 102  101  
 103  102  /*
 104  103   * ptms_lock and pt_cnt are defined in ptms_conf.c
 105  104   */
 106  105  extern kmutex_t         ptms_lock;
 107      -extern dev_info_t       *pts_dip;       /* private copy of devinfo ptr */
      106 +extern dev_info_t       *pts_dip;       /* private copy of devinfo ptr */
 108  107  
 109  108  extern void ptms_init(void);
 110  109  extern struct pt_ttys *pt_ttys_alloc(void);
 111  110  extern void ptms_close(struct pt_ttys *, uint_t);
 112  111  extern struct pt_ttys *ptms_minor2ptty(minor_t);
 113      -extern int ptms_attach_slave(void);
      112 +extern int ptms_attach_subsidiary(void);
 114  113  extern int ptms_minor_valid(minor_t ptmin, uid_t *uid, gid_t *gid);
 115  114  extern int ptms_minor_exists(minor_t ptmin);
 116  115  extern void ptms_set_owner(minor_t ptmin, uid_t uid, gid_t gid);
 117      -extern major_t ptms_slave_attached(void);
      116 +extern major_t ptms_subsidiary_attached(void);
 118  117  
 119  118  #ifdef DEBUG
 120  119  extern void ptms_log(char *, uint_t);
 121  120  extern void ptms_logp(char *, uintptr_t);
 122  121  #define DDBG(a, b) ptms_log(a, b)
 123  122  #define DDBGP(a, b) ptms_logp(a, b)
 124  123  #else
 125  124  #define DDBG(a, b)
 126  125  #define DDBGP(a, b)
 127  126  #endif
 128  127  
 129  128  #endif /* _KERNEL */
 130  129  
 131  130  typedef struct pt_own {
 132  131          uid_t   pto_ruid;
 133  132          gid_t   pto_rgid;
 134  133  } pt_own_t;
 135  134  
 136  135  /*
 137      - * ioctl commands
      136 + * IOCTL COMMANDS
 138  137   *
 139      - *  ISPTM: Determines whether the file descriptor is that of an open master
 140      - *         device. Return code of zero indicates that the file descriptor
 141      - *         represents master device.
      138 + *      ISPTM
      139 + *              Determines whether the file descriptor is that of an open
      140 + *              manager device.  Return code of zero indicates that the file
      141 + *              descriptor represents a manager device.
 142  142   *
 143      - * UNLKPT: Unlocks the master and slave devices.  It returns 0 on success. On
 144      - *         failure, the errno is set to EINVAL indicating that the master
 145      - *         device is not open.
      143 + *      UNLKPT
      144 + *              Unlocks the manager and subsidiary devices.  It returns 0 on
      145 + *              success.  On failure, the errno is set to EINVAL indicating
      146 + *              that the manager device is not open.
 146  147   *
 147      - *  ZONEPT: Sets the zoneid of the pair of master and slave devices.  It
 148      - *          returns 0 upon success.  Used to force a pty 'into' a zone upon
 149      - *          zone entry.
      148 + *      ZONEPT
      149 + *              Sets the zoneid of the pair of manager and subsidiary devices.
      150 + *              It returns 0 upon success.  Used to force a pty 'into' a zone
      151 + *              upon zone entry.
 150  152   *
 151      - * PT_OWNER: Sets uid and gid for slave device.  It returns 0 on success.
 152      - *
      153 + *      PT_OWNER
      154 + *              Sets uid and gid for subsidiary device.  It returns 0 on
      155 + *              success.
 153  156   */
 154      -#define ISPTM           (('P'<<8)|1)    /* query for master */
 155      -#define UNLKPT          (('P'<<8)|2)    /* unlock master/slave pair */
 156      -#define PTSSTTY         (('P'<<8)|3)    /* set tty flag */
 157      -#define ZONEPT          (('P'<<8)|4)    /* set zone of master/slave pair */
 158      -#define OWNERPT         (('P'<<8)|5)    /* set owner/group for slave device */
      157 +#define ISPTM           (('P'<<8)|1)  /* query for manager */
      158 +#define UNLKPT          (('P'<<8)|2)  /* unlock manager/subsidiary pair */
      159 +#define PTSSTTY         (('P'<<8)|3)  /* set tty flag */
      160 +#define ZONEPT          (('P'<<8)|4)  /* set zone of manager/subsidiary pair */
      161 +#define OWNERPT         (('P'<<8)|5)  /* set owner/group for subsidiary */
 159  162  
 160  163  #ifdef  __cplusplus
 161  164  }
 162  165  #endif
 163  166  
 164  167  #endif  /* _SYS_PTMS_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX