- if ((dir = open("/dev/shm", O_DIRECTORY|O_RDONLY)) < 0) return -1;
- fd = openat(dir, name, flag|O_NOFOLLOW|O_CLOEXEC|O_NONBLOCK, mode);
- close(dir);
- return fd;
+int shm_open(const char *name, int flag, mode_t mode)
+{
+ char buf[NAME_MAX+10];
+ if (!(name = __shm_mapname(name, buf))) return -1;
+ return open(name, flag|O_NOFOLLOW|O_CLOEXEC|O_NONBLOCK, mode);
+}
+
+int shm_unlink(const char *name)
+{
+ char buf[NAME_MAX+10];
+ if (!(name = __shm_mapname(name, buf))) return -1;
+ return unlink(name);