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
9caf366e
Commit
9caf366e
authored
Aug 30, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://lia64.bkbits.net/to-linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
7c0700ff
7d3b6870
Changes
50
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
647 additions
and
757 deletions
+647
-757
arch/ia64/Makefile
arch/ia64/Makefile
+2
-1
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/common/sba_iommu.c
+1
-1
arch/ia64/hp/sim/simeth.c
arch/ia64/hp/sim/simeth.c
+1
-1
arch/ia64/hp/sim/simserial.c
arch/ia64/hp/sim/simserial.c
+1
-1
arch/ia64/hp/zx1/hpzx1_misc.c
arch/ia64/hp/zx1/hpzx1_misc.c
+1
-1
arch/ia64/ia32/sys_ia32.c
arch/ia64/ia32/sys_ia32.c
+1
-0
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+79
-46
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+1
-1
arch/ia64/kernel/efivars.c
arch/ia64/kernel/efivars.c
+1
-1
arch/ia64/kernel/entry.S
arch/ia64/kernel/entry.S
+5
-5
arch/ia64/kernel/fw-emu.c
arch/ia64/kernel/fw-emu.c
+1
-1
arch/ia64/kernel/ia64_ksyms.c
arch/ia64/kernel/ia64_ksyms.c
+1
-1
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+370
-298
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq.c
+13
-10
arch/ia64/kernel/irq_ia64.c
arch/ia64/kernel/irq_ia64.c
+5
-10
arch/ia64/kernel/palinfo.c
arch/ia64/kernel/palinfo.c
+1
-1
arch/ia64/kernel/process.c
arch/ia64/kernel/process.c
+1
-1
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+6
-7
arch/ia64/kernel/smp.c
arch/ia64/kernel/smp.c
+2
-2
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/smpboot.c
+1
-1
arch/ia64/kernel/time.c
arch/ia64/kernel/time.c
+1
-1
arch/ia64/kernel/traps.c
arch/ia64/kernel/traps.c
+2
-3
arch/ia64/lib/memcpy.S
arch/ia64/lib/memcpy.S
+0
-2
arch/ia64/mm/init.c
arch/ia64/mm/init.c
+1
-1
arch/ia64/mm/tlb.c
arch/ia64/mm/tlb.c
+1
-1
arch/ia64/sn/fakeprom/fpmem.c
arch/ia64/sn/fakeprom/fpmem.c
+1
-1
arch/ia64/sn/fakeprom/fw-emu.c
arch/ia64/sn/fakeprom/fw-emu.c
+1
-1
arch/ia64/sn/io/efi-rtc.c
arch/ia64/sn/io/efi-rtc.c
+1
-1
arch/ia64/sn/kernel/llsc4.c
arch/ia64/sn/kernel/llsc4.c
+1
-1
arch/ia64/vmlinux.lds.S
arch/ia64/vmlinux.lds.S
+1
-1
include/asm-ia64/acpi.h
include/asm-ia64/acpi.h
+2
-1
include/asm-ia64/agp.h
include/asm-ia64/agp.h
+3
-0
include/asm-ia64/atomic.h
include/asm-ia64/atomic.h
+2
-2
include/asm-ia64/efi.h
include/asm-ia64/efi.h
+0
-284
include/asm-ia64/fpu.h
include/asm-ia64/fpu.h
+2
-2
include/asm-ia64/hardirq.h
include/asm-ia64/hardirq.h
+6
-6
include/asm-ia64/hw_irq.h
include/asm-ia64/hw_irq.h
+5
-3
include/asm-ia64/ide.h
include/asm-ia64/ide.h
+15
-1
include/asm-ia64/io.h
include/asm-ia64/io.h
+17
-17
include/asm-ia64/iosapic.h
include/asm-ia64/iosapic.h
+18
-11
include/asm-ia64/irq.h
include/asm-ia64/irq.h
+1
-1
include/asm-ia64/kmap_types.h
include/asm-ia64/kmap_types.h
+29
-0
include/asm-ia64/mc146818rtc.h
include/asm-ia64/mc146818rtc.h
+10
-0
include/asm-ia64/mmu_context.h
include/asm-ia64/mmu_context.h
+3
-3
include/asm-ia64/percpu.h
include/asm-ia64/percpu.h
+9
-2
include/asm-ia64/processor.h
include/asm-ia64/processor.h
+3
-4
include/asm-ia64/sal.h
include/asm-ia64/sal.h
+1
-1
include/asm-ia64/system.h
include/asm-ia64/system.h
+3
-3
include/asm-ia64/types.h
include/asm-ia64/types.h
+5
-9
include/asm-ia64/unistd.h
include/asm-ia64/unistd.h
+9
-4
No files found.
arch/ia64/Makefile
View file @
9caf366e
...
...
@@ -96,7 +96,8 @@ MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
vmlinux
:
arch/$(ARCH)/vmlinux.lds.s
CPPFLAGS_arch/ia64/vmlinux.lds.s
:
= -traditional
arch/$(ARCH)/vmlinux.lds.s
:
arch/$(ARCH)/vmlinux.lds.S
$(CPP)
$(CPPFLAGS)
$
(
CPPFLAGS_
$@
)
-D__ASSEMBLY__
-P
-C
-U
$(ARCH)
$<
-o
$@
compressed
:
vmlinux
$(OBJCOPY)
$(OBJCOPYFLAGS)
vmlinux vmlinux-tmp
...
...
arch/ia64/hp/common/sba_iommu.c
View file @
9caf366e
...
...
@@ -30,11 +30,11 @@
#include <linux/string.h>
#include <linux/pci.h>
#include <linux/proc_fs.h>
#include <linux/efi.h>
#include <asm/delay.h>
/* ia64_get_itc() */
#include <asm/io.h>
#include <asm/page.h>
/* PAGE_OFFSET */
#include <asm/efi.h>
#define DRIVER_NAME "SBA"
...
...
arch/ia64/hp/sim/simeth.c
View file @
9caf366e
...
...
@@ -213,7 +213,7 @@ simeth_probe1(void)
memcpy
(
dev
->
dev_addr
,
mac_addr
,
sizeof
(
mac_addr
));
dev
->
irq
=
ia64_alloc_
irq
();
dev
->
irq
=
ia64_alloc_
vector
();
/*
* attach the interrupt in the simulator, this does enable interrupts
...
...
arch/ia64/hp/sim/simserial.c
View file @
9caf366e
...
...
@@ -1076,7 +1076,7 @@ simrs_init (void)
if
(
state
->
type
==
PORT_UNKNOWN
)
continue
;
if
(
!
state
->
irq
)
{
state
->
irq
=
ia64_alloc_
irq
();
state
->
irq
=
ia64_alloc_
vector
();
ia64_ssc_connect_irq
(
KEYBOARD_INTR
,
state
->
irq
);
}
...
...
arch/ia64/hp/zx1/hpzx1_misc.c
View file @
9caf366e
...
...
@@ -12,9 +12,9 @@
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/acpi.h>
#include <linux/efi.h>
#include <asm/dma.h>
#include <asm/efi.h>
#include <asm/iosapic.h>
extern
acpi_status
acpi_evaluate_integer
(
acpi_handle
,
acpi_string
,
acpi_object_list
*
,
...
...
arch/ia64/ia32/sys_ia32.c
View file @
9caf366e
...
...
@@ -46,6 +46,7 @@
#include <linux/nfsd/syscall.h>
#include <linux/poll.h>
#include <linux/personality.h>
#include <linux/ptrace.h>
#include <linux/stat.h>
#include <linux/ipc.h>
...
...
arch/ia64/kernel/acpi.c
View file @
9caf366e
...
...
@@ -37,7 +37,7 @@
#include <linux/types.h>
#include <linux/irq.h>
#include <linux/acpi.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/io.h>
#include <asm/iosapic.h>
#include <asm/machvec.h>
...
...
@@ -47,9 +47,9 @@
#define PREFIX "ACPI: "
asm
(
".weak iosapic_register_i
rq
"
);
asm
(
".weak iosapic_
register_legacy
_irq"
);
asm
(
".weak iosapic_register_platform_i
rq
"
);
asm
(
".weak iosapic_register_i
ntr
"
);
asm
(
".weak iosapic_
override_isa
_irq"
);
asm
(
".weak iosapic_register_platform_i
ntr
"
);
asm
(
".weak iosapic_init"
);
asm
(
".weak iosapic_version"
);
...
...
@@ -173,10 +173,10 @@ acpi_dispose_crs (acpi_buffer *buf)
#ifdef CONFIG_ACPI_BOOT
#define ACPI_MAX_PLATFORM_I
RQ
S 256
#define ACPI_MAX_PLATFORM_I
NTERRUPT
S 256
/* Array to record platform interrupt vectors for generic interrupt routing. */
int
platform_i
rq_list
[
ACPI_MAX_PLATFORM_IRQS
]
=
{
[
0
...
ACPI_MAX_PLATFORM_IRQ
S
-
1
]
=
-
1
};
int
platform_i
ntr_list
[
ACPI_MAX_PLATFORM_INTERRUPTS
]
=
{
[
0
...
ACPI_MAX_PLATFORM_INTERRUPT
S
-
1
]
=
-
1
};
enum
acpi_irq_model_id
acpi_irq_model
=
ACPI_IRQ_MODEL_IOSAPIC
;
...
...
@@ -189,9 +189,9 @@ acpi_request_vector (u32 int_type)
{
int
vector
=
-
1
;
if
(
int_type
<
ACPI_MAX_PLATFORM_I
RQ
S
)
{
if
(
int_type
<
ACPI_MAX_PLATFORM_I
NTERRUPT
S
)
{
/* correctable platform error interrupt */
vector
=
platform_i
rq
_list
[
int_type
];
vector
=
platform_i
ntr
_list
[
int_type
];
}
else
printk
(
"acpi_request_vector(): invalid interrupt type
\n
"
);
return
vector
;
...
...
@@ -210,6 +210,7 @@ __acpi_map_table (unsigned long phys_addr, unsigned long size)
static
int
total_cpus
__initdata
;
static
int
available_cpus
__initdata
;
struct
acpi_table_madt
*
acpi_madt
__initdata
;
static
u8
has_8259
;
static
int
__init
...
...
@@ -284,7 +285,7 @@ acpi_parse_lapic_nmi (acpi_table_entry_header *header)
static
int
__init
acpi_find_iosapic
(
int
global_vector
,
u32
*
irq
_base
,
char
**
iosapic_address
)
acpi_find_iosapic
(
unsigned
int
gsi
,
u32
*
gsi
_base
,
char
**
iosapic_address
)
{
struct
acpi_table_iosapic
*
iosapic
;
int
ver
;
...
...
@@ -292,7 +293,7 @@ acpi_find_iosapic (int global_vector, u32 *irq_base, char **iosapic_address)
char
*
p
;
char
*
end
;
if
(
!
irq
_base
||
!
iosapic_address
)
if
(
!
gsi
_base
||
!
iosapic_address
)
return
-
ENODEV
;
p
=
(
char
*
)
(
acpi_madt
+
1
);
...
...
@@ -302,13 +303,13 @@ acpi_find_iosapic (int global_vector, u32 *irq_base, char **iosapic_address)
if
(
*
p
==
ACPI_MADT_IOSAPIC
)
{
iosapic
=
(
struct
acpi_table_iosapic
*
)
p
;
*
irq
_base
=
iosapic
->
global_irq_base
;
*
gsi
_base
=
iosapic
->
global_irq_base
;
*
iosapic_address
=
ioremap
(
iosapic
->
address
,
0
);
ver
=
iosapic_version
(
*
iosapic_address
);
max_pin
=
(
ver
>>
16
)
&
0xff
;
if
((
g
lobal_vector
-
*
irq
_base
)
<=
max_pin
)
if
((
g
si
-
*
gsi
_base
)
<=
max_pin
)
return
0
;
/* Found it! */
}
p
+=
p
[
1
];
...
...
@@ -347,7 +348,7 @@ acpi_parse_plat_int_src (acpi_table_entry_header *header)
{
struct
acpi_table_plat_int_src
*
plintsrc
;
int
vector
;
u32
irq
_base
;
u32
gsi
_base
;
char
*
iosapic_address
;
plintsrc
=
(
struct
acpi_table_plat_int_src
*
)
header
;
...
...
@@ -356,31 +357,31 @@ acpi_parse_plat_int_src (acpi_table_entry_header *header)
acpi_table_print_madt_entry
(
header
);
if
(
!
iosapic_register_platform_i
rq
)
{
printk
(
KERN_WARNING
PREFIX
"No ACPI platform
IRQ
support
\n
"
);
if
(
!
iosapic_register_platform_i
ntr
)
{
printk
(
KERN_WARNING
PREFIX
"No ACPI platform
interrupt
support
\n
"
);
return
-
ENODEV
;
}
if
(
acpi_find_iosapic
(
plintsrc
->
global_irq
,
&
irq
_base
,
&
iosapic_address
))
{
if
(
acpi_find_iosapic
(
plintsrc
->
global_irq
,
&
gsi
_base
,
&
iosapic_address
))
{
printk
(
KERN_WARNING
PREFIX
"IOSAPIC not found
\n
"
);
return
-
ENODEV
;
}
/*
* Get vector assignment for this
IRQ, set attributes, and program the
* IOSAPIC routing table.
* Get vector assignment for this
interrupt, set attributes,
*
and program the
IOSAPIC routing table.
*/
vector
=
iosapic_register_platform_i
rq
(
plintsrc
->
type
,
plintsrc
->
global_irq
,
plintsrc
->
iosapic_vector
,
plintsrc
->
eid
,
plintsrc
->
id
,
(
plintsrc
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
plintsrc
->
flags
.
trigger
==
1
)
?
1
:
0
,
irq
_base
,
iosapic_address
);
platform_i
rq
_list
[
plintsrc
->
type
]
=
vector
;
vector
=
iosapic_register_platform_i
ntr
(
plintsrc
->
type
,
plintsrc
->
global_irq
,
plintsrc
->
iosapic_vector
,
plintsrc
->
eid
,
plintsrc
->
id
,
(
plintsrc
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
plintsrc
->
flags
.
trigger
==
1
)
?
1
:
0
,
gsi
_base
,
iosapic_address
);
platform_i
ntr
_list
[
plintsrc
->
type
]
=
vector
;
return
0
;
}
...
...
@@ -397,12 +398,12 @@ acpi_parse_int_src_ovr (acpi_table_entry_header *header)
acpi_table_print_madt_entry
(
header
);
/* Ignore if the platform doesn't support overrides */
if
(
!
iosapic_
register_legacy
_irq
)
if
(
!
iosapic_
override_isa
_irq
)
return
0
;
iosapic_
register_legacy
_irq
(
p
->
bus_irq
,
p
->
global_irq
,
(
p
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
p
->
flags
.
trigger
==
1
)
?
1
:
0
);
iosapic_
override_isa
_irq
(
p
->
bus_irq
,
p
->
global_irq
,
(
p
->
flags
.
polarity
==
1
)
?
1
:
0
,
(
p
->
flags
.
trigger
==
1
)
?
1
:
0
);
return
0
;
}
...
...
@@ -431,6 +432,9 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
acpi_madt
=
(
struct
acpi_table_madt
*
)
__va
(
phys_addr
);
/* remember the value for reference after free_initmem() */
has_8259
=
acpi_madt
->
flags
.
pcat_compat
;
/* Get base address of IPI Message Block */
if
(
acpi_madt
->
lapic_address
)
...
...
@@ -440,11 +444,14 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
return
0
;
}
static
int
__init
acpi_parse_fadt
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
struct
acpi_table_header
*
fadt_header
;
fadt_descriptor_rev2
*
fadt
;
u32
sci_irq
,
gsi_base
;
char
*
iosapic_address
;
if
(
!
phys_addr
||
!
size
)
return
-
EINVAL
;
...
...
@@ -458,9 +465,20 @@ acpi_parse_fadt (unsigned long phys_addr, unsigned long size)
if
(
!
(
fadt
->
iapc_boot_arch
&
BAF_8042_KEYBOARD_CONTROLLER
))
acpi_kbd_controller_present
=
0
;
if
(
!
iosapic_register_intr
)
return
0
;
/* just ignore the rest */
sci_irq
=
fadt
->
sci_int
;
if
(
has_8259
&&
sci_irq
<
16
)
return
0
;
/* legacy, no setup required */
if
(
!
acpi_find_iosapic
(
sci_irq
,
&
gsi_base
,
&
iosapic_address
))
iosapic_register_intr
(
sci_irq
,
0
,
0
,
gsi_base
,
iosapic_address
);
return
0
;
}
unsigned
long
__init
acpi_find_rsdp
(
void
)
{
...
...
@@ -482,12 +500,12 @@ static int __init
acpi_parse_spcr
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
acpi_ser_t
*
spcr
;
unsigned
long
global_int
;
unsigned
int
gsi
;
if
(
!
phys_addr
||
!
size
)
return
-
EINVAL
;
if
(
!
iosapic_register_i
rq
)
if
(
!
iosapic_register_i
ntr
)
return
-
ENODEV
;
/*
...
...
@@ -500,6 +518,7 @@ acpi_parse_spcr (unsigned long phys_addr, unsigned long size)
*/
spcr
=
(
acpi_ser_t
*
)
__va
(
phys_addr
);
setup_serial_acpi
(
spcr
);
if
(
spcr
->
length
<
sizeof
(
acpi_ser_t
))
...
...
@@ -509,22 +528,22 @@ acpi_parse_spcr (unsigned long phys_addr, unsigned long size)
if
((
spcr
->
base_addr
.
space_id
!=
ACPI_SERIAL_PCICONF_SPACE
)
&&
(
spcr
->
int_type
==
ACPI_SERIAL_INT_SAPIC
))
{
u32
irq
_base
;
u32
gsi
_base
;
char
*
iosapic_address
;
int
vector
;
/* We have a UART in memory space with an SAPIC interrupt */
g
lobal_int
=
(
(
spcr
->
global_int
[
3
]
<<
24
)
|
(
spcr
->
global_int
[
2
]
<<
16
)
|
(
spcr
->
global_int
[
1
]
<<
8
)
|
(
spcr
->
global_int
[
0
])
);
g
si
=
(
(
spcr
->
global_int
[
3
]
<<
24
)
|
(
spcr
->
global_int
[
2
]
<<
16
)
|
(
spcr
->
global_int
[
1
]
<<
8
)
|
(
spcr
->
global_int
[
0
])
);
/* Which iosapic does this
IRQ
belong to? */
/* Which iosapic does this
interrupt
belong to? */
if
(
!
acpi_find_iosapic
(
g
lobal_int
,
&
irq
_base
,
&
iosapic_address
))
vector
=
iosapic_register_i
rq
(
global_int
,
1
,
1
,
irq
_base
,
iosapic_address
);
if
(
!
acpi_find_iosapic
(
g
si
,
&
gsi
_base
,
&
iosapic_address
))
vector
=
iosapic_register_i
ntr
(
gsi
,
1
,
1
,
gsi
_base
,
iosapic_address
);
}
return
0
;
}
...
...
@@ -583,7 +602,12 @@ acpi_boot_init (char *cmdline)
printk
(
KERN_ERR
PREFIX
"Error parsing NMI SRC entry
\n
"
);
skip_madt:
/* FADT says whether a legacy keyboard controller is present. */
/*
* FADT says whether a legacy keyboard controller is present.
* The FADT also contains an SCI_INT line, by which the system
* gets interrupts such as power and sleep buttons. If it's not
* on a Legacy interrupt, it needs to be setup.
*/
if
(
acpi_table_parse
(
ACPI_FACP
,
acpi_parse_fadt
)
<
1
)
printk
(
KERN_ERR
PREFIX
"Can't find FADT
\n
"
);
...
...
@@ -631,7 +655,7 @@ acpi_get_prt (struct pci_vector_struct **vectors, int *count)
*
count
=
0
;
if
(
acpi_prt
.
count
<
0
)
{
printk
(
KERN_ERR
PREFIX
"No PCI
IRQ
routing entries
\n
"
);
printk
(
KERN_ERR
PREFIX
"No PCI
interrupt
routing entries
\n
"
);
return
-
ENODEV
;
}
...
...
@@ -669,4 +693,13 @@ acpi_get_interrupt_model (int *type)
return
0
;
}
int
acpi_irq_to_vector
(
u32
irq
)
{
if
(
has_8259
&&
irq
<
16
)
return
isa_irq_to_vector
(
irq
);
return
gsi_to_vector
(
irq
);
}
#endif
/* CONFIG_ACPI_BOOT */
arch/ia64/kernel/efi.c
View file @
9caf366e
...
...
@@ -24,8 +24,8 @@
#include <linux/types.h>
#include <linux/time.h>
#include <linux/proc_fs.h>
#include <linux/efi.h>
#include <asm/efi.h>
#include <asm/io.h>
#include <asm/kregs.h>
#include <asm/pgtable.h>
...
...
arch/ia64/kernel/efivars.c
View file @
9caf366e
...
...
@@ -65,8 +65,8 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/smp.h>
#include <linux/efi.h>
#include <asm/efi.h>
#include <asm/uaccess.h>
MODULE_AUTHOR
(
"Matt Domsch <Matt_Domsch@Dell.com>"
);
...
...
arch/ia64/kernel/entry.S
View file @
9caf366e
...
...
@@ -1229,11 +1229,11 @@ sys_call_table:
data8
ia64_ni_syscall
//
1235
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
//
1240
data8
ia64_ni_syscall
data8
ia64_ni_syscal
l
data8
sys_io_setup
data8
sys_io_destroy
data8
sys_io_getevents
//
1240
data8
sys_io_submit
data8
sys_io_cance
l
data8
ia64_ni_syscall
data8
ia64_ni_syscall
data8
ia64_ni_syscall
//
1245
...
...
arch/ia64/kernel/fw-emu.c
View file @
9caf366e
...
...
@@ -13,7 +13,7 @@
# include <linux/pci.h>
#endif
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/io.h>
#include <asm/pal.h>
#include <asm/sal.h>
...
...
arch/ia64/kernel/ia64_ksyms.c
View file @
9caf366e
...
...
@@ -58,7 +58,7 @@ EXPORT_SYMBOL(clear_page);
#include <asm/processor.h>
# ifndef CONFIG_NUMA
EXPORT_SYMBOL
(
cpu_info
);
EXPORT_SYMBOL
(
cpu_info
__per_cpu
);
# endif
EXPORT_SYMBOL
(
kernel_thread
);
...
...
arch/ia64/kernel/iosapic.c
View file @
9caf366e
This diff is collapsed.
Click to expand it.
arch/ia64/kernel/irq.c
View file @
9caf366e
...
...
@@ -802,8 +802,7 @@ static struct proc_dir_entry * irq_dir [NR_IRQS];
#define HEX_DIGITS 8
static
unsigned
int
parse_hex_value
(
const
char
*
buffer
,
unsigned
long
count
,
unsigned
long
*
ret
)
static
int
parse_hex_value
(
const
char
*
buffer
,
unsigned
long
count
,
unsigned
long
*
ret
)
{
unsigned
char
hexnum
[
HEX_DIGITS
];
unsigned
long
value
;
...
...
@@ -846,11 +845,11 @@ static struct proc_dir_entry * smp_affinity_entry [NR_IRQS];
static
unsigned
long
irq_affinity
[
NR_IRQS
]
=
{
[
0
...
NR_IRQS
-
1
]
=
~
0UL
};
static
char
irq_redir
[
NR_IRQS
];
// = { [0 ... NR_IRQS-1] = 1 };
void
set_irq_affinity_info
(
int
irq
,
int
hwid
,
int
redir
)
void
set_irq_affinity_info
(
unsigned
int
irq
,
int
hwid
,
int
redir
)
{
unsigned
long
mask
=
1UL
<<
cpu_logical_id
(
hwid
);
if
(
irq
>=
0
&&
irq
<
NR_IRQS
)
{
if
(
irq
<
NR_IRQS
)
{
irq_affinity
[
irq
]
=
mask
;
irq_redir
[
irq
]
=
(
char
)
(
redir
&
0xff
);
}
...
...
@@ -861,14 +860,15 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off,
{
if
(
count
<
HEX_DIGITS
+
3
)
return
-
EINVAL
;
return
sprintf
(
page
,
"%s%08lx
\n
"
,
irq_redir
[(
long
)
data
]
?
"r "
:
""
,
irq_affinity
[(
long
)
data
]);
return
sprintf
(
page
,
"%s%08lx
\n
"
,
irq_redir
[(
unsigned
long
)
data
]
?
"r "
:
""
,
irq_affinity
[(
unsigned
long
)
data
]);
}
static
int
irq_affinity_write_proc
(
struct
file
*
file
,
const
char
*
buffer
,
unsigned
long
count
,
void
*
data
)
{
int
irq
=
(
long
)
data
,
full_count
=
count
,
err
;
unsigned
int
irq
=
(
unsigned
long
)
data
;
int
full_count
=
count
,
err
;
unsigned
long
new_value
;
const
char
*
buf
=
buffer
;
int
redir
;
...
...
@@ -884,6 +884,8 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
redir
=
0
;
err
=
parse_hex_value
(
buf
,
count
,
&
new_value
);
if
(
err
)
return
err
;
/*
* Do not allow disabling IRQs completely - it's a too easy
...
...
@@ -893,7 +895,7 @@ static int irq_affinity_write_proc (struct file *file, const char *buffer,
if
(
!
(
new_value
&
cpu_online_map
))
return
-
EINVAL
;
irq_desc
(
irq
)
->
handler
->
set_affinity
(
irq
|
(
redir
?
(
1
<<
31
)
:
0
),
new_value
);
irq_desc
(
irq
)
->
handler
->
set_affinity
(
irq
|
(
redir
?
IA64_IRQ_REDIRECTED
:
0
),
new_value
);
return
full_count
;
}
...
...
@@ -912,7 +914,8 @@ static int prof_cpu_mask_read_proc (char *page, char **start, off_t off,
static
int
prof_cpu_mask_write_proc
(
struct
file
*
file
,
const
char
*
buffer
,
unsigned
long
count
,
void
*
data
)
{
unsigned
long
*
mask
=
(
unsigned
long
*
)
data
,
full_count
=
count
,
err
;
unsigned
long
*
mask
=
(
unsigned
long
*
)
data
;
int
full_count
=
count
,
err
;
unsigned
long
new_value
;
err
=
parse_hex_value
(
buffer
,
count
,
&
new_value
);
...
...
@@ -946,7 +949,7 @@ static void register_irq_proc (unsigned int irq)
if
(
entry
)
{
entry
->
nlink
=
1
;
entry
->
data
=
(
void
*
)(
long
)
irq
;
entry
->
data
=
(
void
*
)(
unsigned
long
)
irq
;
entry
->
read_proc
=
irq_affinity_read_proc
;
entry
->
write_proc
=
irq_affinity_write_proc
;
}
...
...
arch/ia64/kernel/irq_ia64.c
View file @
9caf366e
...
...
@@ -54,20 +54,15 @@ __u8 isa_irq_to_vector_map[16] = {
0x28
,
0x27
,
0x26
,
0x25
,
0x24
,
0x23
,
0x22
,
0x21
};
/*
* GSI to IA-64 vector translation table.
*/
__u8
gsi_to_vector_map
[
255
];
int
ia64_alloc_
irq
(
void
)
ia64_alloc_
vector
(
void
)
{
static
int
next_
irq
=
IA64_FIRST_DEVICE_VECTOR
;
static
int
next_
vector
=
IA64_FIRST_DEVICE_VECTOR
;
if
(
next_
irq
>
IA64_LAST_DEVICE_VECTOR
)
if
(
next_
vector
>
IA64_LAST_DEVICE_VECTOR
)
/* XXX could look for sharable vectors instead of panic'ing... */
panic
(
"ia64_alloc_
irq
: out of interrupt vectors!"
);
return
next_
irq
++
;
panic
(
"ia64_alloc_
vector
: out of interrupt vectors!"
);
return
next_
vector
++
;
}
extern
unsigned
int
do_IRQ
(
unsigned
long
irq
,
struct
pt_regs
*
regs
);
...
...
arch/ia64/kernel/palinfo.c
View file @
9caf366e
...
...
@@ -21,10 +21,10 @@
#include <linux/proc_fs.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/efi.h>
#include <asm/page.h>
#include <asm/processor.h>
#ifdef CONFIG_SMP
...
...
arch/ia64/kernel/process.c
View file @
9caf366e
...
...
@@ -19,9 +19,9 @@
#include <linux/stddef.h>
#include <linux/thread_info.h>
#include <linux/unistd.h>
#include <linux/efi.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/elf.h>
#include <asm/perfmon.h>
#include <asm/pgalloc.h>
...
...
arch/ia64/kernel/setup.c
View file @
9caf366e
...
...
@@ -30,6 +30,7 @@
#include <linux/string.h>
#include <linux/threads.h>
#include <linux/tty.h>
#include <linux/efi.h>
#include <asm/ia32.h>
#include <asm/page.h>
...
...
@@ -37,7 +38,6 @@
#include <asm/processor.h>
#include <asm/sal.h>
#include <asm/system.h>
#include <asm/efi.h>
#include <asm/mca.h>
#include <asm/smp.h>
...
...
@@ -58,9 +58,8 @@ extern char _end;
unsigned
long
__per_cpu_offset
[
NR_CPUS
];
#endif
DECLARE_PER_CPU
(
struct
cpuinfo_ia64
,
cpu_info
);
unsigned
long
ia64_phys_stacked_size_p8
;
DEFINE_PER_CPU
(
struct
cpuinfo_ia64
,
cpu_info
);
DEFINE_PER_CPU
(
unsigned
long
,
ia64_phys_stacked_size_p8
);
unsigned
long
ia64_cycles_per_usec
;
struct
ia64_boot_param
*
ia64_boot_param
;
struct
screen_info
screen_info
;
...
...
@@ -564,11 +563,11 @@ cpu_init (void)
my_cpu_data
=
(
void
*
)
get_free_page
(
GFP_KERNEL
);
memcpy
(
my_cpu_data
,
__phys_per_cpu_start
,
__per_cpu_end
-
__per_cpu_start
);
__per_cpu_offset
[
cpu
]
=
(
char
*
)
my_cpu_data
-
__per_cpu_start
;
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
cpu_info
-
__per_cpu_start
);
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
__get_cpu_var
(
cpu_info
)
-
__per_cpu_start
);
#else
my_cpu_data
=
__phys_per_cpu_start
;
#endif
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
cpu_info
-
__per_cpu_start
);
my_cpu_info
=
my_cpu_data
+
((
char
*
)
&
__get_cpu_var
(
cpu_info
)
-
__per_cpu_start
);
/*
* We can't pass "local_cpu_data" to identify_cpu() because we haven't called
...
...
@@ -652,6 +651,6 @@ cpu_init (void)
num_phys_stacked
=
96
;
}
/* size of physical stacked register partition plus 8 bytes: */
ia64_phys_stacked_size_p8
=
num_phys_stacked
*
8
+
8
;
__get_cpu_var
(
ia64_phys_stacked_size_p8
)
=
num_phys_stacked
*
8
+
8
;
platform_cpu_init
();
}
arch/ia64/kernel/smp.c
View file @
9caf366e
...
...
@@ -32,12 +32,12 @@
#include <linux/cache.h>
#include <linux/delay.h>
#include <linux/cache.h>
#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/current.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/machvec.h>
#include <asm/io.h>
#include <asm/irq.h>
...
...
@@ -72,7 +72,7 @@ static volatile struct call_data_struct *call_data;
#define IPI_CPU_STOP 1
/* This needs to be cacheline aligned because it is written to by *other* CPUs. */
static
DE
CLAR
E_PER_CPU
(
__u64
,
ipi_operation
)
____cacheline_aligned
;
static
DE
FIN
E_PER_CPU
(
__u64
,
ipi_operation
)
____cacheline_aligned
;
static
void
stop_this_cpu
(
void
)
...
...
arch/ia64/kernel/smpboot.c
View file @
9caf366e
...
...
@@ -27,13 +27,13 @@
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <linux/spinlock.h>
#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/cache.h>
#include <asm/current.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/machvec.h>
...
...
arch/ia64/kernel/time.c
View file @
9caf366e
...
...
@@ -15,9 +15,9 @@
#include <linux/sched.h>
#include <linux/time.h>
#include <linux/interrupt.h>
#include <linux/efi.h>
#include <asm/delay.h>
#include <asm/efi.h>
#include <asm/hw_irq.h>
#include <asm/ptrace.h>
#include <asm/sal.h>
...
...
arch/ia64/kernel/traps.c
View file @
9caf366e
...
...
@@ -135,8 +135,6 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
siginfo_t
siginfo
;
int
sig
,
code
;
die_if_kernel
(
"bad break"
,
regs
,
break_num
);
/* SIGILL, SIGFPE, SIGSEGV, and SIGBUS want these field initialized: */
siginfo
.
si_addr
=
(
void
*
)
(
regs
->
cr_iip
+
ia64_psr
(
regs
)
->
ri
);
siginfo
.
si_imm
=
break_num
;
...
...
@@ -144,7 +142,8 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
siginfo
.
si_isr
=
0
;
switch
(
break_num
)
{
case
0
:
/* unknown error */
case
0
:
/* unknown error (used by GCC for __builtin_abort()) */
die_if_kernel
(
"bad break"
,
regs
,
break_num
);
sig
=
SIGILL
;
code
=
ILL_ILLOPC
;
break
;
...
...
arch/ia64/lib/memcpy.S
View file @
9caf366e
...
...
@@ -13,8 +13,6 @@
*
Stephane
Eranian
<
eranian
@
hpl
.
hp
.
com
>
*
David
Mosberger
-
Tang
<
davidm
@
hpl
.
hp
.
com
>
*/
#include <linux/config.h>
#include <asm/asmmacro.h>
GLOBAL_ENTRY
(
bcopy
)
...
...
arch/ia64/mm/init.c
View file @
9caf366e
...
...
@@ -14,11 +14,11 @@
#include <linux/reboot.h>
#include <linux/slab.h>
#include <linux/swap.h>
#include <linux/efi.h>
#include <asm/a.out.h>
#include <asm/bitops.h>
#include <asm/dma.h>
#include <asm/efi.h>
#include <asm/ia32.h>
#include <asm/io.h>
#include <asm/machvec.h>
...
...
arch/ia64/mm/tlb.c
View file @
9caf366e
...
...
@@ -41,7 +41,7 @@ struct ia64_ctx ia64_ctx = {
.
max_ctx
=
~
0U
};
u8
ia64_need_tlb_flush
__per_cpu_data
;
DEFINE_PER_CPU
(
u8
,
ia64_need_tlb_flush
)
;
/*
* Acquire the ia64_ctx.lock before calling this function!
...
...
arch/ia64/sn/fakeprom/fpmem.c
View file @
9caf366e
...
...
@@ -18,7 +18,7 @@
*/
#include <linux/config.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include "fpmem.h"
/*
...
...
arch/ia64/sn/fakeprom/fw-emu.c
View file @
9caf366e
...
...
@@ -36,7 +36,7 @@
* http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
#include <linux/config.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/sn/sn_sal.h>
...
...
arch/ia64/sn/io/efi-rtc.c
View file @
9caf366e
...
...
@@ -12,7 +12,7 @@
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/errno.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/sn/klclock.h>
/*
...
...
arch/ia64/sn/kernel/llsc4.c
View file @
9caf366e
...
...
@@ -17,7 +17,7 @@
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <
asm
/efi.h>
#include <
linux
/efi.h>
#include <asm/page.h>
#include <linux/threads.h>
#include <asm/sn/simulator.h>
...
...
arch/ia64/vmlinux.lds.S
View file @
9caf366e
...
...
@@ -7,7 +7,7 @@
OUTPUT_FORMAT
("
elf64
-
ia64
-
little
")
OUTPUT_ARCH
(
ia64
)
ENTRY
(
phys_start
)
jiffies
=
jiffies_64
;
jiffies
=
jiffies_64
;
SECTIONS
{
/
*
Sections
to
be
discarded
*/
...
...
include/asm-ia64/acpi.h
View file @
9caf366e
...
...
@@ -100,7 +100,8 @@ const char *acpi_get_sysname (void);
int
acpi_boot_init
(
char
*
cdline
);
int
acpi_request_vector
(
u32
int_type
);
int
acpi_get_prt
(
struct
pci_vector_struct
**
vectors
,
int
*
count
);
int
acpi_get_interrupt_model
(
int
*
type
);
int
acpi_get_interrupt_model
(
int
*
type
);
int
acpi_irq_to_vector
(
u32
irq
);
#ifdef CONFIG_DISCONTIGMEM
#define NODE_ARRAY_INDEX(x) ((x) / 8)
/* 8 bits/char */
...
...
include/asm-ia64/agp.h
View file @
9caf366e
...
...
@@ -18,4 +18,7 @@
#define flush_agp_mappings()
/* nothing */
#define flush_agp_cache() mb()
/* Page-protection value to be used for AGP memory mapped into kernel space. */
#define PAGE_AGP PAGE_KERNEL
#endif
/* _ASM_IA64_AGP_H */
include/asm-ia64/atomic.h
View file @
9caf366e
...
...
@@ -9,8 +9,8 @@
* "int" types were carefully placed so as to ensure proper operation
* of the macros.
*
* Copyright (C) 1998, 1999 Hewlett-Packard Co
*
Copyright (C) 1998, 1999
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998, 1999
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#include <linux/types.h>
...
...
include/asm-ia64/efi.h
deleted
100644 → 0
View file @
7c0700ff
#ifndef _ASM_IA64_EFI_H
#define _ASM_IA64_EFI_H
/*
* Extensible Firmware Interface
* Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999
*
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999, 2002 Hewlett-Packard Co.
* David Mosberger-Tang <davidm@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*/
#include <linux/init.h>
#include <linux/string.h>
#include <linux/time.h>
#include <linux/types.h>
#include <linux/proc_fs.h>
#include <asm/page.h>
#include <asm/system.h>
#define EFI_SUCCESS 0
#define EFI_LOAD_ERROR (1L | (1L << 63))
#define EFI_INVALID_PARAMETER (2L | (1L << 63))
#define EFI_UNSUPPORTED (3L | (1L << 63))
#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63))
#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63))
#define EFI_NOT_FOUND (14L | (1L << 63))
typedef
unsigned
long
efi_status_t
;
typedef
u8
efi_bool_t
;
typedef
u16
efi_char16_t
;
/* UNICODE character */
typedef
struct
{
u8
b
[
16
];
}
efi_guid_t
;
#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
((efi_guid_t) \
{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
(b) & 0xff, ((b) >> 8) & 0xff, \
(c) & 0xff, ((c) >> 8) & 0xff, \
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
/*
* Generic EFI table header
*/
typedef
struct
{
u64
signature
;
u32
revision
;
u32
headersize
;
u32
crc32
;
u32
reserved
;
}
efi_table_hdr_t
;
/*
* Memory map descriptor:
*/
/* Memory types: */
#define EFI_RESERVED_TYPE 0
#define EFI_LOADER_CODE 1
#define EFI_LOADER_DATA 2
#define EFI_BOOT_SERVICES_CODE 3
#define EFI_BOOT_SERVICES_DATA 4
#define EFI_RUNTIME_SERVICES_CODE 5
#define EFI_RUNTIME_SERVICES_DATA 6
#define EFI_CONVENTIONAL_MEMORY 7
#define EFI_UNUSABLE_MEMORY 8
#define EFI_ACPI_RECLAIM_MEMORY 9
#define EFI_ACPI_MEMORY_NVS 10
#define EFI_MEMORY_MAPPED_IO 11
#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12
#define EFI_PAL_CODE 13
#define EFI_MAX_MEMORY_TYPE 14
/* Attribute values: */
#define EFI_MEMORY_UC 0x0000000000000001
/* uncached */
#define EFI_MEMORY_WC 0x0000000000000002
/* write-coalescing */
#define EFI_MEMORY_WT 0x0000000000000004
/* write-through */
#define EFI_MEMORY_WB 0x0000000000000008
/* write-back */
#define EFI_MEMORY_WP 0x0000000000001000
/* write-protect */
#define EFI_MEMORY_RP 0x0000000000002000
/* read-protect */
#define EFI_MEMORY_XP 0x0000000000004000
/* execute-protect */
#define EFI_MEMORY_RUNTIME 0x8000000000000000
/* range requires runtime mapping */
#define EFI_MEMORY_DESCRIPTOR_VERSION 1
#define EFI_PAGE_SHIFT 12
typedef
struct
{
u32
type
;
u32
pad
;
u64
phys_addr
;
u64
virt_addr
;
u64
num_pages
;
u64
attribute
;
}
efi_memory_desc_t
;
typedef
int
efi_freemem_callback_t
(
u64
start
,
u64
end
,
void
*
arg
);
/*
* Types and defines for Time Services
*/
#define EFI_TIME_ADJUST_DAYLIGHT 0x1
#define EFI_TIME_IN_DAYLIGHT 0x2
#define EFI_UNSPECIFIED_TIMEZONE 0x07ff
typedef
struct
{
u16
year
;
u8
month
;
u8
day
;
u8
hour
;
u8
minute
;
u8
second
;
u8
pad1
;
u32
nanosecond
;
s16
timezone
;
u8
daylight
;
u8
pad2
;
}
efi_time_t
;
typedef
struct
{
u32
resolution
;
u32
accuracy
;
u8
sets_to_zero
;
}
efi_time_cap_t
;
/*
* Types and defines for EFI ResetSystem
*/
#define EFI_RESET_COLD 0
#define EFI_RESET_WARM 1
/*
* EFI Runtime Services table
*/
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552
#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
typedef
struct
{
efi_table_hdr_t
hdr
;
u64
get_time
;
u64
set_time
;
u64
get_wakeup_time
;
u64
set_wakeup_time
;
u64
set_virtual_address_map
;
u64
convert_pointer
;
u64
get_variable
;
u64
get_next_variable
;
u64
set_variable
;
u64
get_next_high_mono_count
;
u64
reset_system
;
}
efi_runtime_services_t
;
typedef
efi_status_t
efi_get_time_t
(
efi_time_t
*
tm
,
efi_time_cap_t
*
tc
);
typedef
efi_status_t
efi_set_time_t
(
efi_time_t
*
tm
);
typedef
efi_status_t
efi_get_wakeup_time_t
(
efi_bool_t
*
enabled
,
efi_bool_t
*
pending
,
efi_time_t
*
tm
);
typedef
efi_status_t
efi_set_wakeup_time_t
(
efi_bool_t
enabled
,
efi_time_t
*
tm
);
typedef
efi_status_t
efi_get_variable_t
(
efi_char16_t
*
name
,
efi_guid_t
*
vendor
,
u32
*
attr
,
unsigned
long
*
data_size
,
void
*
data
);
typedef
efi_status_t
efi_get_next_variable_t
(
unsigned
long
*
name_size
,
efi_char16_t
*
name
,
efi_guid_t
*
vendor
);
typedef
efi_status_t
efi_set_variable_t
(
efi_char16_t
*
name
,
efi_guid_t
*
vendor
,
u32
attr
,
unsigned
long
data_size
,
void
*
data
);
typedef
efi_status_t
efi_get_next_high_mono_count_t
(
u64
*
count
);
typedef
void
efi_reset_system_t
(
int
reset_type
,
efi_status_t
status
,
unsigned
long
data_size
,
efi_char16_t
*
data
);
/*
* EFI Configuration Table and GUID definitions
*/
#define NULL_GUID \
EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 )
#define MPS_TABLE_GUID \
EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define ACPI_TABLE_GUID \
EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define ACPI_20_TABLE_GUID \
EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 )
#define SMBIOS_TABLE_GUID \
EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define SAL_SYSTEM_TABLE_GUID \
EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
#define HCDP_TABLE_GUID \
EFI_GUID( 0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 )
typedef
struct
{
efi_guid_t
guid
;
u64
table
;
}
efi_config_table_t
;
#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00)
typedef
struct
{
efi_table_hdr_t
hdr
;
u64
fw_vendor
;
/* physical addr of CHAR16 vendor string */
u32
fw_revision
;
u64
con_in_handle
;
u64
con_in
;
u64
con_out_handle
;
u64
con_out
;
u64
stderr_handle
;
u64
stderr
;
u64
runtime
;
u64
boottime
;
u64
nr_tables
;
u64
tables
;
}
efi_system_table_t
;
/*
* All runtime access to EFI goes through this structure:
*/
extern
struct
efi
{
efi_system_table_t
*
systab
;
/* EFI system table */
void
*
mps
;
/* MPS table */
void
*
acpi
;
/* ACPI table (IA64 ext 0.71) */
void
*
acpi20
;
/* ACPI table (ACPI 2.0) */
void
*
smbios
;
/* SM BIOS table */
void
*
sal_systab
;
/* SAL system table */
void
*
boot_info
;
/* boot info table */
void
*
hcdp
;
/* HCDP table */
efi_get_time_t
*
get_time
;
efi_set_time_t
*
set_time
;
efi_get_wakeup_time_t
*
get_wakeup_time
;
efi_set_wakeup_time_t
*
set_wakeup_time
;
efi_get_variable_t
*
get_variable
;
efi_get_next_variable_t
*
get_next_variable
;
efi_set_variable_t
*
set_variable
;
efi_get_next_high_mono_count_t
*
get_next_high_mono_count
;
efi_reset_system_t
*
reset_system
;
}
efi
;
static
inline
int
efi_guidcmp
(
efi_guid_t
left
,
efi_guid_t
right
)
{
return
memcmp
(
&
left
,
&
right
,
sizeof
(
efi_guid_t
));
}
static
inline
char
*
efi_guid_unparse
(
efi_guid_t
*
guid
,
char
*
out
)
{
sprintf
(
out
,
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x"
,
guid
->
b
[
3
],
guid
->
b
[
2
],
guid
->
b
[
1
],
guid
->
b
[
0
],
guid
->
b
[
5
],
guid
->
b
[
4
],
guid
->
b
[
7
],
guid
->
b
[
6
],
guid
->
b
[
8
],
guid
->
b
[
9
],
guid
->
b
[
10
],
guid
->
b
[
11
],
guid
->
b
[
12
],
guid
->
b
[
13
],
guid
->
b
[
14
],
guid
->
b
[
15
]);
return
out
;
}
extern
void
efi_init
(
void
);
extern
void
efi_map_pal_code
(
void
);
extern
void
efi_memmap_walk
(
efi_freemem_callback_t
callback
,
void
*
arg
);
extern
void
efi_gettimeofday
(
struct
timeval
*
tv
);
extern
void
efi_enter_virtual_mode
(
void
);
/* switch EFI to virtual mode, if possible */
extern
u64
efi_get_iobase
(
void
);
extern
u32
efi_mem_type
(
unsigned
long
phys_addr
);
extern
u64
efi_mem_attributes
(
unsigned
long
phys_addr
);
/*
* Variable Attributes
*/
#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
/*
* efi_dir is allocated in arch/ia64/kernel/efi.c.
*/
#ifdef CONFIG_PROC_FS
extern
struct
proc_dir_entry
*
efi_dir
;
#endif
#endif
/* _ASM_IA64_EFI_H */
include/asm-ia64/fpu.h
View file @
9caf366e
...
...
@@ -2,8 +2,8 @@
#define _ASM_IA64_FPU_H
/*
* Copyright (C) 1998, 1999 Hewlett-Packard Co
*
Copyright (C) 1998, 1999
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998, 1999
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#include <asm/types.h>
...
...
include/asm-ia64/hardirq.h
View file @
9caf366e
...
...
@@ -92,12 +92,12 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
#define irq_exit()
\
do {
\
preempt_count() -= IRQ_EXIT_OFFSET;
\
if (!in_interrupt() &&
softirq_pending(smp_processor_id()
)) \
do_softirq();
\
preempt_enable_no_resched();
\
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
if (!in_interrupt() &&
local_softirq_pending(
)) \
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
#ifdef CONFIG_SMP
...
...
include/asm-ia64/hw_irq.h
View file @
9caf366e
...
...
@@ -53,6 +53,10 @@ typedef u8 ia64_vector;
#define IA64_IPI_RESCHEDULE 0xfd
/* SMP reschedule */
#define IA64_IPI_VECTOR 0xfe
/* inter-processor interrupt vector */
/* Used for encoding redirected irqs */
#define IA64_IRQ_REDIRECTED (1 << 31)
/* IA64 inter-cpu interrupt related definitions */
#define IA64_IPI_DEFAULT_BASE_ADDR 0xfee00000
...
...
@@ -68,14 +72,12 @@ enum {
extern
__u8
isa_irq_to_vector_map
[
16
];
#define isa_irq_to_vector(x) isa_irq_to_vector_map[(x)]
extern
__u8
gsi_to_vector_map
[
255
];
#define gsi_to_vector(x) gsi_to_vector_map[(x)]
extern
unsigned
long
ipi_base_addr
;
extern
struct
hw_interrupt_type
irq_type_ia64_lsapic
;
/* CPU-internal interrupt controller */
extern
int
ia64_alloc_
irq
(
void
);
/* allocate a free irq
*/
extern
int
ia64_alloc_
vector
(
void
);
/* allocate a free vector
*/
extern
void
ia64_send_ipi
(
int
cpu
,
int
vector
,
int
delivery_mode
,
int
redirect
);
extern
void
register_percpu_irq
(
ia64_vector
vec
,
struct
irqaction
*
action
);
...
...
include/asm-ia64/ide.h
View file @
9caf366e
...
...
@@ -85,11 +85,25 @@ ide_init_default_hwifs (void)
for
(
index
=
0
;
index
<
MAX_HWIFS
;
index
++
)
{
ide_init_hwif_ports
(
&
hw
,
ide_default_io_base
(
index
),
0
,
NULL
);
hw
.
irq
=
ide_default_irq
(
ide_default_io_base
(
index
));
ide_register_hw
(
&
hw
);
ide_register_hw
(
&
hw
,
NULL
);
}
#endif
}
#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id))
#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
#define ide_check_region(from,extent) check_region((from), (extent))
#define ide_request_region(from,extent,name) request_region((from), (extent), (name))
#define ide_release_region(from,extent) release_region((from), (extent))
/*
* The following are not needed for the non-m68k ports
*/
#define ide_ack_intr(hwif) (1)
#define ide_fix_driveid(id) do {} while (0)
#define ide_release_lock(lock) do {} while (0)
#define ide_get_lock(lock, hdlr, data) do {} while (0)
#endif
/* __KERNEL__ */
#endif
/* __ASM_IA64_IDE_H */
include/asm-ia64/io.h
View file @
9caf366e
...
...
@@ -13,7 +13,7 @@
* over and over again with slight variations and possibly making a
* mistake somewhere.
*
* Copyright (C) 1998-200
1
Hewlett-Packard Co
* Copyright (C) 1998-200
2
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999 Asit Mallick <asit.k.mallick@intel.com>
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
...
...
@@ -277,9 +277,9 @@ __outsl (unsigned long port, void *src, unsigned long count)
}
/*
* Unfortunately, some platforms are broken and do not follow the
*
IA-64 architecture specification regarding legacy I/O support.
*
Thus, we have to make these operations
platform dependent...
* Unfortunately, some platforms are broken and do not follow the
IA-64 architecture
*
specification regarding legacy I/O support. Thus, we have to make these operations
* platform dependent...
*/
#define __inb platform_inb
#define __inw platform_inw
...
...
@@ -289,19 +289,19 @@ __outsl (unsigned long port, void *src, unsigned long count)
#define __outl platform_outl
#define __mmiob platform_mmiob
#define inb
__inb
#define inw
__inw
#define inl
__inl
#define insb
__insb
#define insw
__insw
#define insl
__insl
#define outb
__outb
#define outw
__outw
#define outl
__outl
#define outsb
__outsb
#define outsw
__outsw
#define outsl
__outsl
#define mmiob
__mmiob
#define inb
(p) __inb(p)
#define inw
(p) __inw(p)
#define inl
(p) __inl(p)
#define insb
(p,d,c) __insb(p,d,c)
#define insw
(p,d,c) __insw(p,d,c)
#define insl
(p,d,c) __insl(p,d,c)
#define outb
(v,p) __outb(v,p)
#define outw
(v,p) __outw(v,p)
#define outl
(v,p) __outl(v,p)
#define outsb
(p,s,c) __outsb(p,s,c)
#define outsw
(p,s,c) __outsw(p,s,c)
#define outsl
(p,s,c) __outsl(p,s,c)
#define mmiob
() __mmiob()
/*
* The address passed to these functions are ioremap()ped already.
...
...
include/asm-ia64/iosapic.h
View file @
9caf366e
...
...
@@ -51,17 +51,24 @@
#ifndef __ASSEMBLY__
extern
void
__init
iosapic_init
(
unsigned
long
address
,
unsigned
int
base_irq
,
int
pcat_compat
);
extern
int
iosapic_register_irq
(
u32
global_vector
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
base_irq
,
char
*
iosapic_address
);
extern
void
iosapic_register_legacy_irq
(
unsigned
long
irq
,
unsigned
long
pin
,
unsigned
long
polarity
,
unsigned
long
trigger
);
extern
int
iosapic_register_platform_irq
(
u32
int_type
,
u32
global_vector
,
u32
iosapic_vector
,
u16
eid
,
u16
id
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
base_irq
,
char
*
iosapic_address
);
extern
void
__devinit
iosapic_init
(
unsigned
long
address
,
unsigned
int
gsi_base
,
int
pcat_compat
);
extern
int
gsi_to_vector
(
unsigned
int
gsi
);
extern
int
iosapic_register_intr
(
unsigned
int
gsi
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
u32
gsi_base
,
char
*
iosapic_address
);
extern
void
iosapic_override_isa_irq
(
unsigned
int
isa_irq
,
unsigned
int
gsi
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
);
extern
int
iosapic_register_platform_intr
(
u32
int_type
,
unsigned
int
gsi
,
int
pmi_vector
,
u16
eid
,
u16
id
,
unsigned
long
polarity
,
unsigned
long
edge_triggered
,
unsigned
int
gsi_base
,
char
*
iosapic_address
);
extern
unsigned
int
iosapic_version
(
char
*
addr
);
extern
void
iosapic_pci_fixup
(
int
);
...
...
include/asm-ia64/irq.h
View file @
9caf366e
...
...
@@ -27,6 +27,6 @@ irq_cannonicalize (int irq)
extern
void
disable_irq
(
unsigned
int
);
extern
void
disable_irq_nosync
(
unsigned
int
);
extern
void
enable_irq
(
unsigned
int
);
extern
void
set_irq_affinity_info
(
int
irq
,
int
dest
,
int
redir
);
extern
void
set_irq_affinity_info
(
unsigned
int
irq
,
int
dest
,
int
redir
);
#endif
/* _ASM_IA64_IRQ_H */
include/asm-ia64/kmap_types.h
0 → 100644
View file @
9caf366e
#ifndef _ASM_IA64_KMAP_TYPES_H
#define _ASM_IA64_KMAP_TYPES_H
#include <linux/config.h>
#if CONFIG_DEBUG_HIGHMEM
# define D(n) __KM_FENCE_##n ,
#else
# define D(n)
#endif
enum
km_type
{
D
(
0
)
KM_BOUNCE_READ
,
D
(
1
)
KM_SKB_SUNRPC_DATA
,
D
(
2
)
KM_SKB_DATA_SOFTIRQ
,
D
(
3
)
KM_USER0
,
D
(
4
)
KM_USER1
,
D
(
5
)
KM_BIO_SRC_IRQ
,
D
(
6
)
KM_BIO_DST_IRQ
,
D
(
7
)
KM_PTE0
,
D
(
8
)
KM_PTE1
,
D
(
9
)
KM_IRQ0
,
D
(
10
)
KM_IRQ1
,
D
(
11
)
KM_TYPE_NR
};
#undef D
#endif
/* _ASM_IA64_KMAP_TYPES_H */
include/asm-ia64/mc146818rtc.h
0 → 100644
View file @
9caf366e
#ifndef _ASM_IA64_MC146818RTC_H
#define _ASM_IA64_MC146818RTC_H
/*
* Machine dependent access functions for RTC registers.
*/
/* empty include file to satisfy the include in genrtc.c */
#endif
/* _ASM_IA64_MC146818RTC_H */
include/asm-ia64/mmu_context.h
View file @
9caf366e
...
...
@@ -36,7 +36,7 @@ struct ia64_ctx {
};
extern
struct
ia64_ctx
ia64_ctx
;
extern
u8
ia64_need_tlb_flush
__per_cpu_data
;
DECLARE_PER_CPU
(
u8
,
ia64_need_tlb_flush
)
;
extern
void
wrap_mmu_context
(
struct
mm_struct
*
mm
);
...
...
@@ -56,9 +56,9 @@ delayed_tlb_flush (void)
{
extern
void
__flush_tlb_all
(
void
);
if
(
unlikely
(
ia64_need_tlb_flush
))
{
if
(
unlikely
(
__get_cpu_var
(
ia64_need_tlb_flush
)
))
{
__flush_tlb_all
();
ia64_need_tlb_flush
=
0
;
__get_cpu_var
(
ia64_need_tlb_flush
)
=
0
;
}
}
...
...
include/asm-ia64/percpu.h
View file @
9caf366e
#ifndef _ASM_IA64_PERCPU_H
#define _ASM_IA64_PERCPU_H
#include <linux/config.h>
#include <linux/compiler.h>
/*
* Copyright (C) 2002 Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
...
...
@@ -8,7 +11,7 @@
#ifdef __ASSEMBLY__
#define THIS_CPU(var) (var##__per_cpu)
/* use this to mark accesses to per-CPU variables... */
#define THIS_CPU(var) (var##__per_cpu)
/* use this to mark accesses to per-CPU variables... */
#else
/* !__ASSEMBLY__ */
...
...
@@ -22,8 +25,12 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
#endif
#define DECLARE_PER_CPU(type, name) extern __typeof__(type) name##__per_cpu
#define per_cpu(var, cpu) (*RELOC_HIDE(&var##__per_cpu, __per_cpu_offset[cpu]))
#define __get_cpu_var(var) (var##__per_cpu)
#ifdef CONFIG_SMP
# define per_cpu(var, cpu) (*RELOC_HIDE(&var##__per_cpu, __per_cpu_offset[cpu]))
#else
# define per_cpu(var, cpu) __get_cpu_var(var)
#endif
#endif
/* !__ASSEMBLY__ */
...
...
include/asm-ia64/processor.h
View file @
9caf366e
...
...
@@ -15,9 +15,6 @@
#include <linux/config.h>
#include <linux/percpu.h>
#include <linux/compiler.h>
#include <asm/ptrace.h>
#include <asm/kregs.h>
#include <asm/system.h>
...
...
@@ -81,8 +78,10 @@
#ifndef __ASSEMBLY__
#include <linux/threads.h>
#include <linux/cache.h>
#include <linux/compiler.h>
#include <linux/percpu.h>
#include <linux/threads.h>
#include <asm/fpu.h>
#include <asm/offsets.h>
...
...
include/asm-ia64/sal.h
View file @
9caf366e
...
...
@@ -24,9 +24,9 @@
*/
#include <linux/spinlock.h>
#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/efi.h>
#include <asm/system.h>
#include <asm/fpu.h>
...
...
include/asm-ia64/system.h
View file @
9caf366e
...
...
@@ -13,7 +13,6 @@
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
*/
#include <linux/config.h>
#include <linux/percpu.h>
#include <asm/kregs.h>
#include <asm/page.h>
...
...
@@ -26,6 +25,7 @@
#ifndef __ASSEMBLY__
#include <linux/percpu.h>
#include <linux/kernel.h>
#include <linux/types.h>
...
...
@@ -368,8 +368,8 @@ extern void ia64_save_extra (struct task_struct *task);
extern
void
ia64_load_extra
(
struct
task_struct
*
task
);
#if defined(CONFIG_SMP) && defined(CONFIG_PERFMON)
extern
int
__per_cpu_data
pfm_syst_wide
;
# define PERFMON_IS_SYSWIDE() (
this_cpu
(pfm_syst_wide) != 0)
DECLARE_PER_CPU
(
int
,
pfm_syst_wide
)
;
# define PERFMON_IS_SYSWIDE() (
get_cpu_var
(pfm_syst_wide) != 0)
#else
# define PERFMON_IS_SYSWIDE() (0)
#endif
...
...
include/asm-ia64/types.h
View file @
9caf366e
...
...
@@ -2,14 +2,13 @@
#define _ASM_IA64_TYPES_H
/*
* This file is never included by application software unless
* explicitly requested (e.g., via linux/types.h) in which case the
* application is Linux specific so (user-) name space pollution is
* not a major issue. However, for interoperability, libraries still
* This file is never included by application software unless explicitly requested (e.g.,
* via linux/types.h) in which case the application is Linux specific so (user-) name
* space pollution is not a major issue. However, for interoperability, libraries still
* need to be careful to avoid a name clashes.
*
* Copyright (C) 1998-2000 Hewlett-Packard Co
*
Copyright (C) 1998-2000
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1998-2000
, 2002
Hewlett-Packard Co
*
David Mosberger-Tang <davidm@hpl.hp.com>
*/
#ifdef __ASSEMBLY__
...
...
@@ -18,9 +17,6 @@
#else
# define __IA64_UL(x) ((unsigned long)(x))
# define __IA64_UL_CONST(x) x##UL
#endif
#ifndef __ASSEMBLY__
typedef
unsigned
int
umode_t
;
...
...
include/asm-ia64/unistd.h
View file @
9caf366e
...
...
@@ -223,10 +223,15 @@
#define __NR_sched_setaffinity 1231
#define __NR_sched_getaffinity 1232
#define __NR_security 1233
#define __NR_get_large_pages 1234
#define __NR_free_large_pages 1235
#define __NR_share_large_pages 1236
#define __NR_unshare_large_pages 1237
#define __NR_alloc_hugepages 1234
#define __NR_free_hugepages 1235
/* 1236 currently unused */
/* 1237 currently unused */
#define __NR_io_setup 1238
#define __NR_io_destroy 1239
#define __NR_io_getevents 1240
#define __NR_io_submit 1241
#define __NR_io_cancel 1242
#if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
...
...
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