Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/dyninst/common/h/MachSyscall.h
T
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

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