Implement SvcSetMemoryAttribute
This commit is contained in:
parent
13214ffa43
commit
f6dc86c6a0
3 changed files with 39 additions and 2 deletions
|
@ -234,6 +234,36 @@ namespace ChocolArm64.Memory
|
|||
BaseEntry.Perm);
|
||||
}
|
||||
|
||||
public void ClearAttrBit(long Position, long Size, int Bit)
|
||||
{
|
||||
while (Size > 0)
|
||||
{
|
||||
PTEntry Entry = GetPTEntry(Position);
|
||||
|
||||
Entry.Attr &= ~(1 << Bit);
|
||||
|
||||
SetPTEntry(Position, Entry);
|
||||
|
||||
Position += PageSize;
|
||||
Size -= PageSize;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAttrBit(long Position, long Size, int Bit)
|
||||
{
|
||||
while (Size > 0)
|
||||
{
|
||||
PTEntry Entry = GetPTEntry(Position);
|
||||
|
||||
Entry.Attr |= (1 << Bit);
|
||||
|
||||
SetPTEntry(Position, Entry);
|
||||
|
||||
Position += PageSize;
|
||||
Size -= PageSize;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasPermission(long Position, AMemoryPerm Perm)
|
||||
{
|
||||
return GetPTEntry(Position).Perm.HasFlag(Perm);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue