#pragma once #include #include #include #include #include #include #include namespace nn { namespace hac { class AccessControlInfo : public fnd::IByteModel { public: AccessControlInfo(); AccessControlInfo(const AccessControlInfo& other); void operator=(const AccessControlInfo& other); bool operator==(const AccessControlInfo& other) const; bool operator!=(const AccessControlInfo& other) const; // IByteModel void toBytes(); void fromBytes(const byte_t* data, size_t len); const fnd::Vec& getBytes() const; // variables void clear(); uint64_t getProgramId() const; void setProgramId(uint64_t program_id); const nn::hac::FileSystemAccessControlBinary& getFileSystemAccessControl() const; void setFileSystemAccessControl(const FileSystemAccessControlBinary& fac); const nn::hac::ServiceAccessControlBinary& getServiceAccessControl() const; void setServiceAccessControl(const ServiceAccessControlBinary& sac); const nn::hac::KernelCapabilityBinary& getKernelCapabilities() const; void setKernelCapabilities(const KernelCapabilityBinary& kc); private: const std::string kModuleName = "ACCESS_CONTROL_INFO_BINARY"; // raw data fnd::Vec mRawBinary; // variables uint64_t mProgramId; nn::hac::FileSystemAccessControlBinary mFileSystemAccessControl; nn::hac::ServiceAccessControlBinary mServiceAccessControl; nn::hac::KernelCapabilityBinary mKernelCapabilities; }; } }