[BACK]Return to tty.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/tty.c between version 1.234 and 1.234.2.1

version 1.234, 2009/10/11 17:20:48 version 1.234.2.1, 2010/08/17 06:47:32
Line 208  uint64_t tk_rawcc;
Line 208  uint64_t tk_rawcc;
   
 static kauth_listener_t tty_listener;  static kauth_listener_t tty_listener;
   
 SYSCTL_SETUP(sysctl_kern_tkstat_setup, "sysctl kern.tkstat subtree setup")  static struct sysctllog *kern_tkstat_sysctllog;
   
   static void
   sysctl_kern_tkstat_setup(void)
 {  {
   
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_NODE, "kern", NULL,                         CTLTYPE_NODE, "kern", NULL,
                        NULL, 0, NULL, 0,                         NULL, 0, NULL, 0,
                        CTL_KERN, CTL_EOL);                         CTL_KERN, CTL_EOL);
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_NODE, "tkstat",                         CTLTYPE_NODE, "tkstat",
                        SYSCTL_DESCR("Number of characters sent and and "                         SYSCTL_DESCR("Number of characters sent and and "
Line 224  SYSCTL_SETUP(sysctl_kern_tkstat_setup, "
Line 227  SYSCTL_SETUP(sysctl_kern_tkstat_setup, "
                        NULL, 0, NULL, 0,                         NULL, 0, NULL, 0,
                        CTL_KERN, KERN_TKSTAT, CTL_EOL);                         CTL_KERN, KERN_TKSTAT, CTL_EOL);
   
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_QUAD, "nin",                         CTLTYPE_QUAD, "nin",
                        SYSCTL_DESCR("Total number of tty input characters"),                         SYSCTL_DESCR("Total number of tty input characters"),
                        NULL, 0, &tk_nin, 0,                         NULL, 0, &tk_nin, 0,
                        CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_NIN, CTL_EOL);                         CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_NIN, CTL_EOL);
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_QUAD, "nout",                         CTLTYPE_QUAD, "nout",
                        SYSCTL_DESCR("Total number of tty output characters"),                         SYSCTL_DESCR("Total number of tty output characters"),
                        NULL, 0, &tk_nout, 0,                         NULL, 0, &tk_nout, 0,
                        CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_NOUT, CTL_EOL);                         CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_NOUT, CTL_EOL);
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_QUAD, "cancc",                         CTLTYPE_QUAD, "cancc",
                        SYSCTL_DESCR("Number of canonical tty input characters"),                         SYSCTL_DESCR("Number of canonical tty input characters"),
                        NULL, 0, &tk_cancc, 0,                         NULL, 0, &tk_cancc, 0,
                        CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_CANCC, CTL_EOL);                         CTL_KERN, KERN_TKSTAT, KERN_TKSTAT_CANCC, CTL_EOL);
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(&kern_tkstat_sysctllog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_QUAD, "rawcc",                         CTLTYPE_QUAD, "rawcc",
                        SYSCTL_DESCR("Number of raw tty input characters"),                         SYSCTL_DESCR("Number of raw tty input characters"),
Line 1187  ttioctl(struct tty *tp, u_long cmd, void
Line 1190  ttioctl(struct tty *tp, u_long cmd, void
                 }                  }
   
                 if (pgid < 0) {                  if (pgid < 0) {
                         pgrp = pg_find(-pgid, PFIND_LOCKED | PFIND_UNLOCK_FAIL);                          pgrp = pgrp_find(-pgid);
                         if (pgrp == NULL)                          if (pgrp == NULL) {
                                   mutex_exit(proc_lock);
                                 return (EINVAL);                                  return (EINVAL);
                           }
                 } else {                  } else {
                         struct proc *p1;                          struct proc *p1;
                         p1 = p_find(pgid, PFIND_LOCKED | PFIND_UNLOCK_FAIL);                          p1 = proc_find(pgid);
                         if (!p1)                          if (!p1) {
                                   mutex_exit(proc_lock);
                                 return (ESRCH);                                  return (ESRCH);
                           }
                         pgrp = p1->p_pgrp;                          pgrp = p1->p_pgrp;
                 }                  }
   
Line 1216  ttioctl(struct tty *tp, u_long cmd, void
Line 1223  ttioctl(struct tty *tp, u_long cmd, void
                         mutex_exit(proc_lock);                          mutex_exit(proc_lock);
                         return (ENOTTY);                          return (ENOTTY);
                 }                  }
                 pgrp = pg_find(*(int *)data, PFIND_LOCKED | PFIND_UNLOCK_FAIL);                  pgrp = pgrp_find(*(pid_t *)data);
                 if (pgrp == NULL)                  if (pgrp == NULL) {
                           mutex_exit(proc_lock);
                         return (EINVAL);                          return (EINVAL);
                   }
                 if (pgrp->pg_session != p->p_session) {                  if (pgrp->pg_session != p->p_session) {
                         mutex_exit(proc_lock);                          mutex_exit(proc_lock);
                         return (EPERM);                          return (EPERM);
Line 2572  out:
Line 2581  out:
   
 /*  /*
  * Sleep on chan, returning ERESTART if tty changed while we napped and   * Sleep on chan, returning ERESTART if tty changed while we napped and
  * returning any errors (e.g. EINTR/ETIMEDOUT) reported by tsleep.  If   * returning any errors (e.g. EINTR/ETIMEDOUT) reported by cv_timedwait(_sig).
  * the tty is revoked, restarting a pending call will redo validation done   * If the tty is revoked, restarting a pending call will redo validation done
  * at the start of the call.   * at the start of the call.
  *   *
  * Must be called with the tty lock held.   * Must be called with the tty lock held.
Line 2766  tty_init(void)
Line 2775  tty_init(void)
   
         tty_listener = kauth_listen_scope(KAUTH_SCOPE_DEVICE,          tty_listener = kauth_listen_scope(KAUTH_SCOPE_DEVICE,
             tty_listener_cb, NULL);              tty_listener_cb, NULL);
   
           sysctl_kern_tkstat_setup();
 }  }
   
 /*  /*

Legend:
Removed from v.1.234  
changed lines
  Added in v.1.234.2.1

CVSweb <webmaster@jp.NetBSD.org>