cregit-Linux how code gets into the kernel

Release 4.16 include/linux/kasan.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_KASAN_H

#define _LINUX_KASAN_H

#include <linux/types.h>

struct kmem_cache;
struct page;
struct vm_struct;
struct task_struct;

#ifdef CONFIG_KASAN

#include <asm/kasan.h>
#include <asm/pgtable.h>

extern unsigned char kasan_zero_page[PAGE_SIZE];
extern pte_t kasan_zero_pte[PTRS_PER_PTE];
extern pmd_t kasan_zero_pmd[PTRS_PER_PMD];
extern pud_t kasan_zero_pud[PTRS_PER_PUD];
extern p4d_t kasan_zero_p4d[PTRS_PER_P4D];

void kasan_populate_zero_shadow(const void *shadow_start,
				const void *shadow_end);


static inline void *kasan_mem_to_shadow(const void *addr) { return (void *)((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT) + KASAN_SHADOW_OFFSET; }

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin30100.00%1100.00%
Total30100.00%1100.00%

/* Enable reporting bugs after kasan_disable_current() */ extern void kasan_enable_current(void); /* Disable reporting bugs for current task */ extern void kasan_disable_current(void); void kasan_unpoison_shadow(const void *address, size_t size); void kasan_unpoison_task_stack(struct task_struct *task); void kasan_unpoison_stack_above_sp_to(const void *watermark); void kasan_alloc_pages(struct page *page, unsigned int order); void kasan_free_pages(struct page *page, unsigned int order); void kasan_cache_create(struct kmem_cache *cache, size_t *size, slab_flags_t *flags); void kasan_cache_shrink(struct kmem_cache *cache); void kasan_cache_shutdown(struct kmem_cache *cache); void kasan_poison_slab(struct page *page); void kasan_unpoison_object_data(struct kmem_cache *cache, void *object); void kasan_poison_object_data(struct kmem_cache *cache, void *object); void kasan_init_slab_obj(struct kmem_cache *cache, const void *object); void kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags); void kasan_kfree_large(void *ptr, unsigned long ip); void kasan_poison_kfree(void *ptr, unsigned long ip); void kasan_kmalloc(struct kmem_cache *s, const void *object, size_t size, gfp_t flags); void kasan_krealloc(const void *object, size_t new_size, gfp_t flags); void kasan_slab_alloc(struct kmem_cache *s, void *object, gfp_t flags); bool kasan_slab_free(struct kmem_cache *s, void *object, unsigned long ip); struct kasan_cache { int alloc_meta_offset; int free_meta_offset; }; int kasan_module_alloc(void *addr, size_t size); void kasan_free_shadow(const struct vm_struct *vm); size_t ksize(const void *);
static inline void kasan_unpoison_slab(const void *ptr) { ksize(ptr); }

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin17100.00%1100.00%
Total17100.00%1100.00%

size_t kasan_metadata_size(struct kmem_cache *cache); bool kasan_save_enable_multi_shot(void); void kasan_restore_multi_shot(bool enabled); #else /* CONFIG_KASAN */
static inline void kasan_unpoison_shadow(const void *address, size_t size) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin14100.00%1100.00%
Total14100.00%1100.00%


static inline void kasan_unpoison_task_stack(struct task_struct *task) {}

Contributors

PersonTokensPropCommitsCommitProp
Mark Rutland11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_unpoison_stack_above_sp_to(const void *watermark) {}

Contributors

PersonTokensPropCommitsCommitProp
Dmitriy Vyukov11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_enable_current(void) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin8100.00%1100.00%
Total8100.00%1100.00%


static inline void kasan_disable_current(void) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin8100.00%1100.00%
Total8100.00%1100.00%


static inline void kasan_alloc_pages(struct page *page, unsigned int order) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin15100.00%1100.00%
Total15100.00%1100.00%


static inline void kasan_free_pages(struct page *page, unsigned int order) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin15100.00%1100.00%
Total15100.00%1100.00%


static inline void kasan_cache_create(struct kmem_cache *cache, size_t *size, slab_flags_t *flags) {}

Contributors

PersonTokensPropCommitsCommitProp
Alexander Potapenko1894.74%150.00%
Alexey Dobriyan15.26%150.00%
Total19100.00%2100.00%


static inline void kasan_cache_shrink(struct kmem_cache *cache) {}

Contributors

PersonTokensPropCommitsCommitProp
Alexander Potapenko11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_cache_shutdown(struct kmem_cache *cache) {}

Contributors

PersonTokensPropCommitsCommitProp
Alexander Potapenko1090.91%150.00%
Greg Thelen19.09%150.00%
Total11100.00%2100.00%


static inline void kasan_poison_slab(struct page *page) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_unpoison_object_data(struct kmem_cache *cache, void *object) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin15100.00%1100.00%
Total15100.00%1100.00%


static inline void kasan_poison_object_data(struct kmem_cache *cache, void *object) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin15100.00%1100.00%
Total15100.00%1100.00%


static inline void kasan_init_slab_obj(struct kmem_cache *cache, const void *object) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin16100.00%1100.00%
Total16100.00%1100.00%


static inline void kasan_kmalloc_large(void *ptr, size_t size, gfp_t flags) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1381.25%150.00%
Alexander Potapenko318.75%150.00%
Total16100.00%2100.00%


static inline void kasan_kfree_large(void *ptr, unsigned long ip) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1071.43%150.00%
Dmitriy Vyukov428.57%150.00%
Total14100.00%2100.00%


static inline void kasan_poison_kfree(void *ptr, unsigned long ip) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1071.43%266.67%
Dmitriy Vyukov428.57%133.33%
Total14100.00%3100.00%


static inline void kasan_kmalloc(struct kmem_cache *s, const void *object, size_t size, gfp_t flags) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1986.36%150.00%
Alexander Potapenko313.64%150.00%
Total22100.00%2100.00%


static inline void kasan_krealloc(const void *object, size_t new_size, gfp_t flags) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1482.35%150.00%
Alexander Potapenko317.65%150.00%
Total17100.00%2100.00%


static inline void kasan_slab_alloc(struct kmem_cache *s, void *object, gfp_t flags) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1583.33%150.00%
Alexander Potapenko316.67%150.00%
Total18100.00%2100.00%


static inline bool kasan_slab_free(struct kmem_cache *s, void *object, unsigned long ip) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin1356.52%133.33%
Alexander Potapenko626.09%133.33%
Dmitriy Vyukov417.39%133.33%
Total23100.00%3100.00%


static inline int kasan_module_alloc(void *addr, size_t size) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin17100.00%1100.00%
Total17100.00%1100.00%


static inline void kasan_free_shadow(const struct vm_struct *vm) {}

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin12100.00%2100.00%
Total12100.00%2100.00%


static inline void kasan_unpoison_slab(const void *ptr) { }

Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin11100.00%1100.00%
Total11100.00%1100.00%


static inline size_t kasan_metadata_size(struct kmem_cache *cache) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Alexander Potapenko15100.00%1100.00%
Total15100.00%1100.00%

#endif /* CONFIG_KASAN */ #endif /* LINUX_KASAN_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Andrey Ryabinin58771.50%937.50%
Alexander Potapenko13816.81%416.67%
Dmitriy Vyukov445.36%312.50%
Mark Rutland334.02%28.33%
Kirill A. Shutemov70.85%14.17%
Ingo Molnar40.49%14.17%
Masami Hiramatsu30.37%14.17%
Alexey Dobriyan20.24%14.17%
Greg Thelen20.24%14.17%
Greg Kroah-Hartman10.12%14.17%
Total821100.00%24100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.