mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-10 07:28:30 -04:00
freebsd: add initial support for running on FreeBSD, excluding Bluez,
ppd, and some things. Add a simple wpa_supplicant backend
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package shm
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// Mirrors FreeBSD libc memfd_create (lib/libc/gen/memfd_create.c):
|
||||
// shm_open2(SHM_ANON, O_RDWR, 0, SHM_GROW_ON_WRITE, name).
|
||||
// x/sys/unix has no wrapper for SYS_shm_open2 (571, sys/sys/syscall.h).
|
||||
const (
|
||||
sysShmOpen2 = 571
|
||||
shmAnon = 1 // SHM_ANON ((char *)1), sys/sys/mman.h
|
||||
shmGrowOnWrite = 0x2 // SHM_GROW_ON_WRITE, sys/sys/mman.h
|
||||
)
|
||||
|
||||
func CreateAnonFd(name string) (int, error) {
|
||||
p, err := unix.BytePtrFromString(name)
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
fd, _, errno := unix.Syscall6(sysShmOpen2, shmAnon, unix.O_RDWR, 0, shmGrowOnWrite, uintptr(unsafe.Pointer(p)), 0)
|
||||
if errno != 0 {
|
||||
return -1, errno
|
||||
}
|
||||
return int(fd), nil
|
||||
}
|
||||
Reference in New Issue
Block a user