xref: /aosp_15_r20/external/libcap/contrib/bug216610/go/main.go (revision 2810ac1b38eead2603277920c78344c84ddf3aff)
1*2810ac1bSKiyoung Kim// Program fib uses the psx package once, and then prints the first
2*2810ac1bSKiyoung Kim// ten Fibonacci numbers.
3*2810ac1bSKiyoung Kimpackage main
4*2810ac1bSKiyoung Kim
5*2810ac1bSKiyoung Kimimport (
6*2810ac1bSKiyoung Kim	"fmt"
7*2810ac1bSKiyoung Kim	"log"
8*2810ac1bSKiyoung Kim	"syscall"
9*2810ac1bSKiyoung Kim
10*2810ac1bSKiyoung Kim	"fib/fibber"
11*2810ac1bSKiyoung Kim
12*2810ac1bSKiyoung Kim	"kernel.org/pub/linux/libs/security/libcap/psx"
13*2810ac1bSKiyoung Kim)
14*2810ac1bSKiyoung Kim
15*2810ac1bSKiyoung Kimfunc main() {
16*2810ac1bSKiyoung Kim	pid, _, err := psx.Syscall3(syscall.SYS_GETPID, 0, 0, 0)
17*2810ac1bSKiyoung Kim	if err != 0 {
18*2810ac1bSKiyoung Kim		log.Fatalf("failed to get PID via psx: %v", err)
19*2810ac1bSKiyoung Kim	}
20*2810ac1bSKiyoung Kim	fmt.Print("psx syscall result: PID=")
21*2810ac1bSKiyoung Kim	fmt.Println(pid)
22*2810ac1bSKiyoung Kim	s := fibber.NewState()
23*2810ac1bSKiyoung Kim	fmt.Print("fib: ", s.A, ", ", s.B)
24*2810ac1bSKiyoung Kim	for i := 0; i < 8; i++ {
25*2810ac1bSKiyoung Kim		s.Next()
26*2810ac1bSKiyoung Kim		fmt.Print(", ", s.B)
27*2810ac1bSKiyoung Kim	}
28*2810ac1bSKiyoung Kim	fmt.Println(", ...")
29*2810ac1bSKiyoung Kim}
30