all repos

rss-tools @ a5ac52722b131734c74504b6e6f4d9900536cac7

get rss feed from sources that(i need and) dont provide one

rss-tools/vendor/golang.org/x/sys/unix/ioctl_zos.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
we're vendoring now, 7 days ago
1
// Copyright 2020 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4
5
//go:build zos && s390x
6
7
package unix
8
9
import (
10
	"runtime"
11
	"unsafe"
12
)
13
14
// ioctl itself should not be exposed directly, but additional get/set
15
// functions for specific types are permissible.
16
17
// IoctlSetInt performs an ioctl operation which sets an integer value
18
// on fd, using the specified request number.
19
func IoctlSetInt(fd int, req int, value int) error {
20
	return ioctl(fd, req, uintptr(value))
21
}
22
23
// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
24
//
25
// To change fd's window size, the req argument should be TIOCSWINSZ.
26
func IoctlSetWinsize(fd int, req int, value *Winsize) error {
27
	// TODO: if we get the chance, remove the req parameter and
28
	// hardcode TIOCSWINSZ.
29
	return ioctlPtr(fd, req, unsafe.Pointer(value))
30
}
31
32
// IoctlSetTermios performs an ioctl on fd with a *Termios.
33
//
34
// The req value is expected to be TCSETS, TCSETSW, or TCSETSF
35
func IoctlSetTermios(fd int, req int, value *Termios) error {
36
	if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) {
37
		return ENOSYS
38
	}
39
	err := Tcsetattr(fd, int(req), value)
40
	runtime.KeepAlive(value)
41
	return err
42
}
43
44
// IoctlGetInt performs an ioctl operation which gets an integer value
45
// from fd, using the specified request number.
46
//
47
// A few ioctl requests use the return value as an output parameter;
48
// for those, IoctlRetInt should be used instead of this function.
49
func IoctlGetInt(fd int, req int) (int, error) {
50
	var value int
51
	err := ioctlPtr(fd, req, unsafe.Pointer(&value))
52
	return value, err
53
}
54
55
func IoctlGetWinsize(fd int, req int) (*Winsize, error) {
56
	var value Winsize
57
	err := ioctlPtr(fd, req, unsafe.Pointer(&value))
58
	return &value, err
59
}
60
61
// IoctlGetTermios performs an ioctl on fd with a *Termios.
62
//
63
// The req value is expected to be TCGETS
64
func IoctlGetTermios(fd int, req int) (*Termios, error) {
65
	var value Termios
66
	if req != TCGETS {
67
		return &value, ENOSYS
68
	}
69
	err := Tcgetattr(fd, &value)
70
	return &value, err
71
}