summaryrefslogtreecommitdiff
path: root/libpthread/nptl/sysdeps/unix/sysv/linux/creat.c
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2017-07-16 11:34:54 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2017-07-28 18:52:38 +0200
commitdcbff4072b6b3e79d768e50c2d58ccc8e307b1bd (patch)
tree4a8f192ea3726c5e8ee04f060615854275cf08c2 /libpthread/nptl/sysdeps/unix/sysv/linux/creat.c
parentccc200d454c712f6e8bfadb4b7c3ee58086d8f2b (diff)
nptl: remove sysdep-cancel ASM macros, convert to C
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/creat.c')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/creat.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/creat.c b/libpthread/nptl/sysdeps/unix/sysv/linux/creat.c
new file mode 100644
index 000000000..a4c7c68e1
--- /dev/null
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/creat.c
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2017 Waldemar Brodkorb <wbx@uclibc-ng.org>
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <cancel.h>
+
+int
+creat (const char *file, mode_t mode)
+{
+# ifdef __NR_creat
+ return _syscall2(int, __NC(creat), const char*, file, mode_t, mode)
+# else
+ return __open (file, O_WRONLY | O_CREAT | O_TRUNC, mode);
+# endif
+}
+
+CANCELLABLE_SYSCALL(int, creat, (const char *file, mode_t mode), (file, mode))
+
+lt_libc_hidden(creat)