// Copyright 2015 gRPC authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package lws_vfs; service LwsVfs { // Sends a greeting rpc SayHello(HelloRequest) returns (HelloReply) {} rpc fgetattr(getattr) returns (getattr) {} rpc fsetxattr(setxattr) returns (setxattr) {} rpc faccess(access) returns (access) {} rpc freaddir(readdir) returns (readdir) {} rpc fread(read) returns (read) {} rpc fopen(open) returns (open) {} rpc fwrite(write) returns (write) {} rpc fgetxattr(getxattr) returns (getxattr) {} rpc ftruncate(truncate) returns (truncate) {} rpc futimens(utimens) returns (utimens) {} rpc fchown(chown) returns (chown) {} rpc frelease(release) returns (release) {} rpc fmkdir(mkdir) returns (mkdir) {} } // The request message containing the user's name. message HelloRequest { string name = 1; } // The response message containing the greetings message HelloReply { string message = 1; } message file_info { int32 flags = 1; uint32 fh_old = 2; bool direct_io = 3; uint64 fh = 10; uint64 lock_owner = 11; } message fstat { uint64 fst_mode = 1; uint64 fst_ino = 2; uint64 fst_dev = 3; uint64 fst_rdev = 4; uint64 fst_nlink = 5; uint64 fst_uid = 6; uint64 fst_gid = 7; uint64 fst_size = 8; uint64 fst_atime = 9; uint64 fst_mtime = 10; uint64 fst_ctime = 11; uint64 fst_blksize = 12; uint64 fst_blocks = 13; } // fuse api function message define: message getattr { string path = 1; fstat stat = 2; int32 ret = 15; } message setxattr { string path = 1; string name = 2; bytes value = 3; int64 size = 4; uint32 flags = 5; int32 ret = 15; } message getxattr { string path = 1; string name = 2; bytes value = 3; int64 size = 4; int32 ret = 15; } message access { string path = 1; uint32 mask = 2; int32 ret = 15; } message readdir { string path = 1; repeated string dirs = 2; uint32 offset = 3; file_info fi = 4; int32 ret = 15; } message open { string path = 1; file_info fi = 2; int32 ret = 15; } message read { string path = 1; bytes buff = 2; int64 size = 3; int64 offset = 4; file_info fi = 5; int32 ret = 15; } message write { string path = 1; bytes buff = 2; int64 size = 3; int64 offset = 4; file_info fi = 5; int32 ret = 15; } message truncate { string path = 1; int64 size = 3; int32 ret = 15; } message timespec { int32 tv_sec = 1; int64 tv_nsec = 2; } message utimens { string path = 1; repeated timespec ts = 2; // const struct timespec ts[2] int32 ret = 15; } message chown { string path = 1; int32 uid = 2; int32 gid = 3; int32 ret = 15; } message release { string path = 1; file_info fi = 2; int32 ret = 15; } message mkdir { string path = 1; file_info fi = 2; uint32 mode = 3; int32 ret = 15; }