aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
diff options
context:
space:
mode:
authorLibravatar Rutger Broekhoff2023-12-29 21:31:53 +0100
committerLibravatar Rutger Broekhoff2023-12-29 21:31:53 +0100
commit404aeae4545d2426c089a5f8d5e82dae56f5212b (patch)
tree2d84e00af272b39fc04f3795ae06bc48970e57b5 /vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
parent209d8b0187ed025dec9ac149ebcced3462877bff (diff)
downloadgitolfs3-404aeae4545d2426c089a5f8d5e82dae56f5212b.tar.gz
gitolfs3-404aeae4545d2426c089a5f8d5e82dae56f5212b.zip
Make Nix builds work
Diffstat (limited to 'vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go')
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go83
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
new file mode 100644
index 0000000..c87f9a9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
@@ -0,0 +1,83 @@
1// Copyright 2018 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 aix && ppc64
6
7package unix
8
9//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
10//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek
11
12//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64
13
14func setTimespec(sec, nsec int64) Timespec {
15 return Timespec{Sec: sec, Nsec: nsec}
16}
17
18func setTimeval(sec, usec int64) Timeval {
19 return Timeval{Sec: int64(sec), Usec: int32(usec)}
20}
21
22func (iov *Iovec) SetLen(length int) {
23 iov.Len = uint64(length)
24}
25
26func (msghdr *Msghdr) SetControllen(length int) {
27 msghdr.Controllen = uint32(length)
28}
29
30func (msghdr *Msghdr) SetIovlen(length int) {
31 msghdr.Iovlen = int32(length)
32}
33
34func (cmsg *Cmsghdr) SetLen(length int) {
35 cmsg.Len = uint32(length)
36}
37
38// In order to only have Timespec structure, type of Stat_t's fields
39// Atim, Mtim and Ctim is changed from StTimespec to Timespec during
40// ztypes generation.
41// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an
42// int32, so the fields' value must be modified.
43func fixStatTimFields(stat *Stat_t) {
44 stat.Atim.Nsec >>= 32
45 stat.Mtim.Nsec >>= 32
46 stat.Ctim.Nsec >>= 32
47}
48
49func Fstat(fd int, stat *Stat_t) error {
50 err := fstat(fd, stat)
51 if err != nil {
52 return err
53 }
54 fixStatTimFields(stat)
55 return nil
56}
57
58func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
59 err := fstatat(dirfd, path, stat, flags)
60 if err != nil {
61 return err
62 }
63 fixStatTimFields(stat)
64 return nil
65}
66
67func Lstat(path string, stat *Stat_t) error {
68 err := lstat(path, stat)
69 if err != nil {
70 return err
71 }
72 fixStatTimFields(stat)
73 return nil
74}
75
76func Stat(path string, statptr *Stat_t) error {
77 err := stat(path, statptr)
78 if err != nil {
79 return err
80 }
81 fixStatTimFields(statptr)
82 return nil
83}