mirror of
https://github.com/hanzoai/visor.git
synced 2026-09-24 17:04:14 +00:00
Replace memoryFileSaved Go struct serialization (via pkg/state) with a stable, length-prefixed Protobuf schema (MemoryFileMetadataProto) in pkg/sentry/pgalloc/pgalloc.proto. This decouples MemoryFile checkpointing from internal Go struct layouts across all save/restore modes. PiperOrigin-RevId: 962261330
52 lines
1.3 KiB
Protocol Buffer
52 lines
1.3 KiB
Protocol Buffer
// Copyright 2026 The gVisor Authors.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package gvisor.pgalloc;
|
|
|
|
message FileRangeProto {
|
|
uint64 start = 1;
|
|
uint64 end = 2;
|
|
}
|
|
|
|
message UnfreeRangeProto {
|
|
uint64 start = 1;
|
|
uint64 end = 2;
|
|
uint64 refs = 3;
|
|
}
|
|
|
|
message MemAcctRangeProto {
|
|
uint64 start = 1;
|
|
uint64 end = 2;
|
|
uint32 kind = 3;
|
|
uint32 mem_cg_id = 4;
|
|
bool known_committed = 5;
|
|
}
|
|
|
|
message ChunkInfoProto {
|
|
bool huge = 1;
|
|
}
|
|
|
|
message MemoryFileMetadataProto {
|
|
uint64 version = 1;
|
|
repeated ChunkInfoProto chunks = 2;
|
|
repeated MemAcctRangeProto mem_acct = 3;
|
|
repeated UnfreeRangeProto unfree_small = 4;
|
|
repeated UnfreeRangeProto unfree_huge = 5;
|
|
repeated FileRangeProto unwaste_small = 6;
|
|
repeated FileRangeProto unwaste_huge = 7;
|
|
map<uint64, uint64> subreleased = 8;
|
|
}
|