CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
79 lines
2.1 KiB
C++
79 lines
2.1 KiB
C++
#if !defined(MACH_SYSCALL_H_)
|
|
#define MACH_SYSCALL_H_
|
|
|
|
#include <string>
|
|
#include "dyncompat/shared_ptr.hpp"
|
|
|
|
#include "Architecture.h"
|
|
#include "registers/MachRegister.h"
|
|
#include "dyntypes.h"
|
|
|
|
namespace Dyninst {
|
|
class Platform
|
|
{
|
|
public:
|
|
Platform(Architecture a, OSType o): _arch(a), _os(o) {}
|
|
|
|
Architecture arch() const { return _arch; }
|
|
OSType os() const { return _os; }
|
|
|
|
bool operator==(const Platform &) const;
|
|
|
|
private:
|
|
Architecture _arch;
|
|
OSType _os;
|
|
//std::string _version;
|
|
};
|
|
}
|
|
|
|
namespace Dyninst {
|
|
|
|
class MachSyscall;
|
|
namespace ProcControlAPI
|
|
{
|
|
class EventSyscall;
|
|
class Process;
|
|
|
|
MachSyscall makeFromEvent(const EventSyscall * ev);
|
|
MachSyscall makeFromID(dyncompat::shared_ptr<Process> proc, unsigned long id);
|
|
}
|
|
|
|
class COMMON_EXPORT MachSyscall
|
|
{
|
|
public:
|
|
typedef unsigned long SyscallIDPlatform;
|
|
typedef unsigned long SyscallIDIndependent; // e.g., Dyninst::Syscall::dyn_getpid
|
|
typedef const char * SyscallName;
|
|
|
|
// Factory methods
|
|
// Allows ProcControlAPI to construct a MachSyscall for an event
|
|
friend MachSyscall ProcControlAPI::makeFromEvent(const ProcControlAPI::EventSyscall *);
|
|
|
|
// Allows users to construct a MachSyscall
|
|
friend MachSyscall ProcControlAPI::makeFromID(dyncompat::shared_ptr<ProcControlAPI::Process>, SyscallIDIndependent);
|
|
|
|
static MachSyscall makeFromPlatform(Platform, SyscallIDIndependent);
|
|
|
|
// Accessors
|
|
// Returns the platform-specific number for this system call
|
|
SyscallIDPlatform num() const;
|
|
|
|
// Returns the name for this system call (e.g., "getpid")
|
|
SyscallName name() const;
|
|
|
|
// Strict equality-based matching on Platforms and IDs
|
|
bool operator==(const MachSyscall &) const;
|
|
|
|
private:
|
|
MachSyscall(Platform p, SyscallIDPlatform i, SyscallName n) : _plat(p), _id(i), _name(n) {}
|
|
static SyscallName nameLookup(Platform plat, SyscallIDPlatform id);
|
|
|
|
Platform _plat;
|
|
SyscallIDPlatform _id;
|
|
SyscallName _name;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|