You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
6.8 KiB
207 lines
6.8 KiB
// Copyright 2018 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto2";
|
|
|
|
package android.vts;
|
|
option java_package = "com.android.vts.proto";
|
|
option java_outer_classname = "VtsResourceControllerMessage";
|
|
|
|
import "test/vts/proto/ComponentSpecificationMessage.proto";
|
|
|
|
// Possible operations on Fast Message Queue.
|
|
enum FmqOp {
|
|
// Unknown operation.
|
|
FMQ_UNKNOWN = 0;
|
|
// Create a new FMQ object.
|
|
FMQ_CREATE = 1;
|
|
// Read from a FMQ (no blocking).
|
|
FMQ_READ = 2;
|
|
// Read from a FMQ (with short-form blocking).
|
|
FMQ_READ_BLOCKING = 3;
|
|
// Read from a FMQ (with long-form blocking).
|
|
// TODO: support this from host side in the future
|
|
FMQ_READ_BLOCKING_LONG = 4;
|
|
// Write to a FMQ (no blocking).
|
|
FMQ_WRITE = 5;
|
|
// Write to a FMQ (with short-form blocking).
|
|
FMQ_WRITE_BLOCKING = 6;
|
|
// Write to a FMQ (with long-form blocking).
|
|
// TODO: support this from host side in the future
|
|
FMQ_WRITE_BLOCKING_LONG = 7;
|
|
// Get space available to write in FMQ.
|
|
FMQ_AVAILABLE_WRITE = 8;
|
|
// Get number of items available to read.
|
|
FMQ_AVAILABLE_READ = 9;
|
|
// Get size of item in FMQ.
|
|
FMQ_GET_QUANTUM_SIZE = 10;
|
|
// Get number of items that fit in FMQ.
|
|
FMQ_GET_QUANTUM_COUNT = 11;
|
|
// Check if FMQ is valid.
|
|
FMQ_IS_VALID = 12;
|
|
// Get address of queue descriptor.
|
|
// This is an operation that is used in the target-side
|
|
// drivers to pass queue descriptor address to identify
|
|
// the FMQ. It is not for communication between host and
|
|
// target.
|
|
FMQ_GET_DESC_ADDR = 13;
|
|
}
|
|
|
|
// Possible operations on hidl_memory.
|
|
enum HidlMemoryOp {
|
|
// Unknown operation.
|
|
MEM_PROTO_UNKNOWN = 0;
|
|
// Allcate a new memory region.
|
|
MEM_PROTO_ALLOCATE = 1;
|
|
// Signal starting to read memory.
|
|
MEM_PROTO_START_READ = 2;
|
|
// Signal starting to read a particular region of memory.
|
|
MEM_PROTO_START_READ_RANGE = 3;
|
|
// Perform actual read operation.
|
|
MEM_PROTO_READ_BYTES = 4;
|
|
// Signal starting to write to memory.
|
|
MEM_PROTO_START_UPDATE = 5;
|
|
// Signal starting to write to a particular region of memory.
|
|
MEM_PROTO_START_UPDATE_RANGE = 6;
|
|
// Perform actual write operation.
|
|
MEM_PROTO_UPDATE_BYTES = 7;
|
|
// Commit to a read/write operation.
|
|
MEM_PROTO_COMMIT = 8;
|
|
// Get the size of memory region.
|
|
MEM_PROTO_GET_SIZE = 9;
|
|
}
|
|
|
|
// Possible operations on hidl_handle.
|
|
enum HidlHandleOp {
|
|
// Unknown operation.
|
|
HANDLE_PROTO_UNKNOWN = 0;
|
|
// Create a handle object for a single file.
|
|
HANDLE_PROTO_CREATE_FILE = 1;
|
|
// Read from a handle object with one file.
|
|
HANDLE_PROTO_READ_FILE = 2;
|
|
// Write to a handle object with one file.
|
|
HANDLE_PROTO_WRITE_FILE = 3;
|
|
// Delete a handle object.
|
|
HANDLE_PROTO_DELETE = 4;
|
|
}
|
|
|
|
// The arguments for a FMQ operation.
|
|
message FmqRequestMessage {
|
|
// operation to be performed
|
|
optional FmqOp operation = 1;
|
|
|
|
// string to represent type of data in the queue
|
|
// TODO: support user-defined types
|
|
optional bytes data_type = 2;
|
|
// queue flavor
|
|
optional bool sync = 3;
|
|
|
|
// queue id
|
|
optional int32 queue_id = 4 [default = -1];
|
|
|
|
// queue size
|
|
optional uint64 queue_size = 5;
|
|
// whether to enable blocking
|
|
optional bool blocking = 6;
|
|
// whether to reset read/write pointers
|
|
optional bool reset_pointers = 7;
|
|
|
|
// data to be written
|
|
repeated VariableSpecificationMessage write_data = 8;
|
|
// length of data to be read
|
|
optional uint64 read_data_size = 9;
|
|
// wait time when blocking
|
|
optional int64 time_out_nanos = 10;
|
|
|
|
// store address of queue descriptor
|
|
// This is a field that is used by internal drivers
|
|
// to identify a FMQ.
|
|
// It is not used for communication between host and target.
|
|
optional uint64 queue_desc_addr = 11;
|
|
}
|
|
|
|
// The response for a FMQ operation,
|
|
// including scalar values and data read back from the queue.
|
|
message FmqResponseMessage {
|
|
// data read from the queue
|
|
repeated VariableSpecificationMessage read_data = 1;
|
|
|
|
// three possible return types from FMQ
|
|
// basic util function return values
|
|
optional uint64 sizet_return_val = 2;
|
|
// function that returns a queue id
|
|
optional int32 queue_id = 3;
|
|
// signal if the operation succeeds on target side
|
|
optional bool success = 4;
|
|
}
|
|
|
|
// The arguments for a hidl_memory operation.
|
|
message HidlMemoryRequestMessage {
|
|
// operation to be performed
|
|
optional HidlMemoryOp operation = 1;
|
|
// id to identify memory region
|
|
optional int32 mem_id = 2 [default = -1];
|
|
// requested memory size
|
|
optional uint64 mem_size = 3;
|
|
// offset from the start of memory region
|
|
optional uint64 start = 4;
|
|
// length of memory to be modified
|
|
optional uint64 length = 5;
|
|
// data to be written into memory
|
|
optional bytes write_data = 6;
|
|
}
|
|
|
|
// The response for a hidl_memory operation.
|
|
message HidlMemoryResponseMessage {
|
|
// indicate if the memory region is found
|
|
optional bool success = 1;
|
|
// new id assigned to the new memory region
|
|
optional int32 new_mem_id = 2;
|
|
// result returned by GetSize() method on the memory region
|
|
optional uint64 mem_size = 3;
|
|
// data read from memory
|
|
optional bytes read_data = 4;
|
|
}
|
|
|
|
// The arguments for a hidl_handle operation.
|
|
message HidlHandleRequestMessage {
|
|
// operation to be performed
|
|
optional HidlHandleOp operation = 1;
|
|
// identifies the handle object
|
|
optional int32 handle_id = 2 [default = -1];
|
|
// to specify what files to open, and additional integers
|
|
// in a handle object
|
|
optional HandleDataValueMessage handle_info = 3;
|
|
// number of bytes to read from the file
|
|
// read() function in C I/O takes in a size_t,
|
|
// so use unsigned integer here.
|
|
optional uint64 read_data_size = 4;
|
|
// data to be written into file
|
|
optional bytes write_data = 5;
|
|
}
|
|
|
|
// The response for a hidl_handle operation.
|
|
message HidlHandleResponseMessage {
|
|
// indicate if the operation succeeds
|
|
optional bool success = 1;
|
|
// new id assigned to the new handle object
|
|
optional int32 new_handle_id = 2;
|
|
// data read from the file
|
|
optional bytes read_data = 3;
|
|
// number of bytes written into the file if the request is a write operation
|
|
// write() function in C I/O returns a ssize_t,
|
|
// so use signed integer here.
|
|
optional int64 write_data_size = 4;
|
|
}
|