Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0-only */ 2 : : /* 3 : : * arch/arm/include/asm/thread_notify.h 4 : : * 5 : : * Copyright (C) 2006 Russell King. 6 : : */ 7 : : #ifndef ASMARM_THREAD_NOTIFY_H 8 : : #define ASMARM_THREAD_NOTIFY_H 9 : : 10 : : #ifdef __KERNEL__ 11 : : 12 : : #ifndef __ASSEMBLY__ 13 : : 14 : : #include <linux/notifier.h> 15 : : #include <asm/thread_info.h> 16 : : 17 : : static inline int thread_register_notifier(struct notifier_block *n) 18 : : { 19 : : extern struct atomic_notifier_head thread_notify_head; 20 : 3 : return atomic_notifier_chain_register(&thread_notify_head, n); 21 : : } 22 : : 23 : : static inline void thread_unregister_notifier(struct notifier_block *n) 24 : : { 25 : : extern struct atomic_notifier_head thread_notify_head; 26 : : atomic_notifier_chain_unregister(&thread_notify_head, n); 27 : : } 28 : : 29 : : static inline void thread_notify(unsigned long rc, struct thread_info *thread) 30 : : { 31 : : extern struct atomic_notifier_head thread_notify_head; 32 : 3 : atomic_notifier_call_chain(&thread_notify_head, rc, thread); 33 : : } 34 : : 35 : : #endif 36 : : 37 : : /* 38 : : * These are the reason codes for the thread notifier. 39 : : */ 40 : : #define THREAD_NOTIFY_FLUSH 0 41 : : #define THREAD_NOTIFY_EXIT 1 42 : : #define THREAD_NOTIFY_SWITCH 2 43 : : #define THREAD_NOTIFY_COPY 3 44 : : 45 : : #endif 46 : : #endif