cregit-Linux how code gets into the kernel

Release 4.7 include/linux/kasan.h

Directory: include/linux
#ifndef _LINUX_KASAN_H

#define _LINUX_KASAN_H

#include <linux/sched.h>
#include <linux/types.h>

struct kmem_cache;
struct page;
struct vm_struct;

#ifdef CONFIG_KASAN


#define KASAN_SHADOW_SCALE_SHIFT 3

#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];

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 ryabininandrey ryabinin30100.00%1100.00%
Total30100.00%1100.00%

/* Enable reporting bugs after kasan_disable_current() */
static inline void kasan_enable_current(void) { current->kasan_depth++; }

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin14100.00%1100.00%
Total14100.00%1100.00%

/* Disable reporting bugs for current task */
static inline void kasan_disable_current(void) { current->kasan_depth--; }

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin14100.00%1100.00%
Total14100.00%1100.00%

void kasan_unpoison_shadow(const void *address, size_t size); void kasan_unpoison_task_stack(struct task_struct *task); 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, unsigned long *flags); void kasan_cache_shrink(struct kmem_cache *cache); void kasan_cache_destroy(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_kmalloc_large(const void *ptr, size_t size, gfp_t flags); void kasan_kfree_large(const void *ptr); void kasan_poison_kfree(void *ptr); 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); 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 ryabininandrey ryabinin17100.00%1100.00%
Total17100.00%1100.00%

#else /* CONFIG_KASAN */
static inline void kasan_unpoison_shadow(const void *address, size_t size) {}

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin14100.00%1100.00%
Total14100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
mark rutlandmark rutland11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_enable_current(void) {}

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin8100.00%1100.00%
Total8100.00%1100.00%


static inline void kasan_disable_current(void) {}

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin8100.00%1100.00%
Total8100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin15100.00%1100.00%
Total15100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin15100.00%1100.00%
Total15100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
alexander potapenkoalexander potapenko20100.00%1100.00%
Total20100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
alexander potapenkoalexander potapenko11100.00%1100.00%
Total11100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
alexander potapenkoalexander potapenko11100.00%1100.00%
Total11100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin11100.00%1100.00%
Total11100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin15100.00%1100.00%
Total15100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin15100.00%1100.00%
Total15100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin1381.25%150.00%
alexander potapenkoalexander potapenko318.75%150.00%
Total16100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin11100.00%1100.00%
Total11100.00%1100.00%


static inline void kasan_poison_kfree(void *ptr) {}

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin10100.00%2100.00%
Total10100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin1986.36%150.00%
alexander potapenkoalexander 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 ryabininandrey ryabinin1482.35%150.00%
alexander potapenkoalexander 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 ryabininandrey ryabinin1583.33%150.00%
alexander potapenkoalexander potapenko316.67%150.00%
Total18100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin1368.42%150.00%
alexander potapenkoalexander potapenko631.58%150.00%
Total19100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin17100.00%1100.00%
Total17100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin12100.00%2100.00%
Total12100.00%2100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin11100.00%1100.00%
Total11100.00%1100.00%

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

Overall Contributors

PersonTokensPropCommitsCommitProp
andrey ryabininandrey ryabinin58180.25%866.67%
alexander potapenkoalexander potapenko12016.57%325.00%
mark rutlandmark rutland233.18%18.33%
Total724100.00%12100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}