linux/arch/parisc/hpux/ioctl.c
<<
>>
Prefs
   1/*
   2 *    Implements some necessary HPUX ioctls.
   3 *
   4 *    Copyright (C) 1999-2002 Matthew Wilcox <willy with parisc-linux.org>
   5 *
   6 *    This program is free software; you can redistribute it and/or modify
   7 *    it under the terms of the GNU General Public License as published by
   8 *    the Free Software Foundation; either version 2 of the License, or
   9 *    (at your option) any later version.
  10 *
  11 *    This program is distributed in the hope that it will be useful,
  12 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 *    GNU General Public License for more details.
  15 *
  16 *    You should have received a copy of the GNU General Public License
  17 *    along with this program; if not, write to the Free Software
  18 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19 */
  20
  21/*
  22 * Supported ioctls:
  23 *   TCGETA
  24 *   TCSETA
  25 *   TCSETAW
  26 *   TCSETAF
  27 *   TCSBRK
  28 *   TCXONC
  29 *   TCFLSH
  30 *   TIOCGWINSZ
  31 *   TIOCSWINSZ
  32 *   TIOCGPGRP
  33 *   TIOCSPGRP
  34 */
  35
  36#include <linux/sched.h>
  37#include <linux/syscalls.h>
  38#include <asm/errno.h>
  39#include <asm/ioctl.h>
  40#include <asm/termios.h>
  41#include <asm/uaccess.h>
  42
  43static int hpux_ioctl_t(int fd, unsigned long cmd, unsigned long arg)
  44{
  45        int result = -EOPNOTSUPP;
  46        int nr = _IOC_NR(cmd);
  47        switch (nr) {
  48        case 106:
  49                result = sys_ioctl(fd, TIOCSWINSZ, arg);
  50                break;
  51        case 107:
  52                result = sys_ioctl(fd, TIOCGWINSZ, arg);
  53                break;
  54        }
  55        return result;
  56}
  57
  58int hpux_ioctl(int fd, unsigned long cmd, unsigned long arg)
  59{
  60        int result = -EOPNOTSUPP;
  61        int type = _IOC_TYPE(cmd);
  62        switch (type) {
  63        case 'T':
  64                /* Our structures are now compatible with HPUX's */
  65                result = sys_ioctl(fd, cmd, arg);
  66                break;
  67        case 't':
  68                result = hpux_ioctl_t(fd, cmd, arg);
  69                break;
  70        }
  71        return result;
  72}
  73