Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/parisc/hpux/ioctl.c
10817 views
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
43
static 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
58
int 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
74