Commit Graph

32 Commits (fcabfc89e991664e849c989acaa77ef01827ee43)

Author SHA1 Message Date
Vitaliy Filippov fcabfc89e9 Introduce VectoredReadOp
Read requests can now take vectored responses from the filesystem
implementation and send them to FUSE device via the writev() system call.

This allows file systems to send data without copying it into the
library-provided buffer if the data is already in memory.

The change also speeds up normal ReadFileOps as a side effect because
it removes extra memory allocations.
2021-09-01 14:14:15 +03:00
Michael Stapelberg 0630024b2b switch from assembly stubs to go:linkname comment
The go:linkname way works with Go 1.17 (with regabi), too.

Upstream did this in 2015 in
0b8d583320

See also https://sitano.github.io/2016/04/28/golang-private/ for more background
about both techniques.
2021-08-02 09:34:49 +02:00
Brendan McMillion 1ec76bd410
Add ARM support. (#85) 2020-06-26 07:45:43 +02:00
Michael Stapelberg ae5da07e4c
remove naked returns across the code base (#75)
fixes #73
2020-01-28 10:10:08 +01:00
Aaron Jacobs cea04881bd buffer: generate decent code for OutMessage.Reset in Go 1.8 beta 2. 2016-12-19 14:41:59 +11:00
Aaron Jacobs bd496ea048 buffer: don't use memclr for the tiny header, whose size is known. 2016-12-19 13:58:09 +11:00
Aaron Jacobs 0cd689f560 buffer: simplify storage of the header. 2016-12-19 13:14:54 +11:00
Aaron Jacobs d1ff915b0b OutMessage.OutHeader 2016-12-19 13:14:54 +11:00
Aaron Jacobs 849f53b080 OutMessage.ShrinkTo 2016-12-19 13:14:54 +11:00
Aaron Jacobs e03fa52bbf OutMessage.Grow 2016-12-19 13:14:54 +11:00
Aaron Jacobs d1ed507a5a OutMessage.GrowNoZero 2016-12-19 13:14:54 +11:00
Aaron Jacobs 0a22738acf OutMessage.Bytes 2016-12-19 13:14:21 +11:00
Aaron Jacobs 6f4af61734 buffer: consistently use 'm' for OutMessage receivers. 2016-12-19 13:14:21 +11:00
Aaron Jacobs 98a2b634bf OutMessage.Reset 2016-12-19 13:14:21 +11:00
Aaron Jacobs 9eb5e0793f buffer: define OutMessage's contents. 2016-12-19 13:14:21 +11:00
Aaron Jacobs 0f6db15c59 buffer: give OutMessage's public API a makeover.
Use int where appropriate, fix up documentation, and clarify. Delete the
implementation where it will soon need to change.
2016-12-19 13:14:21 +11:00
Aaron Jacobs 81de9fb6cc Made the message shrinking API less confusing. 2015-08-10 15:45:46 +10:00
Aaron Jacobs bbb262ee48 Read directly into out messages for files. 2015-07-29 11:02:29 +10:00
Aaron Jacobs a1fc133e32 Finished OutMessage. 2015-07-28 16:29:30 +10:00
Aaron Jacobs a25c297e41 OutMessage.AppendString 2015-07-28 16:29:09 +10:00
Aaron Jacobs bb88db68e0 OutMessage.Append 2015-07-28 16:28:21 +10:00
Aaron Jacobs e2aa0ec1be OutMessage.GrowNoZero 2015-07-28 16:24:45 +10:00
Aaron Jacobs 9a55ffcd7d OutMessage.Grow 2015-07-28 16:23:59 +10:00
Aaron Jacobs 2e3cba1928 OutMessage.OutHeader 2015-07-28 16:23:34 +10:00
Aaron Jacobs 114432703b Check alignment. 2015-07-28 16:23:10 +10:00
Aaron Jacobs c210aa8a95 OutMessage.Reset 2015-07-28 16:20:50 +10:00
Aaron Jacobs 5b3f5df8cc Specify that append methods panic. 2015-07-28 16:17:56 +10:00
Aaron Jacobs c0e60edb32 Defined the new OutMessage API. 2015-07-28 16:09:27 +10:00
Aaron Jacobs 3371ab70ac Redefined the contents of OutMessage. 2015-07-28 16:06:23 +10:00
Aaron Jacobs 2e8b1546be Declared InMessage. 2015-07-24 14:27:14 +10:00
Aaron Jacobs b3d13508fb Renamed to OutMessage. 2015-07-24 14:11:03 +10:00
Aaron Jacobs 5166631830 Renamed to out_message.go. 2015-07-24 14:09:11 +10:00