Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go-fuse
Commits
7383bdf8
Commit
7383bdf8
authored
Feb 11, 2013
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split off splice calls into separate file.
parent
ea1f41bd
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
26 deletions
+52
-26
splice/pair.go
splice/pair.go
+0
-26
splice/pair_darwin.go
splice/pair_darwin.go
+19
-0
splice/pair_linux.go
splice/pair_linux.go
+33
-0
No files found.
splice/pair.go
View file @
7383bdf8
package
splice
import
(
"fmt"
"os"
"syscall"
)
type
Pair
struct
{
...
...
@@ -64,28 +62,4 @@ func (p *Pair) Write(d []byte) (n int, err error) {
return
p
.
w
.
Write
(
d
)
}
func
(
p
*
Pair
)
LoadFromAt
(
fd
uintptr
,
sz
int
,
off
int64
)
(
int
,
error
)
{
n
,
err
:=
syscall
.
Splice
(
int
(
fd
),
&
off
,
int
(
p
.
w
.
Fd
()),
nil
,
sz
,
0
)
return
int
(
n
),
err
}
func
(
p
*
Pair
)
LoadFrom
(
fd
uintptr
,
sz
int
)
(
int
,
error
)
{
if
sz
>
p
.
size
{
return
0
,
fmt
.
Errorf
(
"LoadFrom: not enough space %d, %d"
,
sz
,
p
.
size
)
}
n
,
err
:=
syscall
.
Splice
(
int
(
fd
),
nil
,
int
(
p
.
w
.
Fd
()),
nil
,
sz
,
0
)
if
err
!=
nil
{
err
=
os
.
NewSyscallError
(
"Splice load from"
,
err
)
}
return
int
(
n
),
err
}
func
(
p
*
Pair
)
WriteTo
(
fd
uintptr
,
n
int
)
(
int
,
error
)
{
m
,
err
:=
syscall
.
Splice
(
int
(
p
.
r
.
Fd
()),
nil
,
int
(
fd
),
nil
,
int
(
n
),
0
)
if
err
!=
nil
{
err
=
os
.
NewSyscallError
(
"Splice write"
,
err
)
}
return
int
(
m
),
err
}
splice/pair_darwin.go
0 → 100644
View file @
7383bdf8
package
splice
import
(
)
func
(
p
*
Pair
)
LoadFromAt
(
fd
uintptr
,
sz
int
,
off
int64
)
(
int
,
error
)
{
panic
(
"not implemented"
)
return
0
,
nil
}
func
(
p
*
Pair
)
LoadFrom
(
fd
uintptr
,
sz
int
)
(
int
,
error
)
{
panic
(
"not implemented"
)
return
0
,
nil
}
func
(
p
*
Pair
)
WriteTo
(
fd
uintptr
,
n
int
)
(
int
,
error
)
{
panic
(
"not implemented"
)
return
0
,
nil
}
splice/pair_linux.go
0 → 100644
View file @
7383bdf8
package
splice
import
(
"fmt"
"os"
"syscall"
)
func
(
p
*
Pair
)
LoadFromAt
(
fd
uintptr
,
sz
int
,
off
int64
)
(
int
,
error
)
{
n
,
err
:=
syscall
.
Splice
(
int
(
fd
),
&
off
,
int
(
p
.
w
.
Fd
()),
nil
,
sz
,
0
)
return
int
(
n
),
err
}
func
(
p
*
Pair
)
LoadFrom
(
fd
uintptr
,
sz
int
)
(
int
,
error
)
{
if
sz
>
p
.
size
{
return
0
,
fmt
.
Errorf
(
"LoadFrom: not enough space %d, %d"
,
sz
,
p
.
size
)
}
n
,
err
:=
syscall
.
Splice
(
int
(
fd
),
nil
,
int
(
p
.
w
.
Fd
()),
nil
,
sz
,
0
)
if
err
!=
nil
{
err
=
os
.
NewSyscallError
(
"Splice load from"
,
err
)
}
return
int
(
n
),
err
}
func
(
p
*
Pair
)
WriteTo
(
fd
uintptr
,
n
int
)
(
int
,
error
)
{
m
,
err
:=
syscall
.
Splice
(
int
(
p
.
r
.
Fd
()),
nil
,
int
(
fd
),
nil
,
int
(
n
),
0
)
if
err
!=
nil
{
err
=
os
.
NewSyscallError
(
"Splice write"
,
err
)
}
return
int
(
m
),
err
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment