Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm64
include
asm
smp.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012 ARM Ltd.
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*/
16
#ifndef __ASM_SMP_H
17
#define __ASM_SMP_H
18
19
#include <
linux/threads.h
>
20
#include <
linux/cpumask.h
>
21
#include <
linux/thread_info.h
>
22
23
#ifndef CONFIG_SMP
24
# error "<asm/smp.h> included in non-SMP build"
25
#endif
26
27
#define raw_smp_processor_id() (current_thread_info()->cpu)
28
29
struct
seq_file
;
30
31
/*
32
* generate IPI list text
33
*/
34
extern
void
show_ipi_list
(
struct
seq_file
*
p
,
int
prec);
35
36
/*
37
* Called from C code, this handles an IPI.
38
*/
39
extern
void
handle_IPI
(
int
ipinr,
struct
pt_regs
*
regs
);
40
41
/*
42
* Setup the set of possible CPUs (via set_cpu_possible)
43
*/
44
extern
void
smp_init_cpus
(
void
);
45
46
/*
47
* Provide a function to raise an IPI cross call on CPUs in callmap.
48
*/
49
extern
void
set_smp_cross_call
(
void
(*)(
const
struct
cpumask
*,
unsigned
int
));
50
51
/*
52
* Called from the secondary holding pen, this is the secondary CPU entry point.
53
*/
54
asmlinkage
void
secondary_start_kernel
(
void
);
55
56
/*
57
* Initial data for bringing up a secondary CPU.
58
*/
59
struct
secondary_data
{
60
void
*
stack
;
61
};
62
extern
struct
secondary_data
secondary_data
;
63
extern
void
secondary_holding_pen
(
void
);
64
extern
volatile
unsigned
long
secondary_holding_pen_release
;
65
66
extern
void
arch_send_call_function_single_ipi
(
int
cpu
);
67
extern
void
arch_send_call_function_ipi_mask
(
const
struct
cpumask
*
mask
);
68
69
#endif
/* ifndef __ASM_SMP_H */
Generated on Thu Jan 10 2013 12:50:32 for Linux Kernel by
1.8.2