| Index: sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| diff --git a/sandbox/linux/seccomp-bpf/syscall_iterator.h b/sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| deleted file mode 100644
|
| index 5080fcc09a21070ae0d81881d9e0f37733d9e852..0000000000000000000000000000000000000000
|
| --- a/sandbox/linux/seccomp-bpf/syscall_iterator.h
|
| +++ /dev/null
|
| @@ -1,105 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef SANDBOX_LINUX_SECCOMP_BPF_SYSCALL_ITERATOR_H__
|
| -#define SANDBOX_LINUX_SECCOMP_BPF_SYSCALL_ITERATOR_H__
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <iterator>
|
| -
|
| -#include "base/macros.h"
|
| -#include "sandbox/sandbox_export.h"
|
| -
|
| -namespace sandbox {
|
| -
|
| -// TODO(mdempsky): Rename this header to syscall_set.h.
|
| -
|
| -// Iterates over the entire system call range from 0..0xFFFFFFFFu. This
|
| -// iterator is aware of how system calls look like and will skip quickly
|
| -// over ranges that can't contain system calls. It iterates more slowly
|
| -// whenever it reaches a range that is potentially problematic, returning
|
| -// the last invalid value before a valid range of system calls, and the
|
| -// first invalid value after a valid range of syscalls. It iterates over
|
| -// individual values whenever it is in the normal range for system calls
|
| -// (typically MIN_SYSCALL..MAX_SYSCALL).
|
| -//
|
| -// Example usage:
|
| -// for (uint32_t sysnum : SyscallSet::All()) {
|
| -// // Do something with sysnum.
|
| -// }
|
| -class SANDBOX_EXPORT SyscallSet {
|
| - public:
|
| - class Iterator;
|
| -
|
| - SyscallSet(const SyscallSet& ss) : set_(ss.set_) {}
|
| - ~SyscallSet() {}
|
| -
|
| - Iterator begin() const;
|
| - Iterator end() const;
|
| -
|
| - // All returns a SyscallSet that contains both valid and invalid
|
| - // system call numbers.
|
| - static SyscallSet All() { return SyscallSet(Set::ALL); }
|
| -
|
| - // ValidOnly returns a SyscallSet that contains only valid system
|
| - // call numbers.
|
| - static SyscallSet ValidOnly() { return SyscallSet(Set::VALID_ONLY); }
|
| -
|
| - // InvalidOnly returns a SyscallSet that contains only invalid
|
| - // system call numbers, but still omits numbers in the middle of a
|
| - // range of invalid system call numbers.
|
| - static SyscallSet InvalidOnly() { return SyscallSet(Set::INVALID_ONLY); }
|
| -
|
| - // IsValid returns whether |num| specifies a valid system call
|
| - // number.
|
| - static bool IsValid(uint32_t num);
|
| -
|
| - private:
|
| - enum class Set { ALL, VALID_ONLY, INVALID_ONLY };
|
| -
|
| - explicit SyscallSet(Set set) : set_(set) {}
|
| -
|
| - Set set_;
|
| -
|
| - friend bool operator==(const SyscallSet&, const SyscallSet&);
|
| - DISALLOW_ASSIGN(SyscallSet);
|
| -};
|
| -
|
| -SANDBOX_EXPORT bool operator==(const SyscallSet& lhs, const SyscallSet& rhs);
|
| -
|
| -// Iterator provides C++ input iterator semantics for traversing a
|
| -// SyscallSet.
|
| -class SyscallSet::Iterator
|
| - : public std::iterator<std::input_iterator_tag, uint32_t> {
|
| - public:
|
| - Iterator(const Iterator& it)
|
| - : set_(it.set_), done_(it.done_), num_(it.num_) {}
|
| - ~Iterator() {}
|
| -
|
| - uint32_t operator*() const;
|
| - Iterator& operator++();
|
| -
|
| - private:
|
| - Iterator(Set set, bool done);
|
| -
|
| - uint32_t NextSyscall() const;
|
| -
|
| - Set set_;
|
| - bool done_;
|
| - uint32_t num_;
|
| -
|
| - friend SyscallSet;
|
| - friend bool operator==(const Iterator&, const Iterator&);
|
| - DISALLOW_ASSIGN(Iterator);
|
| -};
|
| -
|
| -SANDBOX_EXPORT bool operator==(const SyscallSet::Iterator& lhs,
|
| - const SyscallSet::Iterator& rhs);
|
| -SANDBOX_EXPORT bool operator!=(const SyscallSet::Iterator& lhs,
|
| - const SyscallSet::Iterator& rhs);
|
| -
|
| -} // namespace sandbox
|
| -
|
| -#endif // SANDBOX_LINUX_SECCOMP_BPF_SYSCALL_ITERATOR_H__
|
|
|