Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F13424860
ioctl_zos.go
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
ioctl_zos.go
View Options
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build zos && s390x
// +build zos,s390x
package
unix
import
(
"runtime"
"unsafe"
)
// ioctl itself should not be exposed directly, but additional get/set
// functions for specific types are permissible.
// IoctlSetInt performs an ioctl operation which sets an integer value
// on fd, using the specified request number.
func
IoctlSetInt
(
fd
int
,
req
uint
,
value
int
)
error
{
return
ioctl
(
fd
,
req
,
uintptr
(
value
))
}
// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
//
// To change fd's window size, the req argument should be TIOCSWINSZ.
func
IoctlSetWinsize
(
fd
int
,
req
uint
,
value
*
Winsize
)
error
{
// TODO: if we get the chance, remove the req parameter and
// hardcode TIOCSWINSZ.
err
:=
ioctl
(
fd
,
req
,
uintptr
(
unsafe
.
Pointer
(
value
)))
runtime
.
KeepAlive
(
value
)
return
err
}
// IoctlSetTermios performs an ioctl on fd with a *Termios.
//
// The req value is expected to be TCSETS, TCSETSW, or TCSETSF
func
IoctlSetTermios
(
fd
int
,
req
uint
,
value
*
Termios
)
error
{
if
(
req
!=
TCSETS
)
&&
(
req
!=
TCSETSW
)
&&
(
req
!=
TCSETSF
)
{
return
ENOSYS
}
err
:=
Tcsetattr
(
fd
,
int
(
req
),
value
)
runtime
.
KeepAlive
(
value
)
return
err
}
// IoctlGetInt performs an ioctl operation which gets an integer value
// from fd, using the specified request number.
//
// A few ioctl requests use the return value as an output parameter;
// for those, IoctlRetInt should be used instead of this function.
func
IoctlGetInt
(
fd
int
,
req
uint
)
(
int
,
error
)
{
var
value
int
err
:=
ioctl
(
fd
,
req
,
uintptr
(
unsafe
.
Pointer
(
&
value
)))
return
value
,
err
}
func
IoctlGetWinsize
(
fd
int
,
req
uint
)
(
*
Winsize
,
error
)
{
var
value
Winsize
err
:=
ioctl
(
fd
,
req
,
uintptr
(
unsafe
.
Pointer
(
&
value
)))
return
&
value
,
err
}
// IoctlGetTermios performs an ioctl on fd with a *Termios.
//
// The req value is expected to be TCGETS
func
IoctlGetTermios
(
fd
int
,
req
uint
)
(
*
Termios
,
error
)
{
var
value
Termios
if
req
!=
TCGETS
{
return
&
value
,
ENOSYS
}
err
:=
Tcgetattr
(
fd
,
&
value
)
return
&
value
,
err
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 24, 8:43 PM (9 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3603656
Attached To
rWCLI writeas-cli
Event Timeline
Log In to Comment