added support for string type
[govpp.git] / vendor / golang.org / x / sys / windows / zsyscall_windows.go
index f10ebbf..f7bc8d6 100644 (file)
@@ -78,6 +78,7 @@ var (
        procSetFilePointer                     = modkernel32.NewProc("SetFilePointer")
        procCloseHandle                        = modkernel32.NewProc("CloseHandle")
        procGetStdHandle                       = modkernel32.NewProc("GetStdHandle")
+       procSetStdHandle                       = modkernel32.NewProc("SetStdHandle")
        procFindFirstFileW                     = modkernel32.NewProc("FindFirstFileW")
        procFindNextFileW                      = modkernel32.NewProc("FindNextFileW")
        procFindClose                          = modkernel32.NewProc("FindClose")
@@ -93,6 +94,7 @@ var (
        procGetComputerNameExW                 = modkernel32.NewProc("GetComputerNameExW")
        procSetEndOfFile                       = modkernel32.NewProc("SetEndOfFile")
        procGetSystemTimeAsFileTime            = modkernel32.NewProc("GetSystemTimeAsFileTime")
+       procGetSystemTimePreciseAsFileTime     = modkernel32.NewProc("GetSystemTimePreciseAsFileTime")
        procGetTimeZoneInformation             = modkernel32.NewProc("GetTimeZoneInformation")
        procCreateIoCompletionPort             = modkernel32.NewProc("CreateIoCompletionPort")
        procGetQueuedCompletionStatus          = modkernel32.NewProc("GetQueuedCompletionStatus")
@@ -619,7 +621,7 @@ func CloseHandle(handle Handle) (err error) {
        return
 }
 
-func GetStdHandle(stdhandle int) (handle Handle, err error) {
+func GetStdHandle(stdhandle uint32) (handle Handle, err error) {
        r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0)
        handle = Handle(r0)
        if handle == InvalidHandle {
@@ -632,6 +634,18 @@ func GetStdHandle(stdhandle int) (handle Handle, err error) {
        return
 }
 
+func SetStdHandle(stdhandle uint32, handle Handle) (err error) {
+       r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0)
+       if r1 == 0 {
+               if e1 != 0 {
+                       err = errnoErr(e1)
+               } else {
+                       err = syscall.EINVAL
+               }
+       }
+       return
+}
+
 func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
        r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)
        handle = Handle(r0)
@@ -807,6 +821,11 @@ func GetSystemTimeAsFileTime(time *Filetime) {
        return
 }
 
+func GetSystemTimePreciseAsFileTime(time *Filetime) {
+       syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)
+       return
+}
+
 func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {
        r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0)
        rc = uint32(r0)