1*f108662bSSong Liu // SPDX-License-Identifier: GPL-2.0 2*f108662bSSong Liu /* Copyright (c) 2021 Facebook */ 3*f108662bSSong Liu #include "vmlinux.h" 4*f108662bSSong Liu #include <bpf/bpf_helpers.h> 5*f108662bSSong Liu 6*f108662bSSong Liu char _license[] SEC("license") = "GPL"; 7*f108662bSSong Liu 8*f108662bSSong Liu struct callback_ctx { 9*f108662bSSong Liu int dummy; 10*f108662bSSong Liu }; 11*f108662bSSong Liu write_task(struct task_struct * task,struct vm_area_struct * vma,struct callback_ctx * data)12*f108662bSSong Liustatic long write_task(struct task_struct *task, struct vm_area_struct *vma, 13*f108662bSSong Liu struct callback_ctx *data) 14*f108662bSSong Liu { 15*f108662bSSong Liu /* writing to task, which is illegal */ 16*f108662bSSong Liu task->mm = NULL; 17*f108662bSSong Liu 18*f108662bSSong Liu return 0; 19*f108662bSSong Liu } 20*f108662bSSong Liu 21*f108662bSSong Liu SEC("raw_tp/sys_enter") handle_getpid(void)22*f108662bSSong Liuint handle_getpid(void) 23*f108662bSSong Liu { 24*f108662bSSong Liu struct task_struct *task = bpf_get_current_task_btf(); 25*f108662bSSong Liu struct callback_ctx data = {}; 26*f108662bSSong Liu 27*f108662bSSong Liu bpf_find_vma(task, 0, write_task, &data, 0); 28*f108662bSSong Liu return 0; 29*f108662bSSong Liu } 30