mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Move mm.vma save/restore to save_restore.go.
PiperOrigin-RevId: 581078934
This commit is contained in:
@@ -325,94 +325,6 @@ type vma struct {
|
||||
lastFault uintptr
|
||||
}
|
||||
|
||||
const (
|
||||
vmaRealPermsRead = 1 << iota
|
||||
vmaRealPermsWrite
|
||||
vmaRealPermsExecute
|
||||
vmaEffectivePermsRead
|
||||
vmaEffectivePermsWrite
|
||||
vmaEffectivePermsExecute
|
||||
vmaMaxPermsRead
|
||||
vmaMaxPermsWrite
|
||||
vmaMaxPermsExecute
|
||||
vmaPrivate
|
||||
vmaGrowsDown
|
||||
)
|
||||
|
||||
func (v *vma) saveRealPerms() int {
|
||||
var b int
|
||||
if v.realPerms.Read {
|
||||
b |= vmaRealPermsRead
|
||||
}
|
||||
if v.realPerms.Write {
|
||||
b |= vmaRealPermsWrite
|
||||
}
|
||||
if v.realPerms.Execute {
|
||||
b |= vmaRealPermsExecute
|
||||
}
|
||||
if v.effectivePerms.Read {
|
||||
b |= vmaEffectivePermsRead
|
||||
}
|
||||
if v.effectivePerms.Write {
|
||||
b |= vmaEffectivePermsWrite
|
||||
}
|
||||
if v.effectivePerms.Execute {
|
||||
b |= vmaEffectivePermsExecute
|
||||
}
|
||||
if v.maxPerms.Read {
|
||||
b |= vmaMaxPermsRead
|
||||
}
|
||||
if v.maxPerms.Write {
|
||||
b |= vmaMaxPermsWrite
|
||||
}
|
||||
if v.maxPerms.Execute {
|
||||
b |= vmaMaxPermsExecute
|
||||
}
|
||||
if v.private {
|
||||
b |= vmaPrivate
|
||||
}
|
||||
if v.growsDown {
|
||||
b |= vmaGrowsDown
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (v *vma) loadRealPerms(b int) {
|
||||
if b&vmaRealPermsRead > 0 {
|
||||
v.realPerms.Read = true
|
||||
}
|
||||
if b&vmaRealPermsWrite > 0 {
|
||||
v.realPerms.Write = true
|
||||
}
|
||||
if b&vmaRealPermsExecute > 0 {
|
||||
v.realPerms.Execute = true
|
||||
}
|
||||
if b&vmaEffectivePermsRead > 0 {
|
||||
v.effectivePerms.Read = true
|
||||
}
|
||||
if b&vmaEffectivePermsWrite > 0 {
|
||||
v.effectivePerms.Write = true
|
||||
}
|
||||
if b&vmaEffectivePermsExecute > 0 {
|
||||
v.effectivePerms.Execute = true
|
||||
}
|
||||
if b&vmaMaxPermsRead > 0 {
|
||||
v.maxPerms.Read = true
|
||||
}
|
||||
if b&vmaMaxPermsWrite > 0 {
|
||||
v.maxPerms.Write = true
|
||||
}
|
||||
if b&vmaMaxPermsExecute > 0 {
|
||||
v.maxPerms.Execute = true
|
||||
}
|
||||
if b&vmaPrivate > 0 {
|
||||
v.private = true
|
||||
}
|
||||
if b&vmaGrowsDown > 0 {
|
||||
v.growsDown = true
|
||||
}
|
||||
}
|
||||
|
||||
func (v *vma) copy() vma {
|
||||
return vma{
|
||||
mappable: v.mappable,
|
||||
|
||||
@@ -55,3 +55,91 @@ func (mm *MemoryManager) afterLoad() {
|
||||
pseg.ValuePtr().file = mf
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
vmaRealPermsRead = 1 << iota
|
||||
vmaRealPermsWrite
|
||||
vmaRealPermsExecute
|
||||
vmaEffectivePermsRead
|
||||
vmaEffectivePermsWrite
|
||||
vmaEffectivePermsExecute
|
||||
vmaMaxPermsRead
|
||||
vmaMaxPermsWrite
|
||||
vmaMaxPermsExecute
|
||||
vmaPrivate
|
||||
vmaGrowsDown
|
||||
)
|
||||
|
||||
func (v *vma) saveRealPerms() int {
|
||||
var b int
|
||||
if v.realPerms.Read {
|
||||
b |= vmaRealPermsRead
|
||||
}
|
||||
if v.realPerms.Write {
|
||||
b |= vmaRealPermsWrite
|
||||
}
|
||||
if v.realPerms.Execute {
|
||||
b |= vmaRealPermsExecute
|
||||
}
|
||||
if v.effectivePerms.Read {
|
||||
b |= vmaEffectivePermsRead
|
||||
}
|
||||
if v.effectivePerms.Write {
|
||||
b |= vmaEffectivePermsWrite
|
||||
}
|
||||
if v.effectivePerms.Execute {
|
||||
b |= vmaEffectivePermsExecute
|
||||
}
|
||||
if v.maxPerms.Read {
|
||||
b |= vmaMaxPermsRead
|
||||
}
|
||||
if v.maxPerms.Write {
|
||||
b |= vmaMaxPermsWrite
|
||||
}
|
||||
if v.maxPerms.Execute {
|
||||
b |= vmaMaxPermsExecute
|
||||
}
|
||||
if v.private {
|
||||
b |= vmaPrivate
|
||||
}
|
||||
if v.growsDown {
|
||||
b |= vmaGrowsDown
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (v *vma) loadRealPerms(b int) {
|
||||
if b&vmaRealPermsRead > 0 {
|
||||
v.realPerms.Read = true
|
||||
}
|
||||
if b&vmaRealPermsWrite > 0 {
|
||||
v.realPerms.Write = true
|
||||
}
|
||||
if b&vmaRealPermsExecute > 0 {
|
||||
v.realPerms.Execute = true
|
||||
}
|
||||
if b&vmaEffectivePermsRead > 0 {
|
||||
v.effectivePerms.Read = true
|
||||
}
|
||||
if b&vmaEffectivePermsWrite > 0 {
|
||||
v.effectivePerms.Write = true
|
||||
}
|
||||
if b&vmaEffectivePermsExecute > 0 {
|
||||
v.effectivePerms.Execute = true
|
||||
}
|
||||
if b&vmaMaxPermsRead > 0 {
|
||||
v.maxPerms.Read = true
|
||||
}
|
||||
if b&vmaMaxPermsWrite > 0 {
|
||||
v.maxPerms.Write = true
|
||||
}
|
||||
if b&vmaMaxPermsExecute > 0 {
|
||||
v.maxPerms.Execute = true
|
||||
}
|
||||
if b&vmaPrivate > 0 {
|
||||
v.private = true
|
||||
}
|
||||
if b&vmaGrowsDown > 0 {
|
||||
v.growsDown = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user