mirror of
https://github.com/google/sandboxed-api.git
synced 2024-03-22 13:11:30 +08:00
dbaf95c724
This change should make it less confusing where utility code comes from. Having it in two places made sense when we were debating whether to publish Sandbox2 separately, but not any longer. Follow-up changes will move `sandbox2/util.h` and rename the remaining `sandbox2/util` folder. PiperOrigin-RevId: 351601640 Change-Id: I6256845261f610e590c25e2c59851cc51da2d778
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
#ifndef SANDBOXED_API_SANDBOX2_SYSCALL_DEFS_H_
|
|
#define SANDBOXED_API_SANDBOX2_SYSCALL_DEFS_H_
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "absl/strings/string_view.h"
|
|
#include "absl/types/span.h"
|
|
#include "sandboxed_api/config.h"
|
|
#include "sandboxed_api/sandbox2/syscall.h"
|
|
|
|
namespace sandbox2 {
|
|
namespace syscalls {
|
|
|
|
constexpr int kMaxArgs = 6;
|
|
|
|
} // namespace syscalls
|
|
|
|
class SyscallTable {
|
|
public:
|
|
struct Entry;
|
|
|
|
// Returns the syscall table for the architecture.
|
|
static SyscallTable get(sapi::cpu::Architecture arch);
|
|
|
|
int size() { return data_.size(); }
|
|
|
|
absl::string_view GetName(int syscall) const;
|
|
|
|
std::vector<std::string> GetArgumentsDescription(
|
|
int syscall, const uint64_t values[syscalls::kMaxArgs], pid_t pid) const;
|
|
|
|
private:
|
|
constexpr SyscallTable() = default;
|
|
explicit constexpr SyscallTable(absl::Span<const Entry> data) : data_(data) {}
|
|
|
|
const absl::Span<const Entry> data_;
|
|
};
|
|
|
|
} // namespace sandbox2
|
|
|
|
#endif // SANDBOXED_API_SANDBOX2_SYSCALL_DEFS_H_
|