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