Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
parisc
hpux
ioctl.c
Go to the documentation of this file.
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
}
Generated on Thu Jan 10 2013 13:12:40 for Linux Kernel by
1.8.2