Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9e6c67fd
Commit
9e6c67fd
authored
Nov 12, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
parents
8225ccba
9ffb83bc
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
141 additions
and
118 deletions
+141
-118
arch/powerpc/kernel/ioctl32.c
arch/powerpc/kernel/ioctl32.c
+0
-4
arch/sparc64/kernel/ioctl32.c
arch/sparc64/kernel/ioctl32.c
+0
-92
drivers/sbus/char/rtc.c
drivers/sbus/char/rtc.c
+0
-22
drivers/video/bw2.c
drivers/video/bw2.c
+3
-0
drivers/video/cg14.c
drivers/video/cg14.c
+3
-0
drivers/video/cg3.c
drivers/video/cg3.c
+3
-0
drivers/video/cg6.c
drivers/video/cg6.c
+3
-0
drivers/video/ffb.c
drivers/video/ffb.c
+3
-0
drivers/video/leo.c
drivers/video/leo.c
+3
-0
drivers/video/p9100.c
drivers/video/p9100.c
+3
-0
drivers/video/sbuslib.c
drivers/video/sbuslib.c
+107
-0
drivers/video/sbuslib.h
drivers/video/sbuslib.h
+2
-0
drivers/video/tcx.c
drivers/video/tcx.c
+3
-0
include/linux/compat_ioctl.h
include/linux/compat_ioctl.h
+8
-0
No files found.
arch/powerpc/kernel/ioctl32.c
View file @
9e6c67fd
...
...
@@ -40,10 +40,6 @@ IOCTL_TABLE_START
#define DECLARES
#include "compat_ioctl.c"
/* Little p (/dev/rtc, /dev/envctrl, etc.) */
COMPATIBLE_IOCTL
(
_IOR
(
'p'
,
20
,
int
[
7
]))
/* RTCGET */
COMPATIBLE_IOCTL
(
_IOW
(
'p'
,
21
,
int
[
7
]))
/* RTCSET */
IOCTL_TABLE_END
int
ioctl_table_size
=
ARRAY_SIZE
(
ioctl_start
);
arch/sparc64/kernel/ioctl32.c
View file @
9e6c67fd
...
...
@@ -12,86 +12,10 @@
#define INCLUDES
#include "compat_ioctl.c"
#include <linux/syscalls.h>
#include <asm/fbio.h>
/* Use this to get at 32-bit user passed pointers.
* See sys_sparc32.c for description about it.
*/
#define A(__x) compat_ptr(__x)
#define CODE
#include "compat_ioctl.c"
struct
fbcmap32
{
int
index
;
/* first element (0 origin) */
int
count
;
u32
red
;
u32
green
;
u32
blue
;
};
#define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
#define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
static
int
fbiogetputcmap
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
fbcmap32
__user
*
argp
=
(
void
__user
*
)
arg
;
struct
fbcmap
__user
*
p
=
compat_alloc_user_space
(
sizeof
(
*
p
));
u32
addr
;
int
ret
;
ret
=
copy_in_user
(
p
,
argp
,
2
*
sizeof
(
int
));
ret
|=
get_user
(
addr
,
&
argp
->
red
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
red
);
ret
|=
get_user
(
addr
,
&
argp
->
green
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
green
);
ret
|=
get_user
(
addr
,
&
argp
->
blue
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
blue
);
if
(
ret
)
return
-
EFAULT
;
return
sys_ioctl
(
fd
,
(
cmd
==
FBIOPUTCMAP32
)
?
FBIOPUTCMAP_SPARC
:
FBIOGETCMAP_SPARC
,
(
unsigned
long
)
p
);
}
struct
fbcursor32
{
short
set
;
/* what to set, choose from the list above */
short
enable
;
/* cursor on/off */
struct
fbcurpos
pos
;
/* cursor position */
struct
fbcurpos
hot
;
/* cursor hot spot */
struct
fbcmap32
cmap
;
/* color map info */
struct
fbcurpos
size
;
/* cursor bit map size */
u32
image
;
/* cursor image bits */
u32
mask
;
/* cursor mask bits */
};
#define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
#define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
static
int
fbiogscursor
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
fbcursor
__user
*
p
=
compat_alloc_user_space
(
sizeof
(
*
p
));
struct
fbcursor32
__user
*
argp
=
(
void
__user
*
)
arg
;
compat_uptr_t
addr
;
int
ret
;
ret
=
copy_in_user
(
p
,
argp
,
2
*
sizeof
(
short
)
+
2
*
sizeof
(
struct
fbcurpos
));
ret
|=
copy_in_user
(
&
p
->
size
,
&
argp
->
size
,
sizeof
(
struct
fbcurpos
));
ret
|=
copy_in_user
(
&
p
->
cmap
,
&
argp
->
cmap
,
2
*
sizeof
(
int
));
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
red
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
red
);
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
green
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
green
);
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
blue
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
blue
);
ret
|=
get_user
(
addr
,
&
argp
->
mask
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
mask
);
ret
|=
get_user
(
addr
,
&
argp
->
image
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
image
);
if
(
ret
)
return
-
EFAULT
;
return
sys_ioctl
(
fd
,
FBIOSCURSOR
,
(
unsigned
long
)
p
);
}
#define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL((cmd),sys_ioctl)
#define HANDLE_IOCTL(cmd,handler) { (cmd), (ioctl_trans_handler_t)(handler), NULL },
#define IOCTL_TABLE_START \
...
...
@@ -103,22 +27,6 @@ IOCTL_TABLE_START
#include <linux/compat_ioctl.h>
#define DECLARES
#include "compat_ioctl.c"
COMPATIBLE_IOCTL
(
FBIOGTYPE
)
COMPATIBLE_IOCTL
(
FBIOSATTR
)
COMPATIBLE_IOCTL
(
FBIOGATTR
)
COMPATIBLE_IOCTL
(
FBIOSVIDEO
)
COMPATIBLE_IOCTL
(
FBIOGVIDEO
)
COMPATIBLE_IOCTL
(
FBIOGCURSOR32
)
/* This is not implemented yet. Later it should be converted... */
COMPATIBLE_IOCTL
(
FBIOSCURPOS
)
COMPATIBLE_IOCTL
(
FBIOGCURPOS
)
COMPATIBLE_IOCTL
(
FBIOGCURMAX
)
/* Little k */
/* Little v, the video4linux ioctls */
/* And these ioctls need translation */
/* Note SIOCRTMSG is no longer, so this is safe and * the user would have seen just an -EINVAL anyways. */
HANDLE_IOCTL
(
FBIOPUTCMAP32
,
fbiogetputcmap
)
HANDLE_IOCTL
(
FBIOGETCMAP32
,
fbiogetputcmap
)
HANDLE_IOCTL
(
FBIOSCURSOR32
,
fbiogscursor
)
#if 0
HANDLE_IOCTL(RTC32_IRQP_READ, do_rtc_ioctl)
HANDLE_IOCTL(RTC32_IRQP_SET, do_rtc_ioctl)
...
...
drivers/sbus/char/rtc.c
View file @
9e6c67fd
...
...
@@ -210,27 +210,6 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
}
}
static
long
rtc_compat_ioctl
(
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
int
rval
=
-
ENOIOCTLCMD
;
switch
(
cmd
)
{
/*
* These two are specific to this driver, the generic rtc ioctls
* are hanlded elsewhere.
*/
case
RTCGET
:
case
RTCSET
:
lock_kernel
();
rval
=
rtc_ioctl
(
file
->
f_dentry
->
d_inode
,
file
,
cmd
,
arg
);
unlock_kernel
();
break
;
}
return
rval
;
}
static
int
rtc_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
int
ret
;
...
...
@@ -258,7 +237,6 @@ static struct file_operations rtc_fops = {
.
owner
=
THIS_MODULE
,
.
llseek
=
no_llseek
,
.
ioctl
=
rtc_ioctl
,
.
compat_ioctl
=
rtc_compat_ioctl
,
.
open
=
rtc_open
,
.
release
=
rtc_release
,
};
...
...
drivers/video/bw2.c
View file @
9e6c67fd
...
...
@@ -51,6 +51,9 @@ static struct fb_ops bw2_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
bw2_mmap
,
.
fb_ioctl
=
bw2_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
/* OBio addresses for the bwtwo registers */
...
...
drivers/video/cg14.c
View file @
9e6c67fd
...
...
@@ -49,6 +49,9 @@ static struct fb_ops cg14_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
cg14_mmap
,
.
fb_ioctl
=
cg14_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
#define CG14_MCR_INTENABLE_SHIFT 7
...
...
drivers/video/cg3.c
View file @
9e6c67fd
...
...
@@ -50,6 +50,9 @@ static struct fb_ops cg3_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
cg3_mmap
,
.
fb_ioctl
=
cg3_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
...
...
drivers/video/cg6.c
View file @
9e6c67fd
...
...
@@ -54,6 +54,9 @@ static struct fb_ops cg6_ops = {
.
fb_sync
=
cg6_sync
,
.
fb_mmap
=
cg6_mmap
,
.
fb_ioctl
=
cg6_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
/* Offset of interesting structures in the OBIO space */
...
...
drivers/video/ffb.c
View file @
9e6c67fd
...
...
@@ -57,6 +57,9 @@ static struct fb_ops ffb_ops = {
.
fb_sync
=
ffb_sync
,
.
fb_mmap
=
ffb_mmap
,
.
fb_ioctl
=
ffb_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
/* Register layout and definitions */
...
...
drivers/video/leo.c
View file @
9e6c67fd
...
...
@@ -51,6 +51,9 @@ static struct fb_ops leo_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
leo_mmap
,
.
fb_ioctl
=
leo_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
#define LEO_OFF_LC_SS0_KRN 0x00200000UL
...
...
drivers/video/p9100.c
View file @
9e6c67fd
...
...
@@ -48,6 +48,9 @@ static struct fb_ops p9100_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
p9100_mmap
,
.
fb_ioctl
=
p9100_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
/* P9100 control registers */
...
...
drivers/video/sbuslib.c
View file @
9e6c67fd
...
...
@@ -3,6 +3,7 @@
* Copyright (C) 2003 David S. Miller (davem@redhat.com)
*/
#include <linux/compat.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h>
...
...
@@ -182,3 +183,109 @@ int sbusfb_ioctl_helper(unsigned long cmd, unsigned long arg,
};
}
EXPORT_SYMBOL
(
sbusfb_ioctl_helper
);
#ifdef CONFIG_COMPAT
struct
fbcmap32
{
int
index
;
/* first element (0 origin) */
int
count
;
u32
red
;
u32
green
;
u32
blue
;
};
#define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
#define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
static
int
fbiogetputcmap
(
struct
file
*
file
,
struct
fb_info
*
info
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
fbcmap32
__user
*
argp
=
(
void
__user
*
)
arg
;
struct
fbcmap
__user
*
p
=
compat_alloc_user_space
(
sizeof
(
*
p
));
u32
addr
;
int
ret
;
ret
=
copy_in_user
(
p
,
argp
,
2
*
sizeof
(
int
));
ret
|=
get_user
(
addr
,
&
argp
->
red
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
red
);
ret
|=
get_user
(
addr
,
&
argp
->
green
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
green
);
ret
|=
get_user
(
addr
,
&
argp
->
blue
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
blue
);
if
(
ret
)
return
-
EFAULT
;
return
info
->
fbops
->
fb_ioctl
(
file
->
f_dentry
->
d_inode
,
file
,
(
cmd
==
FBIOPUTCMAP32
)
?
FBIOPUTCMAP_SPARC
:
FBIOGETCMAP_SPARC
,
(
unsigned
long
)
p
,
info
);
}
struct
fbcursor32
{
short
set
;
/* what to set, choose from the list above */
short
enable
;
/* cursor on/off */
struct
fbcurpos
pos
;
/* cursor position */
struct
fbcurpos
hot
;
/* cursor hot spot */
struct
fbcmap32
cmap
;
/* color map info */
struct
fbcurpos
size
;
/* cursor bit map size */
u32
image
;
/* cursor image bits */
u32
mask
;
/* cursor mask bits */
};
#define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
#define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
static
int
fbiogscursor
(
struct
file
*
file
,
struct
fb_info
*
info
,
unsigned
long
arg
)
{
struct
fbcursor
__user
*
p
=
compat_alloc_user_space
(
sizeof
(
*
p
));
struct
fbcursor32
__user
*
argp
=
(
void
__user
*
)
arg
;
compat_uptr_t
addr
;
int
ret
;
ret
=
copy_in_user
(
p
,
argp
,
2
*
sizeof
(
short
)
+
2
*
sizeof
(
struct
fbcurpos
));
ret
|=
copy_in_user
(
&
p
->
size
,
&
argp
->
size
,
sizeof
(
struct
fbcurpos
));
ret
|=
copy_in_user
(
&
p
->
cmap
,
&
argp
->
cmap
,
2
*
sizeof
(
int
));
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
red
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
red
);
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
green
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
green
);
ret
|=
get_user
(
addr
,
&
argp
->
cmap
.
blue
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
cmap
.
blue
);
ret
|=
get_user
(
addr
,
&
argp
->
mask
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
mask
);
ret
|=
get_user
(
addr
,
&
argp
->
image
);
ret
|=
put_user
(
compat_ptr
(
addr
),
&
p
->
image
);
if
(
ret
)
return
-
EFAULT
;
return
info
->
fbops
->
fb_ioctl
(
file
->
f_dentry
->
d_inode
,
file
,
FBIOSCURSOR
,
(
unsigned
long
)
p
,
info
);
}
long
sbusfb_compat_ioctl
(
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
,
struct
fb_info
*
info
)
{
switch
(
cmd
)
{
case
FBIOGTYPE
:
case
FBIOSATTR
:
case
FBIOGATTR
:
case
FBIOSVIDEO
:
case
FBIOGVIDEO
:
case
FBIOGCURSOR32
:
/* This is not implemented yet.
Later it should be converted... */
case
FBIOSCURPOS
:
case
FBIOGCURPOS
:
case
FBIOGCURMAX
:
return
info
->
fbops
->
fb_ioctl
(
file
->
f_dentry
->
d_inode
,
file
,
cmd
,
arg
,
info
);
case
FBIOPUTCMAP32
:
return
fbiogetputcmap
(
file
,
info
,
cmd
,
arg
);
case
FBIOGETCMAP32
:
return
fbiogetputcmap
(
file
,
info
,
cmd
,
arg
);
case
FBIOSCURSOR32
:
return
fbiogscursor
(
file
,
info
,
arg
);
default:
return
-
ENOIOCTLCMD
;
}
}
EXPORT_SYMBOL
(
sbusfb_compat_ioctl
);
#endif
drivers/video/sbuslib.h
View file @
9e6c67fd
...
...
@@ -20,5 +20,7 @@ extern int sbusfb_mmap_helper(struct sbus_mmap_map *map,
int
sbusfb_ioctl_helper
(
unsigned
long
cmd
,
unsigned
long
arg
,
struct
fb_info
*
info
,
int
type
,
int
fb_depth
,
unsigned
long
fb_size
);
long
sbusfb_compat_ioctl
(
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
,
struct
fb_info
*
info
);
#endif
/* _SBUSLIB_H */
drivers/video/tcx.c
View file @
9e6c67fd
...
...
@@ -52,6 +52,9 @@ static struct fb_ops tcx_ops = {
.
fb_imageblit
=
cfb_imageblit
,
.
fb_mmap
=
tcx_mmap
,
.
fb_ioctl
=
tcx_ioctl
,
#ifdef CONFIG_COMPAT
.
fb_compat_ioctl
=
sbusfb_compat_ioctl
,
#endif
};
/* THC definitions */
...
...
include/linux/compat_ioctl.h
View file @
9e6c67fd
...
...
@@ -259,6 +259,14 @@ COMPATIBLE_IOCTL(RTC_RD_TIME)
COMPATIBLE_IOCTL
(
RTC_SET_TIME
)
COMPATIBLE_IOCTL
(
RTC_WKALM_SET
)
COMPATIBLE_IOCTL
(
RTC_WKALM_RD
)
/*
* These two are only for the sbus rtc driver, but
* hwclock tries them on every rtc device first when
* running on sparc. On other architectures the entries
* are useless but harmless.
*/
COMPATIBLE_IOCTL
(
_IOR
(
'p'
,
20
,
int
[
7
]))
/* RTCGET */
COMPATIBLE_IOCTL
(
_IOW
(
'p'
,
21
,
int
[
7
]))
/* RTCSET */
/* Little m */
COMPATIBLE_IOCTL
(
MTIOCTOP
)
/* Socket level stuff */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment