|
XenevaOS
|


Go to the source code of this file.
Classes | |
| struct | kcsan_scoped_access |
Macros | |
| #define | KCSAN_ACCESS_WRITE (1 << 0) /* Access is a write. */ |
| #define | KCSAN_ACCESS_COMPOUND (1 << 1) /* Compounded read-write instrumentation. */ |
| #define | KCSAN_ACCESS_ATOMIC (1 << 2) /* Access is atomic. */ |
| #define | KCSAN_ACCESS_ASSERT (1 << 3) /* Access is an assertion. */ |
| #define | KCSAN_ACCESS_SCOPED (1 << 4) /* Access is a scoped access. */ |
| #define | __kcsan_cleanup_scoped __maybe_unused |
| #define | kcsan_mb() do { } while (0) |
| #define | kcsan_wmb() do { } while (0) |
| #define | kcsan_rmb() do { } while (0) |
| #define | kcsan_release() do { } while (0) |
| #define | __kcsan_check_read(ptr, size) __kcsan_check_access(ptr, size, 0) |
| #define | __kcsan_check_write(ptr, size) __kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_WRITE) |
| #define | __kcsan_check_read_write(ptr, size) __kcsan_check_access(ptr, size, KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE) |
| #define | kcsan_check_read(ptr, size) kcsan_check_access(ptr, size, 0) |
| #define | kcsan_check_write(ptr, size) kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_WRITE) |
| #define | kcsan_check_read_write(ptr, size) kcsan_check_access(ptr, size, KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE) |
| #define | kcsan_check_atomic_read(ptr, size) kcsan_check_access(ptr, size, KCSAN_ACCESS_ATOMIC) |
| #define | kcsan_check_atomic_write(ptr, size) kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_ATOMIC | KCSAN_ACCESS_WRITE) |
| #define | kcsan_check_atomic_read_write(ptr, size) kcsan_check_access(ptr, size, KCSAN_ACCESS_ATOMIC | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_COMPOUND) |
| #define | ASSERT_EXCLUSIVE_WRITER(var) __kcsan_check_access(&(var), sizeof(var), KCSAN_ACCESS_ASSERT) |
| #define | __kcsan_scoped_name(c, suffix) __kcsan_scoped_##c##suffix |
| #define | __ASSERT_EXCLUSIVE_SCOPED(var, type, id) |
| #define | ASSERT_EXCLUSIVE_WRITER_SCOPED(var) __ASSERT_EXCLUSIVE_SCOPED(var, KCSAN_ACCESS_ASSERT, __COUNTER__) |
| #define | ASSERT_EXCLUSIVE_ACCESS(var) __kcsan_check_access(&(var), sizeof(var), KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ASSERT) |
| #define | ASSERT_EXCLUSIVE_ACCESS_SCOPED(var) __ASSERT_EXCLUSIVE_SCOPED(var, KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ASSERT, __COUNTER__) |
| #define | ASSERT_EXCLUSIVE_BITS(var, mask) |
| #define __ASSERT_EXCLUSIVE_SCOPED | ( | var, | |
| type, | |||
| id | |||
| ) |
__kcsan_check_read - check regular read access for races
@ptr: address of access @size: size of access
| #define __kcsan_check_read_write | ( | ptr, | |
| size | |||
| ) | __kcsan_check_access(ptr, size, KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE) |
__kcsan_check_read_write - check regular read-write access for races
@ptr: address of access @size: size of access
| #define __kcsan_check_write | ( | ptr, | |
| size | |||
| ) | __kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_WRITE) |
__kcsan_check_write - check regular write access for races
@ptr: address of access @size: size of access
| #define __kcsan_cleanup_scoped __maybe_unused |
| #define __kcsan_scoped_name | ( | c, | |
| suffix | |||
| ) | __kcsan_scoped_##c##suffix |
| #define ASSERT_EXCLUSIVE_ACCESS | ( | var | ) | __kcsan_check_access(&(var), sizeof(var), KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ASSERT) |
| #define ASSERT_EXCLUSIVE_ACCESS_SCOPED | ( | var | ) | __ASSERT_EXCLUSIVE_SCOPED(var, KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ASSERT, __COUNTER__) |
| #define ASSERT_EXCLUSIVE_BITS | ( | var, | |
| mask | |||
| ) |
| #define ASSERT_EXCLUSIVE_WRITER | ( | var | ) | __kcsan_check_access(&(var), sizeof(var), KCSAN_ACCESS_ASSERT) |
| #define ASSERT_EXCLUSIVE_WRITER_SCOPED | ( | var | ) | __ASSERT_EXCLUSIVE_SCOPED(var, KCSAN_ACCESS_ASSERT, __COUNTER__) |
| #define KCSAN_ACCESS_ASSERT (1 << 3) /* Access is an assertion. */ |
| #define KCSAN_ACCESS_ATOMIC (1 << 2) /* Access is atomic. */ |
| #define KCSAN_ACCESS_SCOPED (1 << 4) /* Access is a scoped access. */ |
| #define KCSAN_ACCESS_WRITE (1 << 0) /* Access is a write. */ |
| #define kcsan_check_atomic_read | ( | ptr, | |
| size | |||
| ) | kcsan_check_access(ptr, size, KCSAN_ACCESS_ATOMIC) |
| #define kcsan_check_atomic_read_write | ( | ptr, | |
| size | |||
| ) | kcsan_check_access(ptr, size, KCSAN_ACCESS_ATOMIC | KCSAN_ACCESS_WRITE | KCSAN_ACCESS_COMPOUND) |
| #define kcsan_check_atomic_write | ( | ptr, | |
| size | |||
| ) | kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_ATOMIC | KCSAN_ACCESS_WRITE) |
kcsan_check_read - check regular read access for races
@ptr: address of access @size: size of access
| #define kcsan_check_read_write | ( | ptr, | |
| size | |||
| ) | kcsan_check_access(ptr, size, KCSAN_ACCESS_COMPOUND | KCSAN_ACCESS_WRITE) |
kcsan_check_read_write - check regular read-write access for races
@ptr: address of access @size: size of access
| #define kcsan_check_write | ( | ptr, | |
| size | |||
| ) | kcsan_check_access(absolute_pointer(ptr), size, KCSAN_ACCESS_WRITE) |
kcsan_check_write - check regular write access for races
@ptr: address of access @size: size of access
| #define kcsan_mb | ( | ) | do { } while (0) |
| #define kcsan_release | ( | ) | do { } while (0) |
| #define kcsan_rmb | ( | ) | do { } while (0) |
| #define kcsan_wmb | ( | ) | do { } while (0) |