函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\kasan-checks.h Create Date:2022-07-27 06:38:02
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:kasan_check_write

函数原型:static inline bool kasan_check_write(const volatile void *p, unsigned int size)

返回类型:bool

参数:

类型参数名称
const volatile void *p
unsigned intsize
40  返回:true
调用者
名称描述
copyin
_copy_from_user-of-line parts
strncpy_from_user复制用户字符串
set_bitset_bit - Atomically set a bit in memory*@nr: the bit to set*@addr: the address to start counting from* This is a relaxed atomic operation (no implied memory barriers).* Note that @nr may be almost arbitrarily large; this function is not
clear_bitlear_bit - Clears a bit in memory*@nr: Bit to clear*@addr: Address to start counting from* This is a relaxed atomic operation (no implied memory barriers).
change_bithange_bit - Toggle a bit in memory*@nr: Bit to change*@addr: Address to start counting from* This is a relaxed atomic operation (no implied memory barriers).* Note that @nr may be almost arbitrarily large; this function is not
test_and_set_bitst_and_set_bit - Set a bit and return its old value*@nr: Bit to set*@addr: Address to count from* This is an atomic fully-ordered operation (implied full memory barrier).
test_and_clear_bitst_and_clear_bit - Clear a bit and return its old value*@nr: Bit to clear*@addr: Address to count from* This is an atomic fully-ordered operation (implied full memory barrier).
test_and_change_bitst_and_change_bit - Change a bit and return its old value*@nr: Bit to change*@addr: Address to count from* This is an atomic fully-ordered operation (implied full memory barrier).
__set_bit__set_bit - Set a bit in memory*@nr: the bit to set*@addr: the address to start counting from* Unlike set_bit(), this function is non-atomic. If it is called on the same* region of memory concurrently, the effect may be that only one operation* succeeds.
__clear_bit__clear_bit - Clears a bit in memory*@nr: the bit to clear*@addr: the address to start counting from* Unlike clear_bit(), this function is non-atomic. If it is called on the same* region of memory concurrently, the effect may be that only one operation
__change_bit__change_bit - Toggle a bit in memory*@nr: the bit to change*@addr: the address to start counting from* Unlike change_bit(), this function is non-atomic. If it is called on the same* region of memory concurrently, the effect may be that only one operation
__test_and_set_bit__test_and_set_bit - Set a bit and return its old value*@nr: Bit to set*@addr: Address to count from* This operation is non-atomic. If two instances of this operation race, one* can appear to succeed but actually fail.
__test_and_clear_bit__test_and_clear_bit - Clear a bit and return its old value*@nr: Bit to clear*@addr: Address to count from* This operation is non-atomic. If two instances of this operation race, one* can appear to succeed but actually fail.
__test_and_change_bit__test_and_change_bit - Change a bit and return its old value*@nr: Bit to change*@addr: Address to count from* This operation is non-atomic. If two instances of this operation race, one* can appear to succeed but actually fail.
clear_bit_unlocklear_bit_unlock - Clear a bit in memory, for unlock*@nr: the bit to set*@addr: the address to start counting from* This operation is atomic and provides release barrier semantics.
__clear_bit_unlock__clear_bit_unlock - Clears a bit in memory*@nr: Bit to clear*@addr: Address to start counting from* This is a non-atomic operation but implies a release barrier before the* memory operation. It can be used for an unlock if no other CPUs can
test_and_set_bit_lockst_and_set_bit_lock - Set a bit and return its old value, for lock*@nr: Bit to set*@addr: Address to count from* This operation is atomic and provides acquire barrier semantics if* the returned value is 0.* It can be used to implement bit locks.
clear_bit_unlock_is_negative_bytelear_bit_unlock_is_negative_byte - Clear a bit in memory and test if bottom* byte is negative, for unlock
atomic_set
atomic_add
atomic_add_return
atomic_fetch_add
atomic_sub
atomic_sub_return
atomic_fetch_sub
atomic_inc
atomic_dec
atomic_and
atomic_fetch_and
atomic_or
atomic_fetch_or
atomic_xor
atomic_fetch_xor
atomic_xchg
atomic_cmpxchg
atomic_try_cmpxchg
atomic_sub_and_test
atomic_dec_and_test
atomic_inc_and_test
atomic_add_negative
atomic64_set
atomic64_add
atomic64_add_return
atomic64_fetch_add
atomic64_sub
atomic64_sub_return
atomic64_fetch_sub
atomic64_inc
atomic64_inc_return
atomic64_dec
atomic64_dec_return
atomic64_and
atomic64_fetch_and
atomic64_or
atomic64_fetch_or
atomic64_xor
atomic64_fetch_xor
atomic64_xchg
atomic64_cmpxchg
atomic64_inc_not_zero
atomic64_dec_if_positive
__copy_from_user_inatomicArchitectures should provide two primitives (raw_copy_{to,from}_user())* and get rid of their private instances of copy_{to,from}_user() and* __copy_{to,from}_user{,_inatomic}().* raw_copy_{to,from}_user(to, from, size) should copy up to size bytes and
__copy_from_user