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
nexedi
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
Hide 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