-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
67923d3
commit 5410ee5
Showing
7 changed files
with
1,052 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
/* | ||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* Vineetg: May 16th, 2008 | ||
* - Current macro is now implemented as "global register" r25 | ||
*/ | ||
|
||
#ifndef _ASM_ARC_CURRENT_H | ||
#define _ASM_ARC_CURRENT_H | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
#ifdef CONFIG_ARC_CURR_IN_REG | ||
|
||
register struct task_struct *curr_arc asm("gp"); | ||
#define current (curr_arc) | ||
|
||
#else | ||
#include <asm-generic/current.h> | ||
#endif /* ! CONFIG_ARC_CURR_IN_REG */ | ||
|
||
#endif /* ! __ASSEMBLY__ */ | ||
|
||
#endif /* _ASM_ARC_CURRENT_H */ |
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,11 @@ | ||
#ifndef __ASM_GENERIC_CURRENT_H | ||
#define __ASM_GENERIC_CURRENT_H | ||
|
||
#ifndef __ASSEMBLY__ | ||
#include <heisen/thread_info.h> | ||
|
||
#define get_current() (current_thread_info()->task) | ||
#define current get_current() | ||
#endif | ||
|
||
#endif /* __ASM_GENERIC_CURRENT_H */ |
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,96 @@ | ||
#ifndef _LINUX_BUG_H | ||
#define _LINUX_BUG_H | ||
|
||
|
||
|
||
|
||
#include <asm/bug.h> | ||
#include <heisen/compiler.h> | ||
#include <heisen/build_bug.h> | ||
|
||
enum bug_trap_type { | ||
BUG_TRAP_TYPE_NONE = 0, | ||
BUG_TRAP_TYPE_WARN = 1, | ||
BUG_TRAP_TYPE_BUG = 2, | ||
}; | ||
|
||
struct pt_regs; | ||
|
||
#ifdef __CHECKER__ | ||
#define MAYBE_BUILD_BUG_ON(cond) (0) | ||
#else /* __CHECKER__ */ | ||
|
||
#define MAYBE_BUILD_BUG_ON(cond) \ | ||
do { \ | ||
if (__builtin_constant_p((cond))) \ | ||
BUILD_BUG_ON(cond); \ | ||
else \ | ||
BUG_ON(cond); \ | ||
} while (0) | ||
|
||
#endif /* __CHECKER__ */ | ||
|
||
#ifdef CONFIG_GENERIC_BUG | ||
#include <asm-generic/bug.h> | ||
|
||
static inline int is_warning_bug(const struct bug_entry *bug) | ||
{ | ||
return bug->flags & BUGFLAG_WARNING; | ||
} | ||
|
||
void bug_get_file_line(struct bug_entry *bug, const char **file, | ||
unsigned int *line); | ||
|
||
struct bug_entry *find_bug(unsigned long bugaddr); | ||
|
||
enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs); | ||
|
||
/* These are defined by the architecture */ | ||
int is_valid_bugaddr(unsigned long addr); | ||
|
||
void generic_bug_clear_once(void); | ||
|
||
#else /* !CONFIG_GENERIC_BUG */ | ||
|
||
static inline void *find_bug(unsigned long bugaddr) | ||
{ | ||
return NULL; | ||
} | ||
|
||
static inline enum bug_trap_type report_bug(unsigned long bug_addr, | ||
struct pt_regs *regs) | ||
{ | ||
return BUG_TRAP_TYPE_BUG; | ||
} | ||
|
||
struct bug_entry; | ||
static inline void bug_get_file_line(struct bug_entry *bug, const char **file, | ||
unsigned int *line) | ||
{ | ||
*file = NULL; | ||
*line = 0; | ||
} | ||
|
||
static inline void generic_bug_clear_once(void) {} | ||
|
||
#endif /* CONFIG_GENERIC_BUG */ | ||
|
||
/* | ||
* Since detected data corruption should stop operation on the affected | ||
* structures. Return value must be checked and sanely acted on by caller. | ||
*/ | ||
static inline __must_check bool check_data_corruption(bool v) { return v; } | ||
#define CHECK_DATA_CORRUPTION(condition, fmt, ...) \ | ||
check_data_corruption(({ \ | ||
bool corruption = unlikely(condition); \ | ||
if (corruption) { \ | ||
if (IS_ENABLED(CONFIG_BUG_ON_DATA_CORRUPTION)) { \ | ||
pr_err(fmt, ##__VA_ARGS__); \ | ||
BUG(); \ | ||
} else \ | ||
WARN(1, fmt, ##__VA_ARGS__); \ | ||
} \ | ||
corruption; \ | ||
})) | ||
|
||
#endif /* _LINUX_BUG_H */ |
Oops, something went wrong.