Add openbsd and dragonfly support to shm
This commit is contained in:
parent
7e161ea94b
commit
6ace082bc2
@ -1,5 +1,5 @@
|
|||||||
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
|
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
|
||||||
//go:build linux || netbsd
|
//go:build linux || netbsd || openbsd || dragonfly
|
||||||
|
|
||||||
package shm
|
package shm
|
||||||
|
|
||||||
@ -12,6 +12,7 @@ import (
|
|||||||
var _ = fmt.Print
|
var _ = fmt.Print
|
||||||
|
|
||||||
func create_temp(pattern string, size uint64) (MMap, error) {
|
func create_temp(pattern string, size uint64) (MMap, error) {
|
||||||
|
pattern = modify_pattern(pattern)
|
||||||
ans, err := os.CreateTemp(SHM_DIR, pattern)
|
ans, err := os.CreateTemp(SHM_DIR, pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
|
|
||||||
|
|
||||||
package shm
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ = fmt.Print
|
|
||||||
|
|
||||||
const SHM_DIR = "/tmp"
|
|
||||||
|
|
||||||
func create_temp(pattern string) (*os.File, error) {
|
|
||||||
ans, err := os.CreateTemp(SHM_DIR, pattern)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return ans, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func Open(name string) (*os.File, error) {
|
|
||||||
if !filepath.IsAbs(name) {
|
|
||||||
name = filepath.Join(SHM_DIR, name)
|
|
||||||
}
|
|
||||||
ans, err := os.OpenFile(name, os.O_RDONLY, 0)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return ans, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func Unlink(name string) error {
|
|
||||||
if !filepath.IsAbs(name) {
|
|
||||||
name = filepath.Join(SHM_DIR, name)
|
|
||||||
}
|
|
||||||
return os.Remove(name)
|
|
||||||
|
|
||||||
}
|
|
||||||
16
tools/utils/shm/specific_dragonfly.go
Normal file
16
tools/utils/shm/specific_dragonfly.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
package shm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = fmt.Print
|
||||||
|
|
||||||
|
// https://www.dragonflybsd.org/cgi/web-man?command=shm_open§ion=3
|
||||||
|
const SHM_DIR = "/var/run/shm"
|
||||||
|
|
||||||
|
func modify_pattern(pattern string) string {
|
||||||
|
return pattern
|
||||||
|
}
|
||||||
@ -9,4 +9,7 @@ import (
|
|||||||
var _ = fmt.Print
|
var _ = fmt.Print
|
||||||
|
|
||||||
const SHM_DIR = "/dev/shm"
|
const SHM_DIR = "/dev/shm"
|
||||||
const SHM_NAME_MAX = 1023
|
|
||||||
|
func modify_pattern(pattern string) string {
|
||||||
|
return pattern
|
||||||
|
}
|
||||||
|
|||||||
@ -9,4 +9,7 @@ import (
|
|||||||
var _ = fmt.Print
|
var _ = fmt.Print
|
||||||
|
|
||||||
const SHM_DIR = "/var/shm"
|
const SHM_DIR = "/var/shm"
|
||||||
const SHM_NAME_MAX = 1023
|
|
||||||
|
func modify_pattern(pattern string) string {
|
||||||
|
return pattern
|
||||||
|
}
|
||||||
|
|||||||
21
tools/utils/shm/specific_openbsd.go
Normal file
21
tools/utils/shm/specific_openbsd.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// License: GPLv3 Copyright: 2022, Kovid Goyal, <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
package shm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = fmt.Print
|
||||||
|
|
||||||
|
const SHM_DIR = "/tmp"
|
||||||
|
|
||||||
|
func modify_pattern(pattern string) string {
|
||||||
|
// https://github.com/openbsd/src/blob/master/lib/libc/gen/shm_open.c
|
||||||
|
if strings.Contains(pattern, "*") {
|
||||||
|
pattern += ".shm"
|
||||||
|
} else {
|
||||||
|
pattern += "*.shm"
|
||||||
|
}
|
||||||
|
return pattern
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user