Root/
1 | #ifndef _LINUX_SMPBOOT_H |
2 | #define _LINUX_SMPBOOT_H |
3 | |
4 | #include <linux/types.h> |
5 | |
6 | struct task_struct; |
7 | /* Cookie handed to the thread_fn*/ |
8 | struct smpboot_thread_data; |
9 | |
10 | /** |
11 | * struct smp_hotplug_thread - CPU hotplug related thread descriptor |
12 | * @store: Pointer to per cpu storage for the task pointers |
13 | * @list: List head for core management |
14 | * @thread_should_run: Check whether the thread should run or not. Called with |
15 | * preemption disabled. |
16 | * @thread_fn: The associated thread function |
17 | * @create: Optional setup function, called when the thread gets |
18 | * created (Not called from the thread context) |
19 | * @setup: Optional setup function, called when the thread gets |
20 | * operational the first time |
21 | * @cleanup: Optional cleanup function, called when the thread |
22 | * should stop (module exit) |
23 | * @park: Optional park function, called when the thread is |
24 | * parked (cpu offline) |
25 | * @unpark: Optional unpark function, called when the thread is |
26 | * unparked (cpu online) |
27 | * @pre_unpark: Optional unpark function, called before the thread is |
28 | * unparked (cpu online). This is not guaranteed to be |
29 | * called on the target cpu of the thread. Careful! |
30 | * @selfparking: Thread is not parked by the park function. |
31 | * @thread_comm: The base name of the thread |
32 | */ |
33 | struct smp_hotplug_thread { |
34 | struct task_struct __percpu **store; |
35 | struct list_head list; |
36 | int (*thread_should_run)(unsigned int cpu); |
37 | void (*thread_fn)(unsigned int cpu); |
38 | void (*create)(unsigned int cpu); |
39 | void (*setup)(unsigned int cpu); |
40 | void (*cleanup)(unsigned int cpu, bool online); |
41 | void (*park)(unsigned int cpu); |
42 | void (*unpark)(unsigned int cpu); |
43 | void (*pre_unpark)(unsigned int cpu); |
44 | bool selfparking; |
45 | const char *thread_comm; |
46 | }; |
47 | |
48 | int smpboot_register_percpu_thread(struct smp_hotplug_thread *plug_thread); |
49 | void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread); |
50 | int smpboot_thread_schedule(void); |
51 | |
52 | #endif |
53 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9