github.com/pawelgaczynski/giouring@v0.0.0-20230826085535-69588b89acb9/sys.go (about) 1 // MIT License 2 // 3 // Copyright (c) 2023 Paweł Gaczyński 4 // 5 // Permission is hereby granted, free of charge, to any person obtaining a 6 // copy of this software and associated documentation files (the 7 // "Software"), to deal in the Software without restriction, including 8 // without limitation the rights to use, copy, modify, merge, publish, 9 // distribute, sublicense, and/or sell copies of the Software, and to 10 // permit persons to whom the Software is furnished to do so, subject to 11 // the following conditions: 12 // 13 // The above copyright notice and this permission notice shall be included 14 // in all copies or substantial portions of the Software. 15 // 16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 24 package giouring 25 26 import ( 27 "math" 28 "syscall" 29 "unsafe" 30 ) 31 32 func sysMmap(addr, length uintptr, prot, flags, fd int, offset int64) (unsafe.Pointer, error) { 33 ptr, err := mmap(addr, length, prot, flags, fd, offset) 34 35 return unsafe.Pointer(ptr), err 36 } 37 38 func sysMunmap(addr, length uintptr) error { 39 return munmap(addr, length) 40 } 41 42 func sysMadvise(address, length, advice uintptr) error { 43 _, _, err := syscall.Syscall(syscall.SYS_MADVISE, address, length, advice) 44 45 return err 46 } 47 48 const liburingUdataTimeout uint64 = math.MaxUint64