Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/linux/mq_unlink.c')
-rw-r--r--newlib/libc/sys/linux/mq_unlink.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/newlib/libc/sys/linux/mq_unlink.c b/newlib/libc/sys/linux/mq_unlink.c
deleted file mode 100644
index ce7bd0e01..000000000
--- a/newlib/libc/sys/linux/mq_unlink.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2002, Red Hat Inc. */
-
-#include <mqueue.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <string.h>
-#include <stdlib.h>
-#include <machine/weakalias.h>
-#define _LIBC 1
-#include <sys/lock.h>
-#undef _LIBC
-
-#include "mqlocal.h"
-
-int
-mq_unlink (const char *name)
-{
- int size;
- int saved_errno;
- char *real_name;
- char *ptr;
- int i, rc;
- int semid, msgqid;
- key_t key;
-
- /* ignore opening slash if present */
- if (*name == '/')
- ++name;
- size = strlen(name);
-
- if ((real_name = (char *)malloc (size + sizeof(MSGQ_PREFIX))) == NULL)
- {
- errno = ENOSPC;
- return -1;
- }
-
- /* use given name to create shared memory file name - we convert any
- slashes to underscores so we don't have to create directories */
- memcpy (real_name, MSGQ_PREFIX, sizeof(MSGQ_PREFIX) - 1);
- memcpy (real_name + sizeof(MSGQ_PREFIX) - 1, name, size + 1);
- ptr = real_name + sizeof(MSGQ_PREFIX) - 1;
- for (i = 0; i < size; ++i)
- {
- if (*ptr == '/')
- *ptr = '_';
- ++ptr;
- }
-
- /* get key and then unlink shared memory file */
- if ((key = ftok(real_name, 255)) == (key_t)-1)
- return -1;
-
- rc = unlink (real_name);
-
- if (rc == 0)
- {
- /* try to remove semaphore and msg queues associated with shared memory file */
- saved_errno = errno;
- semid = semget (key, 6, 0);
- if (semid != -1)
- semctl (semid, 0, IPC_RMID);
- msgqid = msgget (key, 0);
- if (msgqid != -1)
- msgctl (msgqid, IPC_RMID, NULL);
- errno = saved_errno;
- }
-
- return rc;
-}