154 lines
3.0 KiB
Protocol Buffer
154 lines
3.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package openmp.libomptarget.remote;
|
|
option cc_enable_arenas = true;
|
|
|
|
service RemoteOffload {
|
|
rpc Shutdown(Null) returns (I32) {}
|
|
|
|
rpc RegisterLib(TargetBinaryDescription) returns (I32) {}
|
|
rpc UnregisterLib(Pointer) returns (I32) {}
|
|
|
|
rpc IsValidBinary(TargetDeviceImagePtr) returns (I32) {}
|
|
rpc GetNumberOfDevices(Null) returns (I32) {}
|
|
|
|
rpc InitDevice(I32) returns (I32) {}
|
|
rpc InitRequires(I64) returns (I32) {}
|
|
|
|
rpc LoadBinary(Binary) returns (TargetTable) {}
|
|
|
|
rpc DataAlloc(AllocData) returns (Pointer) {}
|
|
rpc DataDelete(DeleteData) returns (I32) {}
|
|
|
|
rpc DataSubmit(stream SubmitData) returns (I32) {}
|
|
rpc DataRetrieve(RetrieveData) returns (stream Data) {}
|
|
|
|
rpc IsDataExchangeable(DevicePair) returns (I32) {}
|
|
rpc DataExchange(ExchangeData) returns (I32) {}
|
|
|
|
rpc RunTargetRegion(TargetRegion) returns (I32) {}
|
|
rpc RunTargetTeamRegion(TargetTeamRegion) returns (I32) {}
|
|
}
|
|
|
|
message Null {}
|
|
|
|
message Pointer { uint64 number = 1; }
|
|
|
|
message I32 { int32 number = 1; }
|
|
|
|
message I64 { int64 number = 1; }
|
|
|
|
message DevicePair {
|
|
int32 src_dev_id = 1;
|
|
int32 dst_dev_id = 2;
|
|
}
|
|
|
|
message Binary {
|
|
uint64 image_ptr = 1;
|
|
int32 device_id = 2;
|
|
}
|
|
|
|
message TargetOffloadEntry {
|
|
bytes data = 1;
|
|
string name = 2;
|
|
int32 flags = 3;
|
|
int32 reserved = 4;
|
|
}
|
|
|
|
message DeviceOffloadEntry {
|
|
string name = 1;
|
|
uint64 addr = 2;
|
|
int32 flags = 3;
|
|
int32 reserved = 4;
|
|
int32 size = 5;
|
|
}
|
|
|
|
message TargetTable {
|
|
repeated DeviceOffloadEntry entries = 1;
|
|
repeated uint64 entry_ptrs = 2;
|
|
}
|
|
|
|
message TargetDeviceImagePtr {
|
|
uint64 image_ptr = 1;
|
|
repeated uint64 entry_ptrs = 2;
|
|
}
|
|
|
|
message TargetDeviceImage {
|
|
bytes binary = 1;
|
|
repeated TargetOffloadEntry entries = 2;
|
|
}
|
|
|
|
message ImagePtrs {
|
|
uint64 img_ptr = 1;
|
|
repeated uint64 entry_ptrs = 2;
|
|
}
|
|
|
|
message TargetBinaryDescription {
|
|
repeated ImagePtrs image_ptrs = 1;
|
|
repeated TargetOffloadEntry entries = 2;
|
|
repeated TargetDeviceImage images = 3;
|
|
repeated uint64 entry_ptrs = 4;
|
|
uint64 bin_ptr = 5;
|
|
}
|
|
|
|
message AllocData {
|
|
uint64 size = 1;
|
|
uint64 hst_ptr = 2;
|
|
int32 device_id = 3;
|
|
}
|
|
|
|
message SubmitData {
|
|
bytes data = 1;
|
|
uint64 hst_ptr = 2;
|
|
uint64 tgt_ptr = 3;
|
|
uint64 start = 5;
|
|
uint64 size = 6;
|
|
int32 device_id = 7;
|
|
}
|
|
|
|
message RetrieveData {
|
|
uint64 hst_ptr = 1;
|
|
uint64 tgt_ptr = 2;
|
|
uint64 size = 3;
|
|
int32 device_id = 5;
|
|
}
|
|
|
|
message Data {
|
|
bytes data = 1;
|
|
uint64 start = 2;
|
|
uint64 size = 3;
|
|
int32 ret = 4;
|
|
}
|
|
|
|
message ExchangeData {
|
|
uint64 src_dev_id = 1;
|
|
uint64 src_ptr = 2;
|
|
uint64 dst_dev_id = 3;
|
|
uint64 dst_ptr = 4;
|
|
uint64 size = 6;
|
|
}
|
|
|
|
message DeleteData {
|
|
uint64 tgt_ptr = 1;
|
|
int32 device_id = 2;
|
|
}
|
|
|
|
message TargetRegion {
|
|
repeated uint64 tgt_args = 1;
|
|
repeated int64 tgt_offsets = 2;
|
|
uint64 tgt_entry_ptr = 3;
|
|
int32 device_id = 4;
|
|
int32 arg_num = 5;
|
|
}
|
|
|
|
message TargetTeamRegion {
|
|
repeated uint64 tgt_args = 1;
|
|
repeated int64 tgt_offsets = 2;
|
|
uint64 tgt_entry_ptr = 3;
|
|
uint64 loop_tripcount = 4;
|
|
int32 device_id = 5;
|
|
int32 arg_num = 6;
|
|
int32 team_num = 7;
|
|
int32 thread_limit = 8;
|
|
}
|