summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Change FuseAppLoop so that it can process messages asynchronously.Daichi Hirono2017-03-281-10/+38
| | | | | | | | | | | Previously FuseAppLoopCallback needs to return values in a synchrnous manner. The CL changes it to asynchronous mannger so that apps can process FUSE message asynchrnously. Bug: 35229514 Test: FuseAppLoopTest Change-Id: I8edcfdb003a25cfd5e9c490ec871140220b21e35 (cherry picked from commit f5d15f9fc4b8bd7a866660fe208bf857dea839ba)
* Enable FuseBridgeLoop to accept new mount point after startingDaichi Hirono2017-03-232-5/+43
| | | | | | | | | | | | The CL turns StartFuseBridgeLoop function into FuseBridgeLoop class, and adds a method adding new appfuse mount to the loop. After doing this, one FuseBridgeLoop can process FUSE commands from multiple AppFuse mounts. Bug: 34903085 Test: libappfuse_test Change-Id: I54f11f54bc26c551281b9c32e9bb91f8f043774c
* Add FuseMessage::WriteWithBody functionDaichi Hirono2017-03-221-21/+23
| | | | | | | | | The funciton is going to be used to write FUSE header with external body. Bug: 35229514 Test: libappfuse_tests Change-Id: I303022b555deca960b8e08f26140a5ef10133efe
* Add new EpollController class.Daichi Hirono2017-03-151-0/+50
| | | | | | | | | | The class is a thin wrapper for C epoll functions. Bug: 34903085 Test: Build EpollController.cc and libappfuse_test after applying future changes locally. Change-Id: Iedce7f35e4397f80cde1054d53261ad94f9e58a8
* Add ReadOrAgain and WriteOrAgain methods to FuseMessage.Daichi Hirono2017-03-131-2/+15
| | | | | | | | | | | | | These methods return kAgain if operation cannot be done without blocking the current thread. The CL also introduecs new helper function SetupMessageSockets so that FuseMessages are always transfered via sockets that save message boundaries. Bug: 34903085 Test: libappfuse_test Change-Id: I34544372cc1b0c7bc9622e581ae16c018a123fa9
* Support SOCK_STREAM for bridge between system and appDaichi Hirono2016-12-111-3/+1
| | | | | | | | | | | | | Previously AppFuse use SOCK_SEQPACKET for sockets communicating system and app. However SOCK_SEQPACKET requires the buffer of message size in the kernel and sometimes failed to write with ENOBUF. The CL updates libappfuse so that it can use SOCK_STREAM instead of SOCK_SEQPACKET. Bug: 33279206 Test: libappfuse_test Change-Id: I622ada9ac1d71d0c57b6cfff0904c7829cea7995
* Fix checks for reading and writing FuseMessage.Daichi Hirono2016-12-111-1/+2
| | | | | | | | | | | Previously FuseMessage were checking result of read/write operation after checking header.len value is valid. This was wrong because header.len does not contain correct value when read function does not read any bytes and returns zero. Bug: 33278098 Test: libappfuse_test Change-Id: Icf998ca6c3eeee20cbc4aa2f65195a87e59ffc27
* Remove FuseBridgeLoop class.Daichi Hirono2016-11-161-13/+4
| | | | | | Bug: 32779923 Test: libappfuse_test Change-Id: I29a76701d141ae061ec1fe32993d27460a0c694a
* Add static assert to check if FuseBuffer is standard layout union.Daichi Hirono2016-11-141-5/+7
| | | | | | Bug: 32260320 Test: libappfuse_test Change-Id: I6430c11fdeb2405996410c97044b4260c25209b8
* Add FuseAppLoop to libappfuse.Daichi Hirono2016-11-143-20/+77
| | | | | | | | | The class is used at the app side (StorageManager) to parse FUSE commands. Bug: 32260320 Test: libappfuse_test Change-Id: I1ae2904d3290a041f1efbf8fc10ba032eda5449c
* Add FuseBridgeLoop to libappfuse.Daichi Hirono2016-10-272-4/+57
| | | | | | | | | The CL adds FuseBridgeLoop class to libappfuse, which is used in the system service to proxy fuse commands to applications. Bug: 29970149 Test: libappfuse_test Change-Id: I0708f608b3868721ab16ba4028fd2c17a6735af7
* Add utility functions for FUSE.Daichi Hirono2016-10-261-0/+76
The CL adds utility functions to framework to parse FUSE messages from the kernel. The library will be used from framework JNI and service JNI. Bug: 32260320 Test: libappfuse_test Change-Id: Ib89b26d34789e6c26a3288beceb3ea145c1ae780