package unix
import
func ( int, uint) (int, error) {
, , := Syscall(SYS_IOCTL, uintptr(), uintptr(), 0)
if != 0 {
return 0,
}
return int(), nil
}
func ( int, uint) (uint32, error) {
var uint32
:= ioctlPtr(, , unsafe.Pointer(&))
return ,
}
func ( int) (*RTCTime, error) {
var RTCTime
:= ioctlPtr(, RTC_RD_TIME, unsafe.Pointer(&))
return &,
}
func ( int, *RTCTime) error {
return ioctlPtr(, RTC_SET_TIME, unsafe.Pointer())
}
func ( int) (*RTCWkAlrm, error) {
var RTCWkAlrm
:= ioctlPtr(, RTC_WKALM_RD, unsafe.Pointer(&))
return &,
}
func ( int, *RTCWkAlrm) error {
return ioctlPtr(, RTC_WKALM_SET, unsafe.Pointer())
}
func ( int, string) (*EthtoolDrvinfo, error) {
, := NewIfreq()
if != nil {
return nil,
}
:= EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO}
:= .withData(unsafe.Pointer(&))
= ioctlIfreqData(, SIOCETHTOOL, &)
return &,
}
func ( int) (*WatchdogInfo, error) {
var WatchdogInfo
:= ioctlPtr(, WDIOC_GETSUPPORT, unsafe.Pointer(&))
return &,
}
func ( int) error {
return ioctl(, WDIOC_KEEPALIVE, 0)
}
func ( int, *FileCloneRange) error {
return ioctlPtr(, FICLONERANGE, unsafe.Pointer())
}
func (, int) error {
return ioctl(, FICLONE, uintptr())
}
type FileDedupeRange struct {
Src_offset uint64
Src_length uint64
Reserved1 uint16
Reserved2 uint32
Info []FileDedupeRangeInfo
}
type FileDedupeRangeInfo struct {
Dest_fd int64
Dest_offset uint64
Bytes_deduped uint64
Status int32
Reserved uint32
}
func ( int, *FileDedupeRange) error {
:= make([]byte, SizeofRawFileDedupeRange+
len(.Info)*SizeofRawFileDedupeRangeInfo)
:= (*RawFileDedupeRange)(unsafe.Pointer(&[0]))
.Src_offset = .Src_offset
.Src_length = .Src_length
.Dest_count = uint16(len(.Info))
.Reserved1 = .Reserved1
.Reserved2 = .Reserved2
for := range .Info {
:= (*RawFileDedupeRangeInfo)(unsafe.Pointer(
uintptr(unsafe.Pointer(&[0])) + uintptr(SizeofRawFileDedupeRange) +
uintptr(*SizeofRawFileDedupeRangeInfo)))
.Dest_fd = .Info[].Dest_fd
.Dest_offset = .Info[].Dest_offset
.Bytes_deduped = .Info[].Bytes_deduped
.Status = .Info[].Status
.Reserved = .Info[].Reserved
}
:= ioctlPtr(, FIDEDUPERANGE, unsafe.Pointer(&[0]))
for := range .Info {
:= (*RawFileDedupeRangeInfo)(unsafe.Pointer(
uintptr(unsafe.Pointer(&[0])) + uintptr(SizeofRawFileDedupeRange) +
uintptr(*SizeofRawFileDedupeRangeInfo)))
.Info[].Dest_fd = .Dest_fd
.Info[].Dest_offset = .Dest_offset
.Info[].Bytes_deduped = .Bytes_deduped
.Info[].Status = .Status
.Info[].Reserved = .Reserved
}
return
}
func ( int, *HIDRawReportDescriptor) error {
return ioctlPtr(, HIDIOCGRDESC, unsafe.Pointer())
}
func ( int) (*HIDRawDevInfo, error) {
var HIDRawDevInfo
:= ioctlPtr(, HIDIOCGRAWINFO, unsafe.Pointer(&))
return &,
}
func ( int) (string, error) {
var [_HIDIOCGRAWNAME_LEN]byte
:= ioctlPtr(, _HIDIOCGRAWNAME, unsafe.Pointer(&[0]))
return ByteSliceToString([:]),
}
func ( int) (string, error) {
var [_HIDIOCGRAWPHYS_LEN]byte
:= ioctlPtr(, _HIDIOCGRAWPHYS, unsafe.Pointer(&[0]))
return ByteSliceToString([:]),
}
func ( int) (string, error) {
var [_HIDIOCGRAWUNIQ_LEN]byte
:= ioctlPtr(, _HIDIOCGRAWUNIQ, unsafe.Pointer(&[0]))
return ByteSliceToString([:]),
}
func ( int, uint, *Ifreq) error {
return ioctlPtr(, , unsafe.Pointer(&.raw))
}
func ( int, uint, *ifreqData) error {
return ioctlPtr(, , unsafe.Pointer())
}
func ( int) (*KCMClone, error) {
var KCMClone
if := ioctlPtr(, SIOCKCMCLONE, unsafe.Pointer(&)); != nil {
return nil,
}
return &, nil
}
func ( int, KCMAttach) error {
return ioctlPtr(, SIOCKCMATTACH, unsafe.Pointer(&))
}
func ( int, KCMUnattach) error {
return ioctlPtr(, SIOCKCMUNATTACH, unsafe.Pointer(&))
}
func ( int) (*LoopInfo64, error) {
var LoopInfo64
if := ioctlPtr(, LOOP_GET_STATUS64, unsafe.Pointer(&)); != nil {
return nil,
}
return &, nil
}
func ( int, *LoopInfo64) error {
return ioctlPtr(, LOOP_SET_STATUS64, unsafe.Pointer())
}