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
b2bcd587
Commit
b2bcd587
authored
Nov 05, 2002
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/linux-2.5
into samba.org:/scratch/anton/linux-2.5_ppc64_work
parents
37e093c1
c7ab48b6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
505 deletions
+26
-505
arch/ppc64/boot/Makefile
arch/ppc64/boot/Makefile
+15
-2
arch/ppc64/kernel/ioctl32.c
arch/ppc64/kernel/ioctl32.c
+0
-478
arch/ppc64/vmlinux.lds.S
arch/ppc64/vmlinux.lds.S
+9
-24
include/asm-ppc64/poll.h
include/asm-ppc64/poll.h
+1
-0
include/asm-ppc64/unistd.h
include/asm-ppc64/unistd.h
+1
-1
No files found.
arch/ppc64/boot/Makefile
View file @
b2bcd587
...
...
@@ -29,9 +29,22 @@ BOOTLD = $(CROSS32_COMPILE)ld
BOOTAS
=
$(CROSS32_COMPILE)
as
BOOTAFLAGS
=
-D__ASSEMBLY__
$(HOSTCFLAGS)
.c.o
:
$(obj)/start.o
:
$(obj)/start.c
$(BOOTCC)
$(BOOTCFLAGS)
-c
-o
$*
.o
$<
.S.o
:
$(obj)/main.o
:
$(obj)/main.c
$(BOOTCC)
$(BOOTCFLAGS)
-c
-o
$*
.o
$<
$(obj)/zlib.o
:
$(obj)/zlib.c
$(BOOTCC)
$(BOOTCFLAGS)
-c
-o
$*
.o
$<
$(obj)/imagesize.o
:
$(obj)/imagesize.c
$(BOOTCC)
$(BOOTCFLAGS)
-c
-o
$*
.o
$<
$(obj)/no_initrd.o
:
$(obj)/no_initrd.c
$(BOOTCC)
$(BOOTCFLAGS)
-c
-o
$*
.o
$<
$(obj)/crt0.o
:
$(obj)/crt0.S
$(BOOTCC)
$(BOOTAFLAGS)
-traditional
-c
-o
$*
.o
$<
CFLAGS
=
$(CPPFLAGS)
-O
-fno-builtin
-DSTDC_HEADERS
...
...
arch/ppc64/kernel/ioctl32.c
View file @
b2bcd587
...
...
@@ -63,9 +63,6 @@
#include <linux/elevator.h>
#include <linux/rtc.h>
#include <linux/pci.h>
#if defined(CONFIG_BLK_DEV_LVM) || defined(CONFIG_BLK_DEV_LVM_MODULE)
#include <linux/lvm.h>
#endif
/* LVM */
#include <linux/dm-ioctl.h>
#include <scsi/scsi.h>
...
...
@@ -2253,443 +2250,6 @@ static int do_atm_ioctl(unsigned int fd, unsigned int cmd32, unsigned long arg)
return
-
EINVAL
;
}
#if defined(CONFIG_BLK_DEV_LVM) || defined(CONFIG_BLK_DEV_LVM_MODULE)
/* Ugh, LVM. Pitty it was not cleaned up before accepted :((. */
typedef
struct
{
uint8_t
vg_name
[
NAME_LEN
];
uint32_t
vg_number
;
uint32_t
vg_access
;
uint32_t
vg_status
;
uint32_t
lv_max
;
uint32_t
lv_cur
;
uint32_t
lv_open
;
uint32_t
pv_max
;
uint32_t
pv_cur
;
uint32_t
pv_act
;
uint32_t
dummy
;
uint32_t
vgda
;
uint32_t
pe_size
;
uint32_t
pe_total
;
uint32_t
pe_allocated
;
uint32_t
pvg_total
;
u32
proc
;
u32
pv
[
ABS_MAX_PV
+
1
];
u32
lv
[
ABS_MAX_LV
+
1
];
uint8_t
vg_uuid
[
UUID_LEN
+
1
];
/* volume group UUID */
uint8_t
dummy1
[
200
];
}
vg32_t
;
typedef
struct
{
uint8_t
id
[
2
];
uint16_t
version
;
lvm_disk_data_t
pv_on_disk
;
lvm_disk_data_t
vg_on_disk
;
lvm_disk_data_t
pv_namelist_on_disk
;
lvm_disk_data_t
lv_on_disk
;
lvm_disk_data_t
pe_on_disk
;
uint8_t
pv_name
[
NAME_LEN
];
uint8_t
vg_name
[
NAME_LEN
];
uint8_t
system_id
[
NAME_LEN
];
kdev_t
pv_dev
;
uint32_t
pv_number
;
uint32_t
pv_status
;
uint32_t
pv_allocatable
;
uint32_t
pv_size
;
uint32_t
lv_cur
;
uint32_t
pe_size
;
uint32_t
pe_total
;
uint32_t
pe_allocated
;
uint32_t
pe_stale
;
u32
pe
;
u32
inode
;
uint8_t
pv_uuid
[
UUID_LEN
+
1
];
}
pv32_t
;
typedef
struct
{
char
lv_name
[
NAME_LEN
];
u32
lv
;
}
lv_req32_t
;
typedef
struct
{
u32
lv_index
;
u32
lv
;
/* Transfer size because user space and kernel space differ */
uint16_t
size
;
}
lv_status_byindex_req32_t
;
typedef
struct
{
__kernel_dev_t32
dev
;
u32
lv
;
}
lv_status_bydev_req32_t
;
typedef
struct
{
uint8_t
lv_name
[
NAME_LEN
];
kdev_t
old_dev
;
kdev_t
new_dev
;
u32
old_pe
;
u32
new_pe
;
}
le_remap_req32_t
;
typedef
struct
{
char
pv_name
[
NAME_LEN
];
u32
pv
;
}
pv_status_req32_t
;
typedef
struct
{
uint8_t
lv_name
[
NAME_LEN
];
uint8_t
vg_name
[
NAME_LEN
];
uint32_t
lv_access
;
uint32_t
lv_status
;
uint32_t
lv_open
;
kdev_t
lv_dev
;
uint32_t
lv_number
;
uint32_t
lv_mirror_copies
;
uint32_t
lv_recovery
;
uint32_t
lv_schedule
;
uint32_t
lv_size
;
u32
lv_current_pe
;
uint32_t
lv_current_le
;
uint32_t
lv_allocated_le
;
uint32_t
lv_stripes
;
uint32_t
lv_stripesize
;
uint32_t
lv_badblock
;
uint32_t
lv_allocation
;
uint32_t
lv_io_timeout
;
uint32_t
lv_read_ahead
;
/* delta to version 1 starts here */
u32
lv_snapshot_org
;
u32
lv_snapshot_prev
;
u32
lv_snapshot_next
;
u32
lv_block_exception
;
uint32_t
lv_remap_ptr
;
uint32_t
lv_remap_end
;
uint32_t
lv_chunk_size
;
uint32_t
lv_snapshot_minor
;
char
dummy
[
200
];
}
lv32_t
;
typedef
struct
{
u32
hash
[
2
];
u32
rsector_org
;
kdev_t
rdev_org
;
u32
rsector_new
;
kdev_t
rdev_new
;
}
lv_block_exception32_t
;
static
void
put_lv_t
(
lv_t
*
l
)
{
if
(
l
->
lv_current_pe
)
vfree
(
l
->
lv_current_pe
);
if
(
l
->
lv_block_exception
)
vfree
(
l
->
lv_block_exception
);
kfree
(
l
);
}
static
lv_t
*
get_lv_t
(
u32
p
,
int
*
errp
)
{
int
err
,
i
;
u32
ptr1
,
ptr2
;
size_t
size
;
lv_block_exception32_t
*
lbe32
;
lv_block_exception_t
*
lbe
;
lv32_t
*
ul
=
(
lv32_t
*
)
A
(
p
);
lv_t
*
l
=
(
lv_t
*
)
kmalloc
(
sizeof
(
lv_t
),
GFP_KERNEL
);
if
(
!
l
)
{
*
errp
=
-
ENOMEM
;
return
NULL
;
}
memset
(
l
,
0
,
sizeof
(
lv_t
));
err
=
copy_from_user
(
l
,
ul
,
(
long
)
&
((
lv32_t
*
)
0
)
->
lv_current_pe
);
err
|=
__copy_from_user
(
&
l
->
lv_current_le
,
&
ul
->
lv_current_le
,
((
long
)
&
ul
->
lv_snapshot_org
)
-
((
long
)
&
ul
->
lv_current_le
));
err
|=
__copy_from_user
(
&
l
->
lv_remap_ptr
,
&
ul
->
lv_remap_ptr
,
((
long
)
&
ul
->
dummy
[
0
])
-
((
long
)
&
ul
->
lv_remap_ptr
));
err
|=
__get_user
(
ptr1
,
&
ul
->
lv_current_pe
);
err
|=
__get_user
(
ptr2
,
&
ul
->
lv_block_exception
);
if
(
err
)
{
kfree
(
l
);
*
errp
=
-
EFAULT
;
return
NULL
;
}
if
(
ptr1
)
{
size
=
l
->
lv_allocated_le
*
sizeof
(
pe_t
);
l
->
lv_current_pe
=
vmalloc
(
size
);
if
(
l
->
lv_current_pe
)
err
=
copy_from_user
(
l
->
lv_current_pe
,
(
void
*
)
A
(
ptr1
),
size
);
}
if
(
!
err
&&
ptr2
)
{
size
=
l
->
lv_remap_end
*
sizeof
(
lv_block_exception_t
);
l
->
lv_block_exception
=
lbe
=
vmalloc
(
size
);
if
(
l
->
lv_block_exception
)
{
lbe32
=
(
lv_block_exception32_t
*
)
A
(
ptr2
);
memset
(
lbe
,
0
,
size
);
for
(
i
=
0
;
i
<
l
->
lv_remap_end
;
i
++
,
lbe
++
,
lbe32
++
)
{
err
|=
get_user
(
lbe
->
rsector_org
,
&
lbe32
->
rsector_org
);
err
|=
__get_user
(
lbe
->
rdev_org
,
&
lbe32
->
rdev_org
);
err
|=
__get_user
(
lbe
->
rsector_new
,
&
lbe32
->
rsector_new
);
err
|=
__get_user
(
lbe
->
rdev_new
,
&
lbe32
->
rdev_new
);
}
}
}
if
(
err
||
(
ptr1
&&
!
l
->
lv_current_pe
)
||
(
ptr2
&&
!
l
->
lv_block_exception
))
{
if
(
!
err
)
*
errp
=
-
ENOMEM
;
else
*
errp
=
-
EFAULT
;
put_lv_t
(
l
);
return
NULL
;
}
return
l
;
}
static
int
copy_lv_t
(
u32
ptr
,
lv_t
*
l
)
{
int
err
;
lv32_t
*
ul
=
(
lv32_t
*
)
A
(
ptr
);
u32
ptr1
;
size_t
size
;
err
=
get_user
(
ptr1
,
&
ul
->
lv_current_pe
);
if
(
err
)
return
-
EFAULT
;
err
=
copy_to_user
(
ul
,
l
,
(
long
)
&
((
lv32_t
*
)
0
)
->
lv_current_pe
);
err
|=
__copy_to_user
(
&
ul
->
lv_current_le
,
&
l
->
lv_current_le
,
((
long
)
&
ul
->
lv_snapshot_org
)
-
((
long
)
&
ul
->
lv_current_le
));
err
|=
__copy_to_user
(
&
ul
->
lv_remap_ptr
,
&
l
->
lv_remap_ptr
,
((
long
)
&
ul
->
dummy
[
0
])
-
((
long
)
&
ul
->
lv_remap_ptr
));
size
=
l
->
lv_allocated_le
*
sizeof
(
pe_t
);
if
(
ptr1
)
err
|=
__copy_to_user
((
void
*
)
A
(
ptr1
),
l
->
lv_current_pe
,
size
);
return
err
?
-
EFAULT
:
0
;
}
static
int
do_lvm_ioctl
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
vg_t
*
v
=
NULL
;
union
{
lv_req_t
lv_req
;
le_remap_req_t
le_remap
;
lv_status_byindex_req_t
lv_byindex
;
lv_status_bydev_req_t
lv_bydev
;
pv_status_req_t
pv_status
;
}
u
;
pv_t
p
;
int
err
;
u32
ptr
=
0
;
int
i
;
mm_segment_t
old_fs
;
void
*
karg
=
&
u
;
switch
(
cmd
)
{
case
VG_STATUS
:
v
=
kmalloc
(
sizeof
(
vg_t
),
GFP_KERNEL
);
if
(
!
v
)
return
-
ENOMEM
;
karg
=
v
;
break
;
case
VG_CREATE_OLD
:
case
VG_CREATE
:
v
=
kmalloc
(
sizeof
(
vg_t
),
GFP_KERNEL
);
if
(
!
v
)
return
-
ENOMEM
;
if
(
copy_from_user
(
v
,
(
void
*
)
arg
,
(
long
)
&
((
vg32_t
*
)
0
)
->
proc
))
{
kfree
(
v
);
return
-
EFAULT
;
}
/* 'proc' field is unused, just NULL it out. */
v
->
proc
=
NULL
;
if
(
copy_from_user
(
v
->
vg_uuid
,
((
vg32_t
*
)
arg
)
->
vg_uuid
,
UUID_LEN
+
1
))
{
kfree
(
v
);
return
-
EFAULT
;
}
karg
=
v
;
memset
(
v
->
pv
,
0
,
sizeof
(
v
->
pv
)
+
sizeof
(
v
->
lv
));
if
(
v
->
pv_max
>
ABS_MAX_PV
||
v
->
lv_max
>
ABS_MAX_LV
)
return
-
EPERM
;
for
(
i
=
0
;
i
<
v
->
pv_max
;
i
++
)
{
err
=
__get_user
(
ptr
,
&
((
vg32_t
*
)
arg
)
->
pv
[
i
]);
if
(
err
)
break
;
if
(
ptr
)
{
v
->
pv
[
i
]
=
kmalloc
(
sizeof
(
pv_t
),
GFP_KERNEL
);
if
(
!
v
->
pv
[
i
])
{
err
=
-
ENOMEM
;
break
;
}
err
=
copy_from_user
(
v
->
pv
[
i
],
(
void
*
)
A
(
ptr
),
sizeof
(
pv32_t
)
-
8
-
UUID_LEN
+
1
);
if
(
err
)
{
err
=
-
EFAULT
;
break
;
}
err
=
copy_from_user
(
v
->
pv
[
i
]
->
pv_uuid
,
((
pv32_t
*
)
A
(
ptr
))
->
pv_uuid
,
UUID_LEN
+
1
);
if
(
err
)
{
err
=
-
EFAULT
;
break
;
}
v
->
pv
[
i
]
->
pe
=
NULL
;
v
->
pv
[
i
]
->
bd
=
NULL
;
}
}
if
(
!
err
)
{
for
(
i
=
0
;
i
<
v
->
lv_max
;
i
++
)
{
err
=
__get_user
(
ptr
,
&
((
vg32_t
*
)
arg
)
->
lv
[
i
]);
if
(
err
)
break
;
if
(
ptr
)
{
v
->
lv
[
i
]
=
get_lv_t
(
ptr
,
&
err
);
if
(
err
)
break
;
}
}
}
break
;
case
LV_CREATE
:
case
LV_EXTEND
:
case
LV_REDUCE
:
case
LV_REMOVE
:
case
LV_RENAME
:
case
LV_STATUS_BYNAME
:
err
=
copy_from_user
(
&
u
.
pv_status
,
arg
,
sizeof
(
u
.
pv_status
.
pv_name
));
if
(
err
)
return
-
EFAULT
;
if
(
cmd
!=
LV_REMOVE
)
{
err
=
__get_user
(
ptr
,
&
((
lv_req32_t
*
)
arg
)
->
lv
);
if
(
err
)
return
err
;
u
.
lv_req
.
lv
=
get_lv_t
(
ptr
,
&
err
);
}
else
u
.
lv_req
.
lv
=
NULL
;
break
;
case
LV_STATUS_BYINDEX
:
err
=
get_user
(
u
.
lv_byindex
.
lv_index
,
&
((
lv_status_byindex_req32_t
*
)
arg
)
->
lv_index
);
err
|=
__get_user
(
ptr
,
&
((
lv_status_byindex_req32_t
*
)
arg
)
->
lv
);
if
(
err
)
return
err
;
u
.
lv_byindex
.
lv
=
get_lv_t
(
ptr
,
&
err
);
break
;
case
LV_STATUS_BYDEV
:
err
=
get_user
(
u
.
lv_bydev
.
dev
,
&
((
lv_status_bydev_req32_t
*
)
arg
)
->
dev
);
err
|=
__get_user
(
ptr
,
&
((
lv_status_bydev_req32_t
*
)
arg
)
->
lv
);
if
(
err
)
return
err
;
u
.
lv_bydev
.
lv
=
get_lv_t
(
ptr
,
&
err
);
break
;
case
VG_EXTEND
:
err
=
copy_from_user
(
&
p
,
(
void
*
)
arg
,
sizeof
(
pv32_t
)
-
8
-
UUID_LEN
+
1
);
if
(
err
)
return
-
EFAULT
;
err
=
copy_from_user
(
p
.
pv_uuid
,
((
pv32_t
*
)
arg
)
->
pv_uuid
,
UUID_LEN
+
1
);
if
(
err
)
return
-
EFAULT
;
p
.
pe
=
NULL
;
p
.
bd
=
NULL
;
karg
=
&
p
;
break
;
case
PV_CHANGE
:
case
PV_STATUS
:
err
=
copy_from_user
(
&
u
.
pv_status
,
arg
,
sizeof
(
u
.
lv_req
.
lv_name
));
if
(
err
)
return
-
EFAULT
;
err
=
__get_user
(
ptr
,
&
((
pv_status_req32_t
*
)
arg
)
->
pv
);
if
(
err
)
return
err
;
u
.
pv_status
.
pv
=
&
p
;
if
(
cmd
==
PV_CHANGE
)
{
err
=
copy_from_user
(
&
p
,
(
void
*
)
A
(
ptr
),
sizeof
(
pv32_t
)
-
8
-
UUID_LEN
+
1
);
if
(
err
)
return
-
EFAULT
;
p
.
pe
=
NULL
;
p
.
bd
=
NULL
;
}
break
;
};
old_fs
=
get_fs
();
set_fs
(
KERNEL_DS
);
err
=
sys_ioctl
(
fd
,
cmd
,
(
unsigned
long
)
karg
);
set_fs
(
old_fs
);
switch
(
cmd
)
{
case
VG_STATUS
:
if
(
!
err
)
{
if
(
copy_to_user
((
void
*
)
arg
,
v
,
(
long
)
&
((
vg32_t
*
)
0
)
->
proc
)
||
clear_user
(
&
((
vg32_t
*
)
arg
)
->
proc
,
sizeof
(
vg32_t
)
-
(
long
)
&
((
vg32_t
*
)
0
)
->
proc
))
err
=
-
EFAULT
;
}
if
(
copy_to_user
(((
vg32_t
*
)
arg
)
->
vg_uuid
,
v
->
vg_uuid
,
UUID_LEN
+
1
))
{
err
=
-
EFAULT
;
}
kfree
(
v
);
break
;
case
VG_CREATE_OLD
:
case
VG_CREATE
:
for
(
i
=
0
;
i
<
v
->
pv_max
;
i
++
)
{
if
(
v
->
pv
[
i
])
kfree
(
v
->
pv
[
i
]);
}
for
(
i
=
0
;
i
<
v
->
lv_max
;
i
++
)
{
if
(
v
->
lv
[
i
])
put_lv_t
(
v
->
lv
[
i
]);
}
kfree
(
v
);
break
;
case
LV_STATUS_BYNAME
:
if
(
!
err
&&
u
.
lv_req
.
lv
)
err
=
copy_lv_t
(
ptr
,
u
.
lv_req
.
lv
);
/* Fall through */
case
LV_CREATE
:
case
LV_EXTEND
:
case
LV_REDUCE
:
if
(
u
.
lv_req
.
lv
)
put_lv_t
(
u
.
lv_req
.
lv
);
break
;
case
LV_STATUS_BYINDEX
:
if
(
u
.
lv_byindex
.
lv
)
{
if
(
!
err
)
err
=
copy_lv_t
(
ptr
,
u
.
lv_byindex
.
lv
);
put_lv_t
(
u
.
lv_byindex
.
lv
);
}
break
;
case
LV_STATUS_BYDEV
:
if
(
u
.
lv_bydev
.
lv
)
{
if
(
!
err
)
err
=
copy_lv_t
(
ptr
,
u
.
lv_bydev
.
lv
);
put_lv_t
(
u
.
lv_byindex
.
lv
);
}
break
;
case
PV_STATUS
:
if
(
!
err
)
{
err
=
copy_to_user
((
void
*
)
A
(
ptr
),
&
p
,
sizeof
(
pv32_t
)
-
8
-
UUID_LEN
+
1
);
if
(
err
)
return
-
EFAULT
;
err
=
copy_to_user
(((
pv_t
*
)
A
(
ptr
))
->
pv_uuid
,
p
.
pv_uuid
,
UUID_LEN
+
1
);
if
(
err
)
return
-
EFAULT
;
}
break
;
};
return
err
;
}
#endif
#if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)
/* This really belongs in include/linux/drm.h -DaveM */
#include "../../../drivers/char/drm/drm.h"
...
...
@@ -4304,28 +3864,6 @@ COMPATIBLE_IOCTL(ATMTCP_CREATE),
COMPATIBLE_IOCTL
(
ATMTCP_REMOVE
),
COMPATIBLE_IOCTL
(
ATMMPC_CTRL
),
COMPATIBLE_IOCTL
(
ATMMPC_DATA
),
#if defined(CONFIG_BLK_DEV_LVM) || defined(CONFIG_BLK_DEV_LVM_MODULE)
/* 0xfe - lvm */
COMPATIBLE_IOCTL
(
VG_SET_EXTENDABLE
),
COMPATIBLE_IOCTL
(
VG_STATUS_GET_COUNT
),
COMPATIBLE_IOCTL
(
VG_STATUS_GET_NAMELIST
),
COMPATIBLE_IOCTL
(
VG_REMOVE
),
COMPATIBLE_IOCTL
(
VG_RENAME
),
COMPATIBLE_IOCTL
(
VG_REDUCE
),
COMPATIBLE_IOCTL
(
PE_LOCK_UNLOCK
),
COMPATIBLE_IOCTL
(
PV_FLUSH
),
COMPATIBLE_IOCTL
(
LVM_LOCK_LVM
),
COMPATIBLE_IOCTL
(
LVM_GET_IOP_VERSION
),
#ifdef LVM_TOTAL_RESET
COMPATIBLE_IOCTL
(
LVM_RESET
),
#endif
COMPATIBLE_IOCTL
(
LV_SET_ACCESS
),
COMPATIBLE_IOCTL
(
LV_SET_STATUS
),
COMPATIBLE_IOCTL
(
LV_SET_ALLOCATION
),
COMPATIBLE_IOCTL
(
LE_REMAP
),
COMPATIBLE_IOCTL
(
LV_BMAP
),
COMPATIBLE_IOCTL
(
LV_SNAPSHOT_USE_RATE
),
#endif
/* LVM */
#if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)
COMPATIBLE_IOCTL
(
DRM_IOCTL_GET_MAGIC
),
COMPATIBLE_IOCTL
(
DRM_IOCTL_IRQ_BUSID
),
...
...
@@ -4548,22 +4086,6 @@ HANDLE_IOCTL(SONET_CLRDIAG, do_atm_ioctl),
HANDLE_IOCTL
(
SONET_SETFRAMING
,
do_atm_ioctl
),
HANDLE_IOCTL
(
SONET_GETFRAMING
,
do_atm_ioctl
),
HANDLE_IOCTL
(
SONET_GETFRSENSE
,
do_atm_ioctl
),
#if defined(CONFIG_BLK_DEV_LVM) || defined(CONFIG_BLK_DEV_LVM_MODULE)
HANDLE_IOCTL
(
VG_STATUS
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
VG_CREATE_OLD
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
VG_CREATE
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
VG_EXTEND
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_CREATE
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_REMOVE
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_EXTEND
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_REDUCE
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_RENAME
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_STATUS_BYNAME
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_STATUS_BYINDEX
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
LV_STATUS_BYDEV
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
PV_CHANGE
,
do_lvm_ioctl
),
HANDLE_IOCTL
(
PV_STATUS
,
do_lvm_ioctl
),
#endif
/* LVM */
#if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)
HANDLE_IOCTL
(
DRM32_IOCTL_VERSION
,
drm32_version
),
HANDLE_IOCTL
(
DRM32_IOCTL_GET_UNIQUE
,
drm32_getsetunique
),
...
...
arch/ppc64/vmlinux.lds.S
View file @
b2bcd587
OUTPUT_ARCH
(
powerpc
:
common64
)
SEARCH_DIR
(/
lib
)
; SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/*
Do
we
need
any
of
these
for
elf
?
__DYNAMIC
=
0
; */
jiffies
=
jiffies_64
;
...
...
@@ -62,7 +61,6 @@ SECTIONS
_edata
=
.
;
PROVIDE
(
edata
=
.
)
;
.
fixup
:
{
*(
.
fixup
)
}
__start___ex_table
=
.
;
__ex_table
:
{
*(
__ex_table
)
}
__stop___ex_table
=
.
;
...
...
@@ -70,6 +68,7 @@ SECTIONS
__start___ksymtab
=
.
; /* Kernel symbol table */
__ksymtab
:
{
*(
__ksymtab
)
}
__stop___ksymtab
=
.
;
__start___kallsyms
=
.
; /* All kernel symbols */
__kallsyms
:
{
*(
__kallsyms
)
}
__stop___kallsyms
=
.
;
...
...
@@ -83,21 +82,14 @@ SECTIONS
.
=
ALIGN
(
128
)
;
.
data.
cacheline_aligned
:
{
*(
.
data
.
cacheline_aligned
)
}
/
*
will
be
freed
after
init
*/
.
=
ALIGN
(
4096
)
;
__init_begin
=
.
;
.
text.init
:
{
*(
.
text
.
init
)
}
.
data.init
:
{
*(.
data.init
)
;
__vtop_table_begin
=
.
;
*(.
vtop_fixup
)
;
__vtop_table_end
=
.
;
__ptov_table_begin
=
.
;
*(.
ptov_fixup
)
;
__ptov_table_end
=
.
;
}
.
init.text
:
{
*(
.
init
.
text
)
}
.
init.data
:
{
*(
.
init
.
data
)
}
.
=
ALIGN
(
16
)
;
__setup_start
=
.
;
.
setup.init
:
{
*(
.
setup
.
init
)
}
.
init.setup
:
{
*(
.
init
.
setup
)
}
__setup_end
=
.
;
__initcall_start
=
.
;
.
initcall.init
:
{
...
...
@@ -116,23 +108,16 @@ SECTIONS
__per_cpu_end
=
.
;
.
=
ALIGN
(
4096
)
;
__init_end
=
.
;
/
*
freed
after
init
ends
here
*/
__toc_start
=
.
;
.
toc
:
{
*(.
toc
)
}
.
toc
:
{
*(
.
toc
)
}
.
=
ALIGN
(
4096
)
;
__toc_end
=
.
;
__bss_start
=
.
;
.
bss
:
{
*(.
sbss
)
*(
.
scommon
)
*(.
dynbss
)
*(.
bss
)
*(
COMMON
)
}
.
bss
:
{
*(
.
bss
)
}
__bss_stop
=
.
;
.
=
ALIGN
(
4096
)
;
_end
=
.
;
...
...
include/asm-ppc64/poll.h
View file @
b2bcd587
...
...
@@ -21,6 +21,7 @@
#define POLLWRNORM 0x0100
#define POLLWRBAND 0x0200
#define POLLMSG 0x0400
#define POLLREMOVE 0x1000
struct
pollfd
{
int
fd
;
...
...
include/asm-ppc64/unistd.h
View file @
b2bcd587
...
...
@@ -450,6 +450,6 @@ static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
* What we want is __attribute__((weak,alias("sys_ni_syscall"))),
* but it doesn't work on all toolchains, so we just do it by hand
*/
#define cond_syscall(x) asm(".weak\t." #x "\n\t.set\t." #x ",sys_ni_syscall")
;
#define cond_syscall(x) asm(".weak\t." #x "\n\t.set\t." #x ",
.
sys_ni_syscall")
;
#endif
/* _ASM_PPC_UNISTD_H_ */
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