-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ARM] Add thread_notify infrastructure
Some machine classes need to allow VFP support to be built into the kernel, but still allow the kernel to run even though VFP isn't present. Unfortunately, the kernel hard-codes VFP instructions into the thread switch, which prevents this being run-time selectable. Solve this by introducing a notifier which things such as VFP can hook into to be informed of events which affect the VFP subsystem (eg, creation and destruction of threads, switches between threads.) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- Loading branch information
Russell King
authored and
Russell King
committed
Jun 22, 2006
1 parent
52ab3f3
commit d6551e8
Showing
6 changed files
with
135 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* | ||
* linux/include/asm-arm/thread_notify.h | ||
* | ||
* Copyright (C) 2006 Russell King. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
#ifndef ASMARM_THREAD_NOTIFY_H | ||
#define ASMARM_THREAD_NOTIFY_H | ||
|
||
#ifdef __KERNEL__ | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
#include <linux/notifier.h> | ||
#include <asm/thread_info.h> | ||
|
||
static inline int thread_register_notifier(struct notifier_block *n) | ||
{ | ||
extern struct atomic_notifier_head thread_notify_head; | ||
return atomic_notifier_chain_register(&thread_notify_head, n); | ||
} | ||
|
||
static inline void thread_unregister_notifier(struct notifier_block *n) | ||
{ | ||
extern struct atomic_notifier_head thread_notify_head; | ||
atomic_notifier_chain_unregister(&thread_notify_head, n); | ||
} | ||
|
||
static inline void thread_notify(unsigned long rc, struct thread_info *thread) | ||
{ | ||
extern struct atomic_notifier_head thread_notify_head; | ||
atomic_notifier_call_chain(&thread_notify_head, rc, thread); | ||
} | ||
|
||
#endif | ||
|
||
/* | ||
* These are the reason codes for the thread notifier. | ||
*/ | ||
#define THREAD_NOTIFY_FLUSH 0 | ||
#define THREAD_NOTIFY_RELEASE 1 | ||
#define THREAD_NOTIFY_SWITCH 2 | ||
|
||
#endif | ||
#endif |