nstool/lib/libnx/source/KernelCapability.cpp

67 lines
1.2 KiB
C++
Raw Normal View History

#include <nx/KernelCapability.h>
using namespace nx;
KernelCapability::KernelCapability() :
mType(KC_INVALID)
{}
KernelCapability::KernelCapability(KernelCapId type) :
mType(type),
mField(0)
{}
2018-03-22 05:26:22 +00:00
KernelCapability::KernelCapability(KernelCapId type, uint32_t field) :
mType(type),
mField(field)
{}
const KernelCapability & nx::KernelCapability::operator=(const KernelCapability & other)
{
mType = other.mType;
mField = other.mField;
return *this;
}
bool nx::KernelCapability::operator==(const KernelCapability & other) const
{
return (mType == other.mType) \
&& (mField == other.mField);
}
bool nx::KernelCapability::operator!=(const KernelCapability & other) const
{
return !operator==(other);
}
2018-03-22 05:26:22 +00:00
uint32_t KernelCapability::getCap() const
{
return (mField & getFieldMask()) << getFieldShift() | getCapMask();
}
2018-03-22 05:26:22 +00:00
void KernelCapability::setCap(uint32_t cap)
{
mType = getCapId(cap);
mField = (cap >> getFieldShift()) & getFieldMask();
}
KernelCapability::KernelCapId KernelCapability::getType() const
{
return mType;
}
void KernelCapability::setType(KernelCapId type)
{
mType = type;
}
2018-03-22 05:26:22 +00:00
uint32_t KernelCapability::getField() const
{
return mField & getFieldMask();
}
2018-03-22 05:26:22 +00:00
void KernelCapability::setField(uint32_t field)
{
mField = field;
}