(f *os.File)
| 11 | ) |
| 12 | |
| 13 | func mmapFile(f *os.File) mmapData { |
| 14 | st, err := f.Stat() |
| 15 | if err != nil { |
| 16 | log.Fatal(err) |
| 17 | } |
| 18 | size := st.Size() |
| 19 | if int64(int(size+4095)) != size+4095 { |
| 20 | log.Fatalf("%s: too large for mmap", f.Name()) |
| 21 | } |
| 22 | n := int(size) |
| 23 | if n == 0 { |
| 24 | return mmapData{f, nil} |
| 25 | } |
| 26 | data, err := syscall.Mmap(int(f.Fd()), 0, (n+4095)&^4095, syscall.PROT_READ, syscall.MAP_SHARED) |
| 27 | if err != nil { |
| 28 | log.Fatalf("mmap %s: %v", f.Name(), err) |
| 29 | } |
| 30 | return mmapData{f, data[:n]} |
| 31 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…