/* 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, 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 */
