| /* syscall_filter.h |
| * Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| * Syscall filter functions. |
| */ |
| |
| #ifndef SYSCALL_FILTER_H |
| #define SYSCALL_FILTER_H |
| |
| #include "bpf.h" |
| |
| #define NO_LOGGING 0 |
| #define USE_LOGGING 1 |
| |
| struct filter_block { |
| struct sock_filter *instrs; |
| size_t len; |
| |
| struct filter_block *next; |
| struct filter_block *last; |
| size_t total_len; |
| }; |
| |
| struct bpf_labels; |
| |
| struct filter_block *compile_section(int nr, const char *policy_line, |
| unsigned int label_id, struct bpf_labels *labels); |
| int compile_filter(FILE *policy_file, struct sock_fprog *prog, |
| int log_failures); |
| |
| int flatten_block_list(struct filter_block *head, struct sock_filter *filter, |
| size_t index, size_t cap); |
| void free_block_list(struct filter_block *head); |
| |
| #endif /* SYSCALL_FILTER_H */ |