deps: bump go-criu to v6

The v6.0.0 release of go-criu has deprecated the `rpc` package in favour
of the `crit` package. This commit provides the changes required to use
this version in runc.

Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
This commit is contained in:
Prajwal S N
2022-09-01 16:38:17 +05:30
parent bc13e33270
commit 746f45807d
178 changed files with 35716 additions and 2608 deletions
@@ -1,6 +0,0 @@
test/test
test/test.coverage
test/piggie/piggie
test/phaul/phaul
test/phaul/phaul.coverage
image
-107
View File
@@ -1,107 +0,0 @@
SHELL = /bin/bash
GO ?= go
CC ?= gcc
COVERAGE_PATH ?= $(shell pwd)/.coverage
CRIU_FEATURE_MEM_TRACK = $(shell if criu check --feature mem_dirty_track > /dev/null; then echo 1; else echo 0; fi)
CRIU_FEATURE_LAZY_PAGES = $(shell if criu check --feature uffd-noncoop > /dev/null; then echo 1; else echo 0; fi)
CRIU_FEATURE_PIDFD_STORE = $(shell if criu check --feature pidfd_store > /dev/null; then echo 1; else echo 0; fi)
export CRIU_FEATURE_MEM_TRACK CRIU_FEATURE_LAZY_PAGES CRIU_FEATURE_PIDFD_STORE
all: build test phaul-test
lint:
golangci-lint run ./...
build:
$(GO) build -v ./...
TEST_PAYLOAD := test/piggie/piggie
TEST_BINARIES := test/test $(TEST_PAYLOAD) test/phaul/phaul
COVERAGE_BINARIES := test/test.coverage test/phaul/phaul.coverage
test-bin: $(TEST_BINARIES)
test/piggie/piggie: test/piggie/piggie.c
$(CC) $^ -o $@
test/test: test/main.go
$(GO) build -v -o $@ $^
test: $(TEST_BINARIES)
mkdir -p image
PID=$$(test/piggie/piggie) && { \
test/test dump $$PID image && \
test/test restore image; \
pkill -9 piggie; \
}
rm -rf image
test/phaul/phaul: test/phaul/main.go
$(GO) build -v -o $@ $^
phaul-test: $(TEST_BINARIES)
rm -rf image
PID=$$(test/piggie/piggie) && { \
test/phaul/phaul $$PID; \
pkill -9 piggie; \
}
test/test.coverage: test/*.go
$(GO) test \
-covermode=count \
-coverpkg=./... \
-mod=vendor \
-tags coverage \
-buildmode=pie -c -o $@ $^
test/phaul/phaul.coverage: test/phaul/*.go
$(GO) test \
-covermode=count \
-coverpkg=./... \
-mod=vendor \
-tags coverage \
-buildmode=pie -c -o $@ $^
coverage: $(COVERAGE_BINARIES) $(TEST_PAYLOAD)
mkdir -p $(COVERAGE_PATH)
mkdir -p image
PID=$$(test/piggie/piggie) && { \
test/test.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE dump $$PID image && \
test/test.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE restore image; \
pkill -9 piggie; \
}
rm -rf image
PID=$$(test/piggie/piggie) && { \
test/phaul/phaul.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE $$PID; \
pkill -9 piggie; \
}
echo "mode: set" > .coverage/coverage.out && cat .coverage/coverprofile* | \
grep -v mode: | sort -r | awk '{if($$1 != last) {print $$0;last=$$1}}' >> .coverage/coverage.out
clean:
@rm -f $(TEST_BINARIES) $(COVERAGE_BINARIES) codecov
@rm -rf image $(COVERAGE_PATH)
rpc/rpc.proto:
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/rpc.proto -o $@
stats/stats.proto:
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/stats.proto -o $@
rpc/rpc.pb.go: rpc/rpc.proto
protoc --go_out=. --go_opt=M$^=rpc/ $^
stats/stats.pb.go: stats/stats.proto
protoc --go_out=. --go_opt=M$^=stats/ $^
vendor:
GO111MODULE=on $(GO) mod tidy
GO111MODULE=on $(GO) mod vendor
GO111MODULE=on $(GO) mod verify
codecov:
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov -f '.coverage/coverage.out'
.PHONY: build test phaul-test test-bin clean lint vendor coverage codecov
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
test/test
test/test.coverage
test/piggie/piggie
test/phaul/phaul
test/phaul/phaul.coverage
test/loop/loop
test/crit/crit-test
test/crit/test-imgs
image
scripts/*.h
scripts/expected.go
scripts/output.go
crit/bin
@@ -1,12 +1,10 @@
run:
skip_dirs:
- rpc
- stats
linters:
disable-all: false
presets:
- bugs
- performance
- unused
- format
linters-settings:
exhaustive:
default-signifies-exhaustive: true
+29
View File
@@ -0,0 +1,29 @@
SHELL = /bin/bash
GO ?= go
CC ?= gcc
all: build
lint:
golangci-lint run ./...
build:
$(GO) build -v ./...
# Build crit binary
$(MAKE) -C crit bin/crit
test: build
$(MAKE) -C test
coverage:
$(MAKE) -C test coverage
codecov:
$(MAKE) -C test codecov
vendor:
GO111MODULE=on $(GO) mod tidy
GO111MODULE=on $(GO) mod vendor
GO111MODULE=on $(GO) mod verify
.PHONY: build test lint vendor coverage codecov
@@ -4,19 +4,20 @@
## go-criu -- Go bindings for CRIU
This repository provides Go bindings for [CRIU](https://criu.org/). The code is based on the Go-based PHaul
implementation from the CRIU repository. For easier inclusion into other Go projects the
CRIU Go bindings have been moved to this repository.
This repository provides Go bindings for [CRIU](https://criu.org/).
The code is based on the Go-based PHaul implementation from the CRIU repository.
For easier inclusion into other Go projects, the CRIU Go bindings have been moved to this repository.
The Go bindings provide an easy way to use the CRIU RPC calls from Go without the need
to set up all the infrastructure to make the actual RPC connection to CRIU.
### CRIU
The Go bindings provide an easy way to use the CRIU RPC calls from Go without
the need to set up all the infrastructure to make the actual RPC connection to CRIU.
The following example would print the version of CRIU:
```go
import (
"log"
"github.com/checkpoint-restore/go-criu/v5"
"github.com/checkpoint-restore/go-criu/v6"
)
func main() {
@@ -36,6 +37,13 @@ or to just check if at least a certain CRIU version is installed:
result, err := c.IsCriuAtLeast(31100)
```
### CRIT
The `crit` package provides bindings to decode, encode, and manipulate
CRIU image files natively within Go. It also provides a CLI tool similar
to the original CRIT Python tool. To get started with this, see the docs
at https://criu.org/CRIT_(Go_library).
## Releases
The first go-criu release was 3.11 based on CRIU 3.11. The initial plan
@@ -50,7 +58,8 @@ The following table shows the relation between go-criu and criu versions:
| Major version | Latest release | CRIU version |
| -------------- | -------------- | ------------ |
| v5             | 5.2.0         | 3.16         |
| v6             | 6.0.0         | 3.17         |
| v5             | 5.3.0         | 3.16         |
| v5             | 5.0.0         | 3.15         |
| v4             | 4.1.0         | 3.14         |
@@ -86,7 +95,7 @@ by adding a "Signed-off-by" line containing the contributor's name and e-mail
to every commit message. Your signature certifies that you wrote the patch or
otherwise have the right to pass it on as an open-source patch.
### License and copyright
## License and copyright
Unless mentioned otherwise in a specific file's header, all code in
this project is released under the Apache 2.0 license.
@@ -0,0 +1,301 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: apparmor.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type AaPolicy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Blob []byte `protobuf:"bytes,2,req,name=blob" json:"blob,omitempty"`
}
func (x *AaPolicy) Reset() {
*x = AaPolicy{}
if protoimpl.UnsafeEnabled {
mi := &file_apparmor_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AaPolicy) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AaPolicy) ProtoMessage() {}
func (x *AaPolicy) ProtoReflect() protoreflect.Message {
mi := &file_apparmor_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AaPolicy.ProtoReflect.Descriptor instead.
func (*AaPolicy) Descriptor() ([]byte, []int) {
return file_apparmor_proto_rawDescGZIP(), []int{0}
}
func (x *AaPolicy) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *AaPolicy) GetBlob() []byte {
if x != nil {
return x.Blob
}
return nil
}
type AaNamespace struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Policies []*AaPolicy `protobuf:"bytes,2,rep,name=policies" json:"policies,omitempty"`
Namespaces []*AaNamespace `protobuf:"bytes,3,rep,name=namespaces" json:"namespaces,omitempty"`
}
func (x *AaNamespace) Reset() {
*x = AaNamespace{}
if protoimpl.UnsafeEnabled {
mi := &file_apparmor_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AaNamespace) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AaNamespace) ProtoMessage() {}
func (x *AaNamespace) ProtoReflect() protoreflect.Message {
mi := &file_apparmor_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AaNamespace.ProtoReflect.Descriptor instead.
func (*AaNamespace) Descriptor() ([]byte, []int) {
return file_apparmor_proto_rawDescGZIP(), []int{1}
}
func (x *AaNamespace) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *AaNamespace) GetPolicies() []*AaPolicy {
if x != nil {
return x.Policies
}
return nil
}
func (x *AaNamespace) GetNamespaces() []*AaNamespace {
if x != nil {
return x.Namespaces
}
return nil
}
type ApparmorEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Namespaces []*AaNamespace `protobuf:"bytes,1,rep,name=namespaces" json:"namespaces,omitempty"`
}
func (x *ApparmorEntry) Reset() {
*x = ApparmorEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_apparmor_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApparmorEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApparmorEntry) ProtoMessage() {}
func (x *ApparmorEntry) ProtoReflect() protoreflect.Message {
mi := &file_apparmor_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApparmorEntry.ProtoReflect.Descriptor instead.
func (*ApparmorEntry) Descriptor() ([]byte, []int) {
return file_apparmor_proto_rawDescGZIP(), []int{2}
}
func (x *ApparmorEntry) GetNamespaces() []*AaNamespace {
if x != nil {
return x.Namespaces
}
return nil
}
var File_apparmor_proto protoreflect.FileDescriptor
var file_apparmor_proto_rawDesc = []byte{
0x0a, 0x0e, 0x61, 0x70, 0x70, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x33, 0x0a, 0x09, 0x61, 0x61, 0x5f, 0x70, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18,
0x02, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x22, 0x83, 0x01, 0x0a, 0x0c,
0x61, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x61, 0x61, 0x5f, 0x70, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a,
0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x61, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
0x73, 0x22, 0x44, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x61,
0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x61, 0x6d,
0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
}
var (
file_apparmor_proto_rawDescOnce sync.Once
file_apparmor_proto_rawDescData = file_apparmor_proto_rawDesc
)
func file_apparmor_proto_rawDescGZIP() []byte {
file_apparmor_proto_rawDescOnce.Do(func() {
file_apparmor_proto_rawDescData = protoimpl.X.CompressGZIP(file_apparmor_proto_rawDescData)
})
return file_apparmor_proto_rawDescData
}
var file_apparmor_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_apparmor_proto_goTypes = []interface{}{
(*AaPolicy)(nil), // 0: criu.aa_policy
(*AaNamespace)(nil), // 1: criu.aa_namespace
(*ApparmorEntry)(nil), // 2: criu.apparmor_entry
}
var file_apparmor_proto_depIdxs = []int32{
0, // 0: criu.aa_namespace.policies:type_name -> criu.aa_policy
1, // 1: criu.aa_namespace.namespaces:type_name -> criu.aa_namespace
1, // 2: criu.apparmor_entry.namespaces:type_name -> criu.aa_namespace
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_apparmor_proto_init() }
func file_apparmor_proto_init() {
if File_apparmor_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_apparmor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AaPolicy); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_apparmor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AaNamespace); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_apparmor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApparmorEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_apparmor_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_apparmor_proto_goTypes,
DependencyIndexes: file_apparmor_proto_depIdxs,
MessageInfos: file_apparmor_proto_msgTypes,
}.Build()
File_apparmor_proto = out.File
file_apparmor_proto_rawDesc = nil
file_apparmor_proto_goTypes = nil
file_apparmor_proto_depIdxs = nil
}
@@ -0,0 +1,17 @@
syntax = "proto2";
package criu;
message aa_policy {
required string name = 1;
required bytes blob = 2;
}
message aa_namespace {
required string name = 1;
repeated aa_policy policies = 2;
repeated aa_namespace namespaces = 3;
}
message apparmor_entry {
repeated aa_namespace namespaces = 1;
}
@@ -0,0 +1,217 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: autofs.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type AutofsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Fd *int32 `protobuf:"varint,1,req,name=fd" json:"fd,omitempty"`
Pgrp *int32 `protobuf:"varint,2,req,name=pgrp" json:"pgrp,omitempty"`
Timeout *int32 `protobuf:"varint,3,req,name=timeout" json:"timeout,omitempty"`
Minproto *int32 `protobuf:"varint,4,req,name=minproto" json:"minproto,omitempty"`
Maxproto *int32 `protobuf:"varint,5,req,name=maxproto" json:"maxproto,omitempty"`
Mode *int32 `protobuf:"varint,6,req,name=mode" json:"mode,omitempty"`
Uid *int32 `protobuf:"varint,7,opt,name=uid" json:"uid,omitempty"`
Gid *int32 `protobuf:"varint,8,opt,name=gid" json:"gid,omitempty"`
ReadFd *int32 `protobuf:"varint,9,opt,name=read_fd,json=readFd" json:"read_fd,omitempty"`
}
func (x *AutofsEntry) Reset() {
*x = AutofsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_autofs_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AutofsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AutofsEntry) ProtoMessage() {}
func (x *AutofsEntry) ProtoReflect() protoreflect.Message {
mi := &file_autofs_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AutofsEntry.ProtoReflect.Descriptor instead.
func (*AutofsEntry) Descriptor() ([]byte, []int) {
return file_autofs_proto_rawDescGZIP(), []int{0}
}
func (x *AutofsEntry) GetFd() int32 {
if x != nil && x.Fd != nil {
return *x.Fd
}
return 0
}
func (x *AutofsEntry) GetPgrp() int32 {
if x != nil && x.Pgrp != nil {
return *x.Pgrp
}
return 0
}
func (x *AutofsEntry) GetTimeout() int32 {
if x != nil && x.Timeout != nil {
return *x.Timeout
}
return 0
}
func (x *AutofsEntry) GetMinproto() int32 {
if x != nil && x.Minproto != nil {
return *x.Minproto
}
return 0
}
func (x *AutofsEntry) GetMaxproto() int32 {
if x != nil && x.Maxproto != nil {
return *x.Maxproto
}
return 0
}
func (x *AutofsEntry) GetMode() int32 {
if x != nil && x.Mode != nil {
return *x.Mode
}
return 0
}
func (x *AutofsEntry) GetUid() int32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *AutofsEntry) GetGid() int32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
func (x *AutofsEntry) GetReadFd() int32 {
if x != nil && x.ReadFd != nil {
return *x.ReadFd
}
return 0
}
var File_autofs_proto protoreflect.FileDescriptor
var file_autofs_proto_rawDesc = []byte{
0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
0x63, 0x72, 0x69, 0x75, 0x22, 0xd5, 0x01, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x73, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28,
0x05, 0x52, 0x02, 0x66, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x67, 0x72, 0x70, 0x18, 0x02, 0x20,
0x02, 0x28, 0x05, 0x52, 0x04, 0x70, 0x67, 0x72, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18,
0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x05, 0x20, 0x02, 0x28,
0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6d,
0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x75, 0x69,
0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
0x67, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x64, 0x18, 0x09,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x46, 0x64,
}
var (
file_autofs_proto_rawDescOnce sync.Once
file_autofs_proto_rawDescData = file_autofs_proto_rawDesc
)
func file_autofs_proto_rawDescGZIP() []byte {
file_autofs_proto_rawDescOnce.Do(func() {
file_autofs_proto_rawDescData = protoimpl.X.CompressGZIP(file_autofs_proto_rawDescData)
})
return file_autofs_proto_rawDescData
}
var file_autofs_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_autofs_proto_goTypes = []interface{}{
(*AutofsEntry)(nil), // 0: criu.autofs_entry
}
var file_autofs_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_autofs_proto_init() }
func file_autofs_proto_init() {
if File_autofs_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_autofs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AutofsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_autofs_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_autofs_proto_goTypes,
DependencyIndexes: file_autofs_proto_depIdxs,
MessageInfos: file_autofs_proto_msgTypes,
}.Build()
File_autofs_proto = out.File
file_autofs_proto_rawDesc = nil
file_autofs_proto_goTypes = nil
file_autofs_proto_depIdxs = nil
}
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message autofs_entry {
required int32 fd = 1;
required int32 pgrp = 2;
required int32 timeout = 3;
required int32 minproto = 4;
required int32 maxproto = 5;
required int32 mode = 6;
optional int32 uid = 7;
optional int32 gid = 8;
optional int32 read_fd = 9;
}
@@ -0,0 +1,210 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: binfmt-misc.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type BinfmtMiscEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Enabled *bool `protobuf:"varint,2,req,name=enabled" json:"enabled,omitempty"`
Interpreter *string `protobuf:"bytes,3,req,name=interpreter" json:"interpreter,omitempty"`
Flags *string `protobuf:"bytes,4,opt,name=flags" json:"flags,omitempty"`
Extension *string `protobuf:"bytes,5,opt,name=extension" json:"extension,omitempty"`
Magic *string `protobuf:"bytes,6,opt,name=magic" json:"magic,omitempty"`
Mask *string `protobuf:"bytes,7,opt,name=mask" json:"mask,omitempty"`
Offset *int32 `protobuf:"varint,8,opt,name=offset" json:"offset,omitempty"`
}
func (x *BinfmtMiscEntry) Reset() {
*x = BinfmtMiscEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_binfmt_misc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinfmtMiscEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinfmtMiscEntry) ProtoMessage() {}
func (x *BinfmtMiscEntry) ProtoReflect() protoreflect.Message {
mi := &file_binfmt_misc_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BinfmtMiscEntry.ProtoReflect.Descriptor instead.
func (*BinfmtMiscEntry) Descriptor() ([]byte, []int) {
return file_binfmt_misc_proto_rawDescGZIP(), []int{0}
}
func (x *BinfmtMiscEntry) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *BinfmtMiscEntry) GetEnabled() bool {
if x != nil && x.Enabled != nil {
return *x.Enabled
}
return false
}
func (x *BinfmtMiscEntry) GetInterpreter() string {
if x != nil && x.Interpreter != nil {
return *x.Interpreter
}
return ""
}
func (x *BinfmtMiscEntry) GetFlags() string {
if x != nil && x.Flags != nil {
return *x.Flags
}
return ""
}
func (x *BinfmtMiscEntry) GetExtension() string {
if x != nil && x.Extension != nil {
return *x.Extension
}
return ""
}
func (x *BinfmtMiscEntry) GetMagic() string {
if x != nil && x.Magic != nil {
return *x.Magic
}
return ""
}
func (x *BinfmtMiscEntry) GetMask() string {
if x != nil && x.Mask != nil {
return *x.Mask
}
return ""
}
func (x *BinfmtMiscEntry) GetOffset() int32 {
if x != nil && x.Offset != nil {
return *x.Offset
}
return 0
}
var File_binfmt_misc_proto protoreflect.FileDescriptor
var file_binfmt_misc_proto_rawDesc = []byte{
0x0a, 0x11, 0x62, 0x69, 0x6e, 0x66, 0x6d, 0x74, 0x2d, 0x6d, 0x69, 0x73, 0x63, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x62, 0x69,
0x6e, 0x66, 0x6d, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02,
0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x20, 0x0a,
0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x02,
0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x72, 0x12,
0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x73,
0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a,
0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f,
0x66, 0x66, 0x73, 0x65, 0x74,
}
var (
file_binfmt_misc_proto_rawDescOnce sync.Once
file_binfmt_misc_proto_rawDescData = file_binfmt_misc_proto_rawDesc
)
func file_binfmt_misc_proto_rawDescGZIP() []byte {
file_binfmt_misc_proto_rawDescOnce.Do(func() {
file_binfmt_misc_proto_rawDescData = protoimpl.X.CompressGZIP(file_binfmt_misc_proto_rawDescData)
})
return file_binfmt_misc_proto_rawDescData
}
var file_binfmt_misc_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_binfmt_misc_proto_goTypes = []interface{}{
(*BinfmtMiscEntry)(nil), // 0: criu.binfmt_misc_entry
}
var file_binfmt_misc_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_binfmt_misc_proto_init() }
func file_binfmt_misc_proto_init() {
if File_binfmt_misc_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_binfmt_misc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinfmtMiscEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_binfmt_misc_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_binfmt_misc_proto_goTypes,
DependencyIndexes: file_binfmt_misc_proto_depIdxs,
MessageInfos: file_binfmt_misc_proto_msgTypes,
}.Build()
File_binfmt_misc_proto = out.File
file_binfmt_misc_proto_rawDesc = nil
file_binfmt_misc_proto_goTypes = nil
file_binfmt_misc_proto_depIdxs = nil
}
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message binfmt_misc_entry {
required string name = 1;
required bool enabled = 2;
required string interpreter = 3;
optional string flags = 4;
optional string extension = 5;
optional string magic = 6;
optional string mask = 7;
optional int32 offset = 8;
}
@@ -0,0 +1,172 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: bpfmap-data.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type BpfmapDataEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MapId *uint32 `protobuf:"varint,1,req,name=map_id,json=mapId" json:"map_id,omitempty"`
KeysBytes *uint32 `protobuf:"varint,2,req,name=keys_bytes,json=keysBytes" json:"keys_bytes,omitempty"` // Bytes required to store keys
ValuesBytes *uint32 `protobuf:"varint,3,req,name=values_bytes,json=valuesBytes" json:"values_bytes,omitempty"` // Bytes required to store values
Count *uint32 `protobuf:"varint,4,req,name=count" json:"count,omitempty"` // Number of key-value pairs stored
}
func (x *BpfmapDataEntry) Reset() {
*x = BpfmapDataEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_bpfmap_data_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BpfmapDataEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BpfmapDataEntry) ProtoMessage() {}
func (x *BpfmapDataEntry) ProtoReflect() protoreflect.Message {
mi := &file_bpfmap_data_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BpfmapDataEntry.ProtoReflect.Descriptor instead.
func (*BpfmapDataEntry) Descriptor() ([]byte, []int) {
return file_bpfmap_data_proto_rawDescGZIP(), []int{0}
}
func (x *BpfmapDataEntry) GetMapId() uint32 {
if x != nil && x.MapId != nil {
return *x.MapId
}
return 0
}
func (x *BpfmapDataEntry) GetKeysBytes() uint32 {
if x != nil && x.KeysBytes != nil {
return *x.KeysBytes
}
return 0
}
func (x *BpfmapDataEntry) GetValuesBytes() uint32 {
if x != nil && x.ValuesBytes != nil {
return *x.ValuesBytes
}
return 0
}
func (x *BpfmapDataEntry) GetCount() uint32 {
if x != nil && x.Count != nil {
return *x.Count
}
return 0
}
var File_bpfmap_data_proto protoreflect.FileDescriptor
var file_bpfmap_data_proto_rawDesc = []byte{
0x0a, 0x11, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x70, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x82, 0x01, 0x0a, 0x11, 0x62, 0x70,
0x66, 0x6d, 0x61, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x15, 0x0a, 0x06, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x05, 0x6d, 0x61, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x62,
0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73,
0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x5f,
0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
}
var (
file_bpfmap_data_proto_rawDescOnce sync.Once
file_bpfmap_data_proto_rawDescData = file_bpfmap_data_proto_rawDesc
)
func file_bpfmap_data_proto_rawDescGZIP() []byte {
file_bpfmap_data_proto_rawDescOnce.Do(func() {
file_bpfmap_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_bpfmap_data_proto_rawDescData)
})
return file_bpfmap_data_proto_rawDescData
}
var file_bpfmap_data_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_bpfmap_data_proto_goTypes = []interface{}{
(*BpfmapDataEntry)(nil), // 0: criu.bpfmap_data_entry
}
var file_bpfmap_data_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_bpfmap_data_proto_init() }
func file_bpfmap_data_proto_init() {
if File_bpfmap_data_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_bpfmap_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BpfmapDataEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_bpfmap_data_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_bpfmap_data_proto_goTypes,
DependencyIndexes: file_bpfmap_data_proto_depIdxs,
MessageInfos: file_bpfmap_data_proto_msgTypes,
}.Build()
File_bpfmap_data_proto = out.File
file_bpfmap_data_proto_rawDesc = nil
file_bpfmap_data_proto_goTypes = nil
file_bpfmap_data_proto_depIdxs = nil
}
@@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message bpfmap_data_entry {
required uint32 map_id = 1;
required uint32 keys_bytes = 2; /* Bytes required to store keys */
required uint32 values_bytes = 3; /* Bytes required to store values */
required uint32 count = 4; /* Number of key-value pairs stored */
}
@@ -0,0 +1,302 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: bpfmap-file.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type BpfmapFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Pos *uint64 `protobuf:"varint,3,req,name=pos" json:"pos,omitempty"`
Fown *FownEntry `protobuf:"bytes,4,req,name=fown" json:"fown,omitempty"`
MapType *uint32 `protobuf:"varint,5,req,name=map_type,json=mapType" json:"map_type,omitempty"`
KeySize *uint32 `protobuf:"varint,6,req,name=key_size,json=keySize" json:"key_size,omitempty"`
ValueSize *uint32 `protobuf:"varint,7,req,name=value_size,json=valueSize" json:"value_size,omitempty"`
MapId *uint32 `protobuf:"varint,8,req,name=map_id,json=mapId" json:"map_id,omitempty"`
MaxEntries *uint32 `protobuf:"varint,9,req,name=max_entries,json=maxEntries" json:"max_entries,omitempty"`
MapFlags *uint32 `protobuf:"varint,10,req,name=map_flags,json=mapFlags" json:"map_flags,omitempty"`
Memlock *uint64 `protobuf:"varint,11,req,name=memlock" json:"memlock,omitempty"`
Frozen *bool `protobuf:"varint,12,req,name=frozen,def=0" json:"frozen,omitempty"`
MapName *string `protobuf:"bytes,13,req,name=map_name,json=mapName" json:"map_name,omitempty"`
Ifindex *uint32 `protobuf:"varint,14,req,name=ifindex,def=0" json:"ifindex,omitempty"`
MntId *int32 `protobuf:"zigzag32,15,opt,name=mnt_id,json=mntId,def=-1" json:"mnt_id,omitempty"`
MapExtra *uint64 `protobuf:"varint,16,opt,name=map_extra,json=mapExtra" json:"map_extra,omitempty"`
}
// Default values for BpfmapFileEntry fields.
const (
Default_BpfmapFileEntry_Frozen = bool(false)
Default_BpfmapFileEntry_Ifindex = uint32(0)
Default_BpfmapFileEntry_MntId = int32(-1)
)
func (x *BpfmapFileEntry) Reset() {
*x = BpfmapFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_bpfmap_file_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BpfmapFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BpfmapFileEntry) ProtoMessage() {}
func (x *BpfmapFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_bpfmap_file_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BpfmapFileEntry.ProtoReflect.Descriptor instead.
func (*BpfmapFileEntry) Descriptor() ([]byte, []int) {
return file_bpfmap_file_proto_rawDescGZIP(), []int{0}
}
func (x *BpfmapFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *BpfmapFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *BpfmapFileEntry) GetPos() uint64 {
if x != nil && x.Pos != nil {
return *x.Pos
}
return 0
}
func (x *BpfmapFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *BpfmapFileEntry) GetMapType() uint32 {
if x != nil && x.MapType != nil {
return *x.MapType
}
return 0
}
func (x *BpfmapFileEntry) GetKeySize() uint32 {
if x != nil && x.KeySize != nil {
return *x.KeySize
}
return 0
}
func (x *BpfmapFileEntry) GetValueSize() uint32 {
if x != nil && x.ValueSize != nil {
return *x.ValueSize
}
return 0
}
func (x *BpfmapFileEntry) GetMapId() uint32 {
if x != nil && x.MapId != nil {
return *x.MapId
}
return 0
}
func (x *BpfmapFileEntry) GetMaxEntries() uint32 {
if x != nil && x.MaxEntries != nil {
return *x.MaxEntries
}
return 0
}
func (x *BpfmapFileEntry) GetMapFlags() uint32 {
if x != nil && x.MapFlags != nil {
return *x.MapFlags
}
return 0
}
func (x *BpfmapFileEntry) GetMemlock() uint64 {
if x != nil && x.Memlock != nil {
return *x.Memlock
}
return 0
}
func (x *BpfmapFileEntry) GetFrozen() bool {
if x != nil && x.Frozen != nil {
return *x.Frozen
}
return Default_BpfmapFileEntry_Frozen
}
func (x *BpfmapFileEntry) GetMapName() string {
if x != nil && x.MapName != nil {
return *x.MapName
}
return ""
}
func (x *BpfmapFileEntry) GetIfindex() uint32 {
if x != nil && x.Ifindex != nil {
return *x.Ifindex
}
return Default_BpfmapFileEntry_Ifindex
}
func (x *BpfmapFileEntry) GetMntId() int32 {
if x != nil && x.MntId != nil {
return *x.MntId
}
return Default_BpfmapFileEntry_MntId
}
func (x *BpfmapFileEntry) GetMapExtra() uint64 {
if x != nil && x.MapExtra != nil {
return *x.MapExtra
}
return 0
}
var File_bpfmap_file_proto protoreflect.FileDescriptor
var file_bpfmap_file_proto_rawDesc = []byte{
0x0a, 0x11, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x70, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x10, 0xd2, 0x3f, 0x0d, 0x1a, 0x0b, 0x72, 0x66, 0x69,
0x6c, 0x65, 0x2e, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12,
0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x70, 0x6f,
0x73, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x54, 0x79,
0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a,
0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x15, 0x0a, 0x06,
0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61,
0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69,
0x65, 0x73, 0x18, 0x09, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74,
0x72, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67,
0x73, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x46, 0x6c, 0x61, 0x67,
0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x02,
0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x06, 0x66,
0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c,
0x73, 0x65, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61,
0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61,
0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78,
0x18, 0x0e, 0x20, 0x02, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x12, 0x19, 0x0a, 0x06, 0x6d, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01,
0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x05, 0x6d, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a,
0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04,
0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x78, 0x74, 0x72, 0x61,
}
var (
file_bpfmap_file_proto_rawDescOnce sync.Once
file_bpfmap_file_proto_rawDescData = file_bpfmap_file_proto_rawDesc
)
func file_bpfmap_file_proto_rawDescGZIP() []byte {
file_bpfmap_file_proto_rawDescOnce.Do(func() {
file_bpfmap_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_bpfmap_file_proto_rawDescData)
})
return file_bpfmap_file_proto_rawDescData
}
var file_bpfmap_file_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_bpfmap_file_proto_goTypes = []interface{}{
(*BpfmapFileEntry)(nil), // 0: criu.bpfmap_file_entry
(*FownEntry)(nil), // 1: criu.fown_entry
}
var file_bpfmap_file_proto_depIdxs = []int32{
1, // 0: criu.bpfmap_file_entry.fown:type_name -> criu.fown_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_bpfmap_file_proto_init() }
func file_bpfmap_file_proto_init() {
if File_bpfmap_file_proto != nil {
return
}
file_opts_proto_init()
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_bpfmap_file_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BpfmapFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_bpfmap_file_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_bpfmap_file_proto_goTypes,
DependencyIndexes: file_bpfmap_file_proto_depIdxs,
MessageInfos: file_bpfmap_file_proto_msgTypes,
}.Build()
File_bpfmap_file_proto = out.File
file_bpfmap_file_proto_rawDesc = nil
file_bpfmap_file_proto_goTypes = nil
file_bpfmap_file_proto_depIdxs = nil
}
@@ -0,0 +1,26 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "fown.proto";
message bpfmap_file_entry {
required uint32 id = 1;
required uint32 flags = 2 [(criu).flags = "rfile.flags"];
required uint64 pos = 3;
required fown_entry fown = 4;
required uint32 map_type = 5;
required uint32 key_size = 6;
required uint32 value_size = 7;
required uint32 map_id = 8;
required uint32 max_entries = 9;
required uint32 map_flags = 10;
required uint64 memlock = 11;
required bool frozen = 12 [default = false];
required string map_name = 13;
required uint32 ifindex = 14 [default = 0];
optional sint32 mnt_id = 15 [default = -1];
optional uint64 map_extra = 16;
}
@@ -0,0 +1,651 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: cgroup.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type CgroupPerms struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mode *uint32 `protobuf:"varint,1,req,name=mode" json:"mode,omitempty"`
Uid *uint32 `protobuf:"varint,2,req,name=uid" json:"uid,omitempty"`
Gid *uint32 `protobuf:"varint,3,req,name=gid" json:"gid,omitempty"`
}
func (x *CgroupPerms) Reset() {
*x = CgroupPerms{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgroupPerms) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgroupPerms) ProtoMessage() {}
func (x *CgroupPerms) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgroupPerms.ProtoReflect.Descriptor instead.
func (*CgroupPerms) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{0}
}
func (x *CgroupPerms) GetMode() uint32 {
if x != nil && x.Mode != nil {
return *x.Mode
}
return 0
}
func (x *CgroupPerms) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *CgroupPerms) GetGid() uint32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
type CgroupPropEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"`
Perms *CgroupPerms `protobuf:"bytes,3,opt,name=perms" json:"perms,omitempty"`
}
func (x *CgroupPropEntry) Reset() {
*x = CgroupPropEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgroupPropEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgroupPropEntry) ProtoMessage() {}
func (x *CgroupPropEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgroupPropEntry.ProtoReflect.Descriptor instead.
func (*CgroupPropEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{1}
}
func (x *CgroupPropEntry) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *CgroupPropEntry) GetValue() string {
if x != nil && x.Value != nil {
return *x.Value
}
return ""
}
func (x *CgroupPropEntry) GetPerms() *CgroupPerms {
if x != nil {
return x.Perms
}
return nil
}
type CgroupDirEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DirName *string `protobuf:"bytes,1,req,name=dir_name,json=dirName" json:"dir_name,omitempty"`
Children []*CgroupDirEntry `protobuf:"bytes,2,rep,name=children" json:"children,omitempty"`
Properties []*CgroupPropEntry `protobuf:"bytes,3,rep,name=properties" json:"properties,omitempty"`
DirPerms *CgroupPerms `protobuf:"bytes,4,opt,name=dir_perms,json=dirPerms" json:"dir_perms,omitempty"`
}
func (x *CgroupDirEntry) Reset() {
*x = CgroupDirEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgroupDirEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgroupDirEntry) ProtoMessage() {}
func (x *CgroupDirEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgroupDirEntry.ProtoReflect.Descriptor instead.
func (*CgroupDirEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{2}
}
func (x *CgroupDirEntry) GetDirName() string {
if x != nil && x.DirName != nil {
return *x.DirName
}
return ""
}
func (x *CgroupDirEntry) GetChildren() []*CgroupDirEntry {
if x != nil {
return x.Children
}
return nil
}
func (x *CgroupDirEntry) GetProperties() []*CgroupPropEntry {
if x != nil {
return x.Properties
}
return nil
}
func (x *CgroupDirEntry) GetDirPerms() *CgroupPerms {
if x != nil {
return x.DirPerms
}
return nil
}
type CgControllerEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cnames []string `protobuf:"bytes,1,rep,name=cnames" json:"cnames,omitempty"`
Dirs []*CgroupDirEntry `protobuf:"bytes,2,rep,name=dirs" json:"dirs,omitempty"`
}
func (x *CgControllerEntry) Reset() {
*x = CgControllerEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgControllerEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgControllerEntry) ProtoMessage() {}
func (x *CgControllerEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgControllerEntry.ProtoReflect.Descriptor instead.
func (*CgControllerEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{3}
}
func (x *CgControllerEntry) GetCnames() []string {
if x != nil {
return x.Cnames
}
return nil
}
func (x *CgControllerEntry) GetDirs() []*CgroupDirEntry {
if x != nil {
return x.Dirs
}
return nil
}
type CgMemberEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Path *string `protobuf:"bytes,2,req,name=path" json:"path,omitempty"`
CgnsPrefix *uint32 `protobuf:"varint,3,opt,name=cgns_prefix,json=cgnsPrefix" json:"cgns_prefix,omitempty"`
}
func (x *CgMemberEntry) Reset() {
*x = CgMemberEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgMemberEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgMemberEntry) ProtoMessage() {}
func (x *CgMemberEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgMemberEntry.ProtoReflect.Descriptor instead.
func (*CgMemberEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{4}
}
func (x *CgMemberEntry) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *CgMemberEntry) GetPath() string {
if x != nil && x.Path != nil {
return *x.Path
}
return ""
}
func (x *CgMemberEntry) GetCgnsPrefix() uint32 {
if x != nil && x.CgnsPrefix != nil {
return *x.CgnsPrefix
}
return 0
}
type CgSetEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Ctls []*CgMemberEntry `protobuf:"bytes,2,rep,name=ctls" json:"ctls,omitempty"`
}
func (x *CgSetEntry) Reset() {
*x = CgSetEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgSetEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgSetEntry) ProtoMessage() {}
func (x *CgSetEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgSetEntry.ProtoReflect.Descriptor instead.
func (*CgSetEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{5}
}
func (x *CgSetEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *CgSetEntry) GetCtls() []*CgMemberEntry {
if x != nil {
return x.Ctls
}
return nil
}
type CgroupEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Sets []*CgSetEntry `protobuf:"bytes,1,rep,name=sets" json:"sets,omitempty"`
Controllers []*CgControllerEntry `protobuf:"bytes,2,rep,name=controllers" json:"controllers,omitempty"`
}
func (x *CgroupEntry) Reset() {
*x = CgroupEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cgroup_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CgroupEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CgroupEntry) ProtoMessage() {}
func (x *CgroupEntry) ProtoReflect() protoreflect.Message {
mi := &file_cgroup_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CgroupEntry.ProtoReflect.Descriptor instead.
func (*CgroupEntry) Descriptor() ([]byte, []int) {
return file_cgroup_proto_rawDescGZIP(), []int{6}
}
func (x *CgroupEntry) GetSets() []*CgSetEntry {
if x != nil {
return x.Sets
}
return nil
}
func (x *CgroupEntry) GetControllers() []*CgControllerEntry {
if x != nil {
return x.Controllers
}
return nil
}
var File_cgroup_proto protoreflect.FileDescriptor
var file_cgroup_proto_rawDesc = []byte{
0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
0x63, 0x72, 0x69, 0x75, 0x22, 0x46, 0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70,
0x65, 0x72, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69,
0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x22, 0x67, 0x0a, 0x11,
0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x70,
0x65, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x05,
0x70, 0x65, 0x72, 0x6d, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x10, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x5f, 0x64, 0x69, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x69,
0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69,
0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65,
0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x70,
0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x08, 0x64, 0x69, 0x72, 0x50, 0x65,
0x72, 0x6d, 0x73, 0x22, 0x59, 0x0a, 0x13, 0x63, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6e,
0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6e, 0x61, 0x6d,
0x65, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x16, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64,
0x69, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x69, 0x72, 0x73, 0x22, 0x5a,
0x0a, 0x0f, 0x63, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
0x02, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x67, 0x6e,
0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a,
0x63, 0x67, 0x6e, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x49, 0x0a, 0x0c, 0x63, 0x67,
0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x04, 0x63, 0x74,
0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e,
0x63, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x04, 0x63, 0x74, 0x6c, 0x73, 0x22, 0x73, 0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x67, 0x5f, 0x73, 0x65,
0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3b, 0x0a,
0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x67, 0x5f, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73,
}
var (
file_cgroup_proto_rawDescOnce sync.Once
file_cgroup_proto_rawDescData = file_cgroup_proto_rawDesc
)
func file_cgroup_proto_rawDescGZIP() []byte {
file_cgroup_proto_rawDescOnce.Do(func() {
file_cgroup_proto_rawDescData = protoimpl.X.CompressGZIP(file_cgroup_proto_rawDescData)
})
return file_cgroup_proto_rawDescData
}
var file_cgroup_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_cgroup_proto_goTypes = []interface{}{
(*CgroupPerms)(nil), // 0: criu.cgroup_perms
(*CgroupPropEntry)(nil), // 1: criu.cgroup_prop_entry
(*CgroupDirEntry)(nil), // 2: criu.cgroup_dir_entry
(*CgControllerEntry)(nil), // 3: criu.cg_controller_entry
(*CgMemberEntry)(nil), // 4: criu.cg_member_entry
(*CgSetEntry)(nil), // 5: criu.cg_set_entry
(*CgroupEntry)(nil), // 6: criu.cgroup_entry
}
var file_cgroup_proto_depIdxs = []int32{
0, // 0: criu.cgroup_prop_entry.perms:type_name -> criu.cgroup_perms
2, // 1: criu.cgroup_dir_entry.children:type_name -> criu.cgroup_dir_entry
1, // 2: criu.cgroup_dir_entry.properties:type_name -> criu.cgroup_prop_entry
0, // 3: criu.cgroup_dir_entry.dir_perms:type_name -> criu.cgroup_perms
2, // 4: criu.cg_controller_entry.dirs:type_name -> criu.cgroup_dir_entry
4, // 5: criu.cg_set_entry.ctls:type_name -> criu.cg_member_entry
5, // 6: criu.cgroup_entry.sets:type_name -> criu.cg_set_entry
3, // 7: criu.cgroup_entry.controllers:type_name -> criu.cg_controller_entry
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_cgroup_proto_init() }
func file_cgroup_proto_init() {
if File_cgroup_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_cgroup_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgroupPerms); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgroupPropEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgroupDirEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgControllerEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgMemberEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgSetEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cgroup_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CgroupEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cgroup_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_cgroup_proto_goTypes,
DependencyIndexes: file_cgroup_proto_depIdxs,
MessageInfos: file_cgroup_proto_msgTypes,
}.Build()
File_cgroup_proto = out.File
file_cgroup_proto_rawDesc = nil
file_cgroup_proto_goTypes = nil
file_cgroup_proto_depIdxs = nil
}
@@ -0,0 +1,44 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message cgroup_perms {
required uint32 mode = 1;
required uint32 uid = 2;
required uint32 gid = 3;
}
message cgroup_prop_entry {
required string name = 1;
required string value = 2;
optional cgroup_perms perms = 3;
}
message cgroup_dir_entry {
required string dir_name = 1;
repeated cgroup_dir_entry children = 2;
repeated cgroup_prop_entry properties = 3;
optional cgroup_perms dir_perms = 4;
}
message cg_controller_entry {
repeated string cnames = 1;
repeated cgroup_dir_entry dirs = 2;
}
message cg_member_entry {
required string name = 1;
required string path = 2;
optional uint32 cgns_prefix = 3;
}
message cg_set_entry {
required uint32 id = 1;
repeated cg_member_entry ctls = 2;
}
message cgroup_entry {
repeated cg_set_entry sets = 1;
repeated cg_controller_entry controllers = 2;
}
@@ -0,0 +1,354 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: core-aarch64.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UserAarch64RegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Regs []uint64 `protobuf:"varint,1,rep,name=regs" json:"regs,omitempty"`
Sp *uint64 `protobuf:"varint,2,req,name=sp" json:"sp,omitempty"`
Pc *uint64 `protobuf:"varint,3,req,name=pc" json:"pc,omitempty"`
Pstate *uint64 `protobuf:"varint,4,req,name=pstate" json:"pstate,omitempty"`
}
func (x *UserAarch64RegsEntry) Reset() {
*x = UserAarch64RegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_aarch64_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserAarch64RegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserAarch64RegsEntry) ProtoMessage() {}
func (x *UserAarch64RegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_aarch64_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserAarch64RegsEntry.ProtoReflect.Descriptor instead.
func (*UserAarch64RegsEntry) Descriptor() ([]byte, []int) {
return file_core_aarch64_proto_rawDescGZIP(), []int{0}
}
func (x *UserAarch64RegsEntry) GetRegs() []uint64 {
if x != nil {
return x.Regs
}
return nil
}
func (x *UserAarch64RegsEntry) GetSp() uint64 {
if x != nil && x.Sp != nil {
return *x.Sp
}
return 0
}
func (x *UserAarch64RegsEntry) GetPc() uint64 {
if x != nil && x.Pc != nil {
return *x.Pc
}
return 0
}
func (x *UserAarch64RegsEntry) GetPstate() uint64 {
if x != nil && x.Pstate != nil {
return *x.Pstate
}
return 0
}
type UserAarch64FpsimdContextEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Vregs []uint64 `protobuf:"varint,1,rep,name=vregs" json:"vregs,omitempty"`
Fpsr *uint32 `protobuf:"varint,2,req,name=fpsr" json:"fpsr,omitempty"`
Fpcr *uint32 `protobuf:"varint,3,req,name=fpcr" json:"fpcr,omitempty"`
}
func (x *UserAarch64FpsimdContextEntry) Reset() {
*x = UserAarch64FpsimdContextEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_aarch64_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserAarch64FpsimdContextEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserAarch64FpsimdContextEntry) ProtoMessage() {}
func (x *UserAarch64FpsimdContextEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_aarch64_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserAarch64FpsimdContextEntry.ProtoReflect.Descriptor instead.
func (*UserAarch64FpsimdContextEntry) Descriptor() ([]byte, []int) {
return file_core_aarch64_proto_rawDescGZIP(), []int{1}
}
func (x *UserAarch64FpsimdContextEntry) GetVregs() []uint64 {
if x != nil {
return x.Vregs
}
return nil
}
func (x *UserAarch64FpsimdContextEntry) GetFpsr() uint32 {
if x != nil && x.Fpsr != nil {
return *x.Fpsr
}
return 0
}
func (x *UserAarch64FpsimdContextEntry) GetFpcr() uint32 {
if x != nil && x.Fpcr != nil {
return *x.Fpcr
}
return 0
}
type ThreadInfoAarch64 struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClearTidAddr *uint64 `protobuf:"varint,1,req,name=clear_tid_addr,json=clearTidAddr" json:"clear_tid_addr,omitempty"`
Tls *uint64 `protobuf:"varint,2,req,name=tls" json:"tls,omitempty"`
Gpregs *UserAarch64RegsEntry `protobuf:"bytes,3,req,name=gpregs" json:"gpregs,omitempty"`
Fpsimd *UserAarch64FpsimdContextEntry `protobuf:"bytes,4,req,name=fpsimd" json:"fpsimd,omitempty"`
}
func (x *ThreadInfoAarch64) Reset() {
*x = ThreadInfoAarch64{}
if protoimpl.UnsafeEnabled {
mi := &file_core_aarch64_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreadInfoAarch64) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreadInfoAarch64) ProtoMessage() {}
func (x *ThreadInfoAarch64) ProtoReflect() protoreflect.Message {
mi := &file_core_aarch64_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreadInfoAarch64.ProtoReflect.Descriptor instead.
func (*ThreadInfoAarch64) Descriptor() ([]byte, []int) {
return file_core_aarch64_proto_rawDescGZIP(), []int{2}
}
func (x *ThreadInfoAarch64) GetClearTidAddr() uint64 {
if x != nil && x.ClearTidAddr != nil {
return *x.ClearTidAddr
}
return 0
}
func (x *ThreadInfoAarch64) GetTls() uint64 {
if x != nil && x.Tls != nil {
return *x.Tls
}
return 0
}
func (x *ThreadInfoAarch64) GetGpregs() *UserAarch64RegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *ThreadInfoAarch64) GetFpsimd() *UserAarch64FpsimdContextEntry {
if x != nil {
return x.Fpsimd
}
return nil
}
var File_core_aarch64_proto protoreflect.FileDescriptor
var file_core_aarch64_proto_rawDesc = []byte{
0x0a, 0x12, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x61, 0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x65, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61,
0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52,
0x04, 0x72, 0x65, 0x67, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x70, 0x18, 0x02, 0x20, 0x02, 0x28,
0x04, 0x52, 0x02, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x63, 0x18, 0x03, 0x20, 0x02, 0x28,
0x04, 0x52, 0x02, 0x70, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
0x04, 0x20, 0x02, 0x28, 0x04, 0x52, 0x06, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a,
0x21, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x5f, 0x66, 0x70,
0x73, 0x69, 0x6d, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x04, 0x52, 0x05, 0x76, 0x72, 0x65, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x70, 0x73, 0x72,
0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x70, 0x73, 0x72, 0x12, 0x12, 0x0a, 0x04,
0x66, 0x70, 0x63, 0x72, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x70, 0x63, 0x72,
0x22, 0xd3, 0x01, 0x0a, 0x13, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
0x5f, 0x61, 0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c, 0x65, 0x61,
0x72, 0x5f, 0x74, 0x69, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04,
0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69,
0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x02,
0x28, 0x04, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67,
0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x61, 0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x5f, 0x72, 0x65, 0x67, 0x73,
0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x06, 0x67,
0x70, 0x72, 0x65, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x06, 0x66, 0x70, 0x73, 0x69, 0x6d, 0x64, 0x18,
0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x61, 0x61, 0x72, 0x63, 0x68, 0x36, 0x34, 0x5f, 0x66, 0x70, 0x73, 0x69, 0x6d, 0x64,
0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
0x66, 0x70, 0x73, 0x69, 0x6d, 0x64,
}
var (
file_core_aarch64_proto_rawDescOnce sync.Once
file_core_aarch64_proto_rawDescData = file_core_aarch64_proto_rawDesc
)
func file_core_aarch64_proto_rawDescGZIP() []byte {
file_core_aarch64_proto_rawDescOnce.Do(func() {
file_core_aarch64_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_aarch64_proto_rawDescData)
})
return file_core_aarch64_proto_rawDescData
}
var file_core_aarch64_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_core_aarch64_proto_goTypes = []interface{}{
(*UserAarch64RegsEntry)(nil), // 0: criu.user_aarch64_regs_entry
(*UserAarch64FpsimdContextEntry)(nil), // 1: criu.user_aarch64_fpsimd_context_entry
(*ThreadInfoAarch64)(nil), // 2: criu.thread_info_aarch64
}
var file_core_aarch64_proto_depIdxs = []int32{
0, // 0: criu.thread_info_aarch64.gpregs:type_name -> criu.user_aarch64_regs_entry
1, // 1: criu.thread_info_aarch64.fpsimd:type_name -> criu.user_aarch64_fpsimd_context_entry
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_core_aarch64_proto_init() }
func file_core_aarch64_proto_init() {
if File_core_aarch64_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_core_aarch64_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserAarch64RegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_aarch64_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserAarch64FpsimdContextEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_aarch64_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadInfoAarch64); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_aarch64_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_core_aarch64_proto_goTypes,
DependencyIndexes: file_core_aarch64_proto_depIdxs,
MessageInfos: file_core_aarch64_proto_msgTypes,
}.Build()
File_core_aarch64_proto = out.File
file_core_aarch64_proto_rawDesc = nil
file_core_aarch64_proto_goTypes = nil
file_core_aarch64_proto_depIdxs = nil
}
@@ -0,0 +1,26 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message user_aarch64_regs_entry {
repeated uint64 regs = 1;
required uint64 sp = 2;
required uint64 pc = 3;
required uint64 pstate = 4;
}
message user_aarch64_fpsimd_context_entry {
repeated uint64 vregs = 1;
required uint32 fpsr = 2;
required uint32 fpcr = 3;
}
message thread_info_aarch64 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required uint64 tls = 2;
required user_aarch64_regs_entry gpregs = 3[(criu).hex = true];
required user_aarch64_fpsimd_context_entry fpsimd = 4;
}
@@ -0,0 +1,498 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: core-arm.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UserArmRegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
R0 *uint32 `protobuf:"varint,1,req,name=r0" json:"r0,omitempty"`
R1 *uint32 `protobuf:"varint,2,req,name=r1" json:"r1,omitempty"`
R2 *uint32 `protobuf:"varint,3,req,name=r2" json:"r2,omitempty"`
R3 *uint32 `protobuf:"varint,4,req,name=r3" json:"r3,omitempty"`
R4 *uint32 `protobuf:"varint,5,req,name=r4" json:"r4,omitempty"`
R5 *uint32 `protobuf:"varint,6,req,name=r5" json:"r5,omitempty"`
R6 *uint32 `protobuf:"varint,7,req,name=r6" json:"r6,omitempty"`
R7 *uint32 `protobuf:"varint,8,req,name=r7" json:"r7,omitempty"`
R8 *uint32 `protobuf:"varint,9,req,name=r8" json:"r8,omitempty"`
R9 *uint32 `protobuf:"varint,10,req,name=r9" json:"r9,omitempty"`
R10 *uint32 `protobuf:"varint,11,req,name=r10" json:"r10,omitempty"`
Fp *uint32 `protobuf:"varint,12,req,name=fp" json:"fp,omitempty"`
Ip *uint32 `protobuf:"varint,13,req,name=ip" json:"ip,omitempty"`
Sp *uint32 `protobuf:"varint,14,req,name=sp" json:"sp,omitempty"`
Lr *uint32 `protobuf:"varint,15,req,name=lr" json:"lr,omitempty"`
Pc *uint32 `protobuf:"varint,16,req,name=pc" json:"pc,omitempty"`
Cpsr *uint32 `protobuf:"varint,17,req,name=cpsr" json:"cpsr,omitempty"`
OrigR0 *uint32 `protobuf:"varint,18,req,name=orig_r0,json=origR0" json:"orig_r0,omitempty"`
}
func (x *UserArmRegsEntry) Reset() {
*x = UserArmRegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_arm_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserArmRegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserArmRegsEntry) ProtoMessage() {}
func (x *UserArmRegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_arm_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserArmRegsEntry.ProtoReflect.Descriptor instead.
func (*UserArmRegsEntry) Descriptor() ([]byte, []int) {
return file_core_arm_proto_rawDescGZIP(), []int{0}
}
func (x *UserArmRegsEntry) GetR0() uint32 {
if x != nil && x.R0 != nil {
return *x.R0
}
return 0
}
func (x *UserArmRegsEntry) GetR1() uint32 {
if x != nil && x.R1 != nil {
return *x.R1
}
return 0
}
func (x *UserArmRegsEntry) GetR2() uint32 {
if x != nil && x.R2 != nil {
return *x.R2
}
return 0
}
func (x *UserArmRegsEntry) GetR3() uint32 {
if x != nil && x.R3 != nil {
return *x.R3
}
return 0
}
func (x *UserArmRegsEntry) GetR4() uint32 {
if x != nil && x.R4 != nil {
return *x.R4
}
return 0
}
func (x *UserArmRegsEntry) GetR5() uint32 {
if x != nil && x.R5 != nil {
return *x.R5
}
return 0
}
func (x *UserArmRegsEntry) GetR6() uint32 {
if x != nil && x.R6 != nil {
return *x.R6
}
return 0
}
func (x *UserArmRegsEntry) GetR7() uint32 {
if x != nil && x.R7 != nil {
return *x.R7
}
return 0
}
func (x *UserArmRegsEntry) GetR8() uint32 {
if x != nil && x.R8 != nil {
return *x.R8
}
return 0
}
func (x *UserArmRegsEntry) GetR9() uint32 {
if x != nil && x.R9 != nil {
return *x.R9
}
return 0
}
func (x *UserArmRegsEntry) GetR10() uint32 {
if x != nil && x.R10 != nil {
return *x.R10
}
return 0
}
func (x *UserArmRegsEntry) GetFp() uint32 {
if x != nil && x.Fp != nil {
return *x.Fp
}
return 0
}
func (x *UserArmRegsEntry) GetIp() uint32 {
if x != nil && x.Ip != nil {
return *x.Ip
}
return 0
}
func (x *UserArmRegsEntry) GetSp() uint32 {
if x != nil && x.Sp != nil {
return *x.Sp
}
return 0
}
func (x *UserArmRegsEntry) GetLr() uint32 {
if x != nil && x.Lr != nil {
return *x.Lr
}
return 0
}
func (x *UserArmRegsEntry) GetPc() uint32 {
if x != nil && x.Pc != nil {
return *x.Pc
}
return 0
}
func (x *UserArmRegsEntry) GetCpsr() uint32 {
if x != nil && x.Cpsr != nil {
return *x.Cpsr
}
return 0
}
func (x *UserArmRegsEntry) GetOrigR0() uint32 {
if x != nil && x.OrigR0 != nil {
return *x.OrigR0
}
return 0
}
type UserArmVfpstateEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
VfpRegs []uint64 `protobuf:"varint,1,rep,name=vfp_regs,json=vfpRegs" json:"vfp_regs,omitempty"`
Fpscr *uint32 `protobuf:"varint,2,req,name=fpscr" json:"fpscr,omitempty"`
Fpexc *uint32 `protobuf:"varint,3,req,name=fpexc" json:"fpexc,omitempty"`
Fpinst *uint32 `protobuf:"varint,4,req,name=fpinst" json:"fpinst,omitempty"`
Fpinst2 *uint32 `protobuf:"varint,5,req,name=fpinst2" json:"fpinst2,omitempty"`
}
func (x *UserArmVfpstateEntry) Reset() {
*x = UserArmVfpstateEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_arm_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserArmVfpstateEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserArmVfpstateEntry) ProtoMessage() {}
func (x *UserArmVfpstateEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_arm_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserArmVfpstateEntry.ProtoReflect.Descriptor instead.
func (*UserArmVfpstateEntry) Descriptor() ([]byte, []int) {
return file_core_arm_proto_rawDescGZIP(), []int{1}
}
func (x *UserArmVfpstateEntry) GetVfpRegs() []uint64 {
if x != nil {
return x.VfpRegs
}
return nil
}
func (x *UserArmVfpstateEntry) GetFpscr() uint32 {
if x != nil && x.Fpscr != nil {
return *x.Fpscr
}
return 0
}
func (x *UserArmVfpstateEntry) GetFpexc() uint32 {
if x != nil && x.Fpexc != nil {
return *x.Fpexc
}
return 0
}
func (x *UserArmVfpstateEntry) GetFpinst() uint32 {
if x != nil && x.Fpinst != nil {
return *x.Fpinst
}
return 0
}
func (x *UserArmVfpstateEntry) GetFpinst2() uint32 {
if x != nil && x.Fpinst2 != nil {
return *x.Fpinst2
}
return 0
}
type ThreadInfoArm struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClearTidAddr *uint64 `protobuf:"varint,1,req,name=clear_tid_addr,json=clearTidAddr" json:"clear_tid_addr,omitempty"`
Tls *uint32 `protobuf:"varint,2,req,name=tls" json:"tls,omitempty"`
Gpregs *UserArmRegsEntry `protobuf:"bytes,3,req,name=gpregs" json:"gpregs,omitempty"`
Fpstate *UserArmVfpstateEntry `protobuf:"bytes,4,req,name=fpstate" json:"fpstate,omitempty"`
}
func (x *ThreadInfoArm) Reset() {
*x = ThreadInfoArm{}
if protoimpl.UnsafeEnabled {
mi := &file_core_arm_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreadInfoArm) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreadInfoArm) ProtoMessage() {}
func (x *ThreadInfoArm) ProtoReflect() protoreflect.Message {
mi := &file_core_arm_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreadInfoArm.ProtoReflect.Descriptor instead.
func (*ThreadInfoArm) Descriptor() ([]byte, []int) {
return file_core_arm_proto_rawDescGZIP(), []int{2}
}
func (x *ThreadInfoArm) GetClearTidAddr() uint64 {
if x != nil && x.ClearTidAddr != nil {
return *x.ClearTidAddr
}
return 0
}
func (x *ThreadInfoArm) GetTls() uint32 {
if x != nil && x.Tls != nil {
return *x.Tls
}
return 0
}
func (x *ThreadInfoArm) GetGpregs() *UserArmRegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *ThreadInfoArm) GetFpstate() *UserArmVfpstateEntry {
if x != nil {
return x.Fpstate
}
return nil
}
var File_core_arm_proto protoreflect.FileDescriptor
var file_core_arm_proto_rawDesc = []byte{
0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x61, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0xc4, 0x02, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x6d, 0x5f,
0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x30,
0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x30, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x31,
0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x32,
0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x33,
0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x34,
0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x34, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x35,
0x18, 0x06, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x35, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x36,
0x18, 0x07, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x36, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x37,
0x18, 0x08, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x37, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x38,
0x18, 0x09, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x38, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x39,
0x18, 0x0a, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x72, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31,
0x30, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x31, 0x30, 0x12, 0x0e, 0x0a, 0x02,
0x66, 0x70, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x66, 0x70, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x70, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02,
0x73, 0x70, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02,
0x6c, 0x72, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x72, 0x12, 0x0e, 0x0a, 0x02,
0x70, 0x63, 0x18, 0x10, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x70, 0x63, 0x12, 0x12, 0x0a, 0x04,
0x63, 0x70, 0x73, 0x72, 0x18, 0x11, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x70, 0x73, 0x72,
0x12, 0x17, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x72, 0x30, 0x18, 0x12, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x52, 0x30, 0x22, 0x92, 0x01, 0x0a, 0x17, 0x75, 0x73,
0x65, 0x72, 0x5f, 0x61, 0x72, 0x6d, 0x5f, 0x76, 0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x70, 0x5f, 0x72, 0x65, 0x67,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x76, 0x66, 0x70, 0x52, 0x65, 0x67, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x66, 0x70, 0x73, 0x63, 0x72, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x05, 0x66, 0x70, 0x73, 0x63, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x70, 0x65, 0x78, 0x63, 0x18,
0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x70, 0x65, 0x78, 0x63, 0x12, 0x16, 0x0a, 0x06,
0x66, 0x70, 0x69, 0x6e, 0x73, 0x74, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x70,
0x69, 0x6e, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x70, 0x69, 0x6e, 0x73, 0x74, 0x32, 0x18,
0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x70, 0x69, 0x6e, 0x73, 0x74, 0x32, 0x22, 0xc3,
0x01, 0x0a, 0x0f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x61,
0x72, 0x6d, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x64, 0x5f,
0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08,
0x01, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12,
0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x6c,
0x73, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x72,
0x6d, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f,
0x02, 0x08, 0x01, 0x52, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x66,
0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63,
0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x6d, 0x5f, 0x76, 0x66, 0x70,
0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x70, 0x73,
0x74, 0x61, 0x74, 0x65,
}
var (
file_core_arm_proto_rawDescOnce sync.Once
file_core_arm_proto_rawDescData = file_core_arm_proto_rawDesc
)
func file_core_arm_proto_rawDescGZIP() []byte {
file_core_arm_proto_rawDescOnce.Do(func() {
file_core_arm_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_arm_proto_rawDescData)
})
return file_core_arm_proto_rawDescData
}
var file_core_arm_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_core_arm_proto_goTypes = []interface{}{
(*UserArmRegsEntry)(nil), // 0: criu.user_arm_regs_entry
(*UserArmVfpstateEntry)(nil), // 1: criu.user_arm_vfpstate_entry
(*ThreadInfoArm)(nil), // 2: criu.thread_info_arm
}
var file_core_arm_proto_depIdxs = []int32{
0, // 0: criu.thread_info_arm.gpregs:type_name -> criu.user_arm_regs_entry
1, // 1: criu.thread_info_arm.fpstate:type_name -> criu.user_arm_vfpstate_entry
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_core_arm_proto_init() }
func file_core_arm_proto_init() {
if File_core_arm_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_core_arm_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserArmRegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_arm_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserArmVfpstateEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_arm_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadInfoArm); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_arm_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_core_arm_proto_goTypes,
DependencyIndexes: file_core_arm_proto_depIdxs,
MessageInfos: file_core_arm_proto_msgTypes,
}.Build()
File_core_arm_proto = out.File
file_core_arm_proto_rawDesc = nil
file_core_arm_proto_goTypes = nil
file_core_arm_proto_depIdxs = nil
}
@@ -0,0 +1,42 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message user_arm_regs_entry {
required uint32 r0 = 1;
required uint32 r1 = 2;
required uint32 r2 = 3;
required uint32 r3 = 4;
required uint32 r4 = 5;
required uint32 r5 = 6;
required uint32 r6 = 7;
required uint32 r7 = 8;
required uint32 r8 = 9;
required uint32 r9 = 10;
required uint32 r10 = 11;
required uint32 fp = 12;
required uint32 ip = 13;
required uint32 sp = 14;
required uint32 lr = 15;
required uint32 pc = 16;
required uint32 cpsr = 17;
required uint32 orig_r0 = 18;
}
message user_arm_vfpstate_entry {
repeated uint64 vfp_regs = 1;
required uint32 fpscr = 2;
required uint32 fpexc = 3;
required uint32 fpinst = 4;
required uint32 fpinst2 = 5;
}
message thread_info_arm {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required uint32 tls = 2;
required user_arm_regs_entry gpregs = 3[(criu).hex = true];
required user_arm_vfpstate_entry fpstate = 4;
}
@@ -0,0 +1,964 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: core-mips.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UserMipsRegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
R0 *uint64 `protobuf:"varint,1,req,name=r0" json:"r0,omitempty"`
R1 *uint64 `protobuf:"varint,2,req,name=r1" json:"r1,omitempty"`
R2 *uint64 `protobuf:"varint,3,req,name=r2" json:"r2,omitempty"`
R3 *uint64 `protobuf:"varint,4,req,name=r3" json:"r3,omitempty"`
R4 *uint64 `protobuf:"varint,5,req,name=r4" json:"r4,omitempty"`
R5 *uint64 `protobuf:"varint,6,req,name=r5" json:"r5,omitempty"`
R6 *uint64 `protobuf:"varint,7,req,name=r6" json:"r6,omitempty"`
R7 *uint64 `protobuf:"varint,8,req,name=r7" json:"r7,omitempty"`
R8 *uint64 `protobuf:"varint,9,req,name=r8" json:"r8,omitempty"`
R9 *uint64 `protobuf:"varint,10,req,name=r9" json:"r9,omitempty"`
R10 *uint64 `protobuf:"varint,11,req,name=r10" json:"r10,omitempty"`
R11 *uint64 `protobuf:"varint,12,req,name=r11" json:"r11,omitempty"`
R12 *uint64 `protobuf:"varint,13,req,name=r12" json:"r12,omitempty"`
R13 *uint64 `protobuf:"varint,14,req,name=r13" json:"r13,omitempty"`
R14 *uint64 `protobuf:"varint,15,req,name=r14" json:"r14,omitempty"`
R15 *uint64 `protobuf:"varint,16,req,name=r15" json:"r15,omitempty"`
R16 *uint64 `protobuf:"varint,17,req,name=r16" json:"r16,omitempty"`
R17 *uint64 `protobuf:"varint,18,req,name=r17" json:"r17,omitempty"`
R18 *uint64 `protobuf:"varint,19,req,name=r18" json:"r18,omitempty"`
R19 *uint64 `protobuf:"varint,20,req,name=r19" json:"r19,omitempty"`
R20 *uint64 `protobuf:"varint,21,req,name=r20" json:"r20,omitempty"`
R21 *uint64 `protobuf:"varint,22,req,name=r21" json:"r21,omitempty"`
R22 *uint64 `protobuf:"varint,23,req,name=r22" json:"r22,omitempty"`
R23 *uint64 `protobuf:"varint,24,req,name=r23" json:"r23,omitempty"`
R24 *uint64 `protobuf:"varint,25,req,name=r24" json:"r24,omitempty"`
R25 *uint64 `protobuf:"varint,26,req,name=r25" json:"r25,omitempty"`
R26 *uint64 `protobuf:"varint,27,req,name=r26" json:"r26,omitempty"`
R27 *uint64 `protobuf:"varint,28,req,name=r27" json:"r27,omitempty"`
R28 *uint64 `protobuf:"varint,29,req,name=r28" json:"r28,omitempty"`
R29 *uint64 `protobuf:"varint,30,req,name=r29" json:"r29,omitempty"`
R30 *uint64 `protobuf:"varint,31,req,name=r30" json:"r30,omitempty"`
R31 *uint64 `protobuf:"varint,32,req,name=r31" json:"r31,omitempty"`
Lo *uint64 `protobuf:"varint,33,req,name=lo" json:"lo,omitempty"`
Hi *uint64 `protobuf:"varint,34,req,name=hi" json:"hi,omitempty"`
Cp0Epc *uint64 `protobuf:"varint,35,req,name=cp0_epc,json=cp0Epc" json:"cp0_epc,omitempty"`
Cp0Badvaddr *uint64 `protobuf:"varint,36,req,name=cp0_badvaddr,json=cp0Badvaddr" json:"cp0_badvaddr,omitempty"`
Cp0Status *uint64 `protobuf:"varint,37,req,name=cp0_status,json=cp0Status" json:"cp0_status,omitempty"`
Cp0Cause *uint64 `protobuf:"varint,38,req,name=cp0_cause,json=cp0Cause" json:"cp0_cause,omitempty"`
}
func (x *UserMipsRegsEntry) Reset() {
*x = UserMipsRegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_mips_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserMipsRegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserMipsRegsEntry) ProtoMessage() {}
func (x *UserMipsRegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_mips_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserMipsRegsEntry.ProtoReflect.Descriptor instead.
func (*UserMipsRegsEntry) Descriptor() ([]byte, []int) {
return file_core_mips_proto_rawDescGZIP(), []int{0}
}
func (x *UserMipsRegsEntry) GetR0() uint64 {
if x != nil && x.R0 != nil {
return *x.R0
}
return 0
}
func (x *UserMipsRegsEntry) GetR1() uint64 {
if x != nil && x.R1 != nil {
return *x.R1
}
return 0
}
func (x *UserMipsRegsEntry) GetR2() uint64 {
if x != nil && x.R2 != nil {
return *x.R2
}
return 0
}
func (x *UserMipsRegsEntry) GetR3() uint64 {
if x != nil && x.R3 != nil {
return *x.R3
}
return 0
}
func (x *UserMipsRegsEntry) GetR4() uint64 {
if x != nil && x.R4 != nil {
return *x.R4
}
return 0
}
func (x *UserMipsRegsEntry) GetR5() uint64 {
if x != nil && x.R5 != nil {
return *x.R5
}
return 0
}
func (x *UserMipsRegsEntry) GetR6() uint64 {
if x != nil && x.R6 != nil {
return *x.R6
}
return 0
}
func (x *UserMipsRegsEntry) GetR7() uint64 {
if x != nil && x.R7 != nil {
return *x.R7
}
return 0
}
func (x *UserMipsRegsEntry) GetR8() uint64 {
if x != nil && x.R8 != nil {
return *x.R8
}
return 0
}
func (x *UserMipsRegsEntry) GetR9() uint64 {
if x != nil && x.R9 != nil {
return *x.R9
}
return 0
}
func (x *UserMipsRegsEntry) GetR10() uint64 {
if x != nil && x.R10 != nil {
return *x.R10
}
return 0
}
func (x *UserMipsRegsEntry) GetR11() uint64 {
if x != nil && x.R11 != nil {
return *x.R11
}
return 0
}
func (x *UserMipsRegsEntry) GetR12() uint64 {
if x != nil && x.R12 != nil {
return *x.R12
}
return 0
}
func (x *UserMipsRegsEntry) GetR13() uint64 {
if x != nil && x.R13 != nil {
return *x.R13
}
return 0
}
func (x *UserMipsRegsEntry) GetR14() uint64 {
if x != nil && x.R14 != nil {
return *x.R14
}
return 0
}
func (x *UserMipsRegsEntry) GetR15() uint64 {
if x != nil && x.R15 != nil {
return *x.R15
}
return 0
}
func (x *UserMipsRegsEntry) GetR16() uint64 {
if x != nil && x.R16 != nil {
return *x.R16
}
return 0
}
func (x *UserMipsRegsEntry) GetR17() uint64 {
if x != nil && x.R17 != nil {
return *x.R17
}
return 0
}
func (x *UserMipsRegsEntry) GetR18() uint64 {
if x != nil && x.R18 != nil {
return *x.R18
}
return 0
}
func (x *UserMipsRegsEntry) GetR19() uint64 {
if x != nil && x.R19 != nil {
return *x.R19
}
return 0
}
func (x *UserMipsRegsEntry) GetR20() uint64 {
if x != nil && x.R20 != nil {
return *x.R20
}
return 0
}
func (x *UserMipsRegsEntry) GetR21() uint64 {
if x != nil && x.R21 != nil {
return *x.R21
}
return 0
}
func (x *UserMipsRegsEntry) GetR22() uint64 {
if x != nil && x.R22 != nil {
return *x.R22
}
return 0
}
func (x *UserMipsRegsEntry) GetR23() uint64 {
if x != nil && x.R23 != nil {
return *x.R23
}
return 0
}
func (x *UserMipsRegsEntry) GetR24() uint64 {
if x != nil && x.R24 != nil {
return *x.R24
}
return 0
}
func (x *UserMipsRegsEntry) GetR25() uint64 {
if x != nil && x.R25 != nil {
return *x.R25
}
return 0
}
func (x *UserMipsRegsEntry) GetR26() uint64 {
if x != nil && x.R26 != nil {
return *x.R26
}
return 0
}
func (x *UserMipsRegsEntry) GetR27() uint64 {
if x != nil && x.R27 != nil {
return *x.R27
}
return 0
}
func (x *UserMipsRegsEntry) GetR28() uint64 {
if x != nil && x.R28 != nil {
return *x.R28
}
return 0
}
func (x *UserMipsRegsEntry) GetR29() uint64 {
if x != nil && x.R29 != nil {
return *x.R29
}
return 0
}
func (x *UserMipsRegsEntry) GetR30() uint64 {
if x != nil && x.R30 != nil {
return *x.R30
}
return 0
}
func (x *UserMipsRegsEntry) GetR31() uint64 {
if x != nil && x.R31 != nil {
return *x.R31
}
return 0
}
func (x *UserMipsRegsEntry) GetLo() uint64 {
if x != nil && x.Lo != nil {
return *x.Lo
}
return 0
}
func (x *UserMipsRegsEntry) GetHi() uint64 {
if x != nil && x.Hi != nil {
return *x.Hi
}
return 0
}
func (x *UserMipsRegsEntry) GetCp0Epc() uint64 {
if x != nil && x.Cp0Epc != nil {
return *x.Cp0Epc
}
return 0
}
func (x *UserMipsRegsEntry) GetCp0Badvaddr() uint64 {
if x != nil && x.Cp0Badvaddr != nil {
return *x.Cp0Badvaddr
}
return 0
}
func (x *UserMipsRegsEntry) GetCp0Status() uint64 {
if x != nil && x.Cp0Status != nil {
return *x.Cp0Status
}
return 0
}
func (x *UserMipsRegsEntry) GetCp0Cause() uint64 {
if x != nil && x.Cp0Cause != nil {
return *x.Cp0Cause
}
return 0
}
type UserMipsFpregsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
R0 *uint64 `protobuf:"varint,1,req,name=r0" json:"r0,omitempty"`
R1 *uint64 `protobuf:"varint,2,req,name=r1" json:"r1,omitempty"`
R2 *uint64 `protobuf:"varint,3,req,name=r2" json:"r2,omitempty"`
R3 *uint64 `protobuf:"varint,4,req,name=r3" json:"r3,omitempty"`
R4 *uint64 `protobuf:"varint,5,req,name=r4" json:"r4,omitempty"`
R5 *uint64 `protobuf:"varint,6,req,name=r5" json:"r5,omitempty"`
R6 *uint64 `protobuf:"varint,7,req,name=r6" json:"r6,omitempty"`
R7 *uint64 `protobuf:"varint,8,req,name=r7" json:"r7,omitempty"`
R8 *uint64 `protobuf:"varint,9,req,name=r8" json:"r8,omitempty"`
R9 *uint64 `protobuf:"varint,10,req,name=r9" json:"r9,omitempty"`
R10 *uint64 `protobuf:"varint,11,req,name=r10" json:"r10,omitempty"`
R11 *uint64 `protobuf:"varint,12,req,name=r11" json:"r11,omitempty"`
R12 *uint64 `protobuf:"varint,13,req,name=r12" json:"r12,omitempty"`
R13 *uint64 `protobuf:"varint,14,req,name=r13" json:"r13,omitempty"`
R14 *uint64 `protobuf:"varint,15,req,name=r14" json:"r14,omitempty"`
R15 *uint64 `protobuf:"varint,16,req,name=r15" json:"r15,omitempty"`
R16 *uint64 `protobuf:"varint,17,req,name=r16" json:"r16,omitempty"`
R17 *uint64 `protobuf:"varint,18,req,name=r17" json:"r17,omitempty"`
R18 *uint64 `protobuf:"varint,19,req,name=r18" json:"r18,omitempty"`
R19 *uint64 `protobuf:"varint,20,req,name=r19" json:"r19,omitempty"`
R20 *uint64 `protobuf:"varint,21,req,name=r20" json:"r20,omitempty"`
R21 *uint64 `protobuf:"varint,22,req,name=r21" json:"r21,omitempty"`
R22 *uint64 `protobuf:"varint,23,req,name=r22" json:"r22,omitempty"`
R23 *uint64 `protobuf:"varint,24,req,name=r23" json:"r23,omitempty"`
R24 *uint64 `protobuf:"varint,25,req,name=r24" json:"r24,omitempty"`
R25 *uint64 `protobuf:"varint,26,req,name=r25" json:"r25,omitempty"`
R26 *uint64 `protobuf:"varint,27,req,name=r26" json:"r26,omitempty"`
R27 *uint64 `protobuf:"varint,28,req,name=r27" json:"r27,omitempty"`
R28 *uint64 `protobuf:"varint,29,req,name=r28" json:"r28,omitempty"`
R29 *uint64 `protobuf:"varint,30,req,name=r29" json:"r29,omitempty"`
R30 *uint64 `protobuf:"varint,31,req,name=r30" json:"r30,omitempty"`
R31 *uint64 `protobuf:"varint,32,req,name=r31" json:"r31,omitempty"`
Lo *uint64 `protobuf:"varint,33,req,name=lo" json:"lo,omitempty"`
Hi *uint64 `protobuf:"varint,34,req,name=hi" json:"hi,omitempty"`
FpuFcr31 *uint32 `protobuf:"varint,35,req,name=fpu_fcr31,json=fpuFcr31" json:"fpu_fcr31,omitempty"`
FpuId *uint32 `protobuf:"varint,36,req,name=fpu_id,json=fpuId" json:"fpu_id,omitempty"`
}
func (x *UserMipsFpregsEntry) Reset() {
*x = UserMipsFpregsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_mips_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserMipsFpregsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserMipsFpregsEntry) ProtoMessage() {}
func (x *UserMipsFpregsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_mips_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserMipsFpregsEntry.ProtoReflect.Descriptor instead.
func (*UserMipsFpregsEntry) Descriptor() ([]byte, []int) {
return file_core_mips_proto_rawDescGZIP(), []int{1}
}
func (x *UserMipsFpregsEntry) GetR0() uint64 {
if x != nil && x.R0 != nil {
return *x.R0
}
return 0
}
func (x *UserMipsFpregsEntry) GetR1() uint64 {
if x != nil && x.R1 != nil {
return *x.R1
}
return 0
}
func (x *UserMipsFpregsEntry) GetR2() uint64 {
if x != nil && x.R2 != nil {
return *x.R2
}
return 0
}
func (x *UserMipsFpregsEntry) GetR3() uint64 {
if x != nil && x.R3 != nil {
return *x.R3
}
return 0
}
func (x *UserMipsFpregsEntry) GetR4() uint64 {
if x != nil && x.R4 != nil {
return *x.R4
}
return 0
}
func (x *UserMipsFpregsEntry) GetR5() uint64 {
if x != nil && x.R5 != nil {
return *x.R5
}
return 0
}
func (x *UserMipsFpregsEntry) GetR6() uint64 {
if x != nil && x.R6 != nil {
return *x.R6
}
return 0
}
func (x *UserMipsFpregsEntry) GetR7() uint64 {
if x != nil && x.R7 != nil {
return *x.R7
}
return 0
}
func (x *UserMipsFpregsEntry) GetR8() uint64 {
if x != nil && x.R8 != nil {
return *x.R8
}
return 0
}
func (x *UserMipsFpregsEntry) GetR9() uint64 {
if x != nil && x.R9 != nil {
return *x.R9
}
return 0
}
func (x *UserMipsFpregsEntry) GetR10() uint64 {
if x != nil && x.R10 != nil {
return *x.R10
}
return 0
}
func (x *UserMipsFpregsEntry) GetR11() uint64 {
if x != nil && x.R11 != nil {
return *x.R11
}
return 0
}
func (x *UserMipsFpregsEntry) GetR12() uint64 {
if x != nil && x.R12 != nil {
return *x.R12
}
return 0
}
func (x *UserMipsFpregsEntry) GetR13() uint64 {
if x != nil && x.R13 != nil {
return *x.R13
}
return 0
}
func (x *UserMipsFpregsEntry) GetR14() uint64 {
if x != nil && x.R14 != nil {
return *x.R14
}
return 0
}
func (x *UserMipsFpregsEntry) GetR15() uint64 {
if x != nil && x.R15 != nil {
return *x.R15
}
return 0
}
func (x *UserMipsFpregsEntry) GetR16() uint64 {
if x != nil && x.R16 != nil {
return *x.R16
}
return 0
}
func (x *UserMipsFpregsEntry) GetR17() uint64 {
if x != nil && x.R17 != nil {
return *x.R17
}
return 0
}
func (x *UserMipsFpregsEntry) GetR18() uint64 {
if x != nil && x.R18 != nil {
return *x.R18
}
return 0
}
func (x *UserMipsFpregsEntry) GetR19() uint64 {
if x != nil && x.R19 != nil {
return *x.R19
}
return 0
}
func (x *UserMipsFpregsEntry) GetR20() uint64 {
if x != nil && x.R20 != nil {
return *x.R20
}
return 0
}
func (x *UserMipsFpregsEntry) GetR21() uint64 {
if x != nil && x.R21 != nil {
return *x.R21
}
return 0
}
func (x *UserMipsFpregsEntry) GetR22() uint64 {
if x != nil && x.R22 != nil {
return *x.R22
}
return 0
}
func (x *UserMipsFpregsEntry) GetR23() uint64 {
if x != nil && x.R23 != nil {
return *x.R23
}
return 0
}
func (x *UserMipsFpregsEntry) GetR24() uint64 {
if x != nil && x.R24 != nil {
return *x.R24
}
return 0
}
func (x *UserMipsFpregsEntry) GetR25() uint64 {
if x != nil && x.R25 != nil {
return *x.R25
}
return 0
}
func (x *UserMipsFpregsEntry) GetR26() uint64 {
if x != nil && x.R26 != nil {
return *x.R26
}
return 0
}
func (x *UserMipsFpregsEntry) GetR27() uint64 {
if x != nil && x.R27 != nil {
return *x.R27
}
return 0
}
func (x *UserMipsFpregsEntry) GetR28() uint64 {
if x != nil && x.R28 != nil {
return *x.R28
}
return 0
}
func (x *UserMipsFpregsEntry) GetR29() uint64 {
if x != nil && x.R29 != nil {
return *x.R29
}
return 0
}
func (x *UserMipsFpregsEntry) GetR30() uint64 {
if x != nil && x.R30 != nil {
return *x.R30
}
return 0
}
func (x *UserMipsFpregsEntry) GetR31() uint64 {
if x != nil && x.R31 != nil {
return *x.R31
}
return 0
}
func (x *UserMipsFpregsEntry) GetLo() uint64 {
if x != nil && x.Lo != nil {
return *x.Lo
}
return 0
}
func (x *UserMipsFpregsEntry) GetHi() uint64 {
if x != nil && x.Hi != nil {
return *x.Hi
}
return 0
}
func (x *UserMipsFpregsEntry) GetFpuFcr31() uint32 {
if x != nil && x.FpuFcr31 != nil {
return *x.FpuFcr31
}
return 0
}
func (x *UserMipsFpregsEntry) GetFpuId() uint32 {
if x != nil && x.FpuId != nil {
return *x.FpuId
}
return 0
}
type ThreadInfoMips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClearTidAddr *uint64 `protobuf:"varint,1,req,name=clear_tid_addr,json=clearTidAddr" json:"clear_tid_addr,omitempty"`
Tls *uint64 `protobuf:"varint,2,req,name=tls" json:"tls,omitempty"`
Gpregs *UserMipsRegsEntry `protobuf:"bytes,3,req,name=gpregs" json:"gpregs,omitempty"`
Fpregs *UserMipsFpregsEntry `protobuf:"bytes,4,req,name=fpregs" json:"fpregs,omitempty"`
}
func (x *ThreadInfoMips) Reset() {
*x = ThreadInfoMips{}
if protoimpl.UnsafeEnabled {
mi := &file_core_mips_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreadInfoMips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreadInfoMips) ProtoMessage() {}
func (x *ThreadInfoMips) ProtoReflect() protoreflect.Message {
mi := &file_core_mips_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreadInfoMips.ProtoReflect.Descriptor instead.
func (*ThreadInfoMips) Descriptor() ([]byte, []int) {
return file_core_mips_proto_rawDescGZIP(), []int{2}
}
func (x *ThreadInfoMips) GetClearTidAddr() uint64 {
if x != nil && x.ClearTidAddr != nil {
return *x.ClearTidAddr
}
return 0
}
func (x *ThreadInfoMips) GetTls() uint64 {
if x != nil && x.Tls != nil {
return *x.Tls
}
return 0
}
func (x *ThreadInfoMips) GetGpregs() *UserMipsRegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *ThreadInfoMips) GetFpregs() *UserMipsFpregsEntry {
if x != nil {
return x.Fpregs
}
return nil
}
var File_core_mips_proto protoreflect.FileDescriptor
var file_core_mips_proto_rawDesc = []byte{
0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x6d, 0x69, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xda, 0x05, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x70,
0x73, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x30, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x30, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x33, 0x18, 0x04, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x33, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x34, 0x18, 0x05, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x34, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x35, 0x18, 0x06, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x35, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x36, 0x18, 0x07, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x36, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x37, 0x18, 0x08, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x37, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x38, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x38, 0x12, 0x0e, 0x0a, 0x02,
0x72, 0x39, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x39, 0x12, 0x10, 0x0a, 0x03,
0x72, 0x31, 0x30, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x30, 0x12, 0x10,
0x0a, 0x03, 0x72, 0x31, 0x31, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x31,
0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x32, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72,
0x31, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x33, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x04, 0x52,
0x03, 0x72, 0x31, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x34, 0x18, 0x0f, 0x20, 0x02, 0x28,
0x04, 0x52, 0x03, 0x72, 0x31, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x35, 0x18, 0x10, 0x20,
0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x36, 0x18,
0x11, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x36, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31,
0x37, 0x18, 0x12, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x37, 0x12, 0x10, 0x0a, 0x03,
0x72, 0x31, 0x38, 0x18, 0x13, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x38, 0x12, 0x10,
0x0a, 0x03, 0x72, 0x31, 0x39, 0x18, 0x14, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x39,
0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x30, 0x18, 0x15, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72,
0x32, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x31, 0x18, 0x16, 0x20, 0x02, 0x28, 0x04, 0x52,
0x03, 0x72, 0x32, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x32, 0x18, 0x17, 0x20, 0x02, 0x28,
0x04, 0x52, 0x03, 0x72, 0x32, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x33, 0x18, 0x18, 0x20,
0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x34, 0x18,
0x19, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32,
0x35, 0x18, 0x1a, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x35, 0x12, 0x10, 0x0a, 0x03,
0x72, 0x32, 0x36, 0x18, 0x1b, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x36, 0x12, 0x10,
0x0a, 0x03, 0x72, 0x32, 0x37, 0x18, 0x1c, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x37,
0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x38, 0x18, 0x1d, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72,
0x32, 0x38, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x39, 0x18, 0x1e, 0x20, 0x02, 0x28, 0x04, 0x52,
0x03, 0x72, 0x32, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x33, 0x30, 0x18, 0x1f, 0x20, 0x02, 0x28,
0x04, 0x52, 0x03, 0x72, 0x33, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x33, 0x31, 0x18, 0x20, 0x20,
0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x33, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x21,
0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x22,
0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x68, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x70, 0x30, 0x5f,
0x65, 0x70, 0x63, 0x18, 0x23, 0x20, 0x02, 0x28, 0x04, 0x52, 0x06, 0x63, 0x70, 0x30, 0x45, 0x70,
0x63, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x70, 0x30, 0x5f, 0x62, 0x61, 0x64, 0x76, 0x61, 0x64, 0x64,
0x72, 0x18, 0x24, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x70, 0x30, 0x42, 0x61, 0x64, 0x76,
0x61, 0x64, 0x64, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x70, 0x30, 0x5f, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x25, 0x20, 0x02, 0x28, 0x04, 0x52, 0x09, 0x63, 0x70, 0x30, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x30, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65,
0x18, 0x26, 0x20, 0x02, 0x28, 0x04, 0x52, 0x08, 0x63, 0x70, 0x30, 0x43, 0x61, 0x75, 0x73, 0x65,
0x22, 0x98, 0x05, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x70, 0x73, 0x5f, 0x66,
0x70, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x30, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x30, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x31, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x32, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x33, 0x18, 0x04, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x34, 0x18, 0x05, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x34, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x35, 0x18, 0x06, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x35, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x36, 0x18, 0x07, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x36, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x37, 0x18, 0x08, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x37, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x38, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x38, 0x12, 0x0e, 0x0a, 0x02, 0x72,
0x39, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x72, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x72,
0x31, 0x30, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x30, 0x12, 0x10, 0x0a,
0x03, 0x72, 0x31, 0x31, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x31, 0x12,
0x10, 0x0a, 0x03, 0x72, 0x31, 0x32, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31,
0x32, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x33, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03,
0x72, 0x31, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x34, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x04,
0x52, 0x03, 0x72, 0x31, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x35, 0x18, 0x10, 0x20, 0x02,
0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x36, 0x18, 0x11,
0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x36, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x31, 0x37,
0x18, 0x12, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x37, 0x12, 0x10, 0x0a, 0x03, 0x72,
0x31, 0x38, 0x18, 0x13, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x38, 0x12, 0x10, 0x0a,
0x03, 0x72, 0x31, 0x39, 0x18, 0x14, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x31, 0x39, 0x12,
0x10, 0x0a, 0x03, 0x72, 0x32, 0x30, 0x18, 0x15, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32,
0x30, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x31, 0x18, 0x16, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03,
0x72, 0x32, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x32, 0x18, 0x17, 0x20, 0x02, 0x28, 0x04,
0x52, 0x03, 0x72, 0x32, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x33, 0x18, 0x18, 0x20, 0x02,
0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x34, 0x18, 0x19,
0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x35,
0x18, 0x1a, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x72,
0x32, 0x36, 0x18, 0x1b, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x36, 0x12, 0x10, 0x0a,
0x03, 0x72, 0x32, 0x37, 0x18, 0x1c, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32, 0x37, 0x12,
0x10, 0x0a, 0x03, 0x72, 0x32, 0x38, 0x18, 0x1d, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x72, 0x32,
0x38, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x32, 0x39, 0x18, 0x1e, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03,
0x72, 0x32, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x33, 0x30, 0x18, 0x1f, 0x20, 0x02, 0x28, 0x04,
0x52, 0x03, 0x72, 0x33, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x33, 0x31, 0x18, 0x20, 0x20, 0x02,
0x28, 0x04, 0x52, 0x03, 0x72, 0x33, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x21, 0x20,
0x02, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x22, 0x20,
0x02, 0x28, 0x04, 0x52, 0x02, 0x68, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x70, 0x75, 0x5f, 0x66,
0x63, 0x72, 0x33, 0x31, 0x18, 0x23, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x70, 0x75, 0x46,
0x63, 0x72, 0x33, 0x31, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x24,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x70, 0x75, 0x49, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x10,
0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6d, 0x69, 0x70, 0x73,
0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x64, 0x5f, 0x61, 0x64,
0x64, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52,
0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x10, 0x0a,
0x03, 0x74, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12,
0x39, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x70, 0x73,
0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02,
0x08, 0x01, 0x52, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x70,
0x72, 0x65, 0x67, 0x73, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x70, 0x73, 0x5f, 0x66, 0x70, 0x72, 0x65,
0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52,
0x06, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73,
}
var (
file_core_mips_proto_rawDescOnce sync.Once
file_core_mips_proto_rawDescData = file_core_mips_proto_rawDesc
)
func file_core_mips_proto_rawDescGZIP() []byte {
file_core_mips_proto_rawDescOnce.Do(func() {
file_core_mips_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_mips_proto_rawDescData)
})
return file_core_mips_proto_rawDescData
}
var file_core_mips_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_core_mips_proto_goTypes = []interface{}{
(*UserMipsRegsEntry)(nil), // 0: criu.user_mips_regs_entry
(*UserMipsFpregsEntry)(nil), // 1: criu.user_mips_fpregs_entry
(*ThreadInfoMips)(nil), // 2: criu.thread_info_mips
}
var file_core_mips_proto_depIdxs = []int32{
0, // 0: criu.thread_info_mips.gpregs:type_name -> criu.user_mips_regs_entry
1, // 1: criu.thread_info_mips.fpregs:type_name -> criu.user_mips_fpregs_entry
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_core_mips_proto_init() }
func file_core_mips_proto_init() {
if File_core_mips_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_core_mips_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserMipsRegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_mips_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserMipsFpregsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_mips_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadInfoMips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_mips_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_core_mips_proto_goTypes,
DependencyIndexes: file_core_mips_proto_depIdxs,
MessageInfos: file_core_mips_proto_msgTypes,
}.Build()
File_core_mips_proto = out.File
file_core_mips_proto_rawDesc = nil
file_core_mips_proto_goTypes = nil
file_core_mips_proto_depIdxs = nil
}
@@ -0,0 +1,93 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message user_mips_regs_entry {
required uint64 r0 = 1;
required uint64 r1 = 2;
required uint64 r2 = 3;
required uint64 r3 = 4;
required uint64 r4 = 5;
required uint64 r5 = 6;
required uint64 r6 = 7;
required uint64 r7 = 8;
required uint64 r8 = 9;
required uint64 r9 = 10;
required uint64 r10 = 11;
required uint64 r11 = 12;
required uint64 r12 = 13;
required uint64 r13 = 14;
required uint64 r14 = 15;
required uint64 r15 = 16;
required uint64 r16 = 17;
required uint64 r17 = 18;
required uint64 r18 = 19;
required uint64 r19 = 20;
required uint64 r20 = 21;
required uint64 r21 = 22;
required uint64 r22 = 23;
required uint64 r23 = 24;
required uint64 r24 = 25;
required uint64 r25 = 26;
required uint64 r26 = 27;
required uint64 r27 = 28;
required uint64 r28 = 29;
required uint64 r29 = 30;
required uint64 r30 = 31;
required uint64 r31 = 32;
required uint64 lo = 33;
required uint64 hi = 34;
required uint64 cp0_epc = 35;
required uint64 cp0_badvaddr = 36;
required uint64 cp0_status = 37;
required uint64 cp0_cause = 38;
}
message user_mips_fpregs_entry {
required uint64 r0 = 1;
required uint64 r1 = 2;
required uint64 r2 = 3;
required uint64 r3 = 4;
required uint64 r4 = 5;
required uint64 r5 = 6;
required uint64 r6 = 7;
required uint64 r7 = 8;
required uint64 r8 = 9;
required uint64 r9 = 10;
required uint64 r10 = 11;
required uint64 r11 = 12;
required uint64 r12 = 13;
required uint64 r13 = 14;
required uint64 r14 = 15;
required uint64 r15 = 16;
required uint64 r16 = 17;
required uint64 r17 = 18;
required uint64 r18 = 19;
required uint64 r19 = 20;
required uint64 r20 = 21;
required uint64 r21 = 22;
required uint64 r22 = 23;
required uint64 r23 = 24;
required uint64 r24 = 25;
required uint64 r25 = 26;
required uint64 r26 = 27;
required uint64 r27 = 28;
required uint64 r28 = 29;
required uint64 r29 = 30;
required uint64 r30 = 31;
required uint64 r31 = 32;
required uint64 lo = 33;
required uint64 hi = 34;
required uint32 fpu_fcr31 = 35;
required uint32 fpu_id = 36;
}
message thread_info_mips {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required uint64 tls = 2;
required user_mips_regs_entry gpregs = 3[(criu).hex = true];
required user_mips_fpregs_entry fpregs = 4[(criu).hex = true];
}
@@ -0,0 +1,698 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: core-ppc64.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UserPpc64RegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Following is the list of registers starting at r0.
Gpr []uint64 `protobuf:"varint,1,rep,name=gpr" json:"gpr,omitempty"`
Nip *uint64 `protobuf:"varint,2,req,name=nip" json:"nip,omitempty"`
Msr *uint64 `protobuf:"varint,3,req,name=msr" json:"msr,omitempty"`
OrigGpr3 *uint64 `protobuf:"varint,4,req,name=orig_gpr3,json=origGpr3" json:"orig_gpr3,omitempty"`
Ctr *uint64 `protobuf:"varint,5,req,name=ctr" json:"ctr,omitempty"`
Link *uint64 `protobuf:"varint,6,req,name=link" json:"link,omitempty"`
Xer *uint64 `protobuf:"varint,7,req,name=xer" json:"xer,omitempty"`
Ccr *uint64 `protobuf:"varint,8,req,name=ccr" json:"ccr,omitempty"`
Trap *uint64 `protobuf:"varint,9,req,name=trap" json:"trap,omitempty"`
// For Transactional memory support since P8
Texasr *uint64 `protobuf:"varint,10,opt,name=texasr" json:"texasr,omitempty"`
Tfhar *uint64 `protobuf:"varint,11,opt,name=tfhar" json:"tfhar,omitempty"`
Tfiar *uint64 `protobuf:"varint,12,opt,name=tfiar" json:"tfiar,omitempty"`
}
func (x *UserPpc64RegsEntry) Reset() {
*x = UserPpc64RegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserPpc64RegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserPpc64RegsEntry) ProtoMessage() {}
func (x *UserPpc64RegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserPpc64RegsEntry.ProtoReflect.Descriptor instead.
func (*UserPpc64RegsEntry) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{0}
}
func (x *UserPpc64RegsEntry) GetGpr() []uint64 {
if x != nil {
return x.Gpr
}
return nil
}
func (x *UserPpc64RegsEntry) GetNip() uint64 {
if x != nil && x.Nip != nil {
return *x.Nip
}
return 0
}
func (x *UserPpc64RegsEntry) GetMsr() uint64 {
if x != nil && x.Msr != nil {
return *x.Msr
}
return 0
}
func (x *UserPpc64RegsEntry) GetOrigGpr3() uint64 {
if x != nil && x.OrigGpr3 != nil {
return *x.OrigGpr3
}
return 0
}
func (x *UserPpc64RegsEntry) GetCtr() uint64 {
if x != nil && x.Ctr != nil {
return *x.Ctr
}
return 0
}
func (x *UserPpc64RegsEntry) GetLink() uint64 {
if x != nil && x.Link != nil {
return *x.Link
}
return 0
}
func (x *UserPpc64RegsEntry) GetXer() uint64 {
if x != nil && x.Xer != nil {
return *x.Xer
}
return 0
}
func (x *UserPpc64RegsEntry) GetCcr() uint64 {
if x != nil && x.Ccr != nil {
return *x.Ccr
}
return 0
}
func (x *UserPpc64RegsEntry) GetTrap() uint64 {
if x != nil && x.Trap != nil {
return *x.Trap
}
return 0
}
func (x *UserPpc64RegsEntry) GetTexasr() uint64 {
if x != nil && x.Texasr != nil {
return *x.Texasr
}
return 0
}
func (x *UserPpc64RegsEntry) GetTfhar() uint64 {
if x != nil && x.Tfhar != nil {
return *x.Tfhar
}
return 0
}
func (x *UserPpc64RegsEntry) GetTfiar() uint64 {
if x != nil && x.Tfiar != nil {
return *x.Tfiar
}
return 0
}
type UserPpc64FpstateEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Following is the list of registers starting at fpr0
Fpregs []uint64 `protobuf:"varint,1,rep,name=fpregs" json:"fpregs,omitempty"`
}
func (x *UserPpc64FpstateEntry) Reset() {
*x = UserPpc64FpstateEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserPpc64FpstateEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserPpc64FpstateEntry) ProtoMessage() {}
func (x *UserPpc64FpstateEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserPpc64FpstateEntry.ProtoReflect.Descriptor instead.
func (*UserPpc64FpstateEntry) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{1}
}
func (x *UserPpc64FpstateEntry) GetFpregs() []uint64 {
if x != nil {
return x.Fpregs
}
return nil
}
type UserPpc64VrstateEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Altivec registers
// The vector registers are 128bit registers (VSR[32..63]).
// The following vregs entry will store first the high part then the
// low one:
//
// VR0 = vrregs[0] << 64 | vrregs[1];
// VR1 = vrregs[2] << 64 | vrregs[3];
// ..
//
// The last entry stores in a 128bit field the VSCR which is a 32bit
// value returned by the kernel in a 128 field.
Vrregs []uint64 `protobuf:"varint,1,rep,name=vrregs" json:"vrregs,omitempty"`
Vrsave *uint32 `protobuf:"varint,2,req,name=vrsave" json:"vrsave,omitempty"`
}
func (x *UserPpc64VrstateEntry) Reset() {
*x = UserPpc64VrstateEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserPpc64VrstateEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserPpc64VrstateEntry) ProtoMessage() {}
func (x *UserPpc64VrstateEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserPpc64VrstateEntry.ProtoReflect.Descriptor instead.
func (*UserPpc64VrstateEntry) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{2}
}
func (x *UserPpc64VrstateEntry) GetVrregs() []uint64 {
if x != nil {
return x.Vrregs
}
return nil
}
func (x *UserPpc64VrstateEntry) GetVrsave() uint32 {
if x != nil && x.Vrsave != nil {
return *x.Vrsave
}
return 0
}
type UserPpc64VsxstateEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// VSX registers
// The vector-scale registers are 128bit registers (VSR[0..64]).
// Since there is an overlapping over the VSX registers by the FPR and
// the Altivec registers, only the lower part of the first 32 VSX
// registers have to be saved.
Vsxregs []uint64 `protobuf:"varint,1,rep,name=vsxregs" json:"vsxregs,omitempty"`
}
func (x *UserPpc64VsxstateEntry) Reset() {
*x = UserPpc64VsxstateEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserPpc64VsxstateEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserPpc64VsxstateEntry) ProtoMessage() {}
func (x *UserPpc64VsxstateEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserPpc64VsxstateEntry.ProtoReflect.Descriptor instead.
func (*UserPpc64VsxstateEntry) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{3}
}
func (x *UserPpc64VsxstateEntry) GetVsxregs() []uint64 {
if x != nil {
return x.Vsxregs
}
return nil
}
// Transactional memory operation's state
type UserPpc64TmRegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Gpregs *UserPpc64RegsEntry `protobuf:"bytes,1,req,name=gpregs" json:"gpregs,omitempty"`
Fpstate *UserPpc64FpstateEntry `protobuf:"bytes,2,opt,name=fpstate" json:"fpstate,omitempty"`
Vrstate *UserPpc64VrstateEntry `protobuf:"bytes,3,opt,name=vrstate" json:"vrstate,omitempty"`
Vsxstate *UserPpc64VsxstateEntry `protobuf:"bytes,4,opt,name=vsxstate" json:"vsxstate,omitempty"`
}
func (x *UserPpc64TmRegsEntry) Reset() {
*x = UserPpc64TmRegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserPpc64TmRegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserPpc64TmRegsEntry) ProtoMessage() {}
func (x *UserPpc64TmRegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserPpc64TmRegsEntry.ProtoReflect.Descriptor instead.
func (*UserPpc64TmRegsEntry) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{4}
}
func (x *UserPpc64TmRegsEntry) GetGpregs() *UserPpc64RegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *UserPpc64TmRegsEntry) GetFpstate() *UserPpc64FpstateEntry {
if x != nil {
return x.Fpstate
}
return nil
}
func (x *UserPpc64TmRegsEntry) GetVrstate() *UserPpc64VrstateEntry {
if x != nil {
return x.Vrstate
}
return nil
}
func (x *UserPpc64TmRegsEntry) GetVsxstate() *UserPpc64VsxstateEntry {
if x != nil {
return x.Vsxstate
}
return nil
}
type ThreadInfoPpc64 struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClearTidAddr *uint64 `protobuf:"varint,1,req,name=clear_tid_addr,json=clearTidAddr" json:"clear_tid_addr,omitempty"`
Gpregs *UserPpc64RegsEntry `protobuf:"bytes,2,req,name=gpregs" json:"gpregs,omitempty"`
Fpstate *UserPpc64FpstateEntry `protobuf:"bytes,3,opt,name=fpstate" json:"fpstate,omitempty"`
Vrstate *UserPpc64VrstateEntry `protobuf:"bytes,4,opt,name=vrstate" json:"vrstate,omitempty"`
Vsxstate *UserPpc64VsxstateEntry `protobuf:"bytes,5,opt,name=vsxstate" json:"vsxstate,omitempty"`
Tmstate *UserPpc64TmRegsEntry `protobuf:"bytes,6,opt,name=tmstate" json:"tmstate,omitempty"`
}
func (x *ThreadInfoPpc64) Reset() {
*x = ThreadInfoPpc64{}
if protoimpl.UnsafeEnabled {
mi := &file_core_ppc64_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreadInfoPpc64) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreadInfoPpc64) ProtoMessage() {}
func (x *ThreadInfoPpc64) ProtoReflect() protoreflect.Message {
mi := &file_core_ppc64_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreadInfoPpc64.ProtoReflect.Descriptor instead.
func (*ThreadInfoPpc64) Descriptor() ([]byte, []int) {
return file_core_ppc64_proto_rawDescGZIP(), []int{5}
}
func (x *ThreadInfoPpc64) GetClearTidAddr() uint64 {
if x != nil && x.ClearTidAddr != nil {
return *x.ClearTidAddr
}
return 0
}
func (x *ThreadInfoPpc64) GetGpregs() *UserPpc64RegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *ThreadInfoPpc64) GetFpstate() *UserPpc64FpstateEntry {
if x != nil {
return x.Fpstate
}
return nil
}
func (x *ThreadInfoPpc64) GetVrstate() *UserPpc64VrstateEntry {
if x != nil {
return x.Vrstate
}
return nil
}
func (x *ThreadInfoPpc64) GetVsxstate() *UserPpc64VsxstateEntry {
if x != nil {
return x.Vsxstate
}
return nil
}
func (x *ThreadInfoPpc64) GetTmstate() *UserPpc64TmRegsEntry {
if x != nil {
return x.Tmstate
}
return nil
}
var File_core_ppc64_proto protoreflect.FileDescriptor
var file_core_ppc64_proto_rawDesc = []byte{
0x0a, 0x10, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x70, 0x70, 0x63, 0x36, 0x34, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x02, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70,
0x63, 0x36, 0x34, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x67, 0x70, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x67, 0x70, 0x72,
0x12, 0x10, 0x0a, 0x03, 0x6e, 0x69, 0x70, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x6e,
0x69, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x72, 0x18, 0x03, 0x20, 0x02, 0x28, 0x04, 0x52,
0x03, 0x6d, 0x73, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x5f, 0x67, 0x70, 0x72,
0x33, 0x18, 0x04, 0x20, 0x02, 0x28, 0x04, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x47, 0x70, 0x72,
0x33, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x72, 0x18, 0x05, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03,
0x63, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x02, 0x28,
0x04, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x78, 0x65, 0x72, 0x18, 0x07,
0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x78, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x63, 0x72,
0x18, 0x08, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x63, 0x63, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x72, 0x61, 0x70, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x04, 0x74, 0x72, 0x61, 0x70, 0x12,
0x16, 0x0a, 0x06, 0x74, 0x65, 0x78, 0x61, 0x73, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52,
0x06, 0x74, 0x65, 0x78, 0x61, 0x73, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x66, 0x68, 0x61, 0x72,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x66, 0x68, 0x61, 0x72, 0x12, 0x14, 0x0a,
0x05, 0x74, 0x66, 0x69, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x66,
0x69, 0x61, 0x72, 0x22, 0x32, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36,
0x34, 0x5f, 0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x16, 0x0a, 0x06, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52,
0x06, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x22, 0x4a, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f,
0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x72, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x72, 0x72, 0x65, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76,
0x72, 0x73, 0x61, 0x76, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x72, 0x73,
0x61, 0x76, 0x65, 0x22, 0x35, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36,
0x34, 0x5f, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x18, 0x0a, 0x07, 0x76, 0x73, 0x78, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x04, 0x52, 0x07, 0x76, 0x73, 0x78, 0x72, 0x65, 0x67, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x18, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x74, 0x6d, 0x5f, 0x72, 0x65, 0x67,
0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67,
0x73, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x07,
0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f,
0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66,
0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74, 0x65,
0x12, 0x3b, 0x0a, 0x08, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70,
0x70, 0x63, 0x36, 0x34, 0x5f, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x02,
0x0a, 0x11, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70, 0x70,
0x63, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x64,
0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02,
0x08, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x64, 0x41, 0x64, 0x64, 0x72,
0x12, 0x3a, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b,
0x32, 0x1b, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63,
0x36, 0x34, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2,
0x3f, 0x02, 0x08, 0x01, 0x52, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x07,
0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f,
0x66, 0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66,
0x70, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, 0x72, 0x73, 0x74, 0x61, 0x74, 0x65,
0x12, 0x3b, 0x0a, 0x08, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70,
0x70, 0x63, 0x36, 0x34, 0x5f, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x76, 0x73, 0x78, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a,
0x07, 0x74, 0x6d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34,
0x5f, 0x74, 0x6d, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
0x74, 0x6d, 0x73, 0x74, 0x61, 0x74, 0x65,
}
var (
file_core_ppc64_proto_rawDescOnce sync.Once
file_core_ppc64_proto_rawDescData = file_core_ppc64_proto_rawDesc
)
func file_core_ppc64_proto_rawDescGZIP() []byte {
file_core_ppc64_proto_rawDescOnce.Do(func() {
file_core_ppc64_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_ppc64_proto_rawDescData)
})
return file_core_ppc64_proto_rawDescData
}
var file_core_ppc64_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_core_ppc64_proto_goTypes = []interface{}{
(*UserPpc64RegsEntry)(nil), // 0: criu.user_ppc64_regs_entry
(*UserPpc64FpstateEntry)(nil), // 1: criu.user_ppc64_fpstate_entry
(*UserPpc64VrstateEntry)(nil), // 2: criu.user_ppc64_vrstate_entry
(*UserPpc64VsxstateEntry)(nil), // 3: criu.user_ppc64_vsxstate_entry
(*UserPpc64TmRegsEntry)(nil), // 4: criu.user_ppc64_tm_regs_entry
(*ThreadInfoPpc64)(nil), // 5: criu.thread_info_ppc64
}
var file_core_ppc64_proto_depIdxs = []int32{
0, // 0: criu.user_ppc64_tm_regs_entry.gpregs:type_name -> criu.user_ppc64_regs_entry
1, // 1: criu.user_ppc64_tm_regs_entry.fpstate:type_name -> criu.user_ppc64_fpstate_entry
2, // 2: criu.user_ppc64_tm_regs_entry.vrstate:type_name -> criu.user_ppc64_vrstate_entry
3, // 3: criu.user_ppc64_tm_regs_entry.vsxstate:type_name -> criu.user_ppc64_vsxstate_entry
0, // 4: criu.thread_info_ppc64.gpregs:type_name -> criu.user_ppc64_regs_entry
1, // 5: criu.thread_info_ppc64.fpstate:type_name -> criu.user_ppc64_fpstate_entry
2, // 6: criu.thread_info_ppc64.vrstate:type_name -> criu.user_ppc64_vrstate_entry
3, // 7: criu.thread_info_ppc64.vsxstate:type_name -> criu.user_ppc64_vsxstate_entry
4, // 8: criu.thread_info_ppc64.tmstate:type_name -> criu.user_ppc64_tm_regs_entry
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_core_ppc64_proto_init() }
func file_core_ppc64_proto_init() {
if File_core_ppc64_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_core_ppc64_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserPpc64RegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_ppc64_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserPpc64FpstateEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_ppc64_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserPpc64VrstateEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_ppc64_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserPpc64VsxstateEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_ppc64_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserPpc64TmRegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_ppc64_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadInfoPpc64); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_ppc64_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_core_ppc64_proto_goTypes,
DependencyIndexes: file_core_ppc64_proto_depIdxs,
MessageInfos: file_core_ppc64_proto_msgTypes,
}.Build()
File_core_ppc64_proto = out.File
file_core_ppc64_proto_rawDesc = nil
file_core_ppc64_proto_goTypes = nil
file_core_ppc64_proto_depIdxs = nil
}
@@ -0,0 +1,74 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message user_ppc64_regs_entry {
/* Following is the list of registers starting at r0. */
repeated uint64 gpr = 1;
required uint64 nip = 2;
required uint64 msr = 3;
required uint64 orig_gpr3 = 4;
required uint64 ctr = 5;
required uint64 link = 6;
required uint64 xer = 7;
required uint64 ccr = 8;
required uint64 trap = 9;
/* For Transactional memory support since P8 */
optional uint64 texasr = 10;
optional uint64 tfhar = 11;
optional uint64 tfiar = 12;
}
message user_ppc64_fpstate_entry {
/* Following is the list of registers starting at fpr0 */
repeated uint64 fpregs = 1;
}
message user_ppc64_vrstate_entry {
/*
* Altivec registers
* The vector registers are 128bit registers (VSR[32..63]).
* The following vregs entry will store first the high part then the
* low one:
* VR0 = vrregs[0] << 64 | vrregs[1];
* VR1 = vrregs[2] << 64 | vrregs[3];
* ..
* The last entry stores in a 128bit field the VSCR which is a 32bit
* value returned by the kernel in a 128 field.
*/
repeated uint64 vrregs = 1;
required uint32 vrsave = 2;
}
message user_ppc64_vsxstate_entry {
/*
* VSX registers
* The vector-scale registers are 128bit registers (VSR[0..64]).
* Since there is an overlapping over the VSX registers by the FPR and
* the Altivec registers, only the lower part of the first 32 VSX
* registers have to be saved.
*/
repeated uint64 vsxregs = 1;
}
/*
* Transactional memory operation's state
*/
message user_ppc64_tm_regs_entry {
required user_ppc64_regs_entry gpregs = 1;
optional user_ppc64_fpstate_entry fpstate = 2;
optional user_ppc64_vrstate_entry vrstate = 3;
optional user_ppc64_vsxstate_entry vsxstate = 4;
}
message thread_info_ppc64 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required user_ppc64_regs_entry gpregs = 2[(criu).hex = true];
optional user_ppc64_fpstate_entry fpstate = 3;
optional user_ppc64_vrstate_entry vrstate = 4;
optional user_ppc64_vsxstate_entry vsxstate = 5;
optional user_ppc64_tm_regs_entry tmstate = 6;
}
@@ -0,0 +1,683 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: core-s390.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UserS390RegsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PswMask *uint64 `protobuf:"varint,1,req,name=psw_mask,json=pswMask" json:"psw_mask,omitempty"`
PswAddr *uint64 `protobuf:"varint,2,req,name=psw_addr,json=pswAddr" json:"psw_addr,omitempty"`
Gprs []uint64 `protobuf:"varint,3,rep,name=gprs" json:"gprs,omitempty"`
Acrs []uint32 `protobuf:"varint,4,rep,name=acrs" json:"acrs,omitempty"`
OrigGpr2 *uint64 `protobuf:"varint,5,req,name=orig_gpr2,json=origGpr2" json:"orig_gpr2,omitempty"`
SystemCall *uint32 `protobuf:"varint,6,req,name=system_call,json=systemCall" json:"system_call,omitempty"`
}
func (x *UserS390RegsEntry) Reset() {
*x = UserS390RegsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390RegsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390RegsEntry) ProtoMessage() {}
func (x *UserS390RegsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390RegsEntry.ProtoReflect.Descriptor instead.
func (*UserS390RegsEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{0}
}
func (x *UserS390RegsEntry) GetPswMask() uint64 {
if x != nil && x.PswMask != nil {
return *x.PswMask
}
return 0
}
func (x *UserS390RegsEntry) GetPswAddr() uint64 {
if x != nil && x.PswAddr != nil {
return *x.PswAddr
}
return 0
}
func (x *UserS390RegsEntry) GetGprs() []uint64 {
if x != nil {
return x.Gprs
}
return nil
}
func (x *UserS390RegsEntry) GetAcrs() []uint32 {
if x != nil {
return x.Acrs
}
return nil
}
func (x *UserS390RegsEntry) GetOrigGpr2() uint64 {
if x != nil && x.OrigGpr2 != nil {
return *x.OrigGpr2
}
return 0
}
func (x *UserS390RegsEntry) GetSystemCall() uint32 {
if x != nil && x.SystemCall != nil {
return *x.SystemCall
}
return 0
}
type UserS390VxrsLowEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Regs []uint64 `protobuf:"varint,1,rep,name=regs" json:"regs,omitempty"`
}
func (x *UserS390VxrsLowEntry) Reset() {
*x = UserS390VxrsLowEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390VxrsLowEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390VxrsLowEntry) ProtoMessage() {}
func (x *UserS390VxrsLowEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390VxrsLowEntry.ProtoReflect.Descriptor instead.
func (*UserS390VxrsLowEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{1}
}
func (x *UserS390VxrsLowEntry) GetRegs() []uint64 {
if x != nil {
return x.Regs
}
return nil
}
// The vxrs_high registers have 128 bit:
//
// vxrs_high_0 = regs[0] << 64 | regs[1];
// vxrs_high_1 = regs[2] << 64 | regs[3];
type UserS390VxrsHighEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Regs []uint64 `protobuf:"varint,1,rep,name=regs" json:"regs,omitempty"`
}
func (x *UserS390VxrsHighEntry) Reset() {
*x = UserS390VxrsHighEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390VxrsHighEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390VxrsHighEntry) ProtoMessage() {}
func (x *UserS390VxrsHighEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390VxrsHighEntry.ProtoReflect.Descriptor instead.
func (*UserS390VxrsHighEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{2}
}
func (x *UserS390VxrsHighEntry) GetRegs() []uint64 {
if x != nil {
return x.Regs
}
return nil
}
type UserS390FpregsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Fpc *uint32 `protobuf:"varint,1,req,name=fpc" json:"fpc,omitempty"`
Fprs []uint64 `protobuf:"varint,2,rep,name=fprs" json:"fprs,omitempty"`
}
func (x *UserS390FpregsEntry) Reset() {
*x = UserS390FpregsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390FpregsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390FpregsEntry) ProtoMessage() {}
func (x *UserS390FpregsEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390FpregsEntry.ProtoReflect.Descriptor instead.
func (*UserS390FpregsEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{3}
}
func (x *UserS390FpregsEntry) GetFpc() uint32 {
if x != nil && x.Fpc != nil {
return *x.Fpc
}
return 0
}
func (x *UserS390FpregsEntry) GetFprs() []uint64 {
if x != nil {
return x.Fprs
}
return nil
}
type UserS390GsCbEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Regs []uint64 `protobuf:"varint,1,rep,name=regs" json:"regs,omitempty"`
}
func (x *UserS390GsCbEntry) Reset() {
*x = UserS390GsCbEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390GsCbEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390GsCbEntry) ProtoMessage() {}
func (x *UserS390GsCbEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390GsCbEntry.ProtoReflect.Descriptor instead.
func (*UserS390GsCbEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{4}
}
func (x *UserS390GsCbEntry) GetRegs() []uint64 {
if x != nil {
return x.Regs
}
return nil
}
type UserS390RiEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RiOn *uint32 `protobuf:"varint,1,req,name=ri_on,json=riOn" json:"ri_on,omitempty"`
Regs []uint64 `protobuf:"varint,2,rep,name=regs" json:"regs,omitempty"`
}
func (x *UserS390RiEntry) Reset() {
*x = UserS390RiEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserS390RiEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserS390RiEntry) ProtoMessage() {}
func (x *UserS390RiEntry) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserS390RiEntry.ProtoReflect.Descriptor instead.
func (*UserS390RiEntry) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{5}
}
func (x *UserS390RiEntry) GetRiOn() uint32 {
if x != nil && x.RiOn != nil {
return *x.RiOn
}
return 0
}
func (x *UserS390RiEntry) GetRegs() []uint64 {
if x != nil {
return x.Regs
}
return nil
}
type ThreadInfoS390 struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClearTidAddr *uint64 `protobuf:"varint,1,req,name=clear_tid_addr,json=clearTidAddr" json:"clear_tid_addr,omitempty"`
Gpregs *UserS390RegsEntry `protobuf:"bytes,2,req,name=gpregs" json:"gpregs,omitempty"`
Fpregs *UserS390FpregsEntry `protobuf:"bytes,3,req,name=fpregs" json:"fpregs,omitempty"`
VxrsLow *UserS390VxrsLowEntry `protobuf:"bytes,4,opt,name=vxrs_low,json=vxrsLow" json:"vxrs_low,omitempty"`
VxrsHigh *UserS390VxrsHighEntry `protobuf:"bytes,5,opt,name=vxrs_high,json=vxrsHigh" json:"vxrs_high,omitempty"`
GsCb *UserS390GsCbEntry `protobuf:"bytes,6,opt,name=gs_cb,json=gsCb" json:"gs_cb,omitempty"`
GsBc *UserS390GsCbEntry `protobuf:"bytes,7,opt,name=gs_bc,json=gsBc" json:"gs_bc,omitempty"`
RiCb *UserS390RiEntry `protobuf:"bytes,8,opt,name=ri_cb,json=riCb" json:"ri_cb,omitempty"`
}
func (x *ThreadInfoS390) Reset() {
*x = ThreadInfoS390{}
if protoimpl.UnsafeEnabled {
mi := &file_core_s390_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ThreadInfoS390) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ThreadInfoS390) ProtoMessage() {}
func (x *ThreadInfoS390) ProtoReflect() protoreflect.Message {
mi := &file_core_s390_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ThreadInfoS390.ProtoReflect.Descriptor instead.
func (*ThreadInfoS390) Descriptor() ([]byte, []int) {
return file_core_s390_proto_rawDescGZIP(), []int{6}
}
func (x *ThreadInfoS390) GetClearTidAddr() uint64 {
if x != nil && x.ClearTidAddr != nil {
return *x.ClearTidAddr
}
return 0
}
func (x *ThreadInfoS390) GetGpregs() *UserS390RegsEntry {
if x != nil {
return x.Gpregs
}
return nil
}
func (x *ThreadInfoS390) GetFpregs() *UserS390FpregsEntry {
if x != nil {
return x.Fpregs
}
return nil
}
func (x *ThreadInfoS390) GetVxrsLow() *UserS390VxrsLowEntry {
if x != nil {
return x.VxrsLow
}
return nil
}
func (x *ThreadInfoS390) GetVxrsHigh() *UserS390VxrsHighEntry {
if x != nil {
return x.VxrsHigh
}
return nil
}
func (x *ThreadInfoS390) GetGsCb() *UserS390GsCbEntry {
if x != nil {
return x.GsCb
}
return nil
}
func (x *ThreadInfoS390) GetGsBc() *UserS390GsCbEntry {
if x != nil {
return x.GsBc
}
return nil
}
func (x *ThreadInfoS390) GetRiCb() *UserS390RiEntry {
if x != nil {
return x.RiCb
}
return nil
}
var File_core_s390_proto protoreflect.FileDescriptor
var file_core_s390_proto_rawDesc = []byte{
0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x73, 0x33, 0x39, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x01, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x33, 0x39,
0x30, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08,
0x70, 0x73, 0x77, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07,
0x70, 0x73, 0x77, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x73, 0x77, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07, 0x70, 0x73, 0x77, 0x41, 0x64,
0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x70, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04,
0x52, 0x04, 0x67, 0x70, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x63, 0x72, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x63, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72,
0x69, 0x67, 0x5f, 0x67, 0x70, 0x72, 0x32, 0x18, 0x05, 0x20, 0x02, 0x28, 0x04, 0x52, 0x08, 0x6f,
0x72, 0x69, 0x67, 0x47, 0x70, 0x72, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x79,
0x73, 0x74, 0x65, 0x6d, 0x43, 0x61, 0x6c, 0x6c, 0x22, 0x2e, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72,
0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x04, 0x52, 0x04, 0x72, 0x65, 0x67, 0x73, 0x22, 0x2f, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72,
0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x04, 0x52, 0x04, 0x72, 0x65, 0x67, 0x73, 0x22, 0x3e, 0x0a, 0x16, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x70, 0x63, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x03, 0x66, 0x70, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x70, 0x72, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x04, 0x52, 0x04, 0x66, 0x70, 0x72, 0x73, 0x22, 0x2b, 0x0a, 0x15, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x67, 0x73, 0x5f, 0x63, 0x62, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04,
0x52, 0x04, 0x72, 0x65, 0x67, 0x73, 0x22, 0x3d, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73,
0x33, 0x39, 0x30, 0x5f, 0x72, 0x69, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x13, 0x0a, 0x05,
0x72, 0x69, 0x5f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x69, 0x4f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52,
0x04, 0x72, 0x65, 0x67, 0x73, 0x22, 0xe6, 0x03, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c,
0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x02,
0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72,
0x54, 0x69, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x67, 0x70, 0x72, 0x65, 0x67,
0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x06, 0x67, 0x70, 0x72, 0x65,
0x67, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20, 0x02,
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73,
0x33, 0x39, 0x30, 0x5f, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x06, 0x66, 0x70, 0x72, 0x65, 0x67, 0x73, 0x12,
0x40, 0x0a, 0x08, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x33,
0x39, 0x30, 0x5f, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x07, 0x76, 0x78, 0x72, 0x73, 0x4c, 0x6f,
0x77, 0x12, 0x43, 0x0a, 0x09, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72,
0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x76, 0x78, 0x72, 0x73, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x08, 0x76, 0x78,
0x72, 0x73, 0x48, 0x69, 0x67, 0x68, 0x12, 0x37, 0x0a, 0x05, 0x67, 0x73, 0x5f, 0x63, 0x62, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65,
0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x67, 0x73, 0x5f, 0x63, 0x62, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x04, 0x67, 0x73, 0x43, 0x62, 0x12,
0x37, 0x0a, 0x05, 0x67, 0x73, 0x5f, 0x62, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f,
0x67, 0x73, 0x5f, 0x63, 0x62, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02,
0x08, 0x01, 0x52, 0x04, 0x67, 0x73, 0x42, 0x63, 0x12, 0x34, 0x0a, 0x05, 0x72, 0x69, 0x5f, 0x63,
0x62, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75,
0x73, 0x65, 0x72, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x72, 0x69, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x04, 0x72, 0x69, 0x43, 0x62,
}
var (
file_core_s390_proto_rawDescOnce sync.Once
file_core_s390_proto_rawDescData = file_core_s390_proto_rawDesc
)
func file_core_s390_proto_rawDescGZIP() []byte {
file_core_s390_proto_rawDescOnce.Do(func() {
file_core_s390_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_s390_proto_rawDescData)
})
return file_core_s390_proto_rawDescData
}
var file_core_s390_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_core_s390_proto_goTypes = []interface{}{
(*UserS390RegsEntry)(nil), // 0: criu.user_s390_regs_entry
(*UserS390VxrsLowEntry)(nil), // 1: criu.user_s390_vxrs_low_entry
(*UserS390VxrsHighEntry)(nil), // 2: criu.user_s390_vxrs_high_entry
(*UserS390FpregsEntry)(nil), // 3: criu.user_s390_fpregs_entry
(*UserS390GsCbEntry)(nil), // 4: criu.user_s390_gs_cb_entry
(*UserS390RiEntry)(nil), // 5: criu.user_s390_ri_entry
(*ThreadInfoS390)(nil), // 6: criu.thread_info_s390
}
var file_core_s390_proto_depIdxs = []int32{
0, // 0: criu.thread_info_s390.gpregs:type_name -> criu.user_s390_regs_entry
3, // 1: criu.thread_info_s390.fpregs:type_name -> criu.user_s390_fpregs_entry
1, // 2: criu.thread_info_s390.vxrs_low:type_name -> criu.user_s390_vxrs_low_entry
2, // 3: criu.thread_info_s390.vxrs_high:type_name -> criu.user_s390_vxrs_high_entry
4, // 4: criu.thread_info_s390.gs_cb:type_name -> criu.user_s390_gs_cb_entry
4, // 5: criu.thread_info_s390.gs_bc:type_name -> criu.user_s390_gs_cb_entry
5, // 6: criu.thread_info_s390.ri_cb:type_name -> criu.user_s390_ri_entry
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_core_s390_proto_init() }
func file_core_s390_proto_init() {
if File_core_s390_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_core_s390_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390RegsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390VxrsLowEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390VxrsHighEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390FpregsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390GsCbEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserS390RiEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_s390_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ThreadInfoS390); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_s390_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_core_s390_proto_goTypes,
DependencyIndexes: file_core_s390_proto_depIdxs,
MessageInfos: file_core_s390_proto_msgTypes,
}.Build()
File_core_s390_proto = out.File
file_core_s390_proto_rawDesc = nil
file_core_s390_proto_goTypes = nil
file_core_s390_proto_depIdxs = nil
}
@@ -0,0 +1,54 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message user_s390_regs_entry {
required uint64 psw_mask = 1;
required uint64 psw_addr = 2;
repeated uint64 gprs = 3;
repeated uint32 acrs = 4;
required uint64 orig_gpr2 = 5;
required uint32 system_call = 6;
}
message user_s390_vxrs_low_entry {
repeated uint64 regs = 1;
}
/*
* The vxrs_high registers have 128 bit:
*
* vxrs_high_0 = regs[0] << 64 | regs[1];
* vxrs_high_1 = regs[2] << 64 | regs[3];
*/
message user_s390_vxrs_high_entry {
repeated uint64 regs = 1;
}
message user_s390_fpregs_entry {
required uint32 fpc = 1;
repeated uint64 fprs = 2;
}
message user_s390_gs_cb_entry {
repeated uint64 regs = 1;
}
message user_s390_ri_entry {
required uint32 ri_on = 1;
repeated uint64 regs = 2;
}
message thread_info_s390 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required user_s390_regs_entry gpregs = 2[(criu).hex = true];
required user_s390_fpregs_entry fpregs = 3[(criu).hex = true];
optional user_s390_vxrs_low_entry vxrs_low = 4[(criu).hex = true];
optional user_s390_vxrs_high_entry vxrs_high = 5[(criu).hex = true];
optional user_s390_gs_cb_entry gs_cb = 6[(criu).hex = true];
optional user_s390_gs_cb_entry gs_bc = 7[(criu).hex = true];
optional user_s390_ri_entry ri_cb = 8[(criu).hex = true];
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,111 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
enum user_x86_regs_mode {
NATIVE = 1;
COMPAT = 2;
}
/* Reusing entry for both 64 and 32 bits register sets */
message user_x86_regs_entry {
required uint64 r15 = 1;
required uint64 r14 = 2;
required uint64 r13 = 3;
required uint64 r12 = 4;
required uint64 bp = 5;
required uint64 bx = 6;
required uint64 r11 = 7;
required uint64 r10 = 8;
required uint64 r9 = 9;
required uint64 r8 = 10;
required uint64 ax = 11;
required uint64 cx = 12;
required uint64 dx = 13;
required uint64 si = 14;
required uint64 di = 15;
required uint64 orig_ax = 16;
required uint64 ip = 17;
required uint64 cs = 18;
required uint64 flags = 19;
required uint64 sp = 20;
required uint64 ss = 21;
required uint64 fs_base = 22;
required uint64 gs_base = 23;
required uint64 ds = 24;
required uint64 es = 25;
required uint64 fs = 26;
required uint64 gs = 27;
optional user_x86_regs_mode mode = 28 [default = NATIVE];
}
message user_x86_xsave_entry {
/* standard xsave features */
required uint64 xstate_bv = 1;
/* AVX components: 16x 256-bit ymm registers, hi 128 bits */
repeated uint32 ymmh_space = 2;
/* MPX components */
repeated uint64 bndreg_state = 3;
repeated uint64 bndcsr_state = 4;
/* AVX512 components: k0-k7, ZMM_Hi256, Hi16_ZMM */
repeated uint64 opmask_reg = 5;
repeated uint64 zmm_upper = 6;
repeated uint64 hi16_zmm = 7;
/* Protected keys */
repeated uint32 pkru = 8;
/*
* Processor trace (PT) and hardware duty cycling (HDC)
* are supervisor state components and only managed by
* xsaves/xrstors on cpl=0, so ignore them.
*/
}
message user_x86_fpregs_entry {
/* fxsave data */
required uint32 cwd = 1;
required uint32 swd = 2;
required uint32 twd = 3;
required uint32 fop = 4;
required uint64 rip = 5;
required uint64 rdp = 6;
required uint32 mxcsr = 7;
required uint32 mxcsr_mask = 8;
repeated uint32 st_space = 9;
repeated uint32 xmm_space = 10;
/* Unused, but present for backward compatibility */
repeated uint32 padding = 11;
/* xsave extension */
optional user_x86_xsave_entry xsave = 13;
}
message user_desc_t {
required uint32 entry_number = 1;
/* this is for GDT, not for MSRs - 32-bit base */
required uint32 base_addr = 2;
required uint32 limit = 3;
required bool seg_32bit = 4;
required bool contents_h = 5;
required bool contents_l = 6;
required bool read_exec_only = 7 [default = true];
required bool limit_in_pages = 8;
required bool seg_not_present = 9 [default = true];
required bool usable = 10;
}
message thread_info_x86 {
required uint64 clear_tid_addr = 1[(criu).hex = true];
required user_x86_regs_entry gpregs = 2[(criu).hex = true];
required user_x86_fpregs_entry fpregs = 3;
repeated user_desc_t tls = 4;
}
File diff suppressed because it is too large Load Diff
+135
View File
@@ -0,0 +1,135 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "core-x86.proto";
import "core-arm.proto";
import "core-aarch64.proto";
import "core-ppc64.proto";
import "core-s390.proto";
import "core-mips.proto";
import "rlimit.proto";
import "timer.proto";
import "creds.proto";
import "sa.proto";
import "siginfo.proto";
import "rseq.proto";
import "opts.proto";
/*
* These match the SECCOMP_MODE_* flags from <linux/seccomp.h>.
*/
enum seccomp_mode {
disabled = 0;
strict = 1;
filter = 2;
};
message task_core_entry {
required uint32 task_state = 1 [(criu).dict = "gen"];
required uint32 exit_code = 2;
required uint32 personality = 3;
required uint32 flags = 4;
required uint64 blk_sigset = 5[(criu).hex = true];
required string comm = 6;
optional task_timers_entry timers = 7;
optional task_rlimits_entry rlimits = 8;
optional uint32 cg_set = 9;
optional signal_queue_entry signals_s = 10;
/* These two are deprecated, should be per-thread */
optional seccomp_mode old_seccomp_mode = 11;
optional uint32 old_seccomp_filter = 12;
optional uint32 loginuid = 13;
optional int32 oom_score_adj = 14;
repeated sa_entry sigactions = 15;
// Reserved for tty inheritance
//optional int32 tty_nr = 16;
//optional int32 tty_pgrp = 17;
optional bool child_subreaper = 18;
// Reserved for container relative start time
//optional uint64 start_time = 19;
optional uint64 blk_sigset_extended = 20[(criu).hex = true];
}
message task_kobj_ids_entry {
required uint32 vm_id = 1;
required uint32 files_id = 2;
required uint32 fs_id = 3;
required uint32 sighand_id = 4;
optional uint32 pid_ns_id = 5;
optional uint32 net_ns_id = 6;
optional uint32 ipc_ns_id = 7;
optional uint32 uts_ns_id = 8;
optional uint32 mnt_ns_id = 9;
optional uint32 user_ns_id = 10;
optional uint32 cgroup_ns_id = 11;
optional uint32 time_ns_id = 12;
}
message thread_sas_entry {
required uint64 ss_sp = 1;
required uint64 ss_size = 2;
required uint32 ss_flags = 3;
}
message thread_core_entry {
required uint64 futex_rla = 1;
required uint32 futex_rla_len = 2;
optional sint32 sched_nice = 3;
optional uint32 sched_policy = 4;
optional uint32 sched_prio = 5;
optional uint64 blk_sigset = 6;
optional thread_sas_entry sas = 7;
optional uint32 pdeath_sig = 8;
optional signal_queue_entry signals_p = 9;
optional creds_entry creds = 10;
optional seccomp_mode seccomp_mode = 11;
optional uint32 seccomp_filter = 12;
optional string comm = 13;
optional uint64 blk_sigset_extended = 14;
optional rseq_entry rseq_entry = 15;
}
message task_rlimits_entry {
repeated rlimit_entry rlimits = 1;
};
message core_entry {
enum march {
UNKNOWN = 0;
X86_64 = 1;
ARM = 2;
AARCH64 = 3;
PPC64 = 4;
S390 = 5;
MIPS = 6;
}
required march mtype = 1;
optional thread_info_x86 thread_info = 2;
optional thread_info_arm ti_arm = 6;
optional thread_info_aarch64 ti_aarch64 = 8;
optional thread_info_ppc64 ti_ppc64 = 9;
optional thread_info_s390 ti_s390 = 10;
optional thread_info_mips ti_mips = 11;
optional task_core_entry tc = 3;
optional task_kobj_ids_entry ids = 4;
optional thread_core_entry thread_core = 5;
}
@@ -0,0 +1,593 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: cpuinfo.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type CpuinfoX86EntryVendor int32
const (
CpuinfoX86Entry_UNKNOWN CpuinfoX86EntryVendor = 0
CpuinfoX86Entry_INTEL CpuinfoX86EntryVendor = 1
CpuinfoX86Entry_AMD CpuinfoX86EntryVendor = 2
)
// Enum value maps for CpuinfoX86EntryVendor.
var (
CpuinfoX86EntryVendor_name = map[int32]string{
0: "UNKNOWN",
1: "INTEL",
2: "AMD",
}
CpuinfoX86EntryVendor_value = map[string]int32{
"UNKNOWN": 0,
"INTEL": 1,
"AMD": 2,
}
)
func (x CpuinfoX86EntryVendor) Enum() *CpuinfoX86EntryVendor {
p := new(CpuinfoX86EntryVendor)
*p = x
return p
}
func (x CpuinfoX86EntryVendor) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CpuinfoX86EntryVendor) Descriptor() protoreflect.EnumDescriptor {
return file_cpuinfo_proto_enumTypes[0].Descriptor()
}
func (CpuinfoX86EntryVendor) Type() protoreflect.EnumType {
return &file_cpuinfo_proto_enumTypes[0]
}
func (x CpuinfoX86EntryVendor) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *CpuinfoX86EntryVendor) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = CpuinfoX86EntryVendor(num)
return nil
}
// Deprecated: Use CpuinfoX86EntryVendor.Descriptor instead.
func (CpuinfoX86EntryVendor) EnumDescriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{0, 0}
}
type CpuinfoPpc64EntryEndianness int32
const (
CpuinfoPpc64Entry_BIGENDIAN CpuinfoPpc64EntryEndianness = 0
CpuinfoPpc64Entry_LITTLEENDIAN CpuinfoPpc64EntryEndianness = 1
)
// Enum value maps for CpuinfoPpc64EntryEndianness.
var (
CpuinfoPpc64EntryEndianness_name = map[int32]string{
0: "BIGENDIAN",
1: "LITTLEENDIAN",
}
CpuinfoPpc64EntryEndianness_value = map[string]int32{
"BIGENDIAN": 0,
"LITTLEENDIAN": 1,
}
)
func (x CpuinfoPpc64EntryEndianness) Enum() *CpuinfoPpc64EntryEndianness {
p := new(CpuinfoPpc64EntryEndianness)
*p = x
return p
}
func (x CpuinfoPpc64EntryEndianness) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CpuinfoPpc64EntryEndianness) Descriptor() protoreflect.EnumDescriptor {
return file_cpuinfo_proto_enumTypes[1].Descriptor()
}
func (CpuinfoPpc64EntryEndianness) Type() protoreflect.EnumType {
return &file_cpuinfo_proto_enumTypes[1]
}
func (x CpuinfoPpc64EntryEndianness) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *CpuinfoPpc64EntryEndianness) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = CpuinfoPpc64EntryEndianness(num)
return nil
}
// Deprecated: Use CpuinfoPpc64EntryEndianness.Descriptor instead.
func (CpuinfoPpc64EntryEndianness) EnumDescriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{1, 0}
}
type CpuinfoX86Entry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
VendorId *CpuinfoX86EntryVendor `protobuf:"varint,1,req,name=vendor_id,json=vendorId,enum=criu.CpuinfoX86EntryVendor" json:"vendor_id,omitempty"`
CpuFamily *uint32 `protobuf:"varint,2,req,name=cpu_family,json=cpuFamily" json:"cpu_family,omitempty"`
Model *uint32 `protobuf:"varint,3,req,name=model" json:"model,omitempty"`
Stepping *uint32 `protobuf:"varint,4,req,name=stepping" json:"stepping,omitempty"`
CapabilityVer *uint32 `protobuf:"varint,5,req,name=capability_ver,json=capabilityVer" json:"capability_ver,omitempty"`
Capability []uint32 `protobuf:"varint,6,rep,name=capability" json:"capability,omitempty"`
ModelId *string `protobuf:"bytes,7,opt,name=model_id,json=modelId" json:"model_id,omitempty"`
XfeaturesMask *uint64 `protobuf:"varint,8,opt,name=xfeatures_mask,json=xfeaturesMask" json:"xfeatures_mask,omitempty"`
XsaveSize *uint32 `protobuf:"varint,9,opt,name=xsave_size,json=xsaveSize" json:"xsave_size,omitempty"`
XsaveSizeMax *uint32 `protobuf:"varint,10,opt,name=xsave_size_max,json=xsaveSizeMax" json:"xsave_size_max,omitempty"`
}
func (x *CpuinfoX86Entry) Reset() {
*x = CpuinfoX86Entry{}
if protoimpl.UnsafeEnabled {
mi := &file_cpuinfo_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CpuinfoX86Entry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CpuinfoX86Entry) ProtoMessage() {}
func (x *CpuinfoX86Entry) ProtoReflect() protoreflect.Message {
mi := &file_cpuinfo_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CpuinfoX86Entry.ProtoReflect.Descriptor instead.
func (*CpuinfoX86Entry) Descriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{0}
}
func (x *CpuinfoX86Entry) GetVendorId() CpuinfoX86EntryVendor {
if x != nil && x.VendorId != nil {
return *x.VendorId
}
return CpuinfoX86Entry_UNKNOWN
}
func (x *CpuinfoX86Entry) GetCpuFamily() uint32 {
if x != nil && x.CpuFamily != nil {
return *x.CpuFamily
}
return 0
}
func (x *CpuinfoX86Entry) GetModel() uint32 {
if x != nil && x.Model != nil {
return *x.Model
}
return 0
}
func (x *CpuinfoX86Entry) GetStepping() uint32 {
if x != nil && x.Stepping != nil {
return *x.Stepping
}
return 0
}
func (x *CpuinfoX86Entry) GetCapabilityVer() uint32 {
if x != nil && x.CapabilityVer != nil {
return *x.CapabilityVer
}
return 0
}
func (x *CpuinfoX86Entry) GetCapability() []uint32 {
if x != nil {
return x.Capability
}
return nil
}
func (x *CpuinfoX86Entry) GetModelId() string {
if x != nil && x.ModelId != nil {
return *x.ModelId
}
return ""
}
func (x *CpuinfoX86Entry) GetXfeaturesMask() uint64 {
if x != nil && x.XfeaturesMask != nil {
return *x.XfeaturesMask
}
return 0
}
func (x *CpuinfoX86Entry) GetXsaveSize() uint32 {
if x != nil && x.XsaveSize != nil {
return *x.XsaveSize
}
return 0
}
func (x *CpuinfoX86Entry) GetXsaveSizeMax() uint32 {
if x != nil && x.XsaveSizeMax != nil {
return *x.XsaveSizeMax
}
return 0
}
type CpuinfoPpc64Entry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endian *CpuinfoPpc64EntryEndianness `protobuf:"varint,1,req,name=endian,enum=criu.CpuinfoPpc64EntryEndianness" json:"endian,omitempty"`
Hwcap []uint64 `protobuf:"varint,2,rep,name=hwcap" json:"hwcap,omitempty"`
}
func (x *CpuinfoPpc64Entry) Reset() {
*x = CpuinfoPpc64Entry{}
if protoimpl.UnsafeEnabled {
mi := &file_cpuinfo_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CpuinfoPpc64Entry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CpuinfoPpc64Entry) ProtoMessage() {}
func (x *CpuinfoPpc64Entry) ProtoReflect() protoreflect.Message {
mi := &file_cpuinfo_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CpuinfoPpc64Entry.ProtoReflect.Descriptor instead.
func (*CpuinfoPpc64Entry) Descriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{1}
}
func (x *CpuinfoPpc64Entry) GetEndian() CpuinfoPpc64EntryEndianness {
if x != nil && x.Endian != nil {
return *x.Endian
}
return CpuinfoPpc64Entry_BIGENDIAN
}
func (x *CpuinfoPpc64Entry) GetHwcap() []uint64 {
if x != nil {
return x.Hwcap
}
return nil
}
type CpuinfoS390Entry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hwcap []uint64 `protobuf:"varint,2,rep,name=hwcap" json:"hwcap,omitempty"`
}
func (x *CpuinfoS390Entry) Reset() {
*x = CpuinfoS390Entry{}
if protoimpl.UnsafeEnabled {
mi := &file_cpuinfo_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CpuinfoS390Entry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CpuinfoS390Entry) ProtoMessage() {}
func (x *CpuinfoS390Entry) ProtoReflect() protoreflect.Message {
mi := &file_cpuinfo_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CpuinfoS390Entry.ProtoReflect.Descriptor instead.
func (*CpuinfoS390Entry) Descriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{2}
}
func (x *CpuinfoS390Entry) GetHwcap() []uint64 {
if x != nil {
return x.Hwcap
}
return nil
}
type CpuinfoEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Usually on SMP system there should be same CPUs
// installed, but it might happen that system carries
// various CPUs so @repeated used.
X86Entry []*CpuinfoX86Entry `protobuf:"bytes,1,rep,name=x86_entry,json=x86Entry" json:"x86_entry,omitempty"`
Ppc64Entry []*CpuinfoPpc64Entry `protobuf:"bytes,2,rep,name=ppc64_entry,json=ppc64Entry" json:"ppc64_entry,omitempty"`
S390Entry []*CpuinfoS390Entry `protobuf:"bytes,3,rep,name=s390_entry,json=s390Entry" json:"s390_entry,omitempty"`
}
func (x *CpuinfoEntry) Reset() {
*x = CpuinfoEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_cpuinfo_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CpuinfoEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CpuinfoEntry) ProtoMessage() {}
func (x *CpuinfoEntry) ProtoReflect() protoreflect.Message {
mi := &file_cpuinfo_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CpuinfoEntry.ProtoReflect.Descriptor instead.
func (*CpuinfoEntry) Descriptor() ([]byte, []int) {
return file_cpuinfo_proto_rawDescGZIP(), []int{3}
}
func (x *CpuinfoEntry) GetX86Entry() []*CpuinfoX86Entry {
if x != nil {
return x.X86Entry
}
return nil
}
func (x *CpuinfoEntry) GetPpc64Entry() []*CpuinfoPpc64Entry {
if x != nil {
return x.Ppc64Entry
}
return nil
}
func (x *CpuinfoEntry) GetS390Entry() []*CpuinfoS390Entry {
if x != nil {
return x.S390Entry
}
return nil
}
var File_cpuinfo_proto protoreflect.FileDescriptor
var file_cpuinfo_proto_rawDesc = []byte{
0x0a, 0x0d, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x9a, 0x03, 0x0a, 0x11, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66,
0x6f, 0x5f, 0x78, 0x38, 0x36, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x09, 0x76,
0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x1e,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x78, 0x38,
0x36, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x52, 0x08,
0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x70, 0x75, 0x5f,
0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x70,
0x75, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1a, 0x0a,
0x08, 0x73, 0x74, 0x65, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x08, 0x73, 0x74, 0x65, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x70,
0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x0d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x56, 0x65, 0x72,
0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06,
0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x78,
0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20,
0x01, 0x28, 0x04, 0x52, 0x0d, 0x78, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61,
0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x78, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65,
0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x78, 0x73, 0x61, 0x76, 0x65, 0x53, 0x69, 0x7a,
0x65, 0x12, 0x24, 0x0a, 0x0e, 0x78, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f,
0x6d, 0x61, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x78, 0x73, 0x61, 0x76, 0x65,
0x53, 0x69, 0x7a, 0x65, 0x4d, 0x61, 0x78, 0x22, 0x29, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f,
0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09,
0x0a, 0x05, 0x49, 0x4e, 0x54, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4d, 0x44,
0x10, 0x02, 0x22, 0x98, 0x01, 0x0a, 0x13, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70,
0x70, 0x63, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x6e,
0x64, 0x69, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x65, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x6e, 0x65, 0x73, 0x73,
0x52, 0x06, 0x65, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x77, 0x63, 0x61,
0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x68, 0x77, 0x63, 0x61, 0x70, 0x22, 0x2d,
0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x0d, 0x0a, 0x09,
0x42, 0x49, 0x47, 0x45, 0x4e, 0x44, 0x49, 0x41, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4c,
0x49, 0x54, 0x54, 0x4c, 0x45, 0x45, 0x4e, 0x44, 0x49, 0x41, 0x4e, 0x10, 0x01, 0x22, 0x2a, 0x0a,
0x12, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x77, 0x63, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03,
0x28, 0x04, 0x52, 0x05, 0x68, 0x77, 0x63, 0x61, 0x70, 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x63, 0x70,
0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x34, 0x0a, 0x09, 0x78,
0x38, 0x36, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x78, 0x38,
0x36, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x78, 0x38, 0x36, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x70,
0x75, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70, 0x70, 0x63, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x0a, 0x70, 0x70, 0x63, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a,
0x0a, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x63, 0x70, 0x75, 0x69, 0x6e, 0x66, 0x6f,
0x5f, 0x73, 0x33, 0x39, 0x30, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x33, 0x39,
0x30, 0x45, 0x6e, 0x74, 0x72, 0x79,
}
var (
file_cpuinfo_proto_rawDescOnce sync.Once
file_cpuinfo_proto_rawDescData = file_cpuinfo_proto_rawDesc
)
func file_cpuinfo_proto_rawDescGZIP() []byte {
file_cpuinfo_proto_rawDescOnce.Do(func() {
file_cpuinfo_proto_rawDescData = protoimpl.X.CompressGZIP(file_cpuinfo_proto_rawDescData)
})
return file_cpuinfo_proto_rawDescData
}
var file_cpuinfo_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_cpuinfo_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_cpuinfo_proto_goTypes = []interface{}{
(CpuinfoX86EntryVendor)(0), // 0: criu.cpuinfo_x86_entry.vendor
(CpuinfoPpc64EntryEndianness)(0), // 1: criu.cpuinfo_ppc64_entry.endianness
(*CpuinfoX86Entry)(nil), // 2: criu.cpuinfo_x86_entry
(*CpuinfoPpc64Entry)(nil), // 3: criu.cpuinfo_ppc64_entry
(*CpuinfoS390Entry)(nil), // 4: criu.cpuinfo_s390_entry
(*CpuinfoEntry)(nil), // 5: criu.cpuinfo_entry
}
var file_cpuinfo_proto_depIdxs = []int32{
0, // 0: criu.cpuinfo_x86_entry.vendor_id:type_name -> criu.cpuinfo_x86_entry.vendor
1, // 1: criu.cpuinfo_ppc64_entry.endian:type_name -> criu.cpuinfo_ppc64_entry.endianness
2, // 2: criu.cpuinfo_entry.x86_entry:type_name -> criu.cpuinfo_x86_entry
3, // 3: criu.cpuinfo_entry.ppc64_entry:type_name -> criu.cpuinfo_ppc64_entry
4, // 4: criu.cpuinfo_entry.s390_entry:type_name -> criu.cpuinfo_s390_entry
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_cpuinfo_proto_init() }
func file_cpuinfo_proto_init() {
if File_cpuinfo_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_cpuinfo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CpuinfoX86Entry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cpuinfo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CpuinfoPpc64Entry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cpuinfo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CpuinfoS390Entry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_cpuinfo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CpuinfoEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cpuinfo_proto_rawDesc,
NumEnums: 2,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_cpuinfo_proto_goTypes,
DependencyIndexes: file_cpuinfo_proto_depIdxs,
EnumInfos: file_cpuinfo_proto_enumTypes,
MessageInfos: file_cpuinfo_proto_msgTypes,
}.Build()
File_cpuinfo_proto = out.File
file_cpuinfo_proto_rawDesc = nil
file_cpuinfo_proto_goTypes = nil
file_cpuinfo_proto_depIdxs = nil
}
@@ -0,0 +1,50 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message cpuinfo_x86_entry {
enum vendor {
UNKNOWN = 0;
INTEL = 1;
AMD = 2;
}
required vendor vendor_id = 1;
required uint32 cpu_family = 2;
required uint32 model = 3;
required uint32 stepping = 4;
required uint32 capability_ver = 5;
repeated uint32 capability = 6;
optional string model_id = 7;
optional uint64 xfeatures_mask = 8;
optional uint32 xsave_size = 9;
optional uint32 xsave_size_max = 10;
}
message cpuinfo_ppc64_entry {
enum endianness {
BIGENDIAN = 0;
LITTLEENDIAN = 1;
}
required endianness endian = 1;
repeated uint64 hwcap = 2;
}
message cpuinfo_s390_entry {
repeated uint64 hwcap = 2;
}
message cpuinfo_entry {
/*
* Usually on SMP system there should be same CPUs
* installed, but it might happen that system carries
* various CPUs so @repeated used.
*/
repeated cpuinfo_x86_entry x86_entry = 1;
repeated cpuinfo_ppc64_entry ppc64_entry = 2;
repeated cpuinfo_s390_entry s390_entry = 3;
}
+295
View File
@@ -0,0 +1,295 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: creds.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type CredsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid *uint32 `protobuf:"varint,1,req,name=uid" json:"uid,omitempty"`
Gid *uint32 `protobuf:"varint,2,req,name=gid" json:"gid,omitempty"`
Euid *uint32 `protobuf:"varint,3,req,name=euid" json:"euid,omitempty"`
Egid *uint32 `protobuf:"varint,4,req,name=egid" json:"egid,omitempty"`
Suid *uint32 `protobuf:"varint,5,req,name=suid" json:"suid,omitempty"`
Sgid *uint32 `protobuf:"varint,6,req,name=sgid" json:"sgid,omitempty"`
Fsuid *uint32 `protobuf:"varint,7,req,name=fsuid" json:"fsuid,omitempty"`
Fsgid *uint32 `protobuf:"varint,8,req,name=fsgid" json:"fsgid,omitempty"`
CapInh []uint32 `protobuf:"varint,9,rep,name=cap_inh,json=capInh" json:"cap_inh,omitempty"`
CapPrm []uint32 `protobuf:"varint,10,rep,name=cap_prm,json=capPrm" json:"cap_prm,omitempty"`
CapEff []uint32 `protobuf:"varint,11,rep,name=cap_eff,json=capEff" json:"cap_eff,omitempty"`
CapBnd []uint32 `protobuf:"varint,12,rep,name=cap_bnd,json=capBnd" json:"cap_bnd,omitempty"`
Secbits *uint32 `protobuf:"varint,13,req,name=secbits" json:"secbits,omitempty"`
Groups []uint32 `protobuf:"varint,14,rep,name=groups" json:"groups,omitempty"`
LsmProfile *string `protobuf:"bytes,15,opt,name=lsm_profile,json=lsmProfile" json:"lsm_profile,omitempty"`
LsmSockcreate *string `protobuf:"bytes,16,opt,name=lsm_sockcreate,json=lsmSockcreate" json:"lsm_sockcreate,omitempty"`
ApparmorData []byte `protobuf:"bytes,17,opt,name=apparmor_data,json=apparmorData" json:"apparmor_data,omitempty"`
}
func (x *CredsEntry) Reset() {
*x = CredsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_creds_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CredsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CredsEntry) ProtoMessage() {}
func (x *CredsEntry) ProtoReflect() protoreflect.Message {
mi := &file_creds_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CredsEntry.ProtoReflect.Descriptor instead.
func (*CredsEntry) Descriptor() ([]byte, []int) {
return file_creds_proto_rawDescGZIP(), []int{0}
}
func (x *CredsEntry) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *CredsEntry) GetGid() uint32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
func (x *CredsEntry) GetEuid() uint32 {
if x != nil && x.Euid != nil {
return *x.Euid
}
return 0
}
func (x *CredsEntry) GetEgid() uint32 {
if x != nil && x.Egid != nil {
return *x.Egid
}
return 0
}
func (x *CredsEntry) GetSuid() uint32 {
if x != nil && x.Suid != nil {
return *x.Suid
}
return 0
}
func (x *CredsEntry) GetSgid() uint32 {
if x != nil && x.Sgid != nil {
return *x.Sgid
}
return 0
}
func (x *CredsEntry) GetFsuid() uint32 {
if x != nil && x.Fsuid != nil {
return *x.Fsuid
}
return 0
}
func (x *CredsEntry) GetFsgid() uint32 {
if x != nil && x.Fsgid != nil {
return *x.Fsgid
}
return 0
}
func (x *CredsEntry) GetCapInh() []uint32 {
if x != nil {
return x.CapInh
}
return nil
}
func (x *CredsEntry) GetCapPrm() []uint32 {
if x != nil {
return x.CapPrm
}
return nil
}
func (x *CredsEntry) GetCapEff() []uint32 {
if x != nil {
return x.CapEff
}
return nil
}
func (x *CredsEntry) GetCapBnd() []uint32 {
if x != nil {
return x.CapBnd
}
return nil
}
func (x *CredsEntry) GetSecbits() uint32 {
if x != nil && x.Secbits != nil {
return *x.Secbits
}
return 0
}
func (x *CredsEntry) GetGroups() []uint32 {
if x != nil {
return x.Groups
}
return nil
}
func (x *CredsEntry) GetLsmProfile() string {
if x != nil && x.LsmProfile != nil {
return *x.LsmProfile
}
return ""
}
func (x *CredsEntry) GetLsmSockcreate() string {
if x != nil && x.LsmSockcreate != nil {
return *x.LsmSockcreate
}
return ""
}
func (x *CredsEntry) GetApparmorData() []byte {
if x != nil {
return x.ApparmorData
}
return nil
}
var File_creds_proto protoreflect.FileDescriptor
var file_creds_proto_rawDesc = []byte{
0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63,
0x72, 0x69, 0x75, 0x22, 0xb0, 0x03, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x73, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x75, 0x69, 0x64, 0x18,
0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x65, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65,
0x67, 0x69, 0x64, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x65, 0x67, 0x69, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x73, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x73,
0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x67, 0x69, 0x64, 0x18, 0x06, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x04, 0x73, 0x67, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x73, 0x75, 0x69, 0x64,
0x18, 0x07, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x73, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a,
0x05, 0x66, 0x73, 0x67, 0x69, 0x64, 0x18, 0x08, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x73,
0x67, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x68, 0x18, 0x09,
0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x61, 0x70, 0x49, 0x6e, 0x68, 0x12, 0x17, 0x0a, 0x07,
0x63, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x63,
0x61, 0x70, 0x50, 0x72, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x5f, 0x65, 0x66, 0x66,
0x18, 0x0b, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x61, 0x70, 0x45, 0x66, 0x66, 0x12, 0x17,
0x0a, 0x07, 0x63, 0x61, 0x70, 0x5f, 0x62, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52,
0x06, 0x63, 0x61, 0x70, 0x42, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x62, 0x69,
0x74, 0x73, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x62, 0x69, 0x74,
0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28,
0x0d, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x73, 0x6d,
0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
0x6c, 0x73, 0x6d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x73,
0x6d, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x6c, 0x73, 0x6d, 0x53, 0x6f, 0x63, 0x6b, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x5f, 0x64, 0x61,
0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x61, 0x72, 0x6d,
0x6f, 0x72, 0x44, 0x61, 0x74, 0x61,
}
var (
file_creds_proto_rawDescOnce sync.Once
file_creds_proto_rawDescData = file_creds_proto_rawDesc
)
func file_creds_proto_rawDescGZIP() []byte {
file_creds_proto_rawDescOnce.Do(func() {
file_creds_proto_rawDescData = protoimpl.X.CompressGZIP(file_creds_proto_rawDescData)
})
return file_creds_proto_rawDescData
}
var file_creds_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_creds_proto_goTypes = []interface{}{
(*CredsEntry)(nil), // 0: criu.creds_entry
}
var file_creds_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_creds_proto_init() }
func file_creds_proto_init() {
if File_creds_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_creds_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CredsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_creds_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_creds_proto_goTypes,
DependencyIndexes: file_creds_proto_depIdxs,
MessageInfos: file_creds_proto_msgTypes,
}.Build()
File_creds_proto = out.File
file_creds_proto_rawDesc = nil
file_creds_proto_goTypes = nil
file_creds_proto_depIdxs = nil
}
@@ -0,0 +1,28 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message creds_entry {
required uint32 uid = 1;
required uint32 gid = 2;
required uint32 euid = 3;
required uint32 egid = 4;
required uint32 suid = 5;
required uint32 sgid = 6;
required uint32 fsuid = 7;
required uint32 fsgid = 8;
repeated uint32 cap_inh = 9;
repeated uint32 cap_prm = 10;
repeated uint32 cap_eff = 11;
repeated uint32 cap_bnd = 12;
required uint32 secbits = 13;
repeated uint32 groups = 14;
optional string lsm_profile = 15;
optional string lsm_sockcreate = 16;
optional bytes apparmor_data = 17;
}
@@ -0,0 +1,175 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: eventfd.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type EventfdFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Fown *FownEntry `protobuf:"bytes,3,req,name=fown" json:"fown,omitempty"`
Counter *uint64 `protobuf:"varint,4,req,name=counter" json:"counter,omitempty"`
}
func (x *EventfdFileEntry) Reset() {
*x = EventfdFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_eventfd_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EventfdFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventfdFileEntry) ProtoMessage() {}
func (x *EventfdFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_eventfd_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventfdFileEntry.ProtoReflect.Descriptor instead.
func (*EventfdFileEntry) Descriptor() ([]byte, []int) {
return file_eventfd_proto_rawDescGZIP(), []int{0}
}
func (x *EventfdFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *EventfdFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *EventfdFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *EventfdFileEntry) GetCounter() uint64 {
if x != nil && x.Counter != nil {
return *x.Counter
}
return 0
}
var File_eventfd_proto protoreflect.FileDescriptor
var file_eventfd_proto_rawDesc = []byte{
0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x22, 0x7a, 0x0a, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x66, 0x64, 0x5f, 0x66, 0x69, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x24, 0x0a,
0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66,
0x6f, 0x77, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x04,
0x20, 0x02, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
}
var (
file_eventfd_proto_rawDescOnce sync.Once
file_eventfd_proto_rawDescData = file_eventfd_proto_rawDesc
)
func file_eventfd_proto_rawDescGZIP() []byte {
file_eventfd_proto_rawDescOnce.Do(func() {
file_eventfd_proto_rawDescData = protoimpl.X.CompressGZIP(file_eventfd_proto_rawDescData)
})
return file_eventfd_proto_rawDescData
}
var file_eventfd_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_eventfd_proto_goTypes = []interface{}{
(*EventfdFileEntry)(nil), // 0: criu.eventfd_file_entry
(*FownEntry)(nil), // 1: criu.fown_entry
}
var file_eventfd_proto_depIdxs = []int32{
1, // 0: criu.eventfd_file_entry.fown:type_name -> criu.fown_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_eventfd_proto_init() }
func file_eventfd_proto_init() {
if File_eventfd_proto != nil {
return
}
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_eventfd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EventfdFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_eventfd_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_eventfd_proto_goTypes,
DependencyIndexes: file_eventfd_proto_depIdxs,
MessageInfos: file_eventfd_proto_msgTypes,
}.Build()
File_eventfd_proto = out.File
file_eventfd_proto_rawDesc = nil
file_eventfd_proto_goTypes = nil
file_eventfd_proto_depIdxs = nil
}
@@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "fown.proto";
message eventfd_file_entry {
required uint32 id = 1;
required uint32 flags = 2;
required fown_entry fown = 3;
required uint64 counter = 4;
}
@@ -0,0 +1,297 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: eventpoll.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type EventpollTfdEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Tfd *uint32 `protobuf:"varint,2,req,name=tfd" json:"tfd,omitempty"`
Events *uint32 `protobuf:"varint,3,req,name=events" json:"events,omitempty"`
Data *uint64 `protobuf:"varint,4,req,name=data" json:"data,omitempty"`
// to find dup'ed target files
Dev *uint32 `protobuf:"varint,5,opt,name=dev" json:"dev,omitempty"`
Inode *uint64 `protobuf:"varint,6,opt,name=inode" json:"inode,omitempty"`
Pos *uint64 `protobuf:"varint,7,opt,name=pos" json:"pos,omitempty"`
}
func (x *EventpollTfdEntry) Reset() {
*x = EventpollTfdEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_eventpoll_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EventpollTfdEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventpollTfdEntry) ProtoMessage() {}
func (x *EventpollTfdEntry) ProtoReflect() protoreflect.Message {
mi := &file_eventpoll_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventpollTfdEntry.ProtoReflect.Descriptor instead.
func (*EventpollTfdEntry) Descriptor() ([]byte, []int) {
return file_eventpoll_proto_rawDescGZIP(), []int{0}
}
func (x *EventpollTfdEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *EventpollTfdEntry) GetTfd() uint32 {
if x != nil && x.Tfd != nil {
return *x.Tfd
}
return 0
}
func (x *EventpollTfdEntry) GetEvents() uint32 {
if x != nil && x.Events != nil {
return *x.Events
}
return 0
}
func (x *EventpollTfdEntry) GetData() uint64 {
if x != nil && x.Data != nil {
return *x.Data
}
return 0
}
func (x *EventpollTfdEntry) GetDev() uint32 {
if x != nil && x.Dev != nil {
return *x.Dev
}
return 0
}
func (x *EventpollTfdEntry) GetInode() uint64 {
if x != nil && x.Inode != nil {
return *x.Inode
}
return 0
}
func (x *EventpollTfdEntry) GetPos() uint64 {
if x != nil && x.Pos != nil {
return *x.Pos
}
return 0
}
type EventpollFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Fown *FownEntry `protobuf:"bytes,3,req,name=fown" json:"fown,omitempty"`
Tfd []*EventpollTfdEntry `protobuf:"bytes,4,rep,name=tfd" json:"tfd,omitempty"`
}
func (x *EventpollFileEntry) Reset() {
*x = EventpollFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_eventpoll_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EventpollFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventpollFileEntry) ProtoMessage() {}
func (x *EventpollFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_eventpoll_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventpollFileEntry.ProtoReflect.Descriptor instead.
func (*EventpollFileEntry) Descriptor() ([]byte, []int) {
return file_eventpoll_proto_rawDescGZIP(), []int{1}
}
func (x *EventpollFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *EventpollFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *EventpollFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *EventpollFileEntry) GetTfd() []*EventpollTfdEntry {
if x != nil {
return x.Tfd
}
return nil
}
var File_eventpoll_proto protoreflect.FileDescriptor
var file_eventpoll_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x6c,
0x6c, 0x5f, 0x74, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74,
0x66, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x66, 0x64, 0x12, 0x16, 0x0a,
0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
0x02, 0x28, 0x04, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x76,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x64, 0x65, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x6f, 0x64,
0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03,
0x70, 0x6f, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x14, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x6c,
0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61,
0x67, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x66, 0x64, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x65, 0x76, 0x65,
0x6e, 0x74, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x03, 0x74, 0x66, 0x64,
}
var (
file_eventpoll_proto_rawDescOnce sync.Once
file_eventpoll_proto_rawDescData = file_eventpoll_proto_rawDesc
)
func file_eventpoll_proto_rawDescGZIP() []byte {
file_eventpoll_proto_rawDescOnce.Do(func() {
file_eventpoll_proto_rawDescData = protoimpl.X.CompressGZIP(file_eventpoll_proto_rawDescData)
})
return file_eventpoll_proto_rawDescData
}
var file_eventpoll_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_eventpoll_proto_goTypes = []interface{}{
(*EventpollTfdEntry)(nil), // 0: criu.eventpoll_tfd_entry
(*EventpollFileEntry)(nil), // 1: criu.eventpoll_file_entry
(*FownEntry)(nil), // 2: criu.fown_entry
}
var file_eventpoll_proto_depIdxs = []int32{
2, // 0: criu.eventpoll_file_entry.fown:type_name -> criu.fown_entry
0, // 1: criu.eventpoll_file_entry.tfd:type_name -> criu.eventpoll_tfd_entry
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_eventpoll_proto_init() }
func file_eventpoll_proto_init() {
if File_eventpoll_proto != nil {
return
}
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_eventpoll_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EventpollTfdEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_eventpoll_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EventpollFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_eventpoll_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_eventpoll_proto_goTypes,
DependencyIndexes: file_eventpoll_proto_depIdxs,
MessageInfos: file_eventpoll_proto_msgTypes,
}.Build()
File_eventpoll_proto = out.File
file_eventpoll_proto_rawDesc = nil
file_eventpoll_proto_goTypes = nil
file_eventpoll_proto_depIdxs = nil
}
@@ -0,0 +1,25 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "fown.proto";
message eventpoll_tfd_entry {
required uint32 id = 1;
required uint32 tfd = 2;
required uint32 events = 3;
required uint64 data = 4;
/* to find dup'ed target files */
optional uint32 dev = 5;
optional uint64 inode = 6;
optional uint64 pos = 7;
}
message eventpoll_file_entry {
required uint32 id = 1;
required uint32 flags = 2;
required fown_entry fown = 3;
repeated eventpoll_tfd_entry tfd = 4;
}
@@ -0,0 +1,156 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ext-file.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type ExtFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Fown *FownEntry `protobuf:"bytes,5,req,name=fown" json:"fown,omitempty"`
}
func (x *ExtFileEntry) Reset() {
*x = ExtFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ext_file_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExtFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExtFileEntry) ProtoMessage() {}
func (x *ExtFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_ext_file_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExtFileEntry.ProtoReflect.Descriptor instead.
func (*ExtFileEntry) Descriptor() ([]byte, []int) {
return file_ext_file_proto_rawDescGZIP(), []int{0}
}
func (x *ExtFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *ExtFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
var File_ext_file_proto protoreflect.FileDescriptor
var file_ext_file_proto_rawDesc = []byte{
0x0a, 0x0e, 0x65, 0x78, 0x74, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x46, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x05, 0x20, 0x02,
0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e,
}
var (
file_ext_file_proto_rawDescOnce sync.Once
file_ext_file_proto_rawDescData = file_ext_file_proto_rawDesc
)
func file_ext_file_proto_rawDescGZIP() []byte {
file_ext_file_proto_rawDescOnce.Do(func() {
file_ext_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_ext_file_proto_rawDescData)
})
return file_ext_file_proto_rawDescData
}
var file_ext_file_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ext_file_proto_goTypes = []interface{}{
(*ExtFileEntry)(nil), // 0: criu.ext_file_entry
(*FownEntry)(nil), // 1: criu.fown_entry
}
var file_ext_file_proto_depIdxs = []int32{
1, // 0: criu.ext_file_entry.fown:type_name -> criu.fown_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_ext_file_proto_init() }
func file_ext_file_proto_init() {
if File_ext_file_proto != nil {
return
}
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_ext_file_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExtFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ext_file_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ext_file_proto_goTypes,
DependencyIndexes: file_ext_file_proto_depIdxs,
MessageInfos: file_ext_file_proto_msgTypes,
}.Build()
File_ext_file_proto = out.File
file_ext_file_proto_rawDesc = nil
file_ext_file_proto_goTypes = nil
file_ext_file_proto_depIdxs = nil
}
@@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "fown.proto";
message ext_file_entry {
required uint32 id = 1;
required fown_entry fown = 5;
}
@@ -0,0 +1,667 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fdinfo.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FdTypes int32
const (
FdTypes_UND FdTypes = 0
FdTypes_REG FdTypes = 1
FdTypes_PIPE FdTypes = 2
FdTypes_FIFO FdTypes = 3
FdTypes_INETSK FdTypes = 4
FdTypes_UNIXSK FdTypes = 5
FdTypes_EVENTFD FdTypes = 6
FdTypes_EVENTPOLL FdTypes = 7
FdTypes_INOTIFY FdTypes = 8
FdTypes_SIGNALFD FdTypes = 9
FdTypes_PACKETSK FdTypes = 10
FdTypes_TTY FdTypes = 11
FdTypes_FANOTIFY FdTypes = 12
FdTypes_NETLINKSK FdTypes = 13
FdTypes_NS FdTypes = 14
FdTypes_TUNF FdTypes = 15
FdTypes_EXT FdTypes = 16
FdTypes_TIMERFD FdTypes = 17
FdTypes_MEMFD FdTypes = 18
FdTypes_BPFMAP FdTypes = 19
// Any number above the real used. Not stored to image
FdTypes_CTL_TTY FdTypes = 65534
FdTypes_AUTOFS_PIPE FdTypes = 65535
)
// Enum value maps for FdTypes.
var (
FdTypes_name = map[int32]string{
0: "UND",
1: "REG",
2: "PIPE",
3: "FIFO",
4: "INETSK",
5: "UNIXSK",
6: "EVENTFD",
7: "EVENTPOLL",
8: "INOTIFY",
9: "SIGNALFD",
10: "PACKETSK",
11: "TTY",
12: "FANOTIFY",
13: "NETLINKSK",
14: "NS",
15: "TUNF",
16: "EXT",
17: "TIMERFD",
18: "MEMFD",
19: "BPFMAP",
65534: "CTL_TTY",
65535: "AUTOFS_PIPE",
}
FdTypes_value = map[string]int32{
"UND": 0,
"REG": 1,
"PIPE": 2,
"FIFO": 3,
"INETSK": 4,
"UNIXSK": 5,
"EVENTFD": 6,
"EVENTPOLL": 7,
"INOTIFY": 8,
"SIGNALFD": 9,
"PACKETSK": 10,
"TTY": 11,
"FANOTIFY": 12,
"NETLINKSK": 13,
"NS": 14,
"TUNF": 15,
"EXT": 16,
"TIMERFD": 17,
"MEMFD": 18,
"BPFMAP": 19,
"CTL_TTY": 65534,
"AUTOFS_PIPE": 65535,
}
)
func (x FdTypes) Enum() *FdTypes {
p := new(FdTypes)
*p = x
return p
}
func (x FdTypes) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FdTypes) Descriptor() protoreflect.EnumDescriptor {
return file_fdinfo_proto_enumTypes[0].Descriptor()
}
func (FdTypes) Type() protoreflect.EnumType {
return &file_fdinfo_proto_enumTypes[0]
}
func (x FdTypes) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *FdTypes) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = FdTypes(num)
return nil
}
// Deprecated: Use FdTypes.Descriptor instead.
func (FdTypes) EnumDescriptor() ([]byte, []int) {
return file_fdinfo_proto_rawDescGZIP(), []int{0}
}
type FdinfoEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Type *FdTypes `protobuf:"varint,3,req,name=type,enum=criu.FdTypes" json:"type,omitempty"`
Fd *uint32 `protobuf:"varint,4,req,name=fd" json:"fd,omitempty"`
XattrSecuritySelinux *string `protobuf:"bytes,5,opt,name=xattr_security_selinux,json=xattrSecuritySelinux" json:"xattr_security_selinux,omitempty"`
}
func (x *FdinfoEntry) Reset() {
*x = FdinfoEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fdinfo_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FdinfoEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FdinfoEntry) ProtoMessage() {}
func (x *FdinfoEntry) ProtoReflect() protoreflect.Message {
mi := &file_fdinfo_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FdinfoEntry.ProtoReflect.Descriptor instead.
func (*FdinfoEntry) Descriptor() ([]byte, []int) {
return file_fdinfo_proto_rawDescGZIP(), []int{0}
}
func (x *FdinfoEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *FdinfoEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *FdinfoEntry) GetType() FdTypes {
if x != nil && x.Type != nil {
return *x.Type
}
return FdTypes_UND
}
func (x *FdinfoEntry) GetFd() uint32 {
if x != nil && x.Fd != nil {
return *x.Fd
}
return 0
}
func (x *FdinfoEntry) GetXattrSecuritySelinux() string {
if x != nil && x.XattrSecuritySelinux != nil {
return *x.XattrSecuritySelinux
}
return ""
}
type FileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type *FdTypes `protobuf:"varint,1,req,name=type,enum=criu.FdTypes" json:"type,omitempty"`
Id *uint32 `protobuf:"varint,2,req,name=id" json:"id,omitempty"`
Reg *RegFileEntry `protobuf:"bytes,3,opt,name=reg" json:"reg,omitempty"`
Isk *InetSkEntry `protobuf:"bytes,4,opt,name=isk" json:"isk,omitempty"`
Nsf *NsFileEntry `protobuf:"bytes,5,opt,name=nsf" json:"nsf,omitempty"`
Psk *PacketSockEntry `protobuf:"bytes,6,opt,name=psk" json:"psk,omitempty"`
Nlsk *NetlinkSkEntry `protobuf:"bytes,7,opt,name=nlsk" json:"nlsk,omitempty"`
Efd *EventfdFileEntry `protobuf:"bytes,8,opt,name=efd" json:"efd,omitempty"`
Epfd *EventpollFileEntry `protobuf:"bytes,9,opt,name=epfd" json:"epfd,omitempty"`
Sgfd *SignalfdEntry `protobuf:"bytes,10,opt,name=sgfd" json:"sgfd,omitempty"`
Tunf *TunfileEntry `protobuf:"bytes,11,opt,name=tunf" json:"tunf,omitempty"`
Tfd *TimerfdEntry `protobuf:"bytes,12,opt,name=tfd" json:"tfd,omitempty"`
Ify *InotifyFileEntry `protobuf:"bytes,13,opt,name=ify" json:"ify,omitempty"`
Ffy *FanotifyFileEntry `protobuf:"bytes,14,opt,name=ffy" json:"ffy,omitempty"`
Ext *ExtFileEntry `protobuf:"bytes,15,opt,name=ext" json:"ext,omitempty"`
Usk *UnixSkEntry `protobuf:"bytes,16,opt,name=usk" json:"usk,omitempty"`
Fifo *FifoEntry `protobuf:"bytes,17,opt,name=fifo" json:"fifo,omitempty"`
Pipe *PipeEntry `protobuf:"bytes,18,opt,name=pipe" json:"pipe,omitempty"`
Tty *TtyFileEntry `protobuf:"bytes,19,opt,name=tty" json:"tty,omitempty"`
Memfd *MemfdFileEntry `protobuf:"bytes,20,opt,name=memfd" json:"memfd,omitempty"`
Bpf *BpfmapFileEntry `protobuf:"bytes,21,opt,name=bpf" json:"bpf,omitempty"`
}
func (x *FileEntry) Reset() {
*x = FileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fdinfo_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileEntry) ProtoMessage() {}
func (x *FileEntry) ProtoReflect() protoreflect.Message {
mi := &file_fdinfo_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileEntry.ProtoReflect.Descriptor instead.
func (*FileEntry) Descriptor() ([]byte, []int) {
return file_fdinfo_proto_rawDescGZIP(), []int{1}
}
func (x *FileEntry) GetType() FdTypes {
if x != nil && x.Type != nil {
return *x.Type
}
return FdTypes_UND
}
func (x *FileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *FileEntry) GetReg() *RegFileEntry {
if x != nil {
return x.Reg
}
return nil
}
func (x *FileEntry) GetIsk() *InetSkEntry {
if x != nil {
return x.Isk
}
return nil
}
func (x *FileEntry) GetNsf() *NsFileEntry {
if x != nil {
return x.Nsf
}
return nil
}
func (x *FileEntry) GetPsk() *PacketSockEntry {
if x != nil {
return x.Psk
}
return nil
}
func (x *FileEntry) GetNlsk() *NetlinkSkEntry {
if x != nil {
return x.Nlsk
}
return nil
}
func (x *FileEntry) GetEfd() *EventfdFileEntry {
if x != nil {
return x.Efd
}
return nil
}
func (x *FileEntry) GetEpfd() *EventpollFileEntry {
if x != nil {
return x.Epfd
}
return nil
}
func (x *FileEntry) GetSgfd() *SignalfdEntry {
if x != nil {
return x.Sgfd
}
return nil
}
func (x *FileEntry) GetTunf() *TunfileEntry {
if x != nil {
return x.Tunf
}
return nil
}
func (x *FileEntry) GetTfd() *TimerfdEntry {
if x != nil {
return x.Tfd
}
return nil
}
func (x *FileEntry) GetIfy() *InotifyFileEntry {
if x != nil {
return x.Ify
}
return nil
}
func (x *FileEntry) GetFfy() *FanotifyFileEntry {
if x != nil {
return x.Ffy
}
return nil
}
func (x *FileEntry) GetExt() *ExtFileEntry {
if x != nil {
return x.Ext
}
return nil
}
func (x *FileEntry) GetUsk() *UnixSkEntry {
if x != nil {
return x.Usk
}
return nil
}
func (x *FileEntry) GetFifo() *FifoEntry {
if x != nil {
return x.Fifo
}
return nil
}
func (x *FileEntry) GetPipe() *PipeEntry {
if x != nil {
return x.Pipe
}
return nil
}
func (x *FileEntry) GetTty() *TtyFileEntry {
if x != nil {
return x.Tty
}
return nil
}
func (x *FileEntry) GetMemfd() *MemfdFileEntry {
if x != nil {
return x.Memfd
}
return nil
}
func (x *FileEntry) GetBpf() *BpfmapFileEntry {
if x != nil {
return x.Bpf
}
return nil
}
var File_fdinfo_proto protoreflect.FileDescriptor
var file_fdinfo_proto_rawDesc = []byte{
0x0a, 0x0c, 0x66, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
0x63, 0x72, 0x69, 0x75, 0x1a, 0x0d, 0x72, 0x65, 0x67, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x73, 0x6b, 0x2d, 0x69, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x08, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x70, 0x61,
0x63, 0x6b, 0x65, 0x74, 0x2d, 0x73, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x10, 0x73, 0x6b, 0x2d, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x09, 0x74, 0x75, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x74, 0x69,
0x6d, 0x65, 0x72, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x66, 0x73, 0x6e,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x65, 0x78, 0x74,
0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x73, 0x6b, 0x2d,
0x75, 0x6e, 0x69, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x66, 0x69, 0x66, 0x6f,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x09, 0x74, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x6d,
0x65, 0x6d, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x62, 0x70, 0x66, 0x6d,
0x61, 0x70, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x01,
0x0a, 0x0c, 0x66, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x66,
0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x02,
0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x64, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x73, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x64, 0x18, 0x04,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x66, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x78, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x69, 0x6e,
0x75, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x78, 0x61, 0x74, 0x74, 0x72, 0x53,
0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x22, 0xd8,
0x06, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x22, 0x0a,
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x66, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x52, 0x04, 0x74, 0x79, 0x70,
0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69,
0x64, 0x12, 0x26, 0x0a, 0x03, 0x72, 0x65, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x72, 0x65, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x72, 0x65, 0x67, 0x12, 0x25, 0x0a, 0x03, 0x69, 0x73, 0x6b,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x69, 0x6e,
0x65, 0x74, 0x5f, 0x73, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x69, 0x73, 0x6b,
0x12, 0x25, 0x0a, 0x03, 0x6e, 0x73, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x6e, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x03, 0x6e, 0x73, 0x66, 0x12, 0x29, 0x0a, 0x03, 0x70, 0x73, 0x6b, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x70, 0x61, 0x63, 0x6b,
0x65, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x70,
0x73, 0x6b, 0x12, 0x2a, 0x0a, 0x04, 0x6e, 0x6c, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x16, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
0x73, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6e, 0x6c, 0x73, 0x6b, 0x12, 0x2a,
0x0a, 0x03, 0x65, 0x66, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x66, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x65, 0x66, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x65, 0x70,
0x66, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e,
0x65, 0x76, 0x65, 0x6e, 0x74, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x65, 0x70, 0x66, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x73, 0x67,
0x66, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e,
0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
0x73, 0x67, 0x66, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x75, 0x6e, 0x66, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x74, 0x75, 0x6e, 0x66, 0x69, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x75, 0x6e, 0x66, 0x12, 0x25, 0x0a,
0x03, 0x74, 0x66, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x66, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x03, 0x74, 0x66, 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x69, 0x66, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x69, 0x66, 0x79,
0x12, 0x2b, 0x0a, 0x03, 0x66, 0x66, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x66, 0x69,
0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x66, 0x66, 0x79, 0x12, 0x26, 0x0a,
0x03, 0x65, 0x78, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x03, 0x65, 0x78, 0x74, 0x12, 0x25, 0x0a, 0x03, 0x75, 0x73, 0x6b, 0x18, 0x10, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x73,
0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x75, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x04,
0x66, 0x69, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x66, 0x69, 0x66, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x69,
0x66, 0x6f, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x69, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x04, 0x70, 0x69, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x74, 0x74, 0x79, 0x18,
0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x74, 0x74, 0x79,
0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x74, 0x74, 0x79,
0x12, 0x2c, 0x0a, 0x05, 0x6d, 0x65, 0x6d, 0x66, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x6d, 0x65, 0x6d, 0x66, 0x64, 0x5f, 0x66, 0x69, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x66, 0x64, 0x12, 0x29,
0x0a, 0x03, 0x62, 0x70, 0x66, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x62, 0x70, 0x66, 0x6d, 0x61, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x62, 0x70, 0x66, 0x2a, 0x94, 0x02, 0x0a, 0x08, 0x66, 0x64,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x44, 0x10, 0x00, 0x12,
0x07, 0x0a, 0x03, 0x52, 0x45, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x49, 0x50, 0x45,
0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x49, 0x46, 0x4f, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06,
0x49, 0x4e, 0x45, 0x54, 0x53, 0x4b, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x49, 0x58,
0x53, 0x4b, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x46, 0x44, 0x10,
0x06, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x50, 0x4f, 0x4c, 0x4c, 0x10, 0x07,
0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x08, 0x12, 0x0c, 0x0a,
0x08, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x46, 0x44, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x4b, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x54, 0x59,
0x10, 0x0b, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x0c,
0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x53, 0x4b, 0x10, 0x0d, 0x12,
0x06, 0x0a, 0x02, 0x4e, 0x53, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x55, 0x4e, 0x46, 0x10,
0x0f, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x58, 0x54, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49,
0x4d, 0x45, 0x52, 0x46, 0x44, 0x10, 0x11, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x4d, 0x46, 0x44,
0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x50, 0x46, 0x4d, 0x41, 0x50, 0x10, 0x13, 0x12, 0x0d,
0x0a, 0x07, 0x43, 0x54, 0x4c, 0x5f, 0x54, 0x54, 0x59, 0x10, 0xfe, 0xff, 0x03, 0x12, 0x11, 0x0a,
0x0b, 0x41, 0x55, 0x54, 0x4f, 0x46, 0x53, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x10, 0xff, 0xff, 0x03,
}
var (
file_fdinfo_proto_rawDescOnce sync.Once
file_fdinfo_proto_rawDescData = file_fdinfo_proto_rawDesc
)
func file_fdinfo_proto_rawDescGZIP() []byte {
file_fdinfo_proto_rawDescOnce.Do(func() {
file_fdinfo_proto_rawDescData = protoimpl.X.CompressGZIP(file_fdinfo_proto_rawDescData)
})
return file_fdinfo_proto_rawDescData
}
var file_fdinfo_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_fdinfo_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_fdinfo_proto_goTypes = []interface{}{
(FdTypes)(0), // 0: criu.fd_types
(*FdinfoEntry)(nil), // 1: criu.fdinfo_entry
(*FileEntry)(nil), // 2: criu.file_entry
(*RegFileEntry)(nil), // 3: criu.reg_file_entry
(*InetSkEntry)(nil), // 4: criu.inet_sk_entry
(*NsFileEntry)(nil), // 5: criu.ns_file_entry
(*PacketSockEntry)(nil), // 6: criu.packet_sock_entry
(*NetlinkSkEntry)(nil), // 7: criu.netlink_sk_entry
(*EventfdFileEntry)(nil), // 8: criu.eventfd_file_entry
(*EventpollFileEntry)(nil), // 9: criu.eventpoll_file_entry
(*SignalfdEntry)(nil), // 10: criu.signalfd_entry
(*TunfileEntry)(nil), // 11: criu.tunfile_entry
(*TimerfdEntry)(nil), // 12: criu.timerfd_entry
(*InotifyFileEntry)(nil), // 13: criu.inotify_file_entry
(*FanotifyFileEntry)(nil), // 14: criu.fanotify_file_entry
(*ExtFileEntry)(nil), // 15: criu.ext_file_entry
(*UnixSkEntry)(nil), // 16: criu.unix_sk_entry
(*FifoEntry)(nil), // 17: criu.fifo_entry
(*PipeEntry)(nil), // 18: criu.pipe_entry
(*TtyFileEntry)(nil), // 19: criu.tty_file_entry
(*MemfdFileEntry)(nil), // 20: criu.memfd_file_entry
(*BpfmapFileEntry)(nil), // 21: criu.bpfmap_file_entry
}
var file_fdinfo_proto_depIdxs = []int32{
0, // 0: criu.fdinfo_entry.type:type_name -> criu.fd_types
0, // 1: criu.file_entry.type:type_name -> criu.fd_types
3, // 2: criu.file_entry.reg:type_name -> criu.reg_file_entry
4, // 3: criu.file_entry.isk:type_name -> criu.inet_sk_entry
5, // 4: criu.file_entry.nsf:type_name -> criu.ns_file_entry
6, // 5: criu.file_entry.psk:type_name -> criu.packet_sock_entry
7, // 6: criu.file_entry.nlsk:type_name -> criu.netlink_sk_entry
8, // 7: criu.file_entry.efd:type_name -> criu.eventfd_file_entry
9, // 8: criu.file_entry.epfd:type_name -> criu.eventpoll_file_entry
10, // 9: criu.file_entry.sgfd:type_name -> criu.signalfd_entry
11, // 10: criu.file_entry.tunf:type_name -> criu.tunfile_entry
12, // 11: criu.file_entry.tfd:type_name -> criu.timerfd_entry
13, // 12: criu.file_entry.ify:type_name -> criu.inotify_file_entry
14, // 13: criu.file_entry.ffy:type_name -> criu.fanotify_file_entry
15, // 14: criu.file_entry.ext:type_name -> criu.ext_file_entry
16, // 15: criu.file_entry.usk:type_name -> criu.unix_sk_entry
17, // 16: criu.file_entry.fifo:type_name -> criu.fifo_entry
18, // 17: criu.file_entry.pipe:type_name -> criu.pipe_entry
19, // 18: criu.file_entry.tty:type_name -> criu.tty_file_entry
20, // 19: criu.file_entry.memfd:type_name -> criu.memfd_file_entry
21, // 20: criu.file_entry.bpf:type_name -> criu.bpfmap_file_entry
21, // [21:21] is the sub-list for method output_type
21, // [21:21] is the sub-list for method input_type
21, // [21:21] is the sub-list for extension type_name
21, // [21:21] is the sub-list for extension extendee
0, // [0:21] is the sub-list for field type_name
}
func init() { file_fdinfo_proto_init() }
func file_fdinfo_proto_init() {
if File_fdinfo_proto != nil {
return
}
file_regfile_proto_init()
file_sk_inet_proto_init()
file_ns_proto_init()
file_packet_sock_proto_init()
file_sk_netlink_proto_init()
file_eventfd_proto_init()
file_eventpoll_proto_init()
file_signalfd_proto_init()
file_tun_proto_init()
file_timerfd_proto_init()
file_fsnotify_proto_init()
file_ext_file_proto_init()
file_sk_unix_proto_init()
file_fifo_proto_init()
file_pipe_proto_init()
file_tty_proto_init()
file_memfd_proto_init()
file_bpfmap_file_proto_init()
if !protoimpl.UnsafeEnabled {
file_fdinfo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FdinfoEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fdinfo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fdinfo_proto_rawDesc,
NumEnums: 1,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fdinfo_proto_goTypes,
DependencyIndexes: file_fdinfo_proto_depIdxs,
EnumInfos: file_fdinfo_proto_enumTypes,
MessageInfos: file_fdinfo_proto_msgTypes,
}.Build()
File_fdinfo_proto = out.File
file_fdinfo_proto_rawDesc = nil
file_fdinfo_proto_goTypes = nil
file_fdinfo_proto_depIdxs = nil
}
@@ -0,0 +1,82 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "regfile.proto";
import "sk-inet.proto";
import "ns.proto";
import "packet-sock.proto";
import "sk-netlink.proto";
import "eventfd.proto";
import "eventpoll.proto";
import "signalfd.proto";
import "tun.proto";
import "timerfd.proto";
import "fsnotify.proto";
import "ext-file.proto";
import "sk-unix.proto";
import "fifo.proto";
import "pipe.proto";
import "tty.proto";
import "memfd.proto";
import "bpfmap-file.proto";
enum fd_types {
UND = 0;
REG = 1;
PIPE = 2;
FIFO = 3;
INETSK = 4;
UNIXSK = 5;
EVENTFD = 6;
EVENTPOLL = 7;
INOTIFY = 8;
SIGNALFD = 9;
PACKETSK = 10;
TTY = 11;
FANOTIFY = 12;
NETLINKSK = 13;
NS = 14;
TUNF = 15;
EXT = 16;
TIMERFD = 17;
MEMFD = 18;
BPFMAP = 19;
/* Any number above the real used. Not stored to image */
CTL_TTY = 65534;
AUTOFS_PIPE = 65535;
}
message fdinfo_entry {
required uint32 id = 1;
required uint32 flags = 2;
required fd_types type = 3;
required uint32 fd = 4;
optional string xattr_security_selinux = 5;
}
message file_entry {
required fd_types type = 1;
required uint32 id = 2;
optional reg_file_entry reg = 3;
optional inet_sk_entry isk = 4;
optional ns_file_entry nsf = 5;
optional packet_sock_entry psk = 6;
optional netlink_sk_entry nlsk = 7;
optional eventfd_file_entry efd = 8;
optional eventpoll_file_entry epfd = 9;
optional signalfd_entry sgfd = 10;
optional tunfile_entry tunf = 11;
optional timerfd_entry tfd = 12;
optional inotify_file_entry ify = 13;
optional fanotify_file_entry ffy = 14;
optional ext_file_entry ext = 15;
optional unix_sk_entry usk = 16;
optional fifo_entry fifo = 17;
optional pipe_entry pipe = 18;
optional tty_file_entry tty = 19;
optional memfd_file_entry memfd = 20;
optional bpfmap_file_entry bpf = 21;
}
+322
View File
@@ -0,0 +1,322 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fh.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FhEntrySizes int32
const (
FhEntrySizes_min_entries FhEntrySizes = 16
)
// Enum value maps for FhEntrySizes.
var (
FhEntrySizes_name = map[int32]string{
16: "min_entries",
}
FhEntrySizes_value = map[string]int32{
"min_entries": 16,
}
)
func (x FhEntrySizes) Enum() *FhEntrySizes {
p := new(FhEntrySizes)
*p = x
return p
}
func (x FhEntrySizes) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FhEntrySizes) Descriptor() protoreflect.EnumDescriptor {
return file_fh_proto_enumTypes[0].Descriptor()
}
func (FhEntrySizes) Type() protoreflect.EnumType {
return &file_fh_proto_enumTypes[0]
}
func (x FhEntrySizes) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *FhEntrySizes) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = FhEntrySizes(num)
return nil
}
// Deprecated: Use FhEntrySizes.Descriptor instead.
func (FhEntrySizes) EnumDescriptor() ([]byte, []int) {
return file_fh_proto_rawDescGZIP(), []int{0}
}
type FhEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Bytes *uint32 `protobuf:"varint,1,req,name=bytes" json:"bytes,omitempty"`
Type *uint32 `protobuf:"varint,2,req,name=type" json:"type,omitempty"`
// The minimum is fh_n_handle repetitions
Handle []uint64 `protobuf:"varint,3,rep,name=handle" json:"handle,omitempty"`
Path *string `protobuf:"bytes,4,opt,name=path" json:"path,omitempty"`
MntId *uint32 `protobuf:"varint,5,opt,name=mnt_id,json=mntId" json:"mnt_id,omitempty"`
}
func (x *FhEntry) Reset() {
*x = FhEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fh_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FhEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FhEntry) ProtoMessage() {}
func (x *FhEntry) ProtoReflect() protoreflect.Message {
mi := &file_fh_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FhEntry.ProtoReflect.Descriptor instead.
func (*FhEntry) Descriptor() ([]byte, []int) {
return file_fh_proto_rawDescGZIP(), []int{0}
}
func (x *FhEntry) GetBytes() uint32 {
if x != nil && x.Bytes != nil {
return *x.Bytes
}
return 0
}
func (x *FhEntry) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *FhEntry) GetHandle() []uint64 {
if x != nil {
return x.Handle
}
return nil
}
func (x *FhEntry) GetPath() string {
if x != nil && x.Path != nil {
return *x.Path
}
return ""
}
func (x *FhEntry) GetMntId() uint32 {
if x != nil && x.MntId != nil {
return *x.MntId
}
return 0
}
type IrmapCacheEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Dev *uint32 `protobuf:"varint,1,req,name=dev" json:"dev,omitempty"`
Inode *uint64 `protobuf:"varint,2,req,name=inode" json:"inode,omitempty"`
Path *string `protobuf:"bytes,3,req,name=path" json:"path,omitempty"`
}
func (x *IrmapCacheEntry) Reset() {
*x = IrmapCacheEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fh_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IrmapCacheEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IrmapCacheEntry) ProtoMessage() {}
func (x *IrmapCacheEntry) ProtoReflect() protoreflect.Message {
mi := &file_fh_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IrmapCacheEntry.ProtoReflect.Descriptor instead.
func (*IrmapCacheEntry) Descriptor() ([]byte, []int) {
return file_fh_proto_rawDescGZIP(), []int{1}
}
func (x *IrmapCacheEntry) GetDev() uint32 {
if x != nil && x.Dev != nil {
return *x.Dev
}
return 0
}
func (x *IrmapCacheEntry) GetInode() uint64 {
if x != nil && x.Inode != nil {
return *x.Inode
}
return 0
}
func (x *IrmapCacheEntry) GetPath() string {
if x != nil && x.Path != nil {
return *x.Path
}
return ""
}
var File_fh_proto protoreflect.FileDescriptor
var file_fh_proto_rawDesc = []byte{
0x0a, 0x08, 0x66, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75,
0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x77, 0x0a, 0x08,
0x66, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65,
0x73, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79,
0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03,
0x28, 0x04, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15,
0x0a, 0x06, 0x6d, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x6d, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x11, 0x69, 0x72, 0x6d, 0x61, 0x70, 0x5f, 0x63,
0x61, 0x63, 0x68, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x03, 0x64, 0x65,
0x76, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x0a, 0xd2, 0x3f, 0x02, 0x20, 0x01, 0xd2, 0x3f,
0x02, 0x28, 0x01, 0x52, 0x03, 0x64, 0x65, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
0x74, 0x68, 0x2a, 0x21, 0x0a, 0x0e, 0x66, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x73,
0x69, 0x7a, 0x65, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x69, 0x65, 0x73, 0x10, 0x10,
}
var (
file_fh_proto_rawDescOnce sync.Once
file_fh_proto_rawDescData = file_fh_proto_rawDesc
)
func file_fh_proto_rawDescGZIP() []byte {
file_fh_proto_rawDescOnce.Do(func() {
file_fh_proto_rawDescData = protoimpl.X.CompressGZIP(file_fh_proto_rawDescData)
})
return file_fh_proto_rawDescData
}
var file_fh_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_fh_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_fh_proto_goTypes = []interface{}{
(FhEntrySizes)(0), // 0: criu.fh_entry_sizes
(*FhEntry)(nil), // 1: criu.fh_entry
(*IrmapCacheEntry)(nil), // 2: criu.irmap_cache_entry
}
var file_fh_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_fh_proto_init() }
func file_fh_proto_init() {
if File_fh_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_fh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FhEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IrmapCacheEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fh_proto_rawDesc,
NumEnums: 1,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fh_proto_goTypes,
DependencyIndexes: file_fh_proto_depIdxs,
EnumInfos: file_fh_proto_enumTypes,
MessageInfos: file_fh_proto_msgTypes,
}.Build()
File_fh_proto = out.File
file_fh_proto_rawDesc = nil
file_fh_proto_goTypes = nil
file_fh_proto_depIdxs = nil
}
+26
View File
@@ -0,0 +1,26 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
enum fh_entry_sizes {
min_entries = 16;
}
message fh_entry {
required uint32 bytes = 1;
required uint32 type = 2;
/* The minimum is fh_n_handle repetitions */
repeated uint64 handle = 3;
optional string path = 4;
optional uint32 mnt_id = 5;
}
message irmap_cache_entry {
required uint32 dev = 1 [(criu).dev = true, (criu).odev = true];
required uint64 inode = 2;
required string path = 3;
}
+161
View File
@@ -0,0 +1,161 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fifo.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FifoEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
PipeId *uint32 `protobuf:"varint,2,req,name=pipe_id,json=pipeId" json:"pipe_id,omitempty"`
RegfId *uint32 `protobuf:"varint,3,opt,name=regf_id,json=regfId" json:"regf_id,omitempty"`
}
func (x *FifoEntry) Reset() {
*x = FifoEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fifo_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FifoEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FifoEntry) ProtoMessage() {}
func (x *FifoEntry) ProtoReflect() protoreflect.Message {
mi := &file_fifo_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FifoEntry.ProtoReflect.Descriptor instead.
func (*FifoEntry) Descriptor() ([]byte, []int) {
return file_fifo_proto_rawDescGZIP(), []int{0}
}
func (x *FifoEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *FifoEntry) GetPipeId() uint32 {
if x != nil && x.PipeId != nil {
return *x.PipeId
}
return 0
}
func (x *FifoEntry) GetRegfId() uint32 {
if x != nil && x.RegfId != nil {
return *x.RegfId
}
return 0
}
var File_fifo_proto protoreflect.FileDescriptor
var file_fifo_proto_rawDesc = []byte{
0x0a, 0x0a, 0x66, 0x69, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72,
0x69, 0x75, 0x22, 0x4e, 0x0a, 0x0a, 0x66, 0x69, 0x66, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
0x12, 0x17, 0x0a, 0x07, 0x70, 0x69, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x06, 0x70, 0x69, 0x70, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x67,
0x66, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x66,
0x49, 0x64,
}
var (
file_fifo_proto_rawDescOnce sync.Once
file_fifo_proto_rawDescData = file_fifo_proto_rawDesc
)
func file_fifo_proto_rawDescGZIP() []byte {
file_fifo_proto_rawDescOnce.Do(func() {
file_fifo_proto_rawDescData = protoimpl.X.CompressGZIP(file_fifo_proto_rawDescData)
})
return file_fifo_proto_rawDescData
}
var file_fifo_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_fifo_proto_goTypes = []interface{}{
(*FifoEntry)(nil), // 0: criu.fifo_entry
}
var file_fifo_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_fifo_proto_init() }
func file_fifo_proto_init() {
if File_fifo_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_fifo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FifoEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fifo_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fifo_proto_goTypes,
DependencyIndexes: file_fifo_proto_depIdxs,
MessageInfos: file_fifo_proto_msgTypes,
}.Build()
File_fifo_proto = out.File
file_fifo_proto_rawDesc = nil
file_fifo_proto_goTypes = nil
file_fifo_proto_depIdxs = nil
}
+10
View File
@@ -0,0 +1,10 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message fifo_entry {
required uint32 id = 1;
required uint32 pipe_id = 2;
optional uint32 regf_id = 3;
}
@@ -0,0 +1,188 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: file-lock.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FileLockEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Flag *uint32 `protobuf:"varint,1,req,name=flag" json:"flag,omitempty"`
Type *uint32 `protobuf:"varint,2,req,name=type" json:"type,omitempty"`
Pid *int32 `protobuf:"varint,3,req,name=pid" json:"pid,omitempty"`
Fd *int32 `protobuf:"varint,4,req,name=fd" json:"fd,omitempty"`
Start *int64 `protobuf:"varint,5,req,name=start" json:"start,omitempty"`
Len *int64 `protobuf:"varint,6,req,name=len" json:"len,omitempty"`
}
func (x *FileLockEntry) Reset() {
*x = FileLockEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_file_lock_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FileLockEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileLockEntry) ProtoMessage() {}
func (x *FileLockEntry) ProtoReflect() protoreflect.Message {
mi := &file_file_lock_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileLockEntry.ProtoReflect.Descriptor instead.
func (*FileLockEntry) Descriptor() ([]byte, []int) {
return file_file_lock_proto_rawDescGZIP(), []int{0}
}
func (x *FileLockEntry) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
}
func (x *FileLockEntry) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *FileLockEntry) GetPid() int32 {
if x != nil && x.Pid != nil {
return *x.Pid
}
return 0
}
func (x *FileLockEntry) GetFd() int32 {
if x != nil && x.Fd != nil {
return *x.Fd
}
return 0
}
func (x *FileLockEntry) GetStart() int64 {
if x != nil && x.Start != nil {
return *x.Start
}
return 0
}
func (x *FileLockEntry) GetLen() int64 {
if x != nil && x.Len != nil {
return *x.Len
}
return 0
}
var File_file_lock_proto protoreflect.FileDescriptor
var file_file_lock_proto_rawDesc = []byte{
0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x2d, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x65,
0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66,
0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12,
0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x74,
0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05,
0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x64, 0x18, 0x04, 0x20, 0x02, 0x28,
0x05, 0x52, 0x02, 0x66, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05,
0x20, 0x02, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c,
0x65, 0x6e, 0x18, 0x06, 0x20, 0x02, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x65, 0x6e,
}
var (
file_file_lock_proto_rawDescOnce sync.Once
file_file_lock_proto_rawDescData = file_file_lock_proto_rawDesc
)
func file_file_lock_proto_rawDescGZIP() []byte {
file_file_lock_proto_rawDescOnce.Do(func() {
file_file_lock_proto_rawDescData = protoimpl.X.CompressGZIP(file_file_lock_proto_rawDescData)
})
return file_file_lock_proto_rawDescData
}
var file_file_lock_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_file_lock_proto_goTypes = []interface{}{
(*FileLockEntry)(nil), // 0: criu.file_lock_entry
}
var file_file_lock_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_file_lock_proto_init() }
func file_file_lock_proto_init() {
if File_file_lock_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_file_lock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FileLockEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_file_lock_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_file_lock_proto_goTypes,
DependencyIndexes: file_file_lock_proto_depIdxs,
MessageInfos: file_file_lock_proto_msgTypes,
}.Build()
File_file_lock_proto = out.File
file_file_lock_proto_rawDesc = nil
file_file_lock_proto_goTypes = nil
file_file_lock_proto_depIdxs = nil
}
@@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message file_lock_entry {
required uint32 flag = 1;
required uint32 type = 2;
required int32 pid = 3;
required int32 fd = 4;
required int64 start = 5;
required int64 len = 6;
}
+179
View File
@@ -0,0 +1,179 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fown.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FownEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid *uint32 `protobuf:"varint,1,req,name=uid" json:"uid,omitempty"`
Euid *uint32 `protobuf:"varint,2,req,name=euid" json:"euid,omitempty"`
Signum *uint32 `protobuf:"varint,3,req,name=signum" json:"signum,omitempty"`
PidType *uint32 `protobuf:"varint,4,req,name=pid_type,json=pidType" json:"pid_type,omitempty"`
Pid *uint32 `protobuf:"varint,5,req,name=pid" json:"pid,omitempty"`
}
func (x *FownEntry) Reset() {
*x = FownEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fown_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FownEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FownEntry) ProtoMessage() {}
func (x *FownEntry) ProtoReflect() protoreflect.Message {
mi := &file_fown_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FownEntry.ProtoReflect.Descriptor instead.
func (*FownEntry) Descriptor() ([]byte, []int) {
return file_fown_proto_rawDescGZIP(), []int{0}
}
func (x *FownEntry) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *FownEntry) GetEuid() uint32 {
if x != nil && x.Euid != nil {
return *x.Euid
}
return 0
}
func (x *FownEntry) GetSignum() uint32 {
if x != nil && x.Signum != nil {
return *x.Signum
}
return 0
}
func (x *FownEntry) GetPidType() uint32 {
if x != nil && x.PidType != nil {
return *x.PidType
}
return 0
}
func (x *FownEntry) GetPid() uint32 {
if x != nil && x.Pid != nil {
return *x.Pid
}
return 0
}
var File_fown_proto protoreflect.FileDescriptor
var file_fown_proto_rawDesc = []byte{
0x0a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72,
0x69, 0x75, 0x22, 0x77, 0x0a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x04, 0x65, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x6d,
0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x6d, 0x12, 0x19,
0x0a, 0x08, 0x70, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x07, 0x70, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64,
0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64,
}
var (
file_fown_proto_rawDescOnce sync.Once
file_fown_proto_rawDescData = file_fown_proto_rawDesc
)
func file_fown_proto_rawDescGZIP() []byte {
file_fown_proto_rawDescOnce.Do(func() {
file_fown_proto_rawDescData = protoimpl.X.CompressGZIP(file_fown_proto_rawDescData)
})
return file_fown_proto_rawDescData
}
var file_fown_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_fown_proto_goTypes = []interface{}{
(*FownEntry)(nil), // 0: criu.fown_entry
}
var file_fown_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_fown_proto_init() }
func file_fown_proto_init() {
if File_fown_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_fown_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FownEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fown_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fown_proto_goTypes,
DependencyIndexes: file_fown_proto_depIdxs,
MessageInfos: file_fown_proto_msgTypes,
}.Build()
File_fown_proto = out.File
file_fown_proto_rawDesc = nil
file_fown_proto_goTypes = nil
file_fown_proto_depIdxs = nil
}
+12
View File
@@ -0,0 +1,12 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message fown_entry {
required uint32 uid = 1;
required uint32 euid = 2;
required uint32 signum = 3;
required uint32 pid_type = 4;
required uint32 pid = 5;
}
+161
View File
@@ -0,0 +1,161 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fs.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type FsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CwdId *uint32 `protobuf:"varint,1,req,name=cwd_id,json=cwdId" json:"cwd_id,omitempty"`
RootId *uint32 `protobuf:"varint,2,req,name=root_id,json=rootId" json:"root_id,omitempty"`
Umask *uint32 `protobuf:"varint,3,opt,name=umask" json:"umask,omitempty"`
}
func (x *FsEntry) Reset() {
*x = FsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fs_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FsEntry) ProtoMessage() {}
func (x *FsEntry) ProtoReflect() protoreflect.Message {
mi := &file_fs_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FsEntry.ProtoReflect.Descriptor instead.
func (*FsEntry) Descriptor() ([]byte, []int) {
return file_fs_proto_rawDescGZIP(), []int{0}
}
func (x *FsEntry) GetCwdId() uint32 {
if x != nil && x.CwdId != nil {
return *x.CwdId
}
return 0
}
func (x *FsEntry) GetRootId() uint32 {
if x != nil && x.RootId != nil {
return *x.RootId
}
return 0
}
func (x *FsEntry) GetUmask() uint32 {
if x != nil && x.Umask != nil {
return *x.Umask
}
return 0
}
var File_fs_proto protoreflect.FileDescriptor
var file_fs_proto_rawDesc = []byte{
0x0a, 0x08, 0x66, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75,
0x22, 0x50, 0x0a, 0x08, 0x66, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x06,
0x63, 0x77, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x77,
0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05,
0x75, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x75, 0x6d, 0x61,
0x73, 0x6b,
}
var (
file_fs_proto_rawDescOnce sync.Once
file_fs_proto_rawDescData = file_fs_proto_rawDesc
)
func file_fs_proto_rawDescGZIP() []byte {
file_fs_proto_rawDescOnce.Do(func() {
file_fs_proto_rawDescData = protoimpl.X.CompressGZIP(file_fs_proto_rawDescData)
})
return file_fs_proto_rawDescData
}
var file_fs_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_fs_proto_goTypes = []interface{}{
(*FsEntry)(nil), // 0: criu.fs_entry
}
var file_fs_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_fs_proto_init() }
func file_fs_proto_init() {
if File_fs_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_fs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fs_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fs_proto_goTypes,
DependencyIndexes: file_fs_proto_depIdxs,
MessageInfos: file_fs_proto_msgTypes,
}.Build()
File_fs_proto = out.File
file_fs_proto_rawDesc = nil
file_fs_proto_goTypes = nil
file_fs_proto_depIdxs = nil
}
+10
View File
@@ -0,0 +1,10 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message fs_entry {
required uint32 cwd_id = 1;
required uint32 root_id = 2;
optional uint32 umask = 3;
}
@@ -0,0 +1,767 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: fsnotify.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type MarkType int32
const (
MarkType_INODE MarkType = 1
MarkType_MOUNT MarkType = 2
)
// Enum value maps for MarkType.
var (
MarkType_name = map[int32]string{
1: "INODE",
2: "MOUNT",
}
MarkType_value = map[string]int32{
"INODE": 1,
"MOUNT": 2,
}
)
func (x MarkType) Enum() *MarkType {
p := new(MarkType)
*p = x
return p
}
func (x MarkType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MarkType) Descriptor() protoreflect.EnumDescriptor {
return file_fsnotify_proto_enumTypes[0].Descriptor()
}
func (MarkType) Type() protoreflect.EnumType {
return &file_fsnotify_proto_enumTypes[0]
}
func (x MarkType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *MarkType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = MarkType(num)
return nil
}
// Deprecated: Use MarkType.Descriptor instead.
func (MarkType) EnumDescriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{0}
}
type InotifyWdEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
IIno *uint64 `protobuf:"varint,2,req,name=i_ino,json=iIno" json:"i_ino,omitempty"`
Mask *uint32 `protobuf:"varint,3,req,name=mask" json:"mask,omitempty"`
IgnoredMask *uint32 `protobuf:"varint,4,req,name=ignored_mask,json=ignoredMask" json:"ignored_mask,omitempty"`
SDev *uint32 `protobuf:"varint,5,req,name=s_dev,json=sDev" json:"s_dev,omitempty"`
Wd *uint32 `protobuf:"varint,6,req,name=wd" json:"wd,omitempty"`
FHandle *FhEntry `protobuf:"bytes,7,req,name=f_handle,json=fHandle" json:"f_handle,omitempty"`
}
func (x *InotifyWdEntry) Reset() {
*x = InotifyWdEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *InotifyWdEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InotifyWdEntry) ProtoMessage() {}
func (x *InotifyWdEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use InotifyWdEntry.ProtoReflect.Descriptor instead.
func (*InotifyWdEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{0}
}
func (x *InotifyWdEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *InotifyWdEntry) GetIIno() uint64 {
if x != nil && x.IIno != nil {
return *x.IIno
}
return 0
}
func (x *InotifyWdEntry) GetMask() uint32 {
if x != nil && x.Mask != nil {
return *x.Mask
}
return 0
}
func (x *InotifyWdEntry) GetIgnoredMask() uint32 {
if x != nil && x.IgnoredMask != nil {
return *x.IgnoredMask
}
return 0
}
func (x *InotifyWdEntry) GetSDev() uint32 {
if x != nil && x.SDev != nil {
return *x.SDev
}
return 0
}
func (x *InotifyWdEntry) GetWd() uint32 {
if x != nil && x.Wd != nil {
return *x.Wd
}
return 0
}
func (x *InotifyWdEntry) GetFHandle() *FhEntry {
if x != nil {
return x.FHandle
}
return nil
}
type InotifyFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Fown *FownEntry `protobuf:"bytes,4,req,name=fown" json:"fown,omitempty"`
Wd []*InotifyWdEntry `protobuf:"bytes,5,rep,name=wd" json:"wd,omitempty"`
}
func (x *InotifyFileEntry) Reset() {
*x = InotifyFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *InotifyFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InotifyFileEntry) ProtoMessage() {}
func (x *InotifyFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use InotifyFileEntry.ProtoReflect.Descriptor instead.
func (*InotifyFileEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{1}
}
func (x *InotifyFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *InotifyFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *InotifyFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *InotifyFileEntry) GetWd() []*InotifyWdEntry {
if x != nil {
return x.Wd
}
return nil
}
type FanotifyInodeMarkEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IIno *uint64 `protobuf:"varint,1,req,name=i_ino,json=iIno" json:"i_ino,omitempty"`
FHandle *FhEntry `protobuf:"bytes,2,req,name=f_handle,json=fHandle" json:"f_handle,omitempty"`
}
func (x *FanotifyInodeMarkEntry) Reset() {
*x = FanotifyInodeMarkEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FanotifyInodeMarkEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FanotifyInodeMarkEntry) ProtoMessage() {}
func (x *FanotifyInodeMarkEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FanotifyInodeMarkEntry.ProtoReflect.Descriptor instead.
func (*FanotifyInodeMarkEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{2}
}
func (x *FanotifyInodeMarkEntry) GetIIno() uint64 {
if x != nil && x.IIno != nil {
return *x.IIno
}
return 0
}
func (x *FanotifyInodeMarkEntry) GetFHandle() *FhEntry {
if x != nil {
return x.FHandle
}
return nil
}
type FanotifyMountMarkEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MntId *uint32 `protobuf:"varint,1,req,name=mnt_id,json=mntId" json:"mnt_id,omitempty"`
Path *string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
}
func (x *FanotifyMountMarkEntry) Reset() {
*x = FanotifyMountMarkEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FanotifyMountMarkEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FanotifyMountMarkEntry) ProtoMessage() {}
func (x *FanotifyMountMarkEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FanotifyMountMarkEntry.ProtoReflect.Descriptor instead.
func (*FanotifyMountMarkEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{3}
}
func (x *FanotifyMountMarkEntry) GetMntId() uint32 {
if x != nil && x.MntId != nil {
return *x.MntId
}
return 0
}
func (x *FanotifyMountMarkEntry) GetPath() string {
if x != nil && x.Path != nil {
return *x.Path
}
return ""
}
type FanotifyMarkEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Type *MarkType `protobuf:"varint,2,req,name=type,enum=criu.MarkType" json:"type,omitempty"`
Mflags *uint32 `protobuf:"varint,3,req,name=mflags" json:"mflags,omitempty"`
Mask *uint32 `protobuf:"varint,4,req,name=mask" json:"mask,omitempty"`
IgnoredMask *uint32 `protobuf:"varint,5,req,name=ignored_mask,json=ignoredMask" json:"ignored_mask,omitempty"`
SDev *uint32 `protobuf:"varint,6,req,name=s_dev,json=sDev" json:"s_dev,omitempty"`
Ie *FanotifyInodeMarkEntry `protobuf:"bytes,7,opt,name=ie" json:"ie,omitempty"`
Me *FanotifyMountMarkEntry `protobuf:"bytes,8,opt,name=me" json:"me,omitempty"`
}
func (x *FanotifyMarkEntry) Reset() {
*x = FanotifyMarkEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FanotifyMarkEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FanotifyMarkEntry) ProtoMessage() {}
func (x *FanotifyMarkEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FanotifyMarkEntry.ProtoReflect.Descriptor instead.
func (*FanotifyMarkEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{4}
}
func (x *FanotifyMarkEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *FanotifyMarkEntry) GetType() MarkType {
if x != nil && x.Type != nil {
return *x.Type
}
return MarkType_INODE
}
func (x *FanotifyMarkEntry) GetMflags() uint32 {
if x != nil && x.Mflags != nil {
return *x.Mflags
}
return 0
}
func (x *FanotifyMarkEntry) GetMask() uint32 {
if x != nil && x.Mask != nil {
return *x.Mask
}
return 0
}
func (x *FanotifyMarkEntry) GetIgnoredMask() uint32 {
if x != nil && x.IgnoredMask != nil {
return *x.IgnoredMask
}
return 0
}
func (x *FanotifyMarkEntry) GetSDev() uint32 {
if x != nil && x.SDev != nil {
return *x.SDev
}
return 0
}
func (x *FanotifyMarkEntry) GetIe() *FanotifyInodeMarkEntry {
if x != nil {
return x.Ie
}
return nil
}
func (x *FanotifyMarkEntry) GetMe() *FanotifyMountMarkEntry {
if x != nil {
return x.Me
}
return nil
}
type FanotifyFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Fown *FownEntry `protobuf:"bytes,3,req,name=fown" json:"fown,omitempty"`
Faflags *uint32 `protobuf:"varint,4,req,name=faflags" json:"faflags,omitempty"`
Evflags *uint32 `protobuf:"varint,5,req,name=evflags" json:"evflags,omitempty"`
Mark []*FanotifyMarkEntry `protobuf:"bytes,6,rep,name=mark" json:"mark,omitempty"`
}
func (x *FanotifyFileEntry) Reset() {
*x = FanotifyFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_fsnotify_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FanotifyFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FanotifyFileEntry) ProtoMessage() {}
func (x *FanotifyFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_fsnotify_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FanotifyFileEntry.ProtoReflect.Descriptor instead.
func (*FanotifyFileEntry) Descriptor() ([]byte, []int) {
return file_fsnotify_proto_rawDescGZIP(), []int{5}
}
func (x *FanotifyFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *FanotifyFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *FanotifyFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *FanotifyFileEntry) GetFaflags() uint32 {
if x != nil && x.Faflags != nil {
return *x.Faflags
}
return 0
}
func (x *FanotifyFileEntry) GetEvflags() uint32 {
if x != nil && x.Evflags != nil {
return *x.Evflags
}
return 0
}
func (x *FanotifyFileEntry) GetMark() []*FanotifyMarkEntry {
if x != nil {
return x.Mark
}
return nil
}
var File_fsnotify_proto protoreflect.FileDescriptor
var file_fsnotify_proto_rawDesc = []byte{
0x0a, 0x0e, 0x66, 0x73, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x08, 0x66, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x66, 0x6f,
0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x01, 0x0a, 0x10, 0x69, 0x6e, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x5f, 0x77, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x13, 0x0a,
0x05, 0x69, 0x5f, 0x69, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x04, 0x69, 0x49,
0x6e, 0x6f, 0x12, 0x19, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d,
0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a,
0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20,
0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f,
0x72, 0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1a, 0x0a, 0x05, 0x73, 0x5f, 0x64, 0x65, 0x76,
0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x73,
0x44, 0x65, 0x76, 0x12, 0x0e, 0x0a, 0x02, 0x77, 0x64, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x02, 0x77, 0x64, 0x12, 0x29, 0x0a, 0x08, 0x66, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18,
0x07, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x68, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x8f,
0x01, 0x0a, 0x12, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02,
0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61,
0x67, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x12, 0x26, 0x0a, 0x02, 0x77, 0x64, 0x18, 0x05,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x69, 0x6e, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x5f, 0x77, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x77, 0x64,
0x22, 0x5b, 0x0a, 0x19, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x69, 0x6e, 0x6f,
0x64, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x13, 0x0a,
0x05, 0x69, 0x5f, 0x69, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x04, 0x69, 0x49,
0x6e, 0x6f, 0x12, 0x29, 0x0a, 0x08, 0x66, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02,
0x20, 0x02, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x68, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x66, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x46, 0x0a,
0x19, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x6e,
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6e, 0x74, 0x49,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0xac, 0x02, 0x0a, 0x13, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69,
0x66, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a,
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
0x70, 0x65, 0x12, 0x1d, 0x0a, 0x06, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x02,
0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x06, 0x6d, 0x66, 0x6c, 0x61, 0x67,
0x73, 0x12, 0x19, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x42,
0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0c,
0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x02,
0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72,
0x65, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1a, 0x0a, 0x05, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x18,
0x06, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x20, 0x01, 0x52, 0x04, 0x73, 0x44,
0x65, 0x76, 0x12, 0x2f, 0x0a, 0x02, 0x69, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x69,
0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x02, 0x69, 0x65, 0x12, 0x2f, 0x0a, 0x02, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1f, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x02, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66,
0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02,
0x08, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f, 0x77,
0x6e, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66,
0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x12,
0x1f, 0x0a, 0x07, 0x66, 0x61, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d,
0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x07, 0x66, 0x61, 0x66, 0x6c, 0x61, 0x67, 0x73,
0x12, 0x1f, 0x0a, 0x07, 0x65, 0x76, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x02, 0x28,
0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x07, 0x65, 0x76, 0x66, 0x6c, 0x61, 0x67,
0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x66, 0x61, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f,
0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b,
0x2a, 0x21, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a,
0x05, 0x49, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x55, 0x4e,
0x54, 0x10, 0x02,
}
var (
file_fsnotify_proto_rawDescOnce sync.Once
file_fsnotify_proto_rawDescData = file_fsnotify_proto_rawDesc
)
func file_fsnotify_proto_rawDescGZIP() []byte {
file_fsnotify_proto_rawDescOnce.Do(func() {
file_fsnotify_proto_rawDescData = protoimpl.X.CompressGZIP(file_fsnotify_proto_rawDescData)
})
return file_fsnotify_proto_rawDescData
}
var file_fsnotify_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_fsnotify_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_fsnotify_proto_goTypes = []interface{}{
(MarkType)(0), // 0: criu.mark_type
(*InotifyWdEntry)(nil), // 1: criu.inotify_wd_entry
(*InotifyFileEntry)(nil), // 2: criu.inotify_file_entry
(*FanotifyInodeMarkEntry)(nil), // 3: criu.fanotify_inode_mark_entry
(*FanotifyMountMarkEntry)(nil), // 4: criu.fanotify_mount_mark_entry
(*FanotifyMarkEntry)(nil), // 5: criu.fanotify_mark_entry
(*FanotifyFileEntry)(nil), // 6: criu.fanotify_file_entry
(*FhEntry)(nil), // 7: criu.fh_entry
(*FownEntry)(nil), // 8: criu.fown_entry
}
var file_fsnotify_proto_depIdxs = []int32{
7, // 0: criu.inotify_wd_entry.f_handle:type_name -> criu.fh_entry
8, // 1: criu.inotify_file_entry.fown:type_name -> criu.fown_entry
1, // 2: criu.inotify_file_entry.wd:type_name -> criu.inotify_wd_entry
7, // 3: criu.fanotify_inode_mark_entry.f_handle:type_name -> criu.fh_entry
0, // 4: criu.fanotify_mark_entry.type:type_name -> criu.mark_type
3, // 5: criu.fanotify_mark_entry.ie:type_name -> criu.fanotify_inode_mark_entry
4, // 6: criu.fanotify_mark_entry.me:type_name -> criu.fanotify_mount_mark_entry
8, // 7: criu.fanotify_file_entry.fown:type_name -> criu.fown_entry
5, // 8: criu.fanotify_file_entry.mark:type_name -> criu.fanotify_mark_entry
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_fsnotify_proto_init() }
func file_fsnotify_proto_init() {
if File_fsnotify_proto != nil {
return
}
file_opts_proto_init()
file_fh_proto_init()
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_fsnotify_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*InotifyWdEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fsnotify_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*InotifyFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fsnotify_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FanotifyInodeMarkEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fsnotify_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FanotifyMountMarkEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fsnotify_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FanotifyMarkEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_fsnotify_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FanotifyFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_fsnotify_proto_rawDesc,
NumEnums: 1,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_fsnotify_proto_goTypes,
DependencyIndexes: file_fsnotify_proto_depIdxs,
EnumInfos: file_fsnotify_proto_enumTypes,
MessageInfos: file_fsnotify_proto_msgTypes,
}.Build()
File_fsnotify_proto = out.File
file_fsnotify_proto_rawDesc = nil
file_fsnotify_proto_goTypes = nil
file_fsnotify_proto_depIdxs = nil
}
@@ -0,0 +1,63 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "fh.proto";
import "fown.proto";
message inotify_wd_entry {
required uint32 id = 1;
required uint64 i_ino = 2;
required uint32 mask = 3 [(criu).hex = true];
required uint32 ignored_mask = 4 [(criu).hex = true];
required uint32 s_dev = 5 [(criu).dev = true];
required uint32 wd = 6;
required fh_entry f_handle = 7;
}
message inotify_file_entry {
required uint32 id = 1;
required uint32 flags = 2 [(criu).hex = true];
required fown_entry fown = 4;
repeated inotify_wd_entry wd = 5;
}
enum mark_type {
INODE = 1;
MOUNT = 2;
}
message fanotify_inode_mark_entry {
required uint64 i_ino = 1;
required fh_entry f_handle = 2;
}
message fanotify_mount_mark_entry {
required uint32 mnt_id = 1;
optional string path = 2;
}
message fanotify_mark_entry {
required uint32 id = 1;
required mark_type type = 2;
required uint32 mflags = 3 [(criu).hex = true];
required uint32 mask = 4 [(criu).hex = true];
required uint32 ignored_mask = 5 [(criu).hex = true];
required uint32 s_dev = 6 [(criu).dev = true];
optional fanotify_inode_mark_entry ie = 7;
optional fanotify_mount_mark_entry me = 8;
}
message fanotify_file_entry {
required uint32 id = 1;
required uint32 flags = 2 [(criu).hex = true];
required fown_entry fown = 3;
required uint32 faflags = 4 [(criu).hex = true];
required uint32 evflags = 5 [(criu).hex = true];
repeated fanotify_mark_entry mark = 6;
}
@@ -0,0 +1,318 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ghost-file.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type GhostFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid *uint32 `protobuf:"varint,1,req,name=uid" json:"uid,omitempty"`
Gid *uint32 `protobuf:"varint,2,req,name=gid" json:"gid,omitempty"`
Mode *uint32 `protobuf:"varint,3,req,name=mode" json:"mode,omitempty"`
Dev *uint32 `protobuf:"varint,4,opt,name=dev" json:"dev,omitempty"`
Ino *uint64 `protobuf:"varint,5,opt,name=ino" json:"ino,omitempty"`
Rdev *uint32 `protobuf:"varint,6,opt,name=rdev" json:"rdev,omitempty"`
Atim *Timeval `protobuf:"bytes,7,opt,name=atim" json:"atim,omitempty"`
Mtim *Timeval `protobuf:"bytes,8,opt,name=mtim" json:"mtim,omitempty"`
Chunks *bool `protobuf:"varint,9,opt,name=chunks" json:"chunks,omitempty"`
Size *uint64 `protobuf:"varint,10,opt,name=size" json:"size,omitempty"`
// this field makes sense only when S_ISLNK(mode)
SymlnkTarget *string `protobuf:"bytes,11,opt,name=symlnk_target,json=symlnkTarget" json:"symlnk_target,omitempty"`
}
func (x *GhostFileEntry) Reset() {
*x = GhostFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ghost_file_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GhostFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GhostFileEntry) ProtoMessage() {}
func (x *GhostFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_ghost_file_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GhostFileEntry.ProtoReflect.Descriptor instead.
func (*GhostFileEntry) Descriptor() ([]byte, []int) {
return file_ghost_file_proto_rawDescGZIP(), []int{0}
}
func (x *GhostFileEntry) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *GhostFileEntry) GetGid() uint32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
func (x *GhostFileEntry) GetMode() uint32 {
if x != nil && x.Mode != nil {
return *x.Mode
}
return 0
}
func (x *GhostFileEntry) GetDev() uint32 {
if x != nil && x.Dev != nil {
return *x.Dev
}
return 0
}
func (x *GhostFileEntry) GetIno() uint64 {
if x != nil && x.Ino != nil {
return *x.Ino
}
return 0
}
func (x *GhostFileEntry) GetRdev() uint32 {
if x != nil && x.Rdev != nil {
return *x.Rdev
}
return 0
}
func (x *GhostFileEntry) GetAtim() *Timeval {
if x != nil {
return x.Atim
}
return nil
}
func (x *GhostFileEntry) GetMtim() *Timeval {
if x != nil {
return x.Mtim
}
return nil
}
func (x *GhostFileEntry) GetChunks() bool {
if x != nil && x.Chunks != nil {
return *x.Chunks
}
return false
}
func (x *GhostFileEntry) GetSize() uint64 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
func (x *GhostFileEntry) GetSymlnkTarget() string {
if x != nil && x.SymlnkTarget != nil {
return *x.SymlnkTarget
}
return ""
}
type GhostChunkEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Len *uint64 `protobuf:"varint,1,req,name=len" json:"len,omitempty"`
Off *uint64 `protobuf:"varint,2,req,name=off" json:"off,omitempty"`
}
func (x *GhostChunkEntry) Reset() {
*x = GhostChunkEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ghost_file_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GhostChunkEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GhostChunkEntry) ProtoMessage() {}
func (x *GhostChunkEntry) ProtoReflect() protoreflect.Message {
mi := &file_ghost_file_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GhostChunkEntry.ProtoReflect.Descriptor instead.
func (*GhostChunkEntry) Descriptor() ([]byte, []int) {
return file_ghost_file_proto_rawDescGZIP(), []int{1}
}
func (x *GhostChunkEntry) GetLen() uint64 {
if x != nil && x.Len != nil {
return *x.Len
}
return 0
}
func (x *GhostChunkEntry) GetOff() uint64 {
if x != nil && x.Off != nil {
return *x.Off
}
return 0
}
var File_ghost_file_proto protoreflect.FileDescriptor
var file_ghost_file_proto_rawDesc = []byte{
0x0a, 0x10, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xac, 0x02, 0x0a, 0x10, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x02,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a,
0x03, 0x64, 0x65, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x20,
0x01, 0x52, 0x03, 0x64, 0x65, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x6e, 0x6f, 0x18, 0x05, 0x20,
0x01, 0x28, 0x04, 0x52, 0x03, 0x69, 0x6e, 0x6f, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x64, 0x65, 0x76,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xd2, 0x3f, 0x02, 0x20, 0x01, 0xd2, 0x3f, 0x02,
0x28, 0x01, 0x52, 0x04, 0x72, 0x64, 0x65, 0x76, 0x12, 0x21, 0x0a, 0x04, 0x61, 0x74, 0x69, 0x6d,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x74, 0x69,
0x6d, 0x65, 0x76, 0x61, 0x6c, 0x52, 0x04, 0x61, 0x74, 0x69, 0x6d, 0x12, 0x21, 0x0a, 0x04, 0x6d,
0x74, 0x69, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x72, 0x69, 0x75,
0x2e, 0x74, 0x69, 0x6d, 0x65, 0x76, 0x61, 0x6c, 0x52, 0x04, 0x6d, 0x74, 0x69, 0x6d, 0x12, 0x16,
0x0a, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x79,
0x6d, 0x6c, 0x6e, 0x6b, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x73, 0x79, 0x6d, 0x6c, 0x6e, 0x6b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22,
0x37, 0x0a, 0x11, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x02, 0x28,
0x04, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20,
0x02, 0x28, 0x04, 0x52, 0x03, 0x6f, 0x66, 0x66,
}
var (
file_ghost_file_proto_rawDescOnce sync.Once
file_ghost_file_proto_rawDescData = file_ghost_file_proto_rawDesc
)
func file_ghost_file_proto_rawDescGZIP() []byte {
file_ghost_file_proto_rawDescOnce.Do(func() {
file_ghost_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_ghost_file_proto_rawDescData)
})
return file_ghost_file_proto_rawDescData
}
var file_ghost_file_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_ghost_file_proto_goTypes = []interface{}{
(*GhostFileEntry)(nil), // 0: criu.ghost_file_entry
(*GhostChunkEntry)(nil), // 1: criu.ghost_chunk_entry
(*Timeval)(nil), // 2: criu.timeval
}
var file_ghost_file_proto_depIdxs = []int32{
2, // 0: criu.ghost_file_entry.atim:type_name -> criu.timeval
2, // 1: criu.ghost_file_entry.mtim:type_name -> criu.timeval
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_ghost_file_proto_init() }
func file_ghost_file_proto_init() {
if File_ghost_file_proto != nil {
return
}
file_opts_proto_init()
file_time_proto_init()
if !protoimpl.UnsafeEnabled {
file_ghost_file_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GhostFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_ghost_file_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GhostChunkEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ghost_file_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ghost_file_proto_goTypes,
DependencyIndexes: file_ghost_file_proto_depIdxs,
MessageInfos: file_ghost_file_proto_msgTypes,
}.Build()
File_ghost_file_proto = out.File
file_ghost_file_proto_rawDesc = nil
file_ghost_file_proto_goTypes = nil
file_ghost_file_proto_depIdxs = nil
}
@@ -0,0 +1,28 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "time.proto";
message ghost_file_entry {
required uint32 uid = 1;
required uint32 gid = 2;
required uint32 mode = 3;
optional uint32 dev = 4 [(criu).dev = true];
optional uint64 ino = 5;
optional uint32 rdev = 6 [(criu).dev = true, (criu).odev = true];
optional timeval atim = 7;
optional timeval mtim = 8;
optional bool chunks = 9;
optional uint64 size = 10;
/* this field makes sense only when S_ISLNK(mode) */
optional string symlnk_target = 11;
}
message ghost_chunk_entry {
required uint64 len = 1;
required uint64 off = 2;
}
+142
View File
@@ -0,0 +1,142 @@
package images
import (
"errors"
"fmt"
"google.golang.org/protobuf/proto"
)
func ProtoHandler(magic string) (proto.Message, error) {
switch magic {
case "APPARMOR":
return &ApparmorEntry{}, nil
case "AUTOFS":
return &AutofsEntry{}, nil
case "BINFMT_MISC":
return &BinfmtMiscEntry{}, nil
case "BPFMAP_DATA":
return &BpfmapDataEntry{}, nil
case "BPFMAP_FILE":
return &BpfmapFileEntry{}, nil
case "CGROUP":
return &CgroupEntry{}, nil
case "CORE":
return &CoreEntry{}, nil
case "CPUINFO":
return &CpuinfoEntry{}, nil
case "CREDS":
return &CredsEntry{}, nil
case "EVENTFD_FILE":
return &EventfdFileEntry{}, nil
case "EVENTPOLL_FILE":
return &EventpollFileEntry{}, nil
case "EVENTPOLL_TFD":
return &EventpollTfdEntry{}, nil
case "EXT_FILES":
return &ExtFileEntry{}, nil
case "FANOTIFY_FILE":
return &FanotifyFileEntry{}, nil
case "FANOTIFY_MARK":
return &FanotifyMarkEntry{}, nil
case "FDINFO":
return &FdinfoEntry{}, nil
case "FIFO":
return &FifoEntry{}, nil
case "FIFO_DATA":
return &PipeDataEntry{}, nil
case "FILES":
return &FileEntry{}, nil
case "FILE_LOCKS":
return &FileLockEntry{}, nil
case "FS":
return &FsEntry{}, nil
case "IDS":
return &TaskKobjIdsEntry{}, nil
case "INETSK":
return &InetSkEntry{}, nil
case "INOTIFY_FILE":
return &InotifyFileEntry{}, nil
case "INOTIFY_WD":
return &InotifyWdEntry{}, nil
case "INVENTORY":
return &InventoryEntry{}, nil
case "IPCNS_MSG":
return &IpcMsgEntry{}, nil
case "IPCNS_SEM":
return &IpcSemEntry{}, nil
case "IPCNS_SHM":
return &IpcShmEntry{}, nil
case "IPC_VAR":
return &IpcVarEntry{}, nil
case "IRMAP_CACHE":
return &IrmapCacheEntry{}, nil
case "ITIMERS":
return &ItimerEntry{}, nil
case "MEMFD_INODE":
return &MemfdInodeEntry{}, nil
case "MM":
return &MmEntry{}, nil
case "MNTS":
return &MntEntry{}, nil
case "NETDEV":
return &NetDeviceEntry{}, nil
case "NETLINK_SK":
return &NetlinkSkEntry{}, nil
case "NETNS":
return &NetnsEntry{}, nil
case "NS_FILES":
return &NsFileEntry{}, nil
case "PACKETSK":
return &PacketSockEntry{}, nil
case "PIDNS":
return &PidnsEntry{}, nil
case "PIPES":
return &PipeEntry{}, nil
case "PIPES_DATA":
return &PipeDataEntry{}, nil
case "POSIX_TIMERS":
return &PosixTimerEntry{}, nil
case "PSTREE":
return &PstreeEntry{}, nil
case "REG_FILES":
return &RegFileEntry{}, nil
case "REMAP_FPATH":
return &RemapFilePathEntry{}, nil
case "RLIMIT":
return &RlimitEntry{}, nil
case "SECCOMP":
return &SeccompEntry{}, nil
case "SIGACT":
return &SaEntry{}, nil
case "SIGNALFD":
return &SignalfdEntry{}, nil
case "SK_QUEUES":
return &SkPacketEntry{}, nil
case "STATS":
return &StatsEntry{}, nil
case "TCP_STREAM":
return &TcpStreamEntry{}, nil
case "TIMENS":
return &TimensEntry{}, nil
case "TIMERFD":
return &TimerfdEntry{}, nil
case "TTY_DATA":
return &TtyDataEntry{}, nil
case "TTY_FILES":
return &TtyFileEntry{}, nil
case "TTY_INFO":
return &TtyInfoEntry{}, nil
case "TUNFILE":
return &TunfileEntry{}, nil
case "UNIXSK":
return &UnixSkEntry{}, nil
case "USERNS":
return &UsernsEntry{}, nil
case "UTSNS":
return &UtsnsEntry{}, nil
case "VMAS":
return &VmaEntry{}, nil
}
return nil, errors.New(fmt.Sprintf("No handler found for magic 0x%x", magic))
}
@@ -0,0 +1,214 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: img-streamer.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This message is sent from CRIU to the streamer.
// - During dump, it communicates the name of the file that is about to be sent
// to the streamer.
// - During restore, CRIU requests image files from the streamer. The message is
// used to communicate the name of the desired file.
type ImgStreamerRequestEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Filename *string `protobuf:"bytes,1,req,name=filename" json:"filename,omitempty"`
}
func (x *ImgStreamerRequestEntry) Reset() {
*x = ImgStreamerRequestEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_img_streamer_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ImgStreamerRequestEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ImgStreamerRequestEntry) ProtoMessage() {}
func (x *ImgStreamerRequestEntry) ProtoReflect() protoreflect.Message {
mi := &file_img_streamer_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ImgStreamerRequestEntry.ProtoReflect.Descriptor instead.
func (*ImgStreamerRequestEntry) Descriptor() ([]byte, []int) {
return file_img_streamer_proto_rawDescGZIP(), []int{0}
}
func (x *ImgStreamerRequestEntry) GetFilename() string {
if x != nil && x.Filename != nil {
return *x.Filename
}
return ""
}
// This message is sent from the streamer to CRIU. It is only used during
// restore to report whether the requested file exists.
type ImgStreamerReplyEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Exists *bool `protobuf:"varint,1,req,name=exists" json:"exists,omitempty"`
}
func (x *ImgStreamerReplyEntry) Reset() {
*x = ImgStreamerReplyEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_img_streamer_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ImgStreamerReplyEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ImgStreamerReplyEntry) ProtoMessage() {}
func (x *ImgStreamerReplyEntry) ProtoReflect() protoreflect.Message {
mi := &file_img_streamer_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ImgStreamerReplyEntry.ProtoReflect.Descriptor instead.
func (*ImgStreamerReplyEntry) Descriptor() ([]byte, []int) {
return file_img_streamer_proto_rawDescGZIP(), []int{1}
}
func (x *ImgStreamerReplyEntry) GetExists() bool {
if x != nil && x.Exists != nil {
return *x.Exists
}
return false
}
var File_img_streamer_proto protoreflect.FileDescriptor
var file_img_streamer_proto_rawDesc = []byte{
0x0a, 0x12, 0x69, 0x6d, 0x67, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x38, 0x0a, 0x1a, 0x69, 0x6d,
0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65,
0x6e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x18, 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65,
0x61, 0x6d, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x02, 0x28, 0x08,
0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73,
}
var (
file_img_streamer_proto_rawDescOnce sync.Once
file_img_streamer_proto_rawDescData = file_img_streamer_proto_rawDesc
)
func file_img_streamer_proto_rawDescGZIP() []byte {
file_img_streamer_proto_rawDescOnce.Do(func() {
file_img_streamer_proto_rawDescData = protoimpl.X.CompressGZIP(file_img_streamer_proto_rawDescData)
})
return file_img_streamer_proto_rawDescData
}
var file_img_streamer_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_img_streamer_proto_goTypes = []interface{}{
(*ImgStreamerRequestEntry)(nil), // 0: criu.img_streamer_request_entry
(*ImgStreamerReplyEntry)(nil), // 1: criu.img_streamer_reply_entry
}
var file_img_streamer_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_img_streamer_proto_init() }
func file_img_streamer_proto_init() {
if File_img_streamer_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_img_streamer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ImgStreamerRequestEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_img_streamer_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ImgStreamerReplyEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_img_streamer_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_img_streamer_proto_goTypes,
DependencyIndexes: file_img_streamer_proto_depIdxs,
MessageInfos: file_img_streamer_proto_msgTypes,
}.Build()
File_img_streamer_proto = out.File
file_img_streamer_proto_rawDesc = nil
file_img_streamer_proto_goTypes = nil
file_img_streamer_proto_depIdxs = nil
}
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
// This message is sent from CRIU to the streamer.
// * During dump, it communicates the name of the file that is about to be sent
// to the streamer.
// * During restore, CRIU requests image files from the streamer. The message is
// used to communicate the name of the desired file.
message img_streamer_request_entry {
required string filename = 1;
}
// This message is sent from the streamer to CRIU. It is only used during
// restore to report whether the requested file exists.
message img_streamer_reply_entry {
required bool exists = 1;
}
@@ -0,0 +1,306 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: inventory.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Lsmtype int32
const (
Lsmtype_NO_LSM Lsmtype = 0
Lsmtype_SELINUX Lsmtype = 1
Lsmtype_APPARMOR Lsmtype = 2
)
// Enum value maps for Lsmtype.
var (
Lsmtype_name = map[int32]string{
0: "NO_LSM",
1: "SELINUX",
2: "APPARMOR",
}
Lsmtype_value = map[string]int32{
"NO_LSM": 0,
"SELINUX": 1,
"APPARMOR": 2,
}
)
func (x Lsmtype) Enum() *Lsmtype {
p := new(Lsmtype)
*p = x
return p
}
func (x Lsmtype) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Lsmtype) Descriptor() protoreflect.EnumDescriptor {
return file_inventory_proto_enumTypes[0].Descriptor()
}
func (Lsmtype) Type() protoreflect.EnumType {
return &file_inventory_proto_enumTypes[0]
}
func (x Lsmtype) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *Lsmtype) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = Lsmtype(num)
return nil
}
// Deprecated: Use Lsmtype.Descriptor instead.
func (Lsmtype) EnumDescriptor() ([]byte, []int) {
return file_inventory_proto_rawDescGZIP(), []int{0}
}
type InventoryEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ImgVersion *uint32 `protobuf:"varint,1,req,name=img_version,json=imgVersion" json:"img_version,omitempty"`
FdinfoPerId *bool `protobuf:"varint,2,opt,name=fdinfo_per_id,json=fdinfoPerId" json:"fdinfo_per_id,omitempty"`
RootIds *TaskKobjIdsEntry `protobuf:"bytes,3,opt,name=root_ids,json=rootIds" json:"root_ids,omitempty"`
NsPerId *bool `protobuf:"varint,4,opt,name=ns_per_id,json=nsPerId" json:"ns_per_id,omitempty"`
RootCgSet *uint32 `protobuf:"varint,5,opt,name=root_cg_set,json=rootCgSet" json:"root_cg_set,omitempty"`
Lsmtype *Lsmtype `protobuf:"varint,6,opt,name=lsmtype,enum=criu.Lsmtype" json:"lsmtype,omitempty"`
DumpUptime *uint64 `protobuf:"varint,8,opt,name=dump_uptime,json=dumpUptime" json:"dump_uptime,omitempty"`
PreDumpMode *uint32 `protobuf:"varint,9,opt,name=pre_dump_mode,json=preDumpMode" json:"pre_dump_mode,omitempty"`
TcpClose *bool `protobuf:"varint,10,opt,name=tcp_close,json=tcpClose" json:"tcp_close,omitempty"`
NetworkLockMethod *uint32 `protobuf:"varint,11,opt,name=network_lock_method,json=networkLockMethod" json:"network_lock_method,omitempty"`
}
func (x *InventoryEntry) Reset() {
*x = InventoryEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_inventory_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *InventoryEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InventoryEntry) ProtoMessage() {}
func (x *InventoryEntry) ProtoReflect() protoreflect.Message {
mi := &file_inventory_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use InventoryEntry.ProtoReflect.Descriptor instead.
func (*InventoryEntry) Descriptor() ([]byte, []int) {
return file_inventory_proto_rawDescGZIP(), []int{0}
}
func (x *InventoryEntry) GetImgVersion() uint32 {
if x != nil && x.ImgVersion != nil {
return *x.ImgVersion
}
return 0
}
func (x *InventoryEntry) GetFdinfoPerId() bool {
if x != nil && x.FdinfoPerId != nil {
return *x.FdinfoPerId
}
return false
}
func (x *InventoryEntry) GetRootIds() *TaskKobjIdsEntry {
if x != nil {
return x.RootIds
}
return nil
}
func (x *InventoryEntry) GetNsPerId() bool {
if x != nil && x.NsPerId != nil {
return *x.NsPerId
}
return false
}
func (x *InventoryEntry) GetRootCgSet() uint32 {
if x != nil && x.RootCgSet != nil {
return *x.RootCgSet
}
return 0
}
func (x *InventoryEntry) GetLsmtype() Lsmtype {
if x != nil && x.Lsmtype != nil {
return *x.Lsmtype
}
return Lsmtype_NO_LSM
}
func (x *InventoryEntry) GetDumpUptime() uint64 {
if x != nil && x.DumpUptime != nil {
return *x.DumpUptime
}
return 0
}
func (x *InventoryEntry) GetPreDumpMode() uint32 {
if x != nil && x.PreDumpMode != nil {
return *x.PreDumpMode
}
return 0
}
func (x *InventoryEntry) GetTcpClose() bool {
if x != nil && x.TcpClose != nil {
return *x.TcpClose
}
return false
}
func (x *InventoryEntry) GetNetworkLockMethod() uint32 {
if x != nil && x.NetworkLockMethod != nil {
return *x.NetworkLockMethod
}
return 0
}
var File_inventory_proto protoreflect.FileDescriptor
var file_inventory_proto_rawDesc = []byte{
0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0x83, 0x03, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72,
0x79, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6d, 0x67, 0x5f, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6d,
0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x64, 0x69, 0x6e,
0x66, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0b, 0x66, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x50, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x08,
0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6b, 0x6f, 0x62, 0x6a, 0x5f,
0x69, 0x64, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x49,
0x64, 0x73, 0x12, 0x1a, 0x0a, 0x09, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e,
0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x67, 0x53, 0x65, 0x74, 0x12, 0x27,
0x0a, 0x07, 0x6c, 0x73, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x0d, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x6c, 0x73, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x52, 0x07,
0x6c, 0x73, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x6d, 0x70, 0x5f,
0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x75,
0x6d, 0x70, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x5f,
0x64, 0x75, 0x6d, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0b, 0x70, 0x72, 0x65, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09,
0x74, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x74, 0x63, 0x70, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x74,
0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c,
0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2a, 0x30, 0x0a, 0x07, 0x6c, 0x73, 0x6d,
0x74, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x4c, 0x53, 0x4d, 0x10, 0x00,
0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x01, 0x12, 0x0c, 0x0a,
0x08, 0x41, 0x50, 0x50, 0x41, 0x52, 0x4d, 0x4f, 0x52, 0x10, 0x02,
}
var (
file_inventory_proto_rawDescOnce sync.Once
file_inventory_proto_rawDescData = file_inventory_proto_rawDesc
)
func file_inventory_proto_rawDescGZIP() []byte {
file_inventory_proto_rawDescOnce.Do(func() {
file_inventory_proto_rawDescData = protoimpl.X.CompressGZIP(file_inventory_proto_rawDescData)
})
return file_inventory_proto_rawDescData
}
var file_inventory_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_inventory_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_inventory_proto_goTypes = []interface{}{
(Lsmtype)(0), // 0: criu.lsmtype
(*InventoryEntry)(nil), // 1: criu.inventory_entry
(*TaskKobjIdsEntry)(nil), // 2: criu.task_kobj_ids_entry
}
var file_inventory_proto_depIdxs = []int32{
2, // 0: criu.inventory_entry.root_ids:type_name -> criu.task_kobj_ids_entry
0, // 1: criu.inventory_entry.lsmtype:type_name -> criu.lsmtype
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_inventory_proto_init() }
func file_inventory_proto_init() {
if File_inventory_proto != nil {
return
}
file_core_proto_init()
if !protoimpl.UnsafeEnabled {
file_inventory_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*InventoryEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_inventory_proto_rawDesc,
NumEnums: 1,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_inventory_proto_goTypes,
DependencyIndexes: file_inventory_proto_depIdxs,
EnumInfos: file_inventory_proto_enumTypes,
MessageInfos: file_inventory_proto_msgTypes,
}.Build()
File_inventory_proto = out.File
file_inventory_proto_rawDesc = nil
file_inventory_proto_goTypes = nil
file_inventory_proto_depIdxs = nil
}
@@ -0,0 +1,25 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "core.proto";
enum lsmtype {
NO_LSM = 0;
SELINUX = 1;
APPARMOR = 2;
}
message inventory_entry {
required uint32 img_version = 1;
optional bool fdinfo_per_id = 2;
optional task_kobj_ids_entry root_ids = 3;
optional bool ns_per_id = 4;
optional uint32 root_cg_set = 5;
optional lsmtype lsmtype = 6;
optional uint64 dump_uptime = 8;
optional uint32 pre_dump_mode = 9;
optional bool tcp_close = 10;
optional uint32 network_lock_method = 11;
}
@@ -0,0 +1,197 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ipc-desc.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type IpcDescEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key *uint32 `protobuf:"varint,1,req,name=key" json:"key,omitempty"`
Uid *uint32 `protobuf:"varint,2,req,name=uid" json:"uid,omitempty"`
Gid *uint32 `protobuf:"varint,3,req,name=gid" json:"gid,omitempty"`
Cuid *uint32 `protobuf:"varint,4,req,name=cuid" json:"cuid,omitempty"`
Cgid *uint32 `protobuf:"varint,5,req,name=cgid" json:"cgid,omitempty"`
Mode *uint32 `protobuf:"varint,6,req,name=mode" json:"mode,omitempty"`
Id *uint32 `protobuf:"varint,7,req,name=id" json:"id,omitempty"`
}
func (x *IpcDescEntry) Reset() {
*x = IpcDescEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_desc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcDescEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcDescEntry) ProtoMessage() {}
func (x *IpcDescEntry) ProtoReflect() protoreflect.Message {
mi := &file_ipc_desc_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcDescEntry.ProtoReflect.Descriptor instead.
func (*IpcDescEntry) Descriptor() ([]byte, []int) {
return file_ipc_desc_proto_rawDescGZIP(), []int{0}
}
func (x *IpcDescEntry) GetKey() uint32 {
if x != nil && x.Key != nil {
return *x.Key
}
return 0
}
func (x *IpcDescEntry) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *IpcDescEntry) GetGid() uint32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
func (x *IpcDescEntry) GetCuid() uint32 {
if x != nil && x.Cuid != nil {
return *x.Cuid
}
return 0
}
func (x *IpcDescEntry) GetCgid() uint32 {
if x != nil && x.Cgid != nil {
return *x.Cgid
}
return 0
}
func (x *IpcDescEntry) GetMode() uint32 {
if x != nil && x.Mode != nil {
return *x.Mode
}
return 0
}
func (x *IpcDescEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
var File_ipc_desc_proto protoreflect.FileDescriptor
var file_ipc_desc_proto_rawDesc = []byte{
0x0a, 0x0e, 0x69, 0x70, 0x63, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x92, 0x01, 0x0a, 0x0e, 0x69, 0x70, 0x63, 0x5f, 0x64,
0x65, 0x73, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x67, 0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x63,
0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x67, 0x69, 0x64, 0x18, 0x05, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x04, 0x63, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18,
0x06, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x07, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
}
var (
file_ipc_desc_proto_rawDescOnce sync.Once
file_ipc_desc_proto_rawDescData = file_ipc_desc_proto_rawDesc
)
func file_ipc_desc_proto_rawDescGZIP() []byte {
file_ipc_desc_proto_rawDescOnce.Do(func() {
file_ipc_desc_proto_rawDescData = protoimpl.X.CompressGZIP(file_ipc_desc_proto_rawDescData)
})
return file_ipc_desc_proto_rawDescData
}
var file_ipc_desc_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ipc_desc_proto_goTypes = []interface{}{
(*IpcDescEntry)(nil), // 0: criu.ipc_desc_entry
}
var file_ipc_desc_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_ipc_desc_proto_init() }
func file_ipc_desc_proto_init() {
if File_ipc_desc_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_ipc_desc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcDescEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ipc_desc_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ipc_desc_proto_goTypes,
DependencyIndexes: file_ipc_desc_proto_depIdxs,
MessageInfos: file_ipc_desc_proto_msgTypes,
}.Build()
File_ipc_desc_proto = out.File
file_ipc_desc_proto_rawDesc = nil
file_ipc_desc_proto_goTypes = nil
file_ipc_desc_proto_depIdxs = nil
}
@@ -0,0 +1,14 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message ipc_desc_entry {
required uint32 key = 1;
required uint32 uid = 2;
required uint32 gid = 3;
required uint32 cuid = 4;
required uint32 cgid = 5;
required uint32 mode = 6;
required uint32 id = 7;
}
@@ -0,0 +1,238 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ipc-msg.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type IpcMsg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mtype *uint64 `protobuf:"varint,1,req,name=mtype" json:"mtype,omitempty"`
Msize *uint32 `protobuf:"varint,2,req,name=msize" json:"msize,omitempty"`
}
func (x *IpcMsg) Reset() {
*x = IpcMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_msg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcMsg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcMsg) ProtoMessage() {}
func (x *IpcMsg) ProtoReflect() protoreflect.Message {
mi := &file_ipc_msg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcMsg.ProtoReflect.Descriptor instead.
func (*IpcMsg) Descriptor() ([]byte, []int) {
return file_ipc_msg_proto_rawDescGZIP(), []int{0}
}
func (x *IpcMsg) GetMtype() uint64 {
if x != nil && x.Mtype != nil {
return *x.Mtype
}
return 0
}
func (x *IpcMsg) GetMsize() uint32 {
if x != nil && x.Msize != nil {
return *x.Msize
}
return 0
}
type IpcMsgEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Desc *IpcDescEntry `protobuf:"bytes,1,req,name=desc" json:"desc,omitempty"`
Qbytes *uint32 `protobuf:"varint,2,req,name=qbytes" json:"qbytes,omitempty"`
Qnum *uint32 `protobuf:"varint,3,req,name=qnum" json:"qnum,omitempty"`
}
func (x *IpcMsgEntry) Reset() {
*x = IpcMsgEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_msg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcMsgEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcMsgEntry) ProtoMessage() {}
func (x *IpcMsgEntry) ProtoReflect() protoreflect.Message {
mi := &file_ipc_msg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcMsgEntry.ProtoReflect.Descriptor instead.
func (*IpcMsgEntry) Descriptor() ([]byte, []int) {
return file_ipc_msg_proto_rawDescGZIP(), []int{1}
}
func (x *IpcMsgEntry) GetDesc() *IpcDescEntry {
if x != nil {
return x.Desc
}
return nil
}
func (x *IpcMsgEntry) GetQbytes() uint32 {
if x != nil && x.Qbytes != nil {
return *x.Qbytes
}
return 0
}
func (x *IpcMsgEntry) GetQnum() uint32 {
if x != nil && x.Qnum != nil {
return *x.Qnum
}
return 0
}
var File_ipc_msg_proto protoreflect.FileDescriptor
var file_ipc_msg_proto_rawDesc = []byte{
0x0a, 0x0d, 0x69, 0x70, 0x63, 0x2d, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0e, 0x69, 0x70, 0x63, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x07, 0x69, 0x70, 0x63, 0x5f, 0x6d, 0x73, 0x67,
0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x52,
0x05, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x69, 0x7a, 0x65, 0x18,
0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x65, 0x0a, 0x0d,
0x69, 0x70, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x28, 0x0a,
0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x69, 0x70, 0x63, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x62, 0x79, 0x74, 0x65,
0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x71, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
0x12, 0x0a, 0x04, 0x71, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x71,
0x6e, 0x75, 0x6d,
}
var (
file_ipc_msg_proto_rawDescOnce sync.Once
file_ipc_msg_proto_rawDescData = file_ipc_msg_proto_rawDesc
)
func file_ipc_msg_proto_rawDescGZIP() []byte {
file_ipc_msg_proto_rawDescOnce.Do(func() {
file_ipc_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_ipc_msg_proto_rawDescData)
})
return file_ipc_msg_proto_rawDescData
}
var file_ipc_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_ipc_msg_proto_goTypes = []interface{}{
(*IpcMsg)(nil), // 0: criu.ipc_msg
(*IpcMsgEntry)(nil), // 1: criu.ipc_msg_entry
(*IpcDescEntry)(nil), // 2: criu.ipc_desc_entry
}
var file_ipc_msg_proto_depIdxs = []int32{
2, // 0: criu.ipc_msg_entry.desc:type_name -> criu.ipc_desc_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_ipc_msg_proto_init() }
func file_ipc_msg_proto_init() {
if File_ipc_msg_proto != nil {
return
}
file_ipc_desc_proto_init()
if !protoimpl.UnsafeEnabled {
file_ipc_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcMsg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_ipc_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcMsgEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ipc_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ipc_msg_proto_goTypes,
DependencyIndexes: file_ipc_msg_proto_depIdxs,
MessageInfos: file_ipc_msg_proto_msgTypes,
}.Build()
File_ipc_msg_proto = out.File
file_ipc_msg_proto_rawDesc = nil
file_ipc_msg_proto_goTypes = nil
file_ipc_msg_proto_depIdxs = nil
}
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "ipc-desc.proto";
message ipc_msg {
required uint64 mtype = 1;
required uint32 msize = 2;
}
message ipc_msg_entry {
required ipc_desc_entry desc = 1;
required uint32 qbytes = 2;
required uint32 qnum = 3;
}
@@ -0,0 +1,157 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ipc-sem.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type IpcSemEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Desc *IpcDescEntry `protobuf:"bytes,1,req,name=desc" json:"desc,omitempty"`
Nsems *uint32 `protobuf:"varint,2,req,name=nsems" json:"nsems,omitempty"`
}
func (x *IpcSemEntry) Reset() {
*x = IpcSemEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_sem_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcSemEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcSemEntry) ProtoMessage() {}
func (x *IpcSemEntry) ProtoReflect() protoreflect.Message {
mi := &file_ipc_sem_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcSemEntry.ProtoReflect.Descriptor instead.
func (*IpcSemEntry) Descriptor() ([]byte, []int) {
return file_ipc_sem_proto_rawDescGZIP(), []int{0}
}
func (x *IpcSemEntry) GetDesc() *IpcDescEntry {
if x != nil {
return x.Desc
}
return nil
}
func (x *IpcSemEntry) GetNsems() uint32 {
if x != nil && x.Nsems != nil {
return *x.Nsems
}
return 0
}
var File_ipc_sem_proto protoreflect.FileDescriptor
var file_ipc_sem_proto_rawDesc = []byte{
0x0a, 0x0d, 0x69, 0x70, 0x63, 0x2d, 0x73, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0e, 0x69, 0x70, 0x63, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4f, 0x0a, 0x0d, 0x69, 0x70, 0x63, 0x5f, 0x73, 0x65, 0x6d,
0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01,
0x20, 0x02, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x69, 0x70, 0x63, 0x5f,
0x64, 0x65, 0x73, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63,
0x12, 0x14, 0x0a, 0x05, 0x6e, 0x73, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x05, 0x6e, 0x73, 0x65, 0x6d, 0x73,
}
var (
file_ipc_sem_proto_rawDescOnce sync.Once
file_ipc_sem_proto_rawDescData = file_ipc_sem_proto_rawDesc
)
func file_ipc_sem_proto_rawDescGZIP() []byte {
file_ipc_sem_proto_rawDescOnce.Do(func() {
file_ipc_sem_proto_rawDescData = protoimpl.X.CompressGZIP(file_ipc_sem_proto_rawDescData)
})
return file_ipc_sem_proto_rawDescData
}
var file_ipc_sem_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ipc_sem_proto_goTypes = []interface{}{
(*IpcSemEntry)(nil), // 0: criu.ipc_sem_entry
(*IpcDescEntry)(nil), // 1: criu.ipc_desc_entry
}
var file_ipc_sem_proto_depIdxs = []int32{
1, // 0: criu.ipc_sem_entry.desc:type_name -> criu.ipc_desc_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_ipc_sem_proto_init() }
func file_ipc_sem_proto_init() {
if File_ipc_sem_proto != nil {
return
}
file_ipc_desc_proto_init()
if !protoimpl.UnsafeEnabled {
file_ipc_sem_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcSemEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ipc_sem_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ipc_sem_proto_goTypes,
DependencyIndexes: file_ipc_sem_proto_depIdxs,
MessageInfos: file_ipc_sem_proto_msgTypes,
}.Build()
File_ipc_sem_proto = out.File
file_ipc_sem_proto_rawDesc = nil
file_ipc_sem_proto_goTypes = nil
file_ipc_sem_proto_depIdxs = nil
}
@@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "ipc-desc.proto";
message ipc_sem_entry {
required ipc_desc_entry desc = 1;
required uint32 nsems = 2;
}
@@ -0,0 +1,177 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ipc-shm.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type IpcShmEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Desc *IpcDescEntry `protobuf:"bytes,1,req,name=desc" json:"desc,omitempty"`
Size *uint64 `protobuf:"varint,2,req,name=size" json:"size,omitempty"`
InPagemaps *bool `protobuf:"varint,3,opt,name=in_pagemaps,json=inPagemaps" json:"in_pagemaps,omitempty"`
HugetlbFlag *uint32 `protobuf:"varint,4,opt,name=hugetlb_flag,json=hugetlbFlag" json:"hugetlb_flag,omitempty"`
}
func (x *IpcShmEntry) Reset() {
*x = IpcShmEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_shm_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcShmEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcShmEntry) ProtoMessage() {}
func (x *IpcShmEntry) ProtoReflect() protoreflect.Message {
mi := &file_ipc_shm_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcShmEntry.ProtoReflect.Descriptor instead.
func (*IpcShmEntry) Descriptor() ([]byte, []int) {
return file_ipc_shm_proto_rawDescGZIP(), []int{0}
}
func (x *IpcShmEntry) GetDesc() *IpcDescEntry {
if x != nil {
return x.Desc
}
return nil
}
func (x *IpcShmEntry) GetSize() uint64 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
func (x *IpcShmEntry) GetInPagemaps() bool {
if x != nil && x.InPagemaps != nil {
return *x.InPagemaps
}
return false
}
func (x *IpcShmEntry) GetHugetlbFlag() uint32 {
if x != nil && x.HugetlbFlag != nil {
return *x.HugetlbFlag
}
return 0
}
var File_ipc_shm_proto protoreflect.FileDescriptor
var file_ipc_shm_proto_rawDesc = []byte{
0x0a, 0x0d, 0x69, 0x70, 0x63, 0x2d, 0x73, 0x68, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0e, 0x69, 0x70, 0x63, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0d, 0x69, 0x70, 0x63, 0x5f, 0x73, 0x68,
0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18,
0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x69, 0x70, 0x63,
0x5f, 0x64, 0x65, 0x73, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x65, 0x73,
0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52,
0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x67, 0x65,
0x6d, 0x61, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, 0x50, 0x61,
0x67, 0x65, 0x6d, 0x61, 0x70, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x75, 0x67, 0x65, 0x74, 0x6c,
0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x68, 0x75,
0x67, 0x65, 0x74, 0x6c, 0x62, 0x46, 0x6c, 0x61, 0x67,
}
var (
file_ipc_shm_proto_rawDescOnce sync.Once
file_ipc_shm_proto_rawDescData = file_ipc_shm_proto_rawDesc
)
func file_ipc_shm_proto_rawDescGZIP() []byte {
file_ipc_shm_proto_rawDescOnce.Do(func() {
file_ipc_shm_proto_rawDescData = protoimpl.X.CompressGZIP(file_ipc_shm_proto_rawDescData)
})
return file_ipc_shm_proto_rawDescData
}
var file_ipc_shm_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ipc_shm_proto_goTypes = []interface{}{
(*IpcShmEntry)(nil), // 0: criu.ipc_shm_entry
(*IpcDescEntry)(nil), // 1: criu.ipc_desc_entry
}
var file_ipc_shm_proto_depIdxs = []int32{
1, // 0: criu.ipc_shm_entry.desc:type_name -> criu.ipc_desc_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_ipc_shm_proto_init() }
func file_ipc_shm_proto_init() {
if File_ipc_shm_proto != nil {
return
}
file_ipc_desc_proto_init()
if !protoimpl.UnsafeEnabled {
file_ipc_shm_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcShmEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ipc_shm_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ipc_shm_proto_goTypes,
DependencyIndexes: file_ipc_shm_proto_depIdxs,
MessageInfos: file_ipc_shm_proto_msgTypes,
}.Build()
File_ipc_shm_proto = out.File
file_ipc_shm_proto_rawDesc = nil
file_ipc_shm_proto_goTypes = nil
file_ipc_shm_proto_depIdxs = nil
}
@@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "ipc-desc.proto";
message ipc_shm_entry {
required ipc_desc_entry desc = 1;
required uint64 size = 2;
optional bool in_pagemaps = 3;
optional uint32 hugetlb_flag = 4;
}
@@ -0,0 +1,305 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ipc-var.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type IpcVarEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SemCtls []uint32 `protobuf:"varint,1,rep,name=sem_ctls,json=semCtls" json:"sem_ctls,omitempty"`
MsgCtlmax *uint32 `protobuf:"varint,2,req,name=msg_ctlmax,json=msgCtlmax" json:"msg_ctlmax,omitempty"`
MsgCtlmnb *uint32 `protobuf:"varint,3,req,name=msg_ctlmnb,json=msgCtlmnb" json:"msg_ctlmnb,omitempty"`
MsgCtlmni *uint32 `protobuf:"varint,4,req,name=msg_ctlmni,json=msgCtlmni" json:"msg_ctlmni,omitempty"`
AutoMsgmni *uint32 `protobuf:"varint,5,req,name=auto_msgmni,json=autoMsgmni" json:"auto_msgmni,omitempty"`
ShmCtlmax *uint64 `protobuf:"varint,6,req,name=shm_ctlmax,json=shmCtlmax" json:"shm_ctlmax,omitempty"`
ShmCtlall *uint64 `protobuf:"varint,7,req,name=shm_ctlall,json=shmCtlall" json:"shm_ctlall,omitempty"`
ShmCtlmni *uint32 `protobuf:"varint,8,req,name=shm_ctlmni,json=shmCtlmni" json:"shm_ctlmni,omitempty"`
ShmRmidForced *uint32 `protobuf:"varint,9,req,name=shm_rmid_forced,json=shmRmidForced" json:"shm_rmid_forced,omitempty"`
MqQueuesMax *uint32 `protobuf:"varint,10,req,name=mq_queues_max,json=mqQueuesMax" json:"mq_queues_max,omitempty"`
MqMsgMax *uint32 `protobuf:"varint,11,req,name=mq_msg_max,json=mqMsgMax" json:"mq_msg_max,omitempty"`
MqMsgsizeMax *uint32 `protobuf:"varint,12,req,name=mq_msgsize_max,json=mqMsgsizeMax" json:"mq_msgsize_max,omitempty"`
MqMsgDefault *uint32 `protobuf:"varint,13,opt,name=mq_msg_default,json=mqMsgDefault" json:"mq_msg_default,omitempty"`
MqMsgsizeDefault *uint32 `protobuf:"varint,14,opt,name=mq_msgsize_default,json=mqMsgsizeDefault" json:"mq_msgsize_default,omitempty"`
MsgNextId *uint32 `protobuf:"varint,15,opt,name=msg_next_id,json=msgNextId" json:"msg_next_id,omitempty"`
SemNextId *uint32 `protobuf:"varint,16,opt,name=sem_next_id,json=semNextId" json:"sem_next_id,omitempty"`
ShmNextId *uint32 `protobuf:"varint,17,opt,name=shm_next_id,json=shmNextId" json:"shm_next_id,omitempty"`
}
func (x *IpcVarEntry) Reset() {
*x = IpcVarEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ipc_var_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IpcVarEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IpcVarEntry) ProtoMessage() {}
func (x *IpcVarEntry) ProtoReflect() protoreflect.Message {
mi := &file_ipc_var_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IpcVarEntry.ProtoReflect.Descriptor instead.
func (*IpcVarEntry) Descriptor() ([]byte, []int) {
return file_ipc_var_proto_rawDescGZIP(), []int{0}
}
func (x *IpcVarEntry) GetSemCtls() []uint32 {
if x != nil {
return x.SemCtls
}
return nil
}
func (x *IpcVarEntry) GetMsgCtlmax() uint32 {
if x != nil && x.MsgCtlmax != nil {
return *x.MsgCtlmax
}
return 0
}
func (x *IpcVarEntry) GetMsgCtlmnb() uint32 {
if x != nil && x.MsgCtlmnb != nil {
return *x.MsgCtlmnb
}
return 0
}
func (x *IpcVarEntry) GetMsgCtlmni() uint32 {
if x != nil && x.MsgCtlmni != nil {
return *x.MsgCtlmni
}
return 0
}
func (x *IpcVarEntry) GetAutoMsgmni() uint32 {
if x != nil && x.AutoMsgmni != nil {
return *x.AutoMsgmni
}
return 0
}
func (x *IpcVarEntry) GetShmCtlmax() uint64 {
if x != nil && x.ShmCtlmax != nil {
return *x.ShmCtlmax
}
return 0
}
func (x *IpcVarEntry) GetShmCtlall() uint64 {
if x != nil && x.ShmCtlall != nil {
return *x.ShmCtlall
}
return 0
}
func (x *IpcVarEntry) GetShmCtlmni() uint32 {
if x != nil && x.ShmCtlmni != nil {
return *x.ShmCtlmni
}
return 0
}
func (x *IpcVarEntry) GetShmRmidForced() uint32 {
if x != nil && x.ShmRmidForced != nil {
return *x.ShmRmidForced
}
return 0
}
func (x *IpcVarEntry) GetMqQueuesMax() uint32 {
if x != nil && x.MqQueuesMax != nil {
return *x.MqQueuesMax
}
return 0
}
func (x *IpcVarEntry) GetMqMsgMax() uint32 {
if x != nil && x.MqMsgMax != nil {
return *x.MqMsgMax
}
return 0
}
func (x *IpcVarEntry) GetMqMsgsizeMax() uint32 {
if x != nil && x.MqMsgsizeMax != nil {
return *x.MqMsgsizeMax
}
return 0
}
func (x *IpcVarEntry) GetMqMsgDefault() uint32 {
if x != nil && x.MqMsgDefault != nil {
return *x.MqMsgDefault
}
return 0
}
func (x *IpcVarEntry) GetMqMsgsizeDefault() uint32 {
if x != nil && x.MqMsgsizeDefault != nil {
return *x.MqMsgsizeDefault
}
return 0
}
func (x *IpcVarEntry) GetMsgNextId() uint32 {
if x != nil && x.MsgNextId != nil {
return *x.MsgNextId
}
return 0
}
func (x *IpcVarEntry) GetSemNextId() uint32 {
if x != nil && x.SemNextId != nil {
return *x.SemNextId
}
return 0
}
func (x *IpcVarEntry) GetShmNextId() uint32 {
if x != nil && x.ShmNextId != nil {
return *x.ShmNextId
}
return 0
}
var File_ipc_var_proto protoreflect.FileDescriptor
var file_ipc_var_proto_rawDesc = []byte{
0x0a, 0x0d, 0x69, 0x70, 0x63, 0x2d, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0xc9, 0x04, 0x0a, 0x0d, 0x69, 0x70, 0x63, 0x5f, 0x76, 0x61,
0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x5f, 0x63,
0x74, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x6d, 0x43, 0x74,
0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x5f, 0x63, 0x74, 0x6c, 0x6d, 0x61, 0x78,
0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x6c, 0x6d, 0x61,
0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x5f, 0x63, 0x74, 0x6c, 0x6d, 0x6e, 0x62, 0x18,
0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x6c, 0x6d, 0x6e, 0x62,
0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x5f, 0x63, 0x74, 0x6c, 0x6d, 0x6e, 0x69, 0x18, 0x04,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x6c, 0x6d, 0x6e, 0x69, 0x12,
0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6d, 0x73, 0x67, 0x6d, 0x6e, 0x69, 0x18, 0x05,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x4d, 0x73, 0x67, 0x6d, 0x6e, 0x69,
0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6d, 0x5f, 0x63, 0x74, 0x6c, 0x6d, 0x61, 0x78, 0x18, 0x06,
0x20, 0x02, 0x28, 0x04, 0x52, 0x09, 0x73, 0x68, 0x6d, 0x43, 0x74, 0x6c, 0x6d, 0x61, 0x78, 0x12,
0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6d, 0x5f, 0x63, 0x74, 0x6c, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20,
0x02, 0x28, 0x04, 0x52, 0x09, 0x73, 0x68, 0x6d, 0x43, 0x74, 0x6c, 0x61, 0x6c, 0x6c, 0x12, 0x1d,
0x0a, 0x0a, 0x73, 0x68, 0x6d, 0x5f, 0x63, 0x74, 0x6c, 0x6d, 0x6e, 0x69, 0x18, 0x08, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x09, 0x73, 0x68, 0x6d, 0x43, 0x74, 0x6c, 0x6d, 0x6e, 0x69, 0x12, 0x26, 0x0a,
0x0f, 0x73, 0x68, 0x6d, 0x5f, 0x72, 0x6d, 0x69, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64,
0x18, 0x09, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x68, 0x6d, 0x52, 0x6d, 0x69, 0x64, 0x46,
0x6f, 0x72, 0x63, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x71, 0x5f, 0x71, 0x75, 0x65, 0x75,
0x65, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x71,
0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x71, 0x5f,
0x6d, 0x73, 0x67, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x08, 0x6d,
0x71, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x71, 0x5f, 0x6d, 0x73,
0x67, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x0d, 0x52,
0x0c, 0x6d, 0x71, 0x4d, 0x73, 0x67, 0x73, 0x69, 0x7a, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a,
0x0e, 0x6d, 0x71, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18,
0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x71, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x66, 0x61,
0x75, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x71, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x69, 0x7a,
0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x10, 0x6d, 0x71, 0x4d, 0x73, 0x67, 0x73, 0x69, 0x7a, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x4e, 0x65, 0x78, 0x74, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x65, 0x6d, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x6d, 0x4e, 0x65, 0x78, 0x74, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x68, 0x6d, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x68, 0x6d, 0x4e, 0x65, 0x78, 0x74, 0x49,
0x64,
}
var (
file_ipc_var_proto_rawDescOnce sync.Once
file_ipc_var_proto_rawDescData = file_ipc_var_proto_rawDesc
)
func file_ipc_var_proto_rawDescGZIP() []byte {
file_ipc_var_proto_rawDescOnce.Do(func() {
file_ipc_var_proto_rawDescData = protoimpl.X.CompressGZIP(file_ipc_var_proto_rawDescData)
})
return file_ipc_var_proto_rawDescData
}
var file_ipc_var_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ipc_var_proto_goTypes = []interface{}{
(*IpcVarEntry)(nil), // 0: criu.ipc_var_entry
}
var file_ipc_var_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_ipc_var_proto_init() }
func file_ipc_var_proto_init() {
if File_ipc_var_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_ipc_var_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IpcVarEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ipc_var_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ipc_var_proto_goTypes,
DependencyIndexes: file_ipc_var_proto_depIdxs,
MessageInfos: file_ipc_var_proto_msgTypes,
}.Build()
File_ipc_var_proto = out.File
file_ipc_var_proto_rawDesc = nil
file_ipc_var_proto_goTypes = nil
file_ipc_var_proto_depIdxs = nil
}
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message ipc_var_entry {
repeated uint32 sem_ctls = 1;
required uint32 msg_ctlmax = 2;
required uint32 msg_ctlmnb = 3;
required uint32 msg_ctlmni = 4;
required uint32 auto_msgmni = 5;
required uint64 shm_ctlmax = 6;
required uint64 shm_ctlall = 7;
required uint32 shm_ctlmni = 8;
required uint32 shm_rmid_forced = 9;
required uint32 mq_queues_max = 10;
required uint32 mq_msg_max = 11;
required uint32 mq_msgsize_max = 12;
optional uint32 mq_msg_default = 13;
optional uint32 mq_msgsize_default = 14;
optional uint32 msg_next_id = 15;
optional uint32 sem_next_id = 16;
optional uint32 shm_next_id = 17;
}
@@ -0,0 +1,152 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: macvlan.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type MacvlanLinkEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mode *uint32 `protobuf:"varint,1,req,name=mode" json:"mode,omitempty"`
Flags *uint32 `protobuf:"varint,2,opt,name=flags" json:"flags,omitempty"`
}
func (x *MacvlanLinkEntry) Reset() {
*x = MacvlanLinkEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_macvlan_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MacvlanLinkEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MacvlanLinkEntry) ProtoMessage() {}
func (x *MacvlanLinkEntry) ProtoReflect() protoreflect.Message {
mi := &file_macvlan_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MacvlanLinkEntry.ProtoReflect.Descriptor instead.
func (*MacvlanLinkEntry) Descriptor() ([]byte, []int) {
return file_macvlan_proto_rawDescGZIP(), []int{0}
}
func (x *MacvlanLinkEntry) GetMode() uint32 {
if x != nil && x.Mode != nil {
return *x.Mode
}
return 0
}
func (x *MacvlanLinkEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
var File_macvlan_proto protoreflect.FileDescriptor
var file_macvlan_proto_rawDesc = []byte{
0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x3e, 0x0a, 0x12, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e,
0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d,
0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
0x66, 0x6c, 0x61, 0x67, 0x73,
}
var (
file_macvlan_proto_rawDescOnce sync.Once
file_macvlan_proto_rawDescData = file_macvlan_proto_rawDesc
)
func file_macvlan_proto_rawDescGZIP() []byte {
file_macvlan_proto_rawDescOnce.Do(func() {
file_macvlan_proto_rawDescData = protoimpl.X.CompressGZIP(file_macvlan_proto_rawDescData)
})
return file_macvlan_proto_rawDescData
}
var file_macvlan_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_macvlan_proto_goTypes = []interface{}{
(*MacvlanLinkEntry)(nil), // 0: criu.macvlan_link_entry
}
var file_macvlan_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_macvlan_proto_init() }
func file_macvlan_proto_init() {
if File_macvlan_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_macvlan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MacvlanLinkEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_macvlan_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_macvlan_proto_goTypes,
DependencyIndexes: file_macvlan_proto_depIdxs,
MessageInfos: file_macvlan_proto_msgTypes,
}.Build()
File_macvlan_proto = out.File
file_macvlan_proto_rawDesc = nil
file_macvlan_proto_goTypes = nil
file_macvlan_proto_depIdxs = nil
}
@@ -0,0 +1,9 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message macvlan_link_entry {
required uint32 mode = 1;
optional uint32 flags = 2;
}
+317
View File
@@ -0,0 +1,317 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: memfd.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type MemfdFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Flags *uint32 `protobuf:"varint,2,req,name=flags" json:"flags,omitempty"`
Pos *uint64 `protobuf:"varint,3,req,name=pos" json:"pos,omitempty"`
Fown *FownEntry `protobuf:"bytes,4,req,name=fown" json:"fown,omitempty"`
InodeId *uint32 `protobuf:"varint,5,req,name=inode_id,json=inodeId" json:"inode_id,omitempty"`
}
func (x *MemfdFileEntry) Reset() {
*x = MemfdFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_memfd_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemfdFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemfdFileEntry) ProtoMessage() {}
func (x *MemfdFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_memfd_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemfdFileEntry.ProtoReflect.Descriptor instead.
func (*MemfdFileEntry) Descriptor() ([]byte, []int) {
return file_memfd_proto_rawDescGZIP(), []int{0}
}
func (x *MemfdFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *MemfdFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *MemfdFileEntry) GetPos() uint64 {
if x != nil && x.Pos != nil {
return *x.Pos
}
return 0
}
func (x *MemfdFileEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *MemfdFileEntry) GetInodeId() uint32 {
if x != nil && x.InodeId != nil {
return *x.InodeId
}
return 0
}
type MemfdInodeEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
Uid *uint32 `protobuf:"varint,2,req,name=uid" json:"uid,omitempty"`
Gid *uint32 `protobuf:"varint,3,req,name=gid" json:"gid,omitempty"`
Size *uint64 `protobuf:"varint,4,req,name=size" json:"size,omitempty"`
Shmid *uint32 `protobuf:"varint,5,req,name=shmid" json:"shmid,omitempty"`
Seals *uint32 `protobuf:"varint,6,req,name=seals" json:"seals,omitempty"`
InodeId *uint64 `protobuf:"varint,7,req,name=inode_id,json=inodeId" json:"inode_id,omitempty"`
HugetlbFlag *uint32 `protobuf:"varint,8,opt,name=hugetlb_flag,json=hugetlbFlag" json:"hugetlb_flag,omitempty"`
}
func (x *MemfdInodeEntry) Reset() {
*x = MemfdInodeEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_memfd_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemfdInodeEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemfdInodeEntry) ProtoMessage() {}
func (x *MemfdInodeEntry) ProtoReflect() protoreflect.Message {
mi := &file_memfd_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemfdInodeEntry.ProtoReflect.Descriptor instead.
func (*MemfdInodeEntry) Descriptor() ([]byte, []int) {
return file_memfd_proto_rawDescGZIP(), []int{1}
}
func (x *MemfdInodeEntry) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *MemfdInodeEntry) GetUid() uint32 {
if x != nil && x.Uid != nil {
return *x.Uid
}
return 0
}
func (x *MemfdInodeEntry) GetGid() uint32 {
if x != nil && x.Gid != nil {
return *x.Gid
}
return 0
}
func (x *MemfdInodeEntry) GetSize() uint64 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
func (x *MemfdInodeEntry) GetShmid() uint32 {
if x != nil && x.Shmid != nil {
return *x.Shmid
}
return 0
}
func (x *MemfdInodeEntry) GetSeals() uint32 {
if x != nil && x.Seals != nil {
return *x.Seals
}
return 0
}
func (x *MemfdInodeEntry) GetInodeId() uint64 {
if x != nil && x.InodeId != nil {
return *x.InodeId
}
return 0
}
func (x *MemfdInodeEntry) GetHugetlbFlag() uint32 {
if x != nil && x.HugetlbFlag != nil {
return *x.HugetlbFlag
}
return 0
}
var File_memfd_proto protoreflect.FileDescriptor
var file_memfd_proto_rawDesc = []byte{
0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x66, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63,
0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x10,
0x6d, 0x65, 0x6d, 0x66, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64,
0x12, 0x26, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x42,
0x10, 0xd2, 0x3f, 0x0d, 0x1a, 0x0b, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x66, 0x6c, 0x61, 0x67,
0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18,
0x03, 0x20, 0x02, 0x28, 0x04, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x66, 0x6f,
0x77, 0x6e, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e,
0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6f, 0x77, 0x6e,
0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x07, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xdb, 0x01, 0x0a, 0x11,
0x6d, 0x65, 0x6d, 0x66, 0x64, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a,
0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x73, 0x68, 0x6d, 0x69, 0x64, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x68,
0x6d, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x65, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x02,
0x28, 0x0d, 0x42, 0x10, 0xd2, 0x3f, 0x0d, 0x1a, 0x0b, 0x73, 0x65, 0x61, 0x6c, 0x73, 0x2e, 0x66,
0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x73, 0x65, 0x61, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69,
0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07, 0x69,
0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x75, 0x67, 0x65, 0x74, 0x6c,
0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x68, 0x75,
0x67, 0x65, 0x74, 0x6c, 0x62, 0x46, 0x6c, 0x61, 0x67,
}
var (
file_memfd_proto_rawDescOnce sync.Once
file_memfd_proto_rawDescData = file_memfd_proto_rawDesc
)
func file_memfd_proto_rawDescGZIP() []byte {
file_memfd_proto_rawDescOnce.Do(func() {
file_memfd_proto_rawDescData = protoimpl.X.CompressGZIP(file_memfd_proto_rawDescData)
})
return file_memfd_proto_rawDescData
}
var file_memfd_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_memfd_proto_goTypes = []interface{}{
(*MemfdFileEntry)(nil), // 0: criu.memfd_file_entry
(*MemfdInodeEntry)(nil), // 1: criu.memfd_inode_entry
(*FownEntry)(nil), // 2: criu.fown_entry
}
var file_memfd_proto_depIdxs = []int32{
2, // 0: criu.memfd_file_entry.fown:type_name -> criu.fown_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_memfd_proto_init() }
func file_memfd_proto_init() {
if File_memfd_proto != nil {
return
}
file_opts_proto_init()
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_memfd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemfdFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_memfd_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemfdInodeEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_memfd_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_memfd_proto_goTypes,
DependencyIndexes: file_memfd_proto_depIdxs,
MessageInfos: file_memfd_proto_msgTypes,
}.Build()
File_memfd_proto = out.File
file_memfd_proto_rawDesc = nil
file_memfd_proto_goTypes = nil
file_memfd_proto_depIdxs = nil
}
@@ -0,0 +1,26 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "fown.proto";
message memfd_file_entry {
required uint32 id = 1;
required uint32 flags = 2 [(criu).flags = "rfile.flags"];
required uint64 pos = 3;
required fown_entry fown = 4;
required uint32 inode_id = 5;
};
message memfd_inode_entry {
required string name = 1;
required uint32 uid = 2;
required uint32 gid = 3;
required uint64 size = 4;
required uint32 shmid = 5;
required uint32 seals = 6 [(criu).flags = "seals.flags"];
required uint64 inode_id = 7;
optional uint32 hugetlb_flag = 8;
};
+396
View File
@@ -0,0 +1,396 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: mm.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type AioRingEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint64 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
NrReq *uint32 `protobuf:"varint,2,req,name=nr_req,json=nrReq" json:"nr_req,omitempty"`
RingLen *uint32 `protobuf:"varint,3,req,name=ring_len,json=ringLen" json:"ring_len,omitempty"`
}
func (x *AioRingEntry) Reset() {
*x = AioRingEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_mm_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AioRingEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AioRingEntry) ProtoMessage() {}
func (x *AioRingEntry) ProtoReflect() protoreflect.Message {
mi := &file_mm_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AioRingEntry.ProtoReflect.Descriptor instead.
func (*AioRingEntry) Descriptor() ([]byte, []int) {
return file_mm_proto_rawDescGZIP(), []int{0}
}
func (x *AioRingEntry) GetId() uint64 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *AioRingEntry) GetNrReq() uint32 {
if x != nil && x.NrReq != nil {
return *x.NrReq
}
return 0
}
func (x *AioRingEntry) GetRingLen() uint32 {
if x != nil && x.RingLen != nil {
return *x.RingLen
}
return 0
}
type MmEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MmStartCode *uint64 `protobuf:"varint,1,req,name=mm_start_code,json=mmStartCode" json:"mm_start_code,omitempty"`
MmEndCode *uint64 `protobuf:"varint,2,req,name=mm_end_code,json=mmEndCode" json:"mm_end_code,omitempty"`
MmStartData *uint64 `protobuf:"varint,3,req,name=mm_start_data,json=mmStartData" json:"mm_start_data,omitempty"`
MmEndData *uint64 `protobuf:"varint,4,req,name=mm_end_data,json=mmEndData" json:"mm_end_data,omitempty"`
MmStartStack *uint64 `protobuf:"varint,5,req,name=mm_start_stack,json=mmStartStack" json:"mm_start_stack,omitempty"`
MmStartBrk *uint64 `protobuf:"varint,6,req,name=mm_start_brk,json=mmStartBrk" json:"mm_start_brk,omitempty"`
MmBrk *uint64 `protobuf:"varint,7,req,name=mm_brk,json=mmBrk" json:"mm_brk,omitempty"`
MmArgStart *uint64 `protobuf:"varint,8,req,name=mm_arg_start,json=mmArgStart" json:"mm_arg_start,omitempty"`
MmArgEnd *uint64 `protobuf:"varint,9,req,name=mm_arg_end,json=mmArgEnd" json:"mm_arg_end,omitempty"`
MmEnvStart *uint64 `protobuf:"varint,10,req,name=mm_env_start,json=mmEnvStart" json:"mm_env_start,omitempty"`
MmEnvEnd *uint64 `protobuf:"varint,11,req,name=mm_env_end,json=mmEnvEnd" json:"mm_env_end,omitempty"`
ExeFileId *uint32 `protobuf:"varint,12,req,name=exe_file_id,json=exeFileId" json:"exe_file_id,omitempty"`
MmSavedAuxv []uint64 `protobuf:"varint,13,rep,name=mm_saved_auxv,json=mmSavedAuxv" json:"mm_saved_auxv,omitempty"`
Vmas []*VmaEntry `protobuf:"bytes,14,rep,name=vmas" json:"vmas,omitempty"`
Dumpable *int32 `protobuf:"varint,15,opt,name=dumpable" json:"dumpable,omitempty"`
Aios []*AioRingEntry `protobuf:"bytes,16,rep,name=aios" json:"aios,omitempty"`
ThpDisabled *bool `protobuf:"varint,17,opt,name=thp_disabled,json=thpDisabled" json:"thp_disabled,omitempty"`
}
func (x *MmEntry) Reset() {
*x = MmEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_mm_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MmEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MmEntry) ProtoMessage() {}
func (x *MmEntry) ProtoReflect() protoreflect.Message {
mi := &file_mm_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MmEntry.ProtoReflect.Descriptor instead.
func (*MmEntry) Descriptor() ([]byte, []int) {
return file_mm_proto_rawDescGZIP(), []int{1}
}
func (x *MmEntry) GetMmStartCode() uint64 {
if x != nil && x.MmStartCode != nil {
return *x.MmStartCode
}
return 0
}
func (x *MmEntry) GetMmEndCode() uint64 {
if x != nil && x.MmEndCode != nil {
return *x.MmEndCode
}
return 0
}
func (x *MmEntry) GetMmStartData() uint64 {
if x != nil && x.MmStartData != nil {
return *x.MmStartData
}
return 0
}
func (x *MmEntry) GetMmEndData() uint64 {
if x != nil && x.MmEndData != nil {
return *x.MmEndData
}
return 0
}
func (x *MmEntry) GetMmStartStack() uint64 {
if x != nil && x.MmStartStack != nil {
return *x.MmStartStack
}
return 0
}
func (x *MmEntry) GetMmStartBrk() uint64 {
if x != nil && x.MmStartBrk != nil {
return *x.MmStartBrk
}
return 0
}
func (x *MmEntry) GetMmBrk() uint64 {
if x != nil && x.MmBrk != nil {
return *x.MmBrk
}
return 0
}
func (x *MmEntry) GetMmArgStart() uint64 {
if x != nil && x.MmArgStart != nil {
return *x.MmArgStart
}
return 0
}
func (x *MmEntry) GetMmArgEnd() uint64 {
if x != nil && x.MmArgEnd != nil {
return *x.MmArgEnd
}
return 0
}
func (x *MmEntry) GetMmEnvStart() uint64 {
if x != nil && x.MmEnvStart != nil {
return *x.MmEnvStart
}
return 0
}
func (x *MmEntry) GetMmEnvEnd() uint64 {
if x != nil && x.MmEnvEnd != nil {
return *x.MmEnvEnd
}
return 0
}
func (x *MmEntry) GetExeFileId() uint32 {
if x != nil && x.ExeFileId != nil {
return *x.ExeFileId
}
return 0
}
func (x *MmEntry) GetMmSavedAuxv() []uint64 {
if x != nil {
return x.MmSavedAuxv
}
return nil
}
func (x *MmEntry) GetVmas() []*VmaEntry {
if x != nil {
return x.Vmas
}
return nil
}
func (x *MmEntry) GetDumpable() int32 {
if x != nil && x.Dumpable != nil {
return *x.Dumpable
}
return 0
}
func (x *MmEntry) GetAios() []*AioRingEntry {
if x != nil {
return x.Aios
}
return nil
}
func (x *MmEntry) GetThpDisabled() bool {
if x != nil && x.ThpDisabled != nil {
return *x.ThpDisabled
}
return false
}
var File_mm_proto protoreflect.FileDescriptor
var file_mm_proto_rawDesc = []byte{
0x0a, 0x08, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75,
0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x76, 0x6d,
0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x0e, 0x61, 0x69, 0x6f, 0x5f, 0x72,
0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x02, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x72, 0x5f,
0x72, 0x65, 0x71, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x72, 0x52, 0x65, 0x71,
0x12, 0x19, 0x0a, 0x08, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x07, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x6e, 0x22, 0x90, 0x05, 0x0a, 0x08,
0x6d, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x6d, 0x6d, 0x5f, 0x73,
0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x42,
0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x6d, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x6d, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52,
0x09, 0x6d, 0x6d, 0x45, 0x6e, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x6d, 0x6d,
0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x02, 0x28,
0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0b, 0x6d, 0x6d, 0x53, 0x74, 0x61, 0x72,
0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0b, 0x6d, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x5f,
0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08,
0x01, 0x52, 0x09, 0x6d, 0x6d, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x0e,
0x6d, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05,
0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x6d, 0x6d, 0x53,
0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x6d, 0x5f,
0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x02, 0x28, 0x04, 0x42,
0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0a, 0x6d, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42,
0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x06, 0x6d, 0x6d, 0x5f, 0x62, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x02,
0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x6d, 0x6d, 0x42, 0x72, 0x6b,
0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x6d, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
0x18, 0x08, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0a, 0x6d,
0x6d, 0x41, 0x72, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x6d, 0x6d, 0x5f,
0x61, 0x72, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2,
0x3f, 0x02, 0x08, 0x01, 0x52, 0x08, 0x6d, 0x6d, 0x41, 0x72, 0x67, 0x45, 0x6e, 0x64, 0x12, 0x27,
0x0a, 0x0c, 0x6d, 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a,
0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x0a, 0x6d, 0x6d, 0x45,
0x6e, 0x76, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x6d, 0x6d, 0x5f, 0x65, 0x6e,
0x76, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2, 0x3f, 0x02,
0x08, 0x01, 0x52, 0x08, 0x6d, 0x6d, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0b,
0x65, 0x78, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x09, 0x65, 0x78, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d,
0x6d, 0x6d, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x78, 0x76, 0x18, 0x0d, 0x20,
0x03, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x6d, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x75, 0x78, 0x76,
0x12, 0x23, 0x0a, 0x04, 0x76, 0x6d, 0x61, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x76, 0x6d, 0x61, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x04, 0x76, 0x6d, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x6d, 0x70, 0x61, 0x62, 0x6c,
0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x6d, 0x70, 0x61, 0x62, 0x6c,
0x65, 0x12, 0x28, 0x0a, 0x04, 0x61, 0x69, 0x6f, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x61, 0x69, 0x6f, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x61, 0x69, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74,
0x68, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0b, 0x74, 0x68, 0x70, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
}
var (
file_mm_proto_rawDescOnce sync.Once
file_mm_proto_rawDescData = file_mm_proto_rawDesc
)
func file_mm_proto_rawDescGZIP() []byte {
file_mm_proto_rawDescOnce.Do(func() {
file_mm_proto_rawDescData = protoimpl.X.CompressGZIP(file_mm_proto_rawDescData)
})
return file_mm_proto_rawDescData
}
var file_mm_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_mm_proto_goTypes = []interface{}{
(*AioRingEntry)(nil), // 0: criu.aio_ring_entry
(*MmEntry)(nil), // 1: criu.mm_entry
(*VmaEntry)(nil), // 2: criu.vma_entry
}
var file_mm_proto_depIdxs = []int32{
2, // 0: criu.mm_entry.vmas:type_name -> criu.vma_entry
0, // 1: criu.mm_entry.aios:type_name -> criu.aio_ring_entry
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_mm_proto_init() }
func file_mm_proto_init() {
if File_mm_proto != nil {
return
}
file_opts_proto_init()
file_vma_proto_init()
if !protoimpl.UnsafeEnabled {
file_mm_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AioRingEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mm_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MmEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mm_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mm_proto_goTypes,
DependencyIndexes: file_mm_proto_depIdxs,
MessageInfos: file_mm_proto_msgTypes,
}.Build()
File_mm_proto = out.File
file_mm_proto_rawDesc = nil
file_mm_proto_goTypes = nil
file_mm_proto_depIdxs = nil
}
+36
View File
@@ -0,0 +1,36 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "vma.proto";
message aio_ring_entry {
required uint64 id = 1;
required uint32 nr_req = 2;
required uint32 ring_len = 3;
}
message mm_entry {
required uint64 mm_start_code = 1 [(criu).hex = true];
required uint64 mm_end_code = 2 [(criu).hex = true];
required uint64 mm_start_data = 3 [(criu).hex = true];
required uint64 mm_end_data = 4 [(criu).hex = true];
required uint64 mm_start_stack = 5 [(criu).hex = true];
required uint64 mm_start_brk = 6 [(criu).hex = true];
required uint64 mm_brk = 7 [(criu).hex = true];
required uint64 mm_arg_start = 8 [(criu).hex = true];
required uint64 mm_arg_end = 9 [(criu).hex = true];
required uint64 mm_env_start = 10 [(criu).hex = true];
required uint64 mm_env_end = 11 [(criu).hex = true];
required uint32 exe_file_id = 12;
repeated uint64 mm_saved_auxv = 13;
repeated vma_entry vmas = 14;
optional int32 dumpable = 15;
repeated aio_ring_entry aios = 16;
optional bool thp_disabled = 17;
}
+445
View File
@@ -0,0 +1,445 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: mnt.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Fstype int32
const (
Fstype_UNSUPPORTED Fstype = 0
Fstype_PROC Fstype = 1
Fstype_SYSFS Fstype = 2
Fstype_DEVTMPFS Fstype = 3
Fstype_BINFMT_MISC Fstype = 4
Fstype_TMPFS Fstype = 5
Fstype_DEVPTS Fstype = 6
Fstype_SIMFS Fstype = 7
Fstype_PSTORE Fstype = 8
Fstype_SECURITYFS Fstype = 9
Fstype_FUSECTL Fstype = 10
Fstype_DEBUGFS Fstype = 11
Fstype_CGROUP Fstype = 12
Fstype_AUFS Fstype = 13
Fstype_MQUEUE Fstype = 14
Fstype_FUSE Fstype = 15
Fstype_AUTO Fstype = 16
Fstype_OVERLAYFS Fstype = 17
Fstype_AUTOFS Fstype = 18
Fstype_TRACEFS Fstype = 19
Fstype_CGROUP2 Fstype = 23
)
// Enum value maps for Fstype.
var (
Fstype_name = map[int32]string{
0: "UNSUPPORTED",
1: "PROC",
2: "SYSFS",
3: "DEVTMPFS",
4: "BINFMT_MISC",
5: "TMPFS",
6: "DEVPTS",
7: "SIMFS",
8: "PSTORE",
9: "SECURITYFS",
10: "FUSECTL",
11: "DEBUGFS",
12: "CGROUP",
13: "AUFS",
14: "MQUEUE",
15: "FUSE",
16: "AUTO",
17: "OVERLAYFS",
18: "AUTOFS",
19: "TRACEFS",
23: "CGROUP2",
}
Fstype_value = map[string]int32{
"UNSUPPORTED": 0,
"PROC": 1,
"SYSFS": 2,
"DEVTMPFS": 3,
"BINFMT_MISC": 4,
"TMPFS": 5,
"DEVPTS": 6,
"SIMFS": 7,
"PSTORE": 8,
"SECURITYFS": 9,
"FUSECTL": 10,
"DEBUGFS": 11,
"CGROUP": 12,
"AUFS": 13,
"MQUEUE": 14,
"FUSE": 15,
"AUTO": 16,
"OVERLAYFS": 17,
"AUTOFS": 18,
"TRACEFS": 19,
"CGROUP2": 23,
}
)
func (x Fstype) Enum() *Fstype {
p := new(Fstype)
*p = x
return p
}
func (x Fstype) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Fstype) Descriptor() protoreflect.EnumDescriptor {
return file_mnt_proto_enumTypes[0].Descriptor()
}
func (Fstype) Type() protoreflect.EnumType {
return &file_mnt_proto_enumTypes[0]
}
func (x Fstype) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *Fstype) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = Fstype(num)
return nil
}
// Deprecated: Use Fstype.Descriptor instead.
func (Fstype) EnumDescriptor() ([]byte, []int) {
return file_mnt_proto_rawDescGZIP(), []int{0}
}
type MntEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Fstype *uint32 `protobuf:"varint,1,req,name=fstype" json:"fstype,omitempty"`
MntId *uint32 `protobuf:"varint,2,req,name=mnt_id,json=mntId" json:"mnt_id,omitempty"`
RootDev *uint32 `protobuf:"varint,3,req,name=root_dev,json=rootDev" json:"root_dev,omitempty"`
ParentMntId *uint32 `protobuf:"varint,4,req,name=parent_mnt_id,json=parentMntId" json:"parent_mnt_id,omitempty"`
Flags *uint32 `protobuf:"varint,5,req,name=flags" json:"flags,omitempty"`
Root *string `protobuf:"bytes,6,req,name=root" json:"root,omitempty"`
Mountpoint *string `protobuf:"bytes,7,req,name=mountpoint" json:"mountpoint,omitempty"`
Source *string `protobuf:"bytes,8,req,name=source" json:"source,omitempty"`
Options *string `protobuf:"bytes,9,req,name=options" json:"options,omitempty"`
SharedId *uint32 `protobuf:"varint,10,opt,name=shared_id,json=sharedId" json:"shared_id,omitempty"`
MasterId *uint32 `protobuf:"varint,11,opt,name=master_id,json=masterId" json:"master_id,omitempty"`
WithPlugin *bool `protobuf:"varint,12,opt,name=with_plugin,json=withPlugin" json:"with_plugin,omitempty"`
ExtMount *bool `protobuf:"varint,13,opt,name=ext_mount,json=extMount" json:"ext_mount,omitempty"`
Fsname *string `protobuf:"bytes,14,opt,name=fsname" json:"fsname,omitempty"`
InternalSharing *bool `protobuf:"varint,15,opt,name=internal_sharing,json=internalSharing" json:"internal_sharing,omitempty"`
Deleted *bool `protobuf:"varint,16,opt,name=deleted" json:"deleted,omitempty"`
SbFlags *uint32 `protobuf:"varint,17,opt,name=sb_flags,json=sbFlags" json:"sb_flags,omitempty"`
// user defined mapping for external mount
ExtKey *string `protobuf:"bytes,18,opt,name=ext_key,json=extKey" json:"ext_key,omitempty"`
}
func (x *MntEntry) Reset() {
*x = MntEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_mnt_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MntEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MntEntry) ProtoMessage() {}
func (x *MntEntry) ProtoReflect() protoreflect.Message {
mi := &file_mnt_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MntEntry.ProtoReflect.Descriptor instead.
func (*MntEntry) Descriptor() ([]byte, []int) {
return file_mnt_proto_rawDescGZIP(), []int{0}
}
func (x *MntEntry) GetFstype() uint32 {
if x != nil && x.Fstype != nil {
return *x.Fstype
}
return 0
}
func (x *MntEntry) GetMntId() uint32 {
if x != nil && x.MntId != nil {
return *x.MntId
}
return 0
}
func (x *MntEntry) GetRootDev() uint32 {
if x != nil && x.RootDev != nil {
return *x.RootDev
}
return 0
}
func (x *MntEntry) GetParentMntId() uint32 {
if x != nil && x.ParentMntId != nil {
return *x.ParentMntId
}
return 0
}
func (x *MntEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *MntEntry) GetRoot() string {
if x != nil && x.Root != nil {
return *x.Root
}
return ""
}
func (x *MntEntry) GetMountpoint() string {
if x != nil && x.Mountpoint != nil {
return *x.Mountpoint
}
return ""
}
func (x *MntEntry) GetSource() string {
if x != nil && x.Source != nil {
return *x.Source
}
return ""
}
func (x *MntEntry) GetOptions() string {
if x != nil && x.Options != nil {
return *x.Options
}
return ""
}
func (x *MntEntry) GetSharedId() uint32 {
if x != nil && x.SharedId != nil {
return *x.SharedId
}
return 0
}
func (x *MntEntry) GetMasterId() uint32 {
if x != nil && x.MasterId != nil {
return *x.MasterId
}
return 0
}
func (x *MntEntry) GetWithPlugin() bool {
if x != nil && x.WithPlugin != nil {
return *x.WithPlugin
}
return false
}
func (x *MntEntry) GetExtMount() bool {
if x != nil && x.ExtMount != nil {
return *x.ExtMount
}
return false
}
func (x *MntEntry) GetFsname() string {
if x != nil && x.Fsname != nil {
return *x.Fsname
}
return ""
}
func (x *MntEntry) GetInternalSharing() bool {
if x != nil && x.InternalSharing != nil {
return *x.InternalSharing
}
return false
}
func (x *MntEntry) GetDeleted() bool {
if x != nil && x.Deleted != nil {
return *x.Deleted
}
return false
}
func (x *MntEntry) GetSbFlags() uint32 {
if x != nil && x.SbFlags != nil {
return *x.SbFlags
}
return 0
}
func (x *MntEntry) GetExtKey() string {
if x != nil && x.ExtKey != nil {
return *x.ExtKey
}
return ""
}
var File_mnt_proto protoreflect.FileDescriptor
var file_mnt_proto_rawDesc = []byte{
0x0a, 0x09, 0x6d, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69,
0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x04,
0x0a, 0x09, 0x6d, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66,
0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x73, 0x74,
0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x08, 0x72, 0x6f,
0x6f, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f,
0x02, 0x20, 0x01, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x65, 0x76, 0x12, 0x22, 0x0a, 0x0d,
0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x6e, 0x74, 0x49, 0x64,
0x12, 0x1b, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x42,
0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f,
0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18,
0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x02, 0x28,
0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x49, 0x64,
0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a,
0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x1b,
0x0a, 0x09, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x08, 0x52, 0x08, 0x65, 0x78, 0x74, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66,
0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x73, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69,
0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18,
0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52,
0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x08, 0x73, 0x62, 0x5f, 0x66,
0x6c, 0x61, 0x67, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08,
0x01, 0x52, 0x07, 0x73, 0x62, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78,
0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x74,
0x4b, 0x65, 0x79, 0x2a, 0x90, 0x02, 0x0a, 0x06, 0x66, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0f,
0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12,
0x08, 0x0a, 0x04, 0x50, 0x52, 0x4f, 0x43, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x59, 0x53,
0x46, 0x53, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x56, 0x54, 0x4d, 0x50, 0x46, 0x53,
0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x46, 0x4d, 0x54, 0x5f, 0x4d, 0x49, 0x53,
0x43, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4d, 0x50, 0x46, 0x53, 0x10, 0x05, 0x12, 0x0a,
0x0a, 0x06, 0x44, 0x45, 0x56, 0x50, 0x54, 0x53, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x49,
0x4d, 0x46, 0x53, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10,
0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x46, 0x53, 0x10,
0x09, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x55, 0x53, 0x45, 0x43, 0x54, 0x4c, 0x10, 0x0a, 0x12, 0x0b,
0x0a, 0x07, 0x44, 0x45, 0x42, 0x55, 0x47, 0x46, 0x53, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x43,
0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x46, 0x53, 0x10,
0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x0e, 0x12, 0x08, 0x0a,
0x04, 0x46, 0x55, 0x53, 0x45, 0x10, 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10,
0x10, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41, 0x59, 0x46, 0x53, 0x10, 0x11,
0x12, 0x0a, 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x46, 0x53, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07,
0x54, 0x52, 0x41, 0x43, 0x45, 0x46, 0x53, 0x10, 0x13, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x47, 0x52,
0x4f, 0x55, 0x50, 0x32, 0x10, 0x17,
}
var (
file_mnt_proto_rawDescOnce sync.Once
file_mnt_proto_rawDescData = file_mnt_proto_rawDesc
)
func file_mnt_proto_rawDescGZIP() []byte {
file_mnt_proto_rawDescOnce.Do(func() {
file_mnt_proto_rawDescData = protoimpl.X.CompressGZIP(file_mnt_proto_rawDescData)
})
return file_mnt_proto_rawDescData
}
var file_mnt_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_mnt_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_mnt_proto_goTypes = []interface{}{
(Fstype)(0), // 0: criu.fstype
(*MntEntry)(nil), // 1: criu.mnt_entry
}
var file_mnt_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_mnt_proto_init() }
func file_mnt_proto_init() {
if File_mnt_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_mnt_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MntEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mnt_proto_rawDesc,
NumEnums: 1,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mnt_proto_goTypes,
DependencyIndexes: file_mnt_proto_depIdxs,
EnumInfos: file_mnt_proto_enumTypes,
MessageInfos: file_mnt_proto_msgTypes,
}.Build()
File_mnt_proto = out.File
file_mnt_proto_rawDesc = nil
file_mnt_proto_goTypes = nil
file_mnt_proto_depIdxs = nil
}
+63
View File
@@ -0,0 +1,63 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
enum fstype {
UNSUPPORTED = 0;
PROC = 1;
SYSFS = 2;
DEVTMPFS = 3;
BINFMT_MISC = 4;
TMPFS = 5;
DEVPTS = 6;
SIMFS = 7;
PSTORE = 8;
SECURITYFS = 9;
FUSECTL = 10;
DEBUGFS = 11;
CGROUP = 12;
AUFS = 13;
MQUEUE = 14;
FUSE = 15;
AUTO = 16;
OVERLAYFS = 17;
AUTOFS = 18;
TRACEFS = 19;
/* These three are reserved for NFS support */
// RPC_PIPEFS = 20;
// NFS = 21;
// NFS4 = 22;
CGROUP2 = 23;
};
message mnt_entry {
required uint32 fstype = 1;
required uint32 mnt_id = 2;
required uint32 root_dev = 3 [(criu).dev = true];
required uint32 parent_mnt_id = 4;
required uint32 flags = 5 [(criu).hex = true];
required string root = 6;
required string mountpoint = 7;
required string source = 8;
required string options = 9;
optional uint32 shared_id = 10;
optional uint32 master_id = 11;
optional bool with_plugin = 12;
optional bool ext_mount = 13;
optional string fsname = 14;
optional bool internal_sharing = 15;
optional bool deleted = 16;
optional uint32 sb_flags = 17 [(criu).hex = true];
/* user defined mapping for external mount */
optional string ext_key = 18;
}
@@ -0,0 +1,620 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: netdev.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type NdType int32
const (
NdType_LOOPBACK NdType = 1
NdType_VETH NdType = 2
NdType_TUN NdType = 3
// External link -- for those CRIU only dumps and restores
// link parameters such as flags, address, MTU, etc. The
// existence of the link on restore should be provided
// by the setup-namespaces script.
NdType_EXTLINK NdType = 4
NdType_VENET NdType = 5 // OpenVZ device
NdType_BRIDGE NdType = 6
NdType_MACVLAN NdType = 7
NdType_SIT NdType = 8
)
// Enum value maps for NdType.
var (
NdType_name = map[int32]string{
1: "LOOPBACK",
2: "VETH",
3: "TUN",
4: "EXTLINK",
5: "VENET",
6: "BRIDGE",
7: "MACVLAN",
8: "SIT",
}
NdType_value = map[string]int32{
"LOOPBACK": 1,
"VETH": 2,
"TUN": 3,
"EXTLINK": 4,
"VENET": 5,
"BRIDGE": 6,
"MACVLAN": 7,
"SIT": 8,
}
)
func (x NdType) Enum() *NdType {
p := new(NdType)
*p = x
return p
}
func (x NdType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (NdType) Descriptor() protoreflect.EnumDescriptor {
return file_netdev_proto_enumTypes[0].Descriptor()
}
func (NdType) Type() protoreflect.EnumType {
return &file_netdev_proto_enumTypes[0]
}
func (x NdType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *NdType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = NdType(num)
return nil
}
// Deprecated: Use NdType.Descriptor instead.
func (NdType) EnumDescriptor() ([]byte, []int) {
return file_netdev_proto_rawDescGZIP(), []int{0}
}
type NetDeviceEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type *NdType `protobuf:"varint,1,req,name=type,enum=criu.NdType" json:"type,omitempty"`
Ifindex *uint32 `protobuf:"varint,2,req,name=ifindex" json:"ifindex,omitempty"`
Mtu *uint32 `protobuf:"varint,3,req,name=mtu" json:"mtu,omitempty"`
Flags *uint32 `protobuf:"varint,4,req,name=flags" json:"flags,omitempty"`
Name *string `protobuf:"bytes,5,req,name=name" json:"name,omitempty"`
Tun *TunLinkEntry `protobuf:"bytes,6,opt,name=tun" json:"tun,omitempty"`
Address []byte `protobuf:"bytes,7,opt,name=address" json:"address,omitempty"`
Conf []int32 `protobuf:"varint,8,rep,name=conf" json:"conf,omitempty"`
Conf4 []*SysctlEntry `protobuf:"bytes,9,rep,name=conf4" json:"conf4,omitempty"`
Conf6 []*SysctlEntry `protobuf:"bytes,10,rep,name=conf6" json:"conf6,omitempty"`
Macvlan *MacvlanLinkEntry `protobuf:"bytes,11,opt,name=macvlan" json:"macvlan,omitempty"`
PeerIfindex *uint32 `protobuf:"varint,12,opt,name=peer_ifindex,json=peerIfindex" json:"peer_ifindex,omitempty"`
PeerNsid *uint32 `protobuf:"varint,13,opt,name=peer_nsid,json=peerNsid" json:"peer_nsid,omitempty"`
Master *uint32 `protobuf:"varint,14,opt,name=master" json:"master,omitempty"`
Sit *SitEntry `protobuf:"bytes,15,opt,name=sit" json:"sit,omitempty"`
}
func (x *NetDeviceEntry) Reset() {
*x = NetDeviceEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_netdev_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NetDeviceEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NetDeviceEntry) ProtoMessage() {}
func (x *NetDeviceEntry) ProtoReflect() protoreflect.Message {
mi := &file_netdev_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NetDeviceEntry.ProtoReflect.Descriptor instead.
func (*NetDeviceEntry) Descriptor() ([]byte, []int) {
return file_netdev_proto_rawDescGZIP(), []int{0}
}
func (x *NetDeviceEntry) GetType() NdType {
if x != nil && x.Type != nil {
return *x.Type
}
return NdType_LOOPBACK
}
func (x *NetDeviceEntry) GetIfindex() uint32 {
if x != nil && x.Ifindex != nil {
return *x.Ifindex
}
return 0
}
func (x *NetDeviceEntry) GetMtu() uint32 {
if x != nil && x.Mtu != nil {
return *x.Mtu
}
return 0
}
func (x *NetDeviceEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *NetDeviceEntry) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *NetDeviceEntry) GetTun() *TunLinkEntry {
if x != nil {
return x.Tun
}
return nil
}
func (x *NetDeviceEntry) GetAddress() []byte {
if x != nil {
return x.Address
}
return nil
}
func (x *NetDeviceEntry) GetConf() []int32 {
if x != nil {
return x.Conf
}
return nil
}
func (x *NetDeviceEntry) GetConf4() []*SysctlEntry {
if x != nil {
return x.Conf4
}
return nil
}
func (x *NetDeviceEntry) GetConf6() []*SysctlEntry {
if x != nil {
return x.Conf6
}
return nil
}
func (x *NetDeviceEntry) GetMacvlan() *MacvlanLinkEntry {
if x != nil {
return x.Macvlan
}
return nil
}
func (x *NetDeviceEntry) GetPeerIfindex() uint32 {
if x != nil && x.PeerIfindex != nil {
return *x.PeerIfindex
}
return 0
}
func (x *NetDeviceEntry) GetPeerNsid() uint32 {
if x != nil && x.PeerNsid != nil {
return *x.PeerNsid
}
return 0
}
func (x *NetDeviceEntry) GetMaster() uint32 {
if x != nil && x.Master != nil {
return *x.Master
}
return 0
}
func (x *NetDeviceEntry) GetSit() *SitEntry {
if x != nil {
return x.Sit
}
return nil
}
type NetnsId struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// This is CRIU's id which is allocated for each namespace
TargetNsId *uint32 `protobuf:"varint,1,req,name=target_ns_id,json=targetNsId" json:"target_ns_id,omitempty"`
// This is an id which can be used to address this namespace
// from another network namespace. Each network namespace has
// one set of id-s for other namespaces.
NetnsidValue *int32 `protobuf:"varint,2,req,name=netnsid_value,json=netnsidValue" json:"netnsid_value,omitempty"`
}
func (x *NetnsId) Reset() {
*x = NetnsId{}
if protoimpl.UnsafeEnabled {
mi := &file_netdev_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NetnsId) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NetnsId) ProtoMessage() {}
func (x *NetnsId) ProtoReflect() protoreflect.Message {
mi := &file_netdev_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NetnsId.ProtoReflect.Descriptor instead.
func (*NetnsId) Descriptor() ([]byte, []int) {
return file_netdev_proto_rawDescGZIP(), []int{1}
}
func (x *NetnsId) GetTargetNsId() uint32 {
if x != nil && x.TargetNsId != nil {
return *x.TargetNsId
}
return 0
}
func (x *NetnsId) GetNetnsidValue() int32 {
if x != nil && x.NetnsidValue != nil {
return *x.NetnsidValue
}
return 0
}
type NetnsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DefConf []int32 `protobuf:"varint,1,rep,name=def_conf,json=defConf" json:"def_conf,omitempty"`
AllConf []int32 `protobuf:"varint,2,rep,name=all_conf,json=allConf" json:"all_conf,omitempty"`
DefConf4 []*SysctlEntry `protobuf:"bytes,3,rep,name=def_conf4,json=defConf4" json:"def_conf4,omitempty"`
AllConf4 []*SysctlEntry `protobuf:"bytes,4,rep,name=all_conf4,json=allConf4" json:"all_conf4,omitempty"`
DefConf6 []*SysctlEntry `protobuf:"bytes,5,rep,name=def_conf6,json=defConf6" json:"def_conf6,omitempty"`
AllConf6 []*SysctlEntry `protobuf:"bytes,6,rep,name=all_conf6,json=allConf6" json:"all_conf6,omitempty"`
Nsids []*NetnsId `protobuf:"bytes,7,rep,name=nsids" json:"nsids,omitempty"`
ExtKey *string `protobuf:"bytes,8,opt,name=ext_key,json=extKey" json:"ext_key,omitempty"`
UnixConf []*SysctlEntry `protobuf:"bytes,9,rep,name=unix_conf,json=unixConf" json:"unix_conf,omitempty"`
}
func (x *NetnsEntry) Reset() {
*x = NetnsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_netdev_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NetnsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NetnsEntry) ProtoMessage() {}
func (x *NetnsEntry) ProtoReflect() protoreflect.Message {
mi := &file_netdev_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NetnsEntry.ProtoReflect.Descriptor instead.
func (*NetnsEntry) Descriptor() ([]byte, []int) {
return file_netdev_proto_rawDescGZIP(), []int{2}
}
func (x *NetnsEntry) GetDefConf() []int32 {
if x != nil {
return x.DefConf
}
return nil
}
func (x *NetnsEntry) GetAllConf() []int32 {
if x != nil {
return x.AllConf
}
return nil
}
func (x *NetnsEntry) GetDefConf4() []*SysctlEntry {
if x != nil {
return x.DefConf4
}
return nil
}
func (x *NetnsEntry) GetAllConf4() []*SysctlEntry {
if x != nil {
return x.AllConf4
}
return nil
}
func (x *NetnsEntry) GetDefConf6() []*SysctlEntry {
if x != nil {
return x.DefConf6
}
return nil
}
func (x *NetnsEntry) GetAllConf6() []*SysctlEntry {
if x != nil {
return x.AllConf6
}
return nil
}
func (x *NetnsEntry) GetNsids() []*NetnsId {
if x != nil {
return x.Nsids
}
return nil
}
func (x *NetnsEntry) GetExtKey() string {
if x != nil && x.ExtKey != nil {
return *x.ExtKey
}
return ""
}
func (x *NetnsEntry) GetUnixConf() []*SysctlEntry {
if x != nil {
return x.UnixConf
}
return nil
}
var File_netdev_proto protoreflect.FileDescriptor
var file_netdev_proto_rawDesc = []byte{
0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x64, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
0x63, 0x72, 0x69, 0x75, 0x1a, 0x0d, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x09, 0x74, 0x75, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x79, 0x73, 0x63,
0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x73, 0x69, 0x74, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x03, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x6e, 0x64,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69,
0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x66,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x66,
0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x02,
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x74, 0x75, 0x6e, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x74, 0x75, 0x6e,
0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x74, 0x75, 0x6e,
0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x6e, 0x66, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x12, 0x28,
0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x66, 0x34, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x05, 0x63, 0x6f, 0x6e, 0x66, 0x34, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6f, 0x6e, 0x66,
0x36, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73,
0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x6e,
0x66, 0x36, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x6d, 0x61, 0x63, 0x76, 0x6c,
0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d,
0x61, 0x63, 0x76, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69,
0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x65,
0x65, 0x72, 0x49, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x65,
0x72, 0x5f, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65,
0x65, 0x72, 0x4e, 0x73, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x21,
0x0a, 0x03, 0x73, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x72,
0x69, 0x75, 0x2e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x73, 0x69,
0x74, 0x22, 0x51, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x12, 0x20, 0x0a,
0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x73, 0x49, 0x64, 0x12,
0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x69, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x69, 0x64, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x12,
0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28,
0x05, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x2f, 0x0a, 0x09, 0x64, 0x65,
0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x34, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x34, 0x12, 0x2f, 0x0a, 0x09, 0x61,
0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x34, 0x12, 0x2f, 0x0a, 0x09,
0x64, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x36, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x36, 0x12, 0x2f, 0x0a,
0x09, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x36, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x36, 0x12, 0x24,
0x0a, 0x05, 0x6e, 0x73, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
0x63, 0x72, 0x69, 0x75, 0x2e, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x52, 0x05, 0x6e,
0x73, 0x69, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18,
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2f, 0x0a,
0x09, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x2a, 0x64,
0x0a, 0x07, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x4f,
0x50, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x45, 0x54, 0x48, 0x10,
0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x55, 0x4e, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58,
0x54, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x45, 0x4e, 0x45, 0x54,
0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x06, 0x12, 0x0b,
0x0a, 0x07, 0x4d, 0x41, 0x43, 0x56, 0x4c, 0x41, 0x4e, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x53,
0x49, 0x54, 0x10, 0x08,
}
var (
file_netdev_proto_rawDescOnce sync.Once
file_netdev_proto_rawDescData = file_netdev_proto_rawDesc
)
func file_netdev_proto_rawDescGZIP() []byte {
file_netdev_proto_rawDescOnce.Do(func() {
file_netdev_proto_rawDescData = protoimpl.X.CompressGZIP(file_netdev_proto_rawDescData)
})
return file_netdev_proto_rawDescData
}
var file_netdev_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_netdev_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_netdev_proto_goTypes = []interface{}{
(NdType)(0), // 0: criu.nd_type
(*NetDeviceEntry)(nil), // 1: criu.net_device_entry
(*NetnsId)(nil), // 2: criu.netns_id
(*NetnsEntry)(nil), // 3: criu.netns_entry
(*TunLinkEntry)(nil), // 4: criu.tun_link_entry
(*SysctlEntry)(nil), // 5: criu.sysctl_entry
(*MacvlanLinkEntry)(nil), // 6: criu.macvlan_link_entry
(*SitEntry)(nil), // 7: criu.sit_entry
}
var file_netdev_proto_depIdxs = []int32{
0, // 0: criu.net_device_entry.type:type_name -> criu.nd_type
4, // 1: criu.net_device_entry.tun:type_name -> criu.tun_link_entry
5, // 2: criu.net_device_entry.conf4:type_name -> criu.sysctl_entry
5, // 3: criu.net_device_entry.conf6:type_name -> criu.sysctl_entry
6, // 4: criu.net_device_entry.macvlan:type_name -> criu.macvlan_link_entry
7, // 5: criu.net_device_entry.sit:type_name -> criu.sit_entry
5, // 6: criu.netns_entry.def_conf4:type_name -> criu.sysctl_entry
5, // 7: criu.netns_entry.all_conf4:type_name -> criu.sysctl_entry
5, // 8: criu.netns_entry.def_conf6:type_name -> criu.sysctl_entry
5, // 9: criu.netns_entry.all_conf6:type_name -> criu.sysctl_entry
2, // 10: criu.netns_entry.nsids:type_name -> criu.netns_id
5, // 11: criu.netns_entry.unix_conf:type_name -> criu.sysctl_entry
12, // [12:12] is the sub-list for method output_type
12, // [12:12] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension type_name
12, // [12:12] is the sub-list for extension extendee
0, // [0:12] is the sub-list for field type_name
}
func init() { file_netdev_proto_init() }
func file_netdev_proto_init() {
if File_netdev_proto != nil {
return
}
file_macvlan_proto_init()
file_opts_proto_init()
file_tun_proto_init()
file_sysctl_proto_init()
file_sit_proto_init()
if !protoimpl.UnsafeEnabled {
file_netdev_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NetDeviceEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_netdev_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NetnsId); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_netdev_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NetnsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_netdev_proto_rawDesc,
NumEnums: 1,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_netdev_proto_goTypes,
DependencyIndexes: file_netdev_proto_depIdxs,
EnumInfos: file_netdev_proto_enumTypes,
MessageInfos: file_netdev_proto_msgTypes,
}.Build()
File_netdev_proto = out.File
file_netdev_proto_rawDesc = nil
file_netdev_proto_goTypes = nil
file_netdev_proto_depIdxs = nil
}
@@ -0,0 +1,78 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "macvlan.proto";
import "opts.proto";
import "tun.proto";
import "sysctl.proto";
import "sit.proto";
enum nd_type {
LOOPBACK = 1;
VETH = 2;
TUN = 3;
/*
* External link -- for those CRIU only dumps and restores
* link parameters such as flags, address, MTU, etc. The
* existence of the link on restore should be provided
* by the setup-namespaces script.
*/
EXTLINK = 4;
VENET = 5; /* OpenVZ device */
BRIDGE = 6;
MACVLAN = 7;
SIT = 8;
}
message net_device_entry {
required nd_type type = 1;
required uint32 ifindex = 2;
required uint32 mtu = 3;
required uint32 flags = 4 [(criu).hex = true];
required string name = 5;
optional tun_link_entry tun = 6;
optional bytes address = 7;
repeated int32 conf = 8;
repeated sysctl_entry conf4 = 9;
repeated sysctl_entry conf6 = 10;
optional macvlan_link_entry macvlan = 11;
optional uint32 peer_ifindex = 12;
optional uint32 peer_nsid = 13;
optional uint32 master = 14;
optional sit_entry sit = 15;
}
message netns_id {
/* This is CRIU's id which is allocated for each namespace */
required uint32 target_ns_id = 1;
/*
* This is an id which can be used to address this namespace
* from another network namespace. Each network namespace has
* one set of id-s for other namespaces.
*/
required int32 netnsid_value = 2;
}
message netns_entry {
repeated int32 def_conf = 1;
repeated int32 all_conf = 2;
repeated sysctl_entry def_conf4 = 3;
repeated sysctl_entry all_conf4 = 4;
repeated sysctl_entry def_conf6 = 5;
repeated sysctl_entry all_conf6 = 6;
repeated netns_id nsids = 7;
optional string ext_key = 8;
repeated sysctl_entry unix_conf = 9;
}
+170
View File
@@ -0,0 +1,170 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: ns.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type NsFileEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
NsId *uint32 `protobuf:"varint,2,req,name=ns_id,json=nsId" json:"ns_id,omitempty"`
NsCflag *uint32 `protobuf:"varint,3,req,name=ns_cflag,json=nsCflag" json:"ns_cflag,omitempty"`
Flags *uint32 `protobuf:"varint,4,req,name=flags" json:"flags,omitempty"`
}
func (x *NsFileEntry) Reset() {
*x = NsFileEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_ns_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NsFileEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NsFileEntry) ProtoMessage() {}
func (x *NsFileEntry) ProtoReflect() protoreflect.Message {
mi := &file_ns_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NsFileEntry.ProtoReflect.Descriptor instead.
func (*NsFileEntry) Descriptor() ([]byte, []int) {
return file_ns_proto_rawDescGZIP(), []int{0}
}
func (x *NsFileEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *NsFileEntry) GetNsId() uint32 {
if x != nil && x.NsId != nil {
return *x.NsId
}
return 0
}
func (x *NsFileEntry) GetNsCflag() uint32 {
if x != nil && x.NsCflag != nil {
return *x.NsCflag
}
return 0
}
func (x *NsFileEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
var File_ns_proto protoreflect.FileDescriptor
var file_ns_proto_rawDesc = []byte{
0x0a, 0x08, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75,
0x22, 0x65, 0x0a, 0x0d, 0x6e, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69,
0x64, 0x12, 0x13, 0x0a, 0x05, 0x6e, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x04, 0x6e, 0x73, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x73, 0x5f, 0x63, 0x66, 0x6c,
0x61, 0x67, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x73, 0x43, 0x66, 0x6c, 0x61,
0x67, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
}
var (
file_ns_proto_rawDescOnce sync.Once
file_ns_proto_rawDescData = file_ns_proto_rawDesc
)
func file_ns_proto_rawDescGZIP() []byte {
file_ns_proto_rawDescOnce.Do(func() {
file_ns_proto_rawDescData = protoimpl.X.CompressGZIP(file_ns_proto_rawDescData)
})
return file_ns_proto_rawDescData
}
var file_ns_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_ns_proto_goTypes = []interface{}{
(*NsFileEntry)(nil), // 0: criu.ns_file_entry
}
var file_ns_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_ns_proto_init() }
func file_ns_proto_init() {
if File_ns_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_ns_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NsFileEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_ns_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_ns_proto_goTypes,
DependencyIndexes: file_ns_proto_depIdxs,
MessageInfos: file_ns_proto_msgTypes,
}.Build()
File_ns_proto = out.File
file_ns_proto_rawDesc = nil
file_ns_proto_goTypes = nil
file_ns_proto_depIdxs = nil
}
+11
View File
@@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message ns_file_entry {
required uint32 id = 1;
required uint32 ns_id = 2;
required uint32 ns_cflag = 3;
required uint32 flags = 4;
}
+228
View File
@@ -0,0 +1,228 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: opts.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type CRIU_Opts struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hex *bool `protobuf:"varint,1,opt,name=hex" json:"hex,omitempty"` // Indicate that CRIT should treat this field as hex.
Ipadd *bool `protobuf:"varint,2,opt,name=ipadd" json:"ipadd,omitempty"` // The field is IPv4/v6 address
Flags *string `protobuf:"bytes,3,opt,name=flags" json:"flags,omitempty"`
Dev *bool `protobuf:"varint,4,opt,name=dev" json:"dev,omitempty"` // Device major:minor packed
Odev *bool `protobuf:"varint,5,opt,name=odev" json:"odev,omitempty"` // ... in old format
Dict *string `protobuf:"bytes,6,opt,name=dict" json:"dict,omitempty"`
Conv *string `protobuf:"bytes,7,opt,name=conv" json:"conv,omitempty"`
}
func (x *CRIU_Opts) Reset() {
*x = CRIU_Opts{}
if protoimpl.UnsafeEnabled {
mi := &file_opts_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CRIU_Opts) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CRIU_Opts) ProtoMessage() {}
func (x *CRIU_Opts) ProtoReflect() protoreflect.Message {
mi := &file_opts_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CRIU_Opts.ProtoReflect.Descriptor instead.
func (*CRIU_Opts) Descriptor() ([]byte, []int) {
return file_opts_proto_rawDescGZIP(), []int{0}
}
func (x *CRIU_Opts) GetHex() bool {
if x != nil && x.Hex != nil {
return *x.Hex
}
return false
}
func (x *CRIU_Opts) GetIpadd() bool {
if x != nil && x.Ipadd != nil {
return *x.Ipadd
}
return false
}
func (x *CRIU_Opts) GetFlags() string {
if x != nil && x.Flags != nil {
return *x.Flags
}
return ""
}
func (x *CRIU_Opts) GetDev() bool {
if x != nil && x.Dev != nil {
return *x.Dev
}
return false
}
func (x *CRIU_Opts) GetOdev() bool {
if x != nil && x.Odev != nil {
return *x.Odev
}
return false
}
func (x *CRIU_Opts) GetDict() string {
if x != nil && x.Dict != nil {
return *x.Dict
}
return ""
}
func (x *CRIU_Opts) GetConv() string {
if x != nil && x.Conv != nil {
return *x.Conv
}
return ""
}
var file_opts_proto_extTypes = []protoimpl.ExtensionInfo{
{
ExtendedType: (*descriptorpb.FieldOptions)(nil),
ExtensionType: (*CRIU_Opts)(nil),
Field: 1018,
Name: "criu.criu",
Tag: "bytes,1018,opt,name=criu",
Filename: "opts.proto",
},
}
// Extension fields to descriptorpb.FieldOptions.
var (
// Registered unique number to use for all kinds of custom options.
//
// optional criu.CRIU_Opts criu = 1018;
E_Criu = &file_opts_proto_extTypes[0]
)
var File_opts_proto protoreflect.FileDescriptor
var file_opts_proto_rawDesc = []byte{
0x0a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72,
0x69, 0x75, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x43, 0x52, 0x49, 0x55, 0x5f, 0x4f, 0x70,
0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x03, 0x68, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x70, 0x61, 0x64, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x70, 0x61, 0x64, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c,
0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64,
0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x64, 0x65, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
0x52, 0x04, 0x6f, 0x64, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x69, 0x63, 0x74, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x69, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x6e, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x76, 0x3a, 0x43,
0x0a, 0x04, 0x63, 0x72, 0x69, 0x75, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xfa, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63,
0x72, 0x69, 0x75, 0x2e, 0x43, 0x52, 0x49, 0x55, 0x5f, 0x4f, 0x70, 0x74, 0x73, 0x52, 0x04, 0x63,
0x72, 0x69, 0x75,
}
var (
file_opts_proto_rawDescOnce sync.Once
file_opts_proto_rawDescData = file_opts_proto_rawDesc
)
func file_opts_proto_rawDescGZIP() []byte {
file_opts_proto_rawDescOnce.Do(func() {
file_opts_proto_rawDescData = protoimpl.X.CompressGZIP(file_opts_proto_rawDescData)
})
return file_opts_proto_rawDescData
}
var file_opts_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_opts_proto_goTypes = []interface{}{
(*CRIU_Opts)(nil), // 0: criu.CRIU_Opts
(*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions
}
var file_opts_proto_depIdxs = []int32{
1, // 0: criu.criu:extendee -> google.protobuf.FieldOptions
0, // 1: criu.criu:type_name -> criu.CRIU_Opts
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
1, // [1:2] is the sub-list for extension type_name
0, // [0:1] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_opts_proto_init() }
func file_opts_proto_init() {
if File_opts_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_opts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CRIU_Opts); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_opts_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 1,
NumServices: 0,
},
GoTypes: file_opts_proto_goTypes,
DependencyIndexes: file_opts_proto_depIdxs,
MessageInfos: file_opts_proto_msgTypes,
ExtensionInfos: file_opts_proto_extTypes,
}.Build()
File_opts_proto = out.File
file_opts_proto_rawDesc = nil
file_opts_proto_goTypes = nil
file_opts_proto_depIdxs = nil
}
+21
View File
@@ -0,0 +1,21 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "google/protobuf/descriptor.proto";
message CRIU_Opts {
optional bool hex = 1; // Indicate that CRIT should treat this field as hex.
optional bool ipadd = 2; // The field is IPv4/v6 address
optional string flags = 3;
optional bool dev = 4; // Device major:minor packed
optional bool odev = 5; // ... in old format
optional string dict = 6;
optional string conv = 7;
}
extend google.protobuf.FieldOptions {
// Registered unique number to use for all kinds of custom options.
optional CRIU_Opts criu = 1018;
}
@@ -0,0 +1,552 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: packet-sock.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PacketMclist struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Index *uint32 `protobuf:"varint,1,req,name=index" json:"index,omitempty"`
Type *uint32 `protobuf:"varint,2,req,name=type" json:"type,omitempty"`
Addr []byte `protobuf:"bytes,3,req,name=addr" json:"addr,omitempty"`
}
func (x *PacketMclist) Reset() {
*x = PacketMclist{}
if protoimpl.UnsafeEnabled {
mi := &file_packet_sock_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PacketMclist) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PacketMclist) ProtoMessage() {}
func (x *PacketMclist) ProtoReflect() protoreflect.Message {
mi := &file_packet_sock_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PacketMclist.ProtoReflect.Descriptor instead.
func (*PacketMclist) Descriptor() ([]byte, []int) {
return file_packet_sock_proto_rawDescGZIP(), []int{0}
}
func (x *PacketMclist) GetIndex() uint32 {
if x != nil && x.Index != nil {
return *x.Index
}
return 0
}
func (x *PacketMclist) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *PacketMclist) GetAddr() []byte {
if x != nil {
return x.Addr
}
return nil
}
type PacketRing struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BlockSize *uint32 `protobuf:"varint,1,req,name=block_size,json=blockSize" json:"block_size,omitempty"`
BlockNr *uint32 `protobuf:"varint,2,req,name=block_nr,json=blockNr" json:"block_nr,omitempty"`
FrameSize *uint32 `protobuf:"varint,3,req,name=frame_size,json=frameSize" json:"frame_size,omitempty"`
FrameNr *uint32 `protobuf:"varint,4,req,name=frame_nr,json=frameNr" json:"frame_nr,omitempty"`
RetireTmo *uint32 `protobuf:"varint,5,req,name=retire_tmo,json=retireTmo" json:"retire_tmo,omitempty"`
SizeofPriv *uint32 `protobuf:"varint,6,req,name=sizeof_priv,json=sizeofPriv" json:"sizeof_priv,omitempty"`
Features *uint32 `protobuf:"varint,7,req,name=features" json:"features,omitempty"`
}
func (x *PacketRing) Reset() {
*x = PacketRing{}
if protoimpl.UnsafeEnabled {
mi := &file_packet_sock_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PacketRing) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PacketRing) ProtoMessage() {}
func (x *PacketRing) ProtoReflect() protoreflect.Message {
mi := &file_packet_sock_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PacketRing.ProtoReflect.Descriptor instead.
func (*PacketRing) Descriptor() ([]byte, []int) {
return file_packet_sock_proto_rawDescGZIP(), []int{1}
}
func (x *PacketRing) GetBlockSize() uint32 {
if x != nil && x.BlockSize != nil {
return *x.BlockSize
}
return 0
}
func (x *PacketRing) GetBlockNr() uint32 {
if x != nil && x.BlockNr != nil {
return *x.BlockNr
}
return 0
}
func (x *PacketRing) GetFrameSize() uint32 {
if x != nil && x.FrameSize != nil {
return *x.FrameSize
}
return 0
}
func (x *PacketRing) GetFrameNr() uint32 {
if x != nil && x.FrameNr != nil {
return *x.FrameNr
}
return 0
}
func (x *PacketRing) GetRetireTmo() uint32 {
if x != nil && x.RetireTmo != nil {
return *x.RetireTmo
}
return 0
}
func (x *PacketRing) GetSizeofPriv() uint32 {
if x != nil && x.SizeofPriv != nil {
return *x.SizeofPriv
}
return 0
}
func (x *PacketRing) GetFeatures() uint32 {
if x != nil && x.Features != nil {
return *x.Features
}
return 0
}
type PacketSockEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
Type *uint32 `protobuf:"varint,2,req,name=type" json:"type,omitempty"`
Protocol *uint32 `protobuf:"varint,3,req,name=protocol" json:"protocol,omitempty"`
Flags *uint32 `protobuf:"varint,4,req,name=flags" json:"flags,omitempty"`
Ifindex *uint32 `protobuf:"varint,5,req,name=ifindex" json:"ifindex,omitempty"`
Fown *FownEntry `protobuf:"bytes,6,req,name=fown" json:"fown,omitempty"`
Opts *SkOptsEntry `protobuf:"bytes,7,req,name=opts" json:"opts,omitempty"`
Version *uint32 `protobuf:"varint,8,req,name=version" json:"version,omitempty"`
Reserve *uint32 `protobuf:"varint,9,req,name=reserve" json:"reserve,omitempty"`
AuxData *bool `protobuf:"varint,10,req,name=aux_data,json=auxData" json:"aux_data,omitempty"`
OrigDev *bool `protobuf:"varint,11,req,name=orig_dev,json=origDev" json:"orig_dev,omitempty"`
VnetHdr *bool `protobuf:"varint,12,req,name=vnet_hdr,json=vnetHdr" json:"vnet_hdr,omitempty"`
Loss *bool `protobuf:"varint,13,req,name=loss" json:"loss,omitempty"`
Timestamp *uint32 `protobuf:"varint,14,req,name=timestamp" json:"timestamp,omitempty"`
CopyThresh *uint32 `protobuf:"varint,15,req,name=copy_thresh,json=copyThresh" json:"copy_thresh,omitempty"`
Mclist []*PacketMclist `protobuf:"bytes,16,rep,name=mclist" json:"mclist,omitempty"`
Fanout *uint32 `protobuf:"varint,17,opt,name=fanout,def=4294967295" json:"fanout,omitempty"`
RxRing *PacketRing `protobuf:"bytes,18,opt,name=rx_ring,json=rxRing" json:"rx_ring,omitempty"`
TxRing *PacketRing `protobuf:"bytes,19,opt,name=tx_ring,json=txRing" json:"tx_ring,omitempty"`
NsId *uint32 `protobuf:"varint,20,opt,name=ns_id,json=nsId" json:"ns_id,omitempty"`
}
// Default values for PacketSockEntry fields.
const (
Default_PacketSockEntry_Fanout = uint32(4294967295)
)
func (x *PacketSockEntry) Reset() {
*x = PacketSockEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_packet_sock_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PacketSockEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PacketSockEntry) ProtoMessage() {}
func (x *PacketSockEntry) ProtoReflect() protoreflect.Message {
mi := &file_packet_sock_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PacketSockEntry.ProtoReflect.Descriptor instead.
func (*PacketSockEntry) Descriptor() ([]byte, []int) {
return file_packet_sock_proto_rawDescGZIP(), []int{2}
}
func (x *PacketSockEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *PacketSockEntry) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *PacketSockEntry) GetProtocol() uint32 {
if x != nil && x.Protocol != nil {
return *x.Protocol
}
return 0
}
func (x *PacketSockEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *PacketSockEntry) GetIfindex() uint32 {
if x != nil && x.Ifindex != nil {
return *x.Ifindex
}
return 0
}
func (x *PacketSockEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
func (x *PacketSockEntry) GetOpts() *SkOptsEntry {
if x != nil {
return x.Opts
}
return nil
}
func (x *PacketSockEntry) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *PacketSockEntry) GetReserve() uint32 {
if x != nil && x.Reserve != nil {
return *x.Reserve
}
return 0
}
func (x *PacketSockEntry) GetAuxData() bool {
if x != nil && x.AuxData != nil {
return *x.AuxData
}
return false
}
func (x *PacketSockEntry) GetOrigDev() bool {
if x != nil && x.OrigDev != nil {
return *x.OrigDev
}
return false
}
func (x *PacketSockEntry) GetVnetHdr() bool {
if x != nil && x.VnetHdr != nil {
return *x.VnetHdr
}
return false
}
func (x *PacketSockEntry) GetLoss() bool {
if x != nil && x.Loss != nil {
return *x.Loss
}
return false
}
func (x *PacketSockEntry) GetTimestamp() uint32 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *PacketSockEntry) GetCopyThresh() uint32 {
if x != nil && x.CopyThresh != nil {
return *x.CopyThresh
}
return 0
}
func (x *PacketSockEntry) GetMclist() []*PacketMclist {
if x != nil {
return x.Mclist
}
return nil
}
func (x *PacketSockEntry) GetFanout() uint32 {
if x != nil && x.Fanout != nil {
return *x.Fanout
}
return Default_PacketSockEntry_Fanout
}
func (x *PacketSockEntry) GetRxRing() *PacketRing {
if x != nil {
return x.RxRing
}
return nil
}
func (x *PacketSockEntry) GetTxRing() *PacketRing {
if x != nil {
return x.TxRing
}
return nil
}
func (x *PacketSockEntry) GetNsId() uint32 {
if x != nil && x.NsId != nil {
return *x.NsId
}
return 0
}
var File_packet_sock_proto protoreflect.FileDescriptor
var file_packet_sock_proto_rawDesc = []byte{
0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2d, 0x73, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x0d, 0x73, 0x6b, 0x2d, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0x4d, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x63, 0x6c, 0x69, 0x73,
0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61,
0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0c, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x22,
0xdd, 0x01, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x12,
0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19,
0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x72, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d,
0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x61,
0x6d, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x66,
0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x72, 0x61, 0x6d,
0x65, 0x5f, 0x6e, 0x72, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x72, 0x61, 0x6d,
0x65, 0x4e, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x6d,
0x6f, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x54,
0x6d, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0x5f, 0x70, 0x72, 0x69,
0x76, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0x50,
0x72, 0x69, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18,
0x07, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22,
0xef, 0x04, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04,
0x20, 0x02, 0x28, 0x0d, 0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61,
0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x04,
0x66, 0x6f, 0x77, 0x6e, 0x18, 0x06, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x72, 0x69,
0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6f,
0x77, 0x6e, 0x12, 0x27, 0x0a, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x18, 0x07, 0x20, 0x02, 0x28, 0x0b,
0x32, 0x13, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x73, 0x6b, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x5f,
0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6f, 0x70, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
0x18, 0x09, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12,
0x19, 0x0a, 0x08, 0x61, 0x75, 0x78, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x02, 0x28,
0x08, 0x52, 0x07, 0x61, 0x75, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72,
0x69, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72,
0x69, 0x67, 0x44, 0x65, 0x76, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x6e, 0x65, 0x74, 0x5f, 0x68, 0x64,
0x72, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x76, 0x6e, 0x65, 0x74, 0x48, 0x64, 0x72,
0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x08, 0x52, 0x04,
0x6c, 0x6f, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73,
0x68, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x70, 0x79, 0x54, 0x68, 0x72,
0x65, 0x73, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x6d, 0x63, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
0x74, 0x5f, 0x6d, 0x63, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x06, 0x6d, 0x63, 0x6c, 0x69, 0x73, 0x74,
0x12, 0x22, 0x0a, 0x06, 0x66, 0x61, 0x6e, 0x6f, 0x75, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d,
0x3a, 0x0a, 0x34, 0x32, 0x39, 0x34, 0x39, 0x36, 0x37, 0x32, 0x39, 0x35, 0x52, 0x06, 0x66, 0x61,
0x6e, 0x6f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x18,
0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x70, 0x61, 0x63,
0x6b, 0x65, 0x74, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x72, 0x78, 0x52, 0x69, 0x6e, 0x67,
0x12, 0x2a, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x63, 0x72, 0x69, 0x75, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x74, 0x78, 0x52, 0x69, 0x6e, 0x67, 0x12, 0x13, 0x0a, 0x05,
0x6e, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, 0x73, 0x49,
0x64,
}
var (
file_packet_sock_proto_rawDescOnce sync.Once
file_packet_sock_proto_rawDescData = file_packet_sock_proto_rawDesc
)
func file_packet_sock_proto_rawDescGZIP() []byte {
file_packet_sock_proto_rawDescOnce.Do(func() {
file_packet_sock_proto_rawDescData = protoimpl.X.CompressGZIP(file_packet_sock_proto_rawDescData)
})
return file_packet_sock_proto_rawDescData
}
var file_packet_sock_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_packet_sock_proto_goTypes = []interface{}{
(*PacketMclist)(nil), // 0: criu.packet_mclist
(*PacketRing)(nil), // 1: criu.packet_ring
(*PacketSockEntry)(nil), // 2: criu.packet_sock_entry
(*FownEntry)(nil), // 3: criu.fown_entry
(*SkOptsEntry)(nil), // 4: criu.sk_opts_entry
}
var file_packet_sock_proto_depIdxs = []int32{
3, // 0: criu.packet_sock_entry.fown:type_name -> criu.fown_entry
4, // 1: criu.packet_sock_entry.opts:type_name -> criu.sk_opts_entry
0, // 2: criu.packet_sock_entry.mclist:type_name -> criu.packet_mclist
1, // 3: criu.packet_sock_entry.rx_ring:type_name -> criu.packet_ring
1, // 4: criu.packet_sock_entry.tx_ring:type_name -> criu.packet_ring
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_packet_sock_proto_init() }
func file_packet_sock_proto_init() {
if File_packet_sock_proto != nil {
return
}
file_opts_proto_init()
file_fown_proto_init()
file_sk_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_packet_sock_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PacketMclist); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_packet_sock_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PacketRing); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_packet_sock_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PacketSockEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_packet_sock_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_packet_sock_proto_goTypes,
DependencyIndexes: file_packet_sock_proto_depIdxs,
MessageInfos: file_packet_sock_proto_msgTypes,
}.Build()
File_packet_sock_proto = out.File
file_packet_sock_proto_rawDesc = nil
file_packet_sock_proto_goTypes = nil
file_packet_sock_proto_depIdxs = nil
}
@@ -0,0 +1,50 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "fown.proto";
import "sk-opts.proto";
message packet_mclist {
required uint32 index = 1;
required uint32 type = 2;
required bytes addr = 3;
}
message packet_ring {
required uint32 block_size = 1;
required uint32 block_nr = 2;
required uint32 frame_size = 3;
required uint32 frame_nr = 4;
required uint32 retire_tmo = 5;
required uint32 sizeof_priv = 6;
required uint32 features = 7;
}
message packet_sock_entry {
required uint32 id = 1;
required uint32 type = 2;
required uint32 protocol = 3;
required uint32 flags = 4 [(criu).hex = true];
required uint32 ifindex = 5;
required fown_entry fown = 6;
required sk_opts_entry opts = 7;
required uint32 version = 8;
required uint32 reserve = 9;
required bool aux_data = 10;
required bool orig_dev = 11;
required bool vnet_hdr = 12;
required bool loss = 13;
required uint32 timestamp = 14;
required uint32 copy_thresh = 15;
repeated packet_mclist mclist = 16;
optional uint32 fanout = 17 [ default = 0xffffffff ];
optional packet_ring rx_ring = 18;
optional packet_ring tx_ring = 19;
optional uint32 ns_id = 20;
}
@@ -0,0 +1,237 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: pagemap.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PagemapHead struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PagesId *uint32 `protobuf:"varint,1,req,name=pages_id,json=pagesId" json:"pages_id,omitempty"`
}
func (x *PagemapHead) Reset() {
*x = PagemapHead{}
if protoimpl.UnsafeEnabled {
mi := &file_pagemap_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PagemapHead) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PagemapHead) ProtoMessage() {}
func (x *PagemapHead) ProtoReflect() protoreflect.Message {
mi := &file_pagemap_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PagemapHead.ProtoReflect.Descriptor instead.
func (*PagemapHead) Descriptor() ([]byte, []int) {
return file_pagemap_proto_rawDescGZIP(), []int{0}
}
func (x *PagemapHead) GetPagesId() uint32 {
if x != nil && x.PagesId != nil {
return *x.PagesId
}
return 0
}
type PagemapEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Vaddr *uint64 `protobuf:"varint,1,req,name=vaddr" json:"vaddr,omitempty"`
NrPages *uint32 `protobuf:"varint,2,req,name=nr_pages,json=nrPages" json:"nr_pages,omitempty"`
InParent *bool `protobuf:"varint,3,opt,name=in_parent,json=inParent" json:"in_parent,omitempty"`
Flags *uint32 `protobuf:"varint,4,opt,name=flags" json:"flags,omitempty"`
}
func (x *PagemapEntry) Reset() {
*x = PagemapEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_pagemap_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PagemapEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PagemapEntry) ProtoMessage() {}
func (x *PagemapEntry) ProtoReflect() protoreflect.Message {
mi := &file_pagemap_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PagemapEntry.ProtoReflect.Descriptor instead.
func (*PagemapEntry) Descriptor() ([]byte, []int) {
return file_pagemap_proto_rawDescGZIP(), []int{1}
}
func (x *PagemapEntry) GetVaddr() uint64 {
if x != nil && x.Vaddr != nil {
return *x.Vaddr
}
return 0
}
func (x *PagemapEntry) GetNrPages() uint32 {
if x != nil && x.NrPages != nil {
return *x.NrPages
}
return 0
}
func (x *PagemapEntry) GetInParent() bool {
if x != nil && x.InParent != nil {
return *x.InParent
}
return false
}
func (x *PagemapEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
var File_pagemap_proto protoreflect.FileDescriptor
var file_pagemap_proto_rawDesc = []byte{
0x0a, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x6d, 0x61, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x04, 0x63, 0x72, 0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x22, 0x29, 0x0a, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x6d, 0x61, 0x70, 0x5f, 0x68, 0x65, 0x61,
0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x02, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65, 0x73, 0x49, 0x64, 0x22, 0x8b, 0x01, 0x0a,
0x0d, 0x70, 0x61, 0x67, 0x65, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b,
0x0a, 0x05, 0x76, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x02, 0x28, 0x04, 0x42, 0x05, 0xd2,
0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x76, 0x61, 0x64, 0x64, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e,
0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07, 0x6e,
0x72, 0x50, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, 0x50, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0d, 0x42, 0x0f, 0xd2, 0x3f, 0x0c, 0x1a, 0x0a, 0x70, 0x6d, 0x61, 0x70, 0x2e, 0x66, 0x6c,
0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
}
var (
file_pagemap_proto_rawDescOnce sync.Once
file_pagemap_proto_rawDescData = file_pagemap_proto_rawDesc
)
func file_pagemap_proto_rawDescGZIP() []byte {
file_pagemap_proto_rawDescOnce.Do(func() {
file_pagemap_proto_rawDescData = protoimpl.X.CompressGZIP(file_pagemap_proto_rawDescData)
})
return file_pagemap_proto_rawDescData
}
var file_pagemap_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_pagemap_proto_goTypes = []interface{}{
(*PagemapHead)(nil), // 0: criu.pagemap_head
(*PagemapEntry)(nil), // 1: criu.pagemap_entry
}
var file_pagemap_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_pagemap_proto_init() }
func file_pagemap_proto_init() {
if File_pagemap_proto != nil {
return
}
file_opts_proto_init()
if !protoimpl.UnsafeEnabled {
file_pagemap_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PagemapHead); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pagemap_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PagemapEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pagemap_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pagemap_proto_goTypes,
DependencyIndexes: file_pagemap_proto_depIdxs,
MessageInfos: file_pagemap_proto_msgTypes,
}.Build()
File_pagemap_proto = out.File
file_pagemap_proto_rawDesc = nil
file_pagemap_proto_goTypes = nil
file_pagemap_proto_depIdxs = nil
}
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
message pagemap_head {
required uint32 pages_id = 1;
}
message pagemap_entry {
required uint64 vaddr = 1 [(criu).hex = true];
required uint32 nr_pages = 2;
optional bool in_parent = 3;
optional uint32 flags = 4 [(criu).flags = "pmap.flags" ];
}
+142
View File
@@ -0,0 +1,142 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: pidns.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PidnsEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ExtKey *string `protobuf:"bytes,1,opt,name=ext_key,json=extKey" json:"ext_key,omitempty"`
}
func (x *PidnsEntry) Reset() {
*x = PidnsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_pidns_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PidnsEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PidnsEntry) ProtoMessage() {}
func (x *PidnsEntry) ProtoReflect() protoreflect.Message {
mi := &file_pidns_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PidnsEntry.ProtoReflect.Descriptor instead.
func (*PidnsEntry) Descriptor() ([]byte, []int) {
return file_pidns_proto_rawDescGZIP(), []int{0}
}
func (x *PidnsEntry) GetExtKey() string {
if x != nil && x.ExtKey != nil {
return *x.ExtKey
}
return ""
}
var File_pidns_proto protoreflect.FileDescriptor
var file_pidns_proto_rawDesc = []byte{
0x0a, 0x0b, 0x70, 0x69, 0x64, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63,
0x72, 0x69, 0x75, 0x22, 0x26, 0x0a, 0x0b, 0x70, 0x69, 0x64, 0x6e, 0x73, 0x5f, 0x65, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79,
}
var (
file_pidns_proto_rawDescOnce sync.Once
file_pidns_proto_rawDescData = file_pidns_proto_rawDesc
)
func file_pidns_proto_rawDescGZIP() []byte {
file_pidns_proto_rawDescOnce.Do(func() {
file_pidns_proto_rawDescData = protoimpl.X.CompressGZIP(file_pidns_proto_rawDescData)
})
return file_pidns_proto_rawDescData
}
var file_pidns_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_pidns_proto_goTypes = []interface{}{
(*PidnsEntry)(nil), // 0: criu.pidns_entry
}
var file_pidns_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_pidns_proto_init() }
func file_pidns_proto_init() {
if File_pidns_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_pidns_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PidnsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pidns_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pidns_proto_goTypes,
DependencyIndexes: file_pidns_proto_depIdxs,
MessageInfos: file_pidns_proto_msgTypes,
}.Build()
File_pidns_proto = out.File
file_pidns_proto_rawDesc = nil
file_pidns_proto_goTypes = nil
file_pidns_proto_depIdxs = nil
}
@@ -0,0 +1,8 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message pidns_entry {
optional string ext_key = 1;
}
@@ -0,0 +1,161 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: pipe-data.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PipeDataEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PipeId *uint32 `protobuf:"varint,1,req,name=pipe_id,json=pipeId" json:"pipe_id,omitempty"`
Bytes *uint32 `protobuf:"varint,2,req,name=bytes" json:"bytes,omitempty"`
Size *uint32 `protobuf:"varint,3,opt,name=size" json:"size,omitempty"`
}
func (x *PipeDataEntry) Reset() {
*x = PipeDataEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_pipe_data_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipeDataEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipeDataEntry) ProtoMessage() {}
func (x *PipeDataEntry) ProtoReflect() protoreflect.Message {
mi := &file_pipe_data_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PipeDataEntry.ProtoReflect.Descriptor instead.
func (*PipeDataEntry) Descriptor() ([]byte, []int) {
return file_pipe_data_proto_rawDescGZIP(), []int{0}
}
func (x *PipeDataEntry) GetPipeId() uint32 {
if x != nil && x.PipeId != nil {
return *x.PipeId
}
return 0
}
func (x *PipeDataEntry) GetBytes() uint32 {
if x != nil && x.Bytes != nil {
return *x.Bytes
}
return 0
}
func (x *PipeDataEntry) GetSize() uint32 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
var File_pipe_data_proto protoreflect.FileDescriptor
var file_pipe_data_proto_rawDesc = []byte{
0x0a, 0x0f, 0x70, 0x69, 0x70, 0x65, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x04, 0x63, 0x72, 0x69, 0x75, 0x22, 0x54, 0x0a, 0x0f, 0x70, 0x69, 0x70, 0x65, 0x5f,
0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x69,
0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x69, 0x70,
0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x02,
0x28, 0x0d, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65,
}
var (
file_pipe_data_proto_rawDescOnce sync.Once
file_pipe_data_proto_rawDescData = file_pipe_data_proto_rawDesc
)
func file_pipe_data_proto_rawDescGZIP() []byte {
file_pipe_data_proto_rawDescOnce.Do(func() {
file_pipe_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_pipe_data_proto_rawDescData)
})
return file_pipe_data_proto_rawDescData
}
var file_pipe_data_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_pipe_data_proto_goTypes = []interface{}{
(*PipeDataEntry)(nil), // 0: criu.pipe_data_entry
}
var file_pipe_data_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_pipe_data_proto_init() }
func file_pipe_data_proto_init() {
if File_pipe_data_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_pipe_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipeDataEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pipe_data_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pipe_data_proto_goTypes,
DependencyIndexes: file_pipe_data_proto_depIdxs,
MessageInfos: file_pipe_data_proto_msgTypes,
}.Build()
File_pipe_data_proto = out.File
file_pipe_data_proto_rawDesc = nil
file_pipe_data_proto_goTypes = nil
file_pipe_data_proto_depIdxs = nil
}
@@ -0,0 +1,10 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
message pipe_data_entry {
required uint32 pipe_id = 1;
required uint32 bytes = 2;
optional uint32 size = 3;
}
+177
View File
@@ -0,0 +1,177 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: pipe.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PipeEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id *uint32 `protobuf:"varint,1,req,name=id" json:"id,omitempty"`
PipeId *uint32 `protobuf:"varint,2,req,name=pipe_id,json=pipeId" json:"pipe_id,omitempty"`
Flags *uint32 `protobuf:"varint,3,req,name=flags" json:"flags,omitempty"`
Fown *FownEntry `protobuf:"bytes,4,req,name=fown" json:"fown,omitempty"`
}
func (x *PipeEntry) Reset() {
*x = PipeEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_pipe_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipeEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipeEntry) ProtoMessage() {}
func (x *PipeEntry) ProtoReflect() protoreflect.Message {
mi := &file_pipe_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PipeEntry.ProtoReflect.Descriptor instead.
func (*PipeEntry) Descriptor() ([]byte, []int) {
return file_pipe_proto_rawDescGZIP(), []int{0}
}
func (x *PipeEntry) GetId() uint32 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *PipeEntry) GetPipeId() uint32 {
if x != nil && x.PipeId != nil {
return *x.PipeId
}
return 0
}
func (x *PipeEntry) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
}
func (x *PipeEntry) GetFown() *FownEntry {
if x != nil {
return x.Fown
}
return nil
}
var File_pipe_proto protoreflect.FileDescriptor
var file_pipe_proto_rawDesc = []byte{
0x0a, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x72,
0x69, 0x75, 0x1a, 0x0a, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a,
0x66, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x78, 0x0a, 0x0a, 0x70, 0x69,
0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x69, 0x70, 0x65,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x69, 0x70, 0x65, 0x49,
0x64, 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d,
0x42, 0x05, 0xd2, 0x3f, 0x02, 0x08, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x24,
0x0a, 0x04, 0x66, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63,
0x72, 0x69, 0x75, 0x2e, 0x66, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
0x66, 0x6f, 0x77, 0x6e,
}
var (
file_pipe_proto_rawDescOnce sync.Once
file_pipe_proto_rawDescData = file_pipe_proto_rawDesc
)
func file_pipe_proto_rawDescGZIP() []byte {
file_pipe_proto_rawDescOnce.Do(func() {
file_pipe_proto_rawDescData = protoimpl.X.CompressGZIP(file_pipe_proto_rawDescData)
})
return file_pipe_proto_rawDescData
}
var file_pipe_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_pipe_proto_goTypes = []interface{}{
(*PipeEntry)(nil), // 0: criu.pipe_entry
(*FownEntry)(nil), // 1: criu.fown_entry
}
var file_pipe_proto_depIdxs = []int32{
1, // 0: criu.pipe_entry.fown:type_name -> criu.fown_entry
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_pipe_proto_init() }
func file_pipe_proto_init() {
if File_pipe_proto != nil {
return
}
file_opts_proto_init()
file_fown_proto_init()
if !protoimpl.UnsafeEnabled {
file_pipe_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipeEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pipe_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pipe_proto_goTypes,
DependencyIndexes: file_pipe_proto_depIdxs,
MessageInfos: file_pipe_proto_msgTypes,
}.Build()
File_pipe_proto = out.File
file_pipe_proto_rawDesc = nil
file_pipe_proto_goTypes = nil
file_pipe_proto_depIdxs = nil
}
+14
View File
@@ -0,0 +1,14 @@
// SPDX-License-Identifier: MIT
syntax = "proto2";
package criu;
import "opts.proto";
import "fown.proto";
message pipe_entry {
required uint32 id = 1;
required uint32 pipe_id = 2;
required uint32 flags = 3 [(criu).hex = true];
required fown_entry fown = 4;
}
@@ -0,0 +1,179 @@
// SPDX-License-Identifier: MIT
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.4
// source: pstree.proto
package images
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type PstreeEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pid *uint32 `protobuf:"varint,1,req,name=pid" json:"pid,omitempty"`
Ppid *uint32 `protobuf:"varint,2,req,name=ppid" json:"ppid,omitempty"`
Pgid *uint32 `protobuf:"varint,3,req,name=pgid" json:"pgid,omitempty"`
Sid *uint32 `protobuf:"varint,4,req,name=sid" json:"sid,omitempty"`
Threads []uint32 `protobuf:"varint,5,rep,name=threads" json:"threads,omitempty"`
}
func (x *PstreeEntry) Reset() {
*x = PstreeEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_pstree_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PstreeEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PstreeEntry) ProtoMessage() {}
func (x *PstreeEntry) ProtoReflect() protoreflect.Message {
mi := &file_pstree_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PstreeEntry.ProtoReflect.Descriptor instead.
func (*PstreeEntry) Descriptor() ([]byte, []int) {
return file_pstree_proto_rawDescGZIP(), []int{0}
}
func (x *PstreeEntry) GetPid() uint32 {
if x != nil && x.Pid != nil {
return *x.Pid
}
return 0
}
func (x *PstreeEntry) GetPpid() uint32 {
if x != nil && x.Ppid != nil {
return *x.Ppid
}
return 0
}
func (x *PstreeEntry) GetPgid() uint32 {
if x != nil && x.Pgid != nil {
return *x.Pgid
}
return 0
}
func (x *PstreeEntry) GetSid() uint32 {
if x != nil && x.Sid != nil {
return *x.Sid
}
return 0
}
func (x *PstreeEntry) GetThreads() []uint32 {
if x != nil {
return x.Threads
}
return nil
}
var File_pstree_proto protoreflect.FileDescriptor
var file_pstree_proto_rawDesc = []byte{
0x0a, 0x0c, 0x70, 0x73, 0x74, 0x72, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
0x63, 0x72, 0x69, 0x75, 0x22, 0x74, 0x0a, 0x0c, 0x70, 0x73, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28,
0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02,
0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x67,
0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x67, 0x69, 0x64, 0x12, 0x10,
0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x69, 0x64,
0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
0x0d, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
}
var (
file_pstree_proto_rawDescOnce sync.Once
file_pstree_proto_rawDescData = file_pstree_proto_rawDesc
)
func file_pstree_proto_rawDescGZIP() []byte {
file_pstree_proto_rawDescOnce.Do(func() {
file_pstree_proto_rawDescData = protoimpl.X.CompressGZIP(file_pstree_proto_rawDescData)
})
return file_pstree_proto_rawDescData
}
var file_pstree_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_pstree_proto_goTypes = []interface{}{
(*PstreeEntry)(nil), // 0: criu.pstree_entry
}
var file_pstree_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_pstree_proto_init() }
func file_pstree_proto_init() {
if File_pstree_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_pstree_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PstreeEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pstree_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pstree_proto_goTypes,
DependencyIndexes: file_pstree_proto_depIdxs,
MessageInfos: file_pstree_proto_msgTypes,
}.Build()
File_pstree_proto = out.File
file_pstree_proto_rawDesc = nil
file_pstree_proto_goTypes = nil
file_pstree_proto_depIdxs = nil
}

Some files were not shown because too many files have changed in this diff Show More