cregit-Linux how code gets into the kernel

Release 4.18 net/bpfilter/main.c

Directory: net/bpfilter
// SPDX-License-Identifier: GPL-2.0

#define _GNU_SOURCE
#include <sys/uio.h>
#include <errno.h>
#include <stdio.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <unistd.h>
#include "include/uapi/linux/bpf.h"
#include <asm/unistd.h>
#include "msgfmt.h"


int debug_fd;


static int handle_get_cmd(struct mbox_request *cmd) { switch (cmd->cmd) { case 0: return 0; default: break; } return -ENOPROTOOPT; }

Contributors

PersonTokensPropCommitsCommitProp
Alexei Starovoitov31100.00%1100.00%
Total31100.00%1100.00%


static int handle_set_cmd(struct mbox_request *cmd) { return -ENOPROTOOPT; }

Contributors

PersonTokensPropCommitsCommitProp
Alexei Starovoitov15100.00%1100.00%
Total15100.00%1100.00%


static void loop(void) { while (1) { struct mbox_request req; struct mbox_reply reply; int n; n = read(0, &req, sizeof(req)); if (n != sizeof(req)) { dprintf(debug_fd, "invalid request %d\n", n); return; } reply.status = req.is_set ? handle_set_cmd(&req) : handle_get_cmd(&req); n = write(1, &reply, sizeof(reply)); if (n != sizeof(reply)) { dprintf(debug_fd, "reply failed %d\n", n); return; } } }

Contributors

PersonTokensPropCommitsCommitProp
Alexei Starovoitov117100.00%1100.00%
Total117100.00%1100.00%


int main(void) { debug_fd = open("/dev/console", 00000002); dprintf(debug_fd, "Started bpfilter\n"); loop(); close(debug_fd); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Alexei Starovoitov34100.00%1100.00%
Total34100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Alexei Starovoitov231100.00%1100.00%
Total231100.00%1100.00%
Directory: net/bpfilter
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.