diff options
author | Justine Olshan <justineolshan@google.com> | 2018-08-10 16:09:52 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-08-10 16:11:01 -0700 |
commit | ae6f092fe117a738df34e072ef5ba01a41c89222 (patch) | |
tree | 24f8492ac032e39b2a2908f7e1383224b34f6b64 /pkg/abi/linux | |
parent | 36c940b093af58d02eb6e7fd186f14cce84a8dd9 (diff) |
Implemented the splice(2) syscall.
Currently the implementation matches the behavior of moving data
between two file descriptors. However, it does not implement this
through zero-copy movement. Thus, this code is a starting point
to build the more complex implementation.
PiperOrigin-RevId: 208284483
Change-Id: Ibde79520a3d50bc26aead7ad4f128d2be31db14e
Diffstat (limited to 'pkg/abi/linux')
-rw-r--r-- | pkg/abi/linux/BUILD | 1 | ||||
-rw-r--r-- | pkg/abi/linux/splice.go | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/pkg/abi/linux/BUILD b/pkg/abi/linux/BUILD index ac4ceefbc..9a44c2042 100644 --- a/pkg/abi/linux/BUILD +++ b/pkg/abi/linux/BUILD @@ -43,6 +43,7 @@ go_library( "shm.go", "signal.go", "socket.go", + "splice.go", "time.go", "tty.go", "uio.go", diff --git a/pkg/abi/linux/splice.go b/pkg/abi/linux/splice.go new file mode 100644 index 000000000..9331ec84b --- /dev/null +++ b/pkg/abi/linux/splice.go @@ -0,0 +1,20 @@ +// Copyright 2018 Google Inc. +// +// 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. + +package linux + +// Flags for splice(2). +const ( + SPLICE_F_NONBLOCK = 2 +) |