From b5fbb4746d327e73f1732c57f1fb31249586f8aa Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 11 Apr 2022 13:12:50 -0400 Subject: [PATCH] all: gofmt Gofmt to update doc comments to the new formatting. For golang/go#51082. Change-Id: I9a1c4b671c06820a1c383ee515f7884965fefa54 Reviewed-on: https://go-review.googlesource.com/c/sys/+/399602 Reviewed-by: Ian Lance Taylor Auto-Submit: Russ Cox TryBot-Result: Gopher Robot Run-TryBot: Russ Cox --- cpu/cpu.go | 4 +- plan9/mksyscall.go | 10 +-- plan9/syscall.go | 1 + plan9/syscall_plan9.go | 10 +++ unix/internal/mkmerge/mkmerge.go | 18 +++-- unix/mkasm_darwin.go | 2 +- unix/mksyscall.go | 10 +-- unix/mksyscall_aix_ppc.go | 18 ++--- unix/syscall_aix.go | 6 ++ unix/syscall_dragonfly.go | 2 + unix/syscall_linux.go | 112 +++++++++++++-------------- unix/syscall_openbsd.go | 2 + windows/exec_windows.go | 10 +-- windows/mkwinsyscall/mkwinsyscall.go | 34 ++++---- windows/registry/key.go | 1 - windows/svc/debug/service.go | 1 - windows/svc/eventlog/log.go | 1 - windows/svc/example/main.go | 1 - windows/svc/mgr/mgr.go | 1 - windows/svc/service.go | 1 - 20 files changed, 132 insertions(+), 113 deletions(-) diff --git a/cpu/cpu.go b/cpu/cpu.go index b56886f2..83f112c4 100644 --- a/cpu/cpu.go +++ b/cpu/cpu.go @@ -106,8 +106,8 @@ var ARM64 struct { // ARM contains the supported CPU features of the current ARM (32-bit) platform. // All feature flags are false if: -// 1. the current platform is not arm, or -// 2. the current operating system is not Linux. +// 1. the current platform is not arm, or +// 2. the current operating system is not Linux. var ARM struct { _ CacheLinePad HasSWP bool // SWP instruction support diff --git a/plan9/mksyscall.go b/plan9/mksyscall.go index 2d07e8bb..a5062c26 100644 --- a/plan9/mksyscall.go +++ b/plan9/mksyscall.go @@ -10,11 +10,11 @@ This program reads a file containing function prototypes (like syscall_plan9.go) and generates system call bodies. The prototypes are marked by lines beginning with "//sys" and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named errno. + - The parameter lists must give a name for each argument. + This includes return parameters. + - The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. + - If the return parameter is an error number, it must be named errno. A line beginning with //sysnb is like //sys, except that the goroutine will not be suspended during the execution of the system diff --git a/plan9/syscall.go b/plan9/syscall.go index 602473cb..a25223b8 100644 --- a/plan9/syscall.go +++ b/plan9/syscall.go @@ -113,5 +113,6 @@ func (tv *Timeval) Nano() int64 { // use is a no-op, but the compiler cannot see that it is. // Calling use(p) ensures that p is kept live until that point. +// //go:noescape func use(p unsafe.Pointer) diff --git a/plan9/syscall_plan9.go b/plan9/syscall_plan9.go index 723b1f40..d079d811 100644 --- a/plan9/syscall_plan9.go +++ b/plan9/syscall_plan9.go @@ -115,6 +115,7 @@ func Write(fd int, p []byte) (n int, err error) { var ioSync int64 //sys fd2path(fd int, buf []byte) (err error) + func Fd2path(fd int) (path string, err error) { var buf [512]byte @@ -126,6 +127,7 @@ func Fd2path(fd int) (path string, err error) { } //sys pipe(p *[2]int32) (err error) + func Pipe(p []int) (err error) { if len(p) != 2 { return syscall.ErrorString("bad arg in system call") @@ -180,6 +182,7 @@ func (w Waitmsg) ExitStatus() int { } //sys await(s []byte) (n int, err error) + func Await(w *Waitmsg) (err error) { var buf [512]byte var f [5][]byte @@ -301,42 +304,49 @@ func Getgroups() (gids []int, err error) { } //sys open(path string, mode int) (fd int, err error) + func Open(path string, mode int) (fd int, err error) { fixwd() return open(path, mode) } //sys create(path string, mode int, perm uint32) (fd int, err error) + func Create(path string, mode int, perm uint32) (fd int, err error) { fixwd() return create(path, mode, perm) } //sys remove(path string) (err error) + func Remove(path string) error { fixwd() return remove(path) } //sys stat(path string, edir []byte) (n int, err error) + func Stat(path string, edir []byte) (n int, err error) { fixwd() return stat(path, edir) } //sys bind(name string, old string, flag int) (err error) + func Bind(name string, old string, flag int) (err error) { fixwd() return bind(name, old, flag) } //sys mount(fd int, afd int, old string, flag int, aname string) (err error) + func Mount(fd int, afd int, old string, flag int, aname string) (err error) { fixwd() return mount(fd, afd, old, flag, aname) } //sys wstat(path string, edir []byte) (err error) + func Wstat(path string, edir []byte) (err error) { fixwd() return wstat(path, edir) diff --git a/unix/internal/mkmerge/mkmerge.go b/unix/internal/mkmerge/mkmerge.go index f307c301..3dda84dc 100644 --- a/unix/internal/mkmerge/mkmerge.go +++ b/unix/internal/mkmerge/mkmerge.go @@ -6,18 +6,20 @@ // consts, funcs, and types into a common source file, per GOOS. // // Usage: -// $ mkmerge -out MERGED FILE [FILE ...] +// +// $ mkmerge -out MERGED FILE [FILE ...] // // Example: -// # Remove all common consts, funcs, and types from zerrors_linux_*.go -// # and write the common code into zerrors_linux.go -// $ mkmerge -out zerrors_linux.go zerrors_linux_*.go +// +// # Remove all common consts, funcs, and types from zerrors_linux_*.go +// # and write the common code into zerrors_linux.go +// $ mkmerge -out zerrors_linux.go zerrors_linux_*.go // // mkmerge performs the merge in the following steps: -// 1. Construct the set of common code that is identical in all -// architecture-specific files. -// 2. Write this common code to the merged file. -// 3. Remove the common code from all architecture-specific files. +// 1. Construct the set of common code that is identical in all +// architecture-specific files. +// 2. Write this common code to the merged file. +// 3. Remove the common code from all architecture-specific files. package main import ( diff --git a/unix/mkasm_darwin.go b/unix/mkasm_darwin.go index 49b1c94c..4e33c7a6 100644 --- a/unix/mkasm_darwin.go +++ b/unix/mkasm_darwin.go @@ -6,7 +6,7 @@ // +build ignore // mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go. -//This program must be run after mksyscall.go. +// This program must be run after mksyscall.go. package main import ( diff --git a/unix/mksyscall.go b/unix/mksyscall.go index 9df3c871..e9bf2dea 100644 --- a/unix/mksyscall.go +++ b/unix/mksyscall.go @@ -10,11 +10,11 @@ This program reads a file containing function prototypes (like syscall_darwin.go) and generates system call bodies. The prototypes are marked by lines beginning with "//sys" and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named errno. + - The parameter lists must give a name for each argument. + This includes return parameters. + - The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. + - If the return parameter is an error number, it must be named errno. A line beginning with //sysnb is like //sys, except that the goroutine will not be suspended during the execution of the system diff --git a/unix/mksyscall_aix_ppc.go b/unix/mksyscall_aix_ppc.go index 01431372..e3e0dd24 100644 --- a/unix/mksyscall_aix_ppc.go +++ b/unix/mksyscall_aix_ppc.go @@ -10,15 +10,15 @@ This program reads a file containing function prototypes (like syscall_aix.go) and generates system call bodies. The prototypes are marked by lines beginning with "//sys" and read like func declarations if //sys is replaced by func, but: - * The parameter lists must give a name for each argument. - This includes return parameters. - * The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. - * If the return parameter is an error number, it must be named err. - * If go func name needs to be different than its libc name, - * or the function is not in libc, name could be specified - * at the end, after "=" sign, like - //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt + - The parameter lists must give a name for each argument. + This includes return parameters. + - The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. + - If the return parameter is an error number, it must be named err. + - If go func name needs to be different than its libc name, + - or the function is not in libc, name could be specified + - at the end, after "=" sign, like + //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt */ package main diff --git a/unix/syscall_aix.go b/unix/syscall_aix.go index f2a114fc..ad22c33d 100644 --- a/unix/syscall_aix.go +++ b/unix/syscall_aix.go @@ -37,6 +37,7 @@ func Creat(path string, mode uint32) (fd int, err error) { } //sys utimes(path string, times *[2]Timeval) (err error) + func Utimes(path string, tv []Timeval) error { if len(tv) != 2 { return EINVAL @@ -45,6 +46,7 @@ func Utimes(path string, tv []Timeval) error { } //sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) + func UtimesNano(path string, ts []Timespec) error { if len(ts) != 2 { return EINVAL @@ -300,11 +302,13 @@ func direntNamlen(buf []byte) (uint64, bool) { } //sys getdirent(fd int, buf []byte) (n int, err error) + func Getdents(fd int, buf []byte) (n int, err error) { return getdirent(fd, buf) } //sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) + func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { var status _C_int var r Pid_t @@ -372,6 +376,7 @@ func (w WaitStatus) TrapCause() int { return -1 } //sys fcntl(fd int, cmd int, arg int) (val int, err error) //sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range + func Fsync(fd int) error { return fsyncRange(fd, O_SYNC, 0, 0) } @@ -536,6 +541,7 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { //sys Getsystemcfg(label int) (n uint64) //sys umount(target string) (err error) + func Unmount(target string, flags int) (err error) { if flags != 0 { // AIX doesn't have any flags for umount. diff --git a/unix/syscall_dragonfly.go b/unix/syscall_dragonfly.go index c61e2749..61c0d0de 100644 --- a/unix/syscall_dragonfly.go +++ b/unix/syscall_dragonfly.go @@ -125,11 +125,13 @@ func Pipe2(p []int, flags int) (err error) { } //sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) + func pread(fd int, p []byte, offset int64) (n int, err error) { return extpread(fd, p, 0, offset) } //sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) + func pwrite(fd int, p []byte, offset int64) (n int, err error) { return extpwrite(fd, p, 0, offset) } diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index d251dafa..c8d20321 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -512,24 +512,24 @@ func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { // // Server example: // -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 -// }) -// _ = Listen(fd, 1) -// nfd, sa, _ := Accept(fd) -// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) -// Read(nfd, buf) +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 +// }) +// _ = Listen(fd, 1) +// nfd, sa, _ := Accept(fd) +// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) +// Read(nfd, buf) // // Client example: // -// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) -// _ = Connect(fd, &SockaddrRFCOMM{ -// Channel: 1, -// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 -// }) -// Write(fd, []byte(`hello`)) +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = Connect(fd, &SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 +// }) +// Write(fd, []byte(`hello`)) type SockaddrRFCOMM struct { // Addr represents a bluetooth address, byte ordering is little-endian. Addr [6]uint8 @@ -556,12 +556,12 @@ func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { // The SockaddrCAN struct must be bound to the socket file descriptor // using Bind before the CAN socket can be used. // -// // Read one raw CAN frame -// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) -// addr := &SockaddrCAN{Ifindex: index} -// Bind(fd, addr) -// frame := make([]byte, 16) -// Read(fd, frame) +// // Read one raw CAN frame +// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) +// addr := &SockaddrCAN{Ifindex: index} +// Bind(fd, addr) +// frame := make([]byte, 16) +// Read(fd, frame) // // The full SocketCAN documentation can be found in the linux kernel // archives at: https://www.kernel.org/doc/Documentation/networking/can.txt @@ -632,13 +632,13 @@ func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { // Here is an example of using an AF_ALG socket with SHA1 hashing. // The initial socket setup process is as follows: // -// // Open a socket to perform SHA1 hashing. -// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) -// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} -// unix.Bind(fd, addr) -// // Note: unix.Accept does not work at this time; must invoke accept() -// // manually using unix.Syscall. -// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) +// // Open a socket to perform SHA1 hashing. +// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) +// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} +// unix.Bind(fd, addr) +// // Note: unix.Accept does not work at this time; must invoke accept() +// // manually using unix.Syscall. +// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) // // Once a file descriptor has been returned from Accept, it may be used to // perform SHA1 hashing. The descriptor is not safe for concurrent use, but @@ -647,39 +647,39 @@ func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { // When hashing a small byte slice or string, a single Write and Read may // be used: // -// // Assume hashfd is already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash an input string and read the results. Each Write discards -// // previous hash state. Read always reads the current state. -// b := make([]byte, 20) -// for i := 0; i < 2; i++ { -// io.WriteString(hash, "Hello, world.") -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// } -// // Output: -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 -// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// // Assume hashfd is already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash an input string and read the results. Each Write discards +// // previous hash state. Read always reads the current state. +// b := make([]byte, 20) +// for i := 0; i < 2; i++ { +// io.WriteString(hash, "Hello, world.") +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// } +// // Output: +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 // // For hashing larger byte slices, or byte streams such as those read from // a file or socket, use Sendto with MSG_MORE to instruct the kernel to update // the hash digest instead of creating a new one for a given chunk and finalizing it. // -// // Assume hashfd and addr are already configured using the setup process. -// hash := os.NewFile(hashfd, "sha1") -// // Hash the contents of a file. -// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") -// b := make([]byte, 4096) -// for { -// n, err := f.Read(b) -// if err == io.EOF { -// break -// } -// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) -// } -// hash.Read(b) -// fmt.Println(hex.EncodeToString(b)) -// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 +// // Assume hashfd and addr are already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash the contents of a file. +// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") +// b := make([]byte, 4096) +// for { +// n, err := f.Read(b) +// if err == io.EOF { +// break +// } +// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) +// } +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 // // For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. type SockaddrALG struct { diff --git a/unix/syscall_openbsd.go b/unix/syscall_openbsd.go index 15d637d6..78daceb3 100644 --- a/unix/syscall_openbsd.go +++ b/unix/syscall_openbsd.go @@ -81,6 +81,7 @@ func Pipe(p []int) (err error) { } //sysnb pipe2(p *[2]_C_int, flags int) (err error) + func Pipe2(p []int, flags int) error { if len(p) != 2 { return EINVAL @@ -95,6 +96,7 @@ func Pipe2(p []int, flags int) error { } //sys Getdents(fd int, buf []byte) (n int, err error) + func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { n, err = Getdents(fd, buf) if err != nil || basep == nil { diff --git a/windows/exec_windows.go b/windows/exec_windows.go index 855698bb..75980fd4 100644 --- a/windows/exec_windows.go +++ b/windows/exec_windows.go @@ -15,11 +15,11 @@ import ( // in http://msdn.microsoft.com/en-us/library/ms880421. // This function returns "" (2 double quotes) if s is empty. // Alternatively, these transformations are done: -// - every back slash (\) is doubled, but only if immediately -// followed by double quote ("); -// - every double quote (") is escaped by back slash (\); -// - finally, s is wrapped with double quotes (arg -> "arg"), -// but only if there is space or tab inside s. +// - every back slash (\) is doubled, but only if immediately +// followed by double quote ("); +// - every double quote (") is escaped by back slash (\); +// - finally, s is wrapped with double quotes (arg -> "arg"), +// but only if there is space or tab inside s. func EscapeArg(s string) string { if len(s) == 0 { return "\"\"" diff --git a/windows/mkwinsyscall/mkwinsyscall.go b/windows/mkwinsyscall/mkwinsyscall.go index 5818e84c..b080c539 100644 --- a/windows/mkwinsyscall/mkwinsyscall.go +++ b/windows/mkwinsyscall/mkwinsyscall.go @@ -12,32 +12,34 @@ to standard output. The prototypes are marked by lines beginning with "//sys" and read like func declarations if //sys is replaced by func, but: -* The parameter lists must give a name for each argument. This - includes return parameters. + - The parameter lists must give a name for each argument. This + includes return parameters. -* The parameter lists must give a type for each argument: - the (x, y, z int) shorthand is not allowed. + - The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. -* If the return parameter is an error number, it must be named err. + - If the return parameter is an error number, it must be named err. -* If go func name needs to be different from its winapi dll name, - the winapi name could be specified at the end, after "=" sign, like - //sys LoadLibrary(libname string) (handle uint32, err error) = LoadLibraryA + - If go func name needs to be different from its winapi dll name, + the winapi name could be specified at the end, after "=" sign, like + //sys LoadLibrary(libname string) (handle uint32, err error) = LoadLibraryA -* Each function that returns err needs to supply a condition, that - return value of winapi will be tested against to detect failure. - This would set err to windows "last-error", otherwise it will be nil. - The value can be provided at end of //sys declaration, like - //sys LoadLibrary(libname string) (handle uint32, err error) [failretval==-1] = LoadLibraryA - and is [failretval==0] by default. + - Each function that returns err needs to supply a condition, that + return value of winapi will be tested against to detect failure. + This would set err to windows "last-error", otherwise it will be nil. + The value can be provided at end of //sys declaration, like + //sys LoadLibrary(libname string) (handle uint32, err error) [failretval==-1] = LoadLibraryA + and is [failretval==0] by default. -* If the function name ends in a "?", then the function not existing is non- - fatal, and an error will be returned instead of panicking. + - If the function name ends in a "?", then the function not existing is non- + fatal, and an error will be returned instead of panicking. Usage: + mkwinsyscall [flags] [path ...] The flags are: + -output Specify output file name (outputs to console if blank). -trace diff --git a/windows/registry/key.go b/windows/registry/key.go index 906325e0..6c8d97b6 100644 --- a/windows/registry/key.go +++ b/windows/registry/key.go @@ -20,7 +20,6 @@ // log.Fatal(err) // } // fmt.Printf("Windows system root is %q\n", s) -// package registry import ( diff --git a/windows/svc/debug/service.go b/windows/svc/debug/service.go index 3b41899f..475b78e2 100644 --- a/windows/svc/debug/service.go +++ b/windows/svc/debug/service.go @@ -6,7 +6,6 @@ // +build windows // Package debug provides facilities to execute svc.Handler on console. -// package debug import ( diff --git a/windows/svc/eventlog/log.go b/windows/svc/eventlog/log.go index a1796fbb..f37b4b51 100644 --- a/windows/svc/eventlog/log.go +++ b/windows/svc/eventlog/log.go @@ -6,7 +6,6 @@ // +build windows // Package eventlog implements access to Windows event log. -// package eventlog import ( diff --git a/windows/svc/example/main.go b/windows/svc/example/main.go index a47650fb..2ea73301 100644 --- a/windows/svc/example/main.go +++ b/windows/svc/example/main.go @@ -12,7 +12,6 @@ // stop / start / pause / continue any service, and how to // write to event log. It also shows how to use debug // facilities available in debug package. -// package main import ( diff --git a/windows/svc/mgr/mgr.go b/windows/svc/mgr/mgr.go index de75f4a4..c2dc8701 100644 --- a/windows/svc/mgr/mgr.go +++ b/windows/svc/mgr/mgr.go @@ -9,7 +9,6 @@ // It can be used to install and remove them. It can also start, // stop and pause them. The package can query / change current // service state and config parameters. -// package mgr import ( diff --git a/windows/svc/service.go b/windows/svc/service.go index 5b05c3e3..806baa05 100644 --- a/windows/svc/service.go +++ b/windows/svc/service.go @@ -6,7 +6,6 @@ // +build windows // Package svc provides everything required to build Windows service. -// package svc import (