summaryrefslogtreecommitdiff
path: root/trans
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-09-04 00:33:09 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-11-27 22:58:15 +0100
commit1de0643c9218db536f5b2e294bbfa653c77438e4 (patch)
treef944e1b023cf0353ca559d22e1f7b701bac04c97 /trans
parent7648503cd894549874ff13f7ed94a4708cf50f0d (diff)
Switch from cthreads to pthreads
Makefiles, headers, types, macros and function calls are renamed where appropriate. Most of this work was done by Barry deFreese and Thomas DiModica. * auth/Makefile: Switch from cthreads to pthreads. * auth/auth.c: Likewise. * boot/Makefile: Likewise. * boot/boot.c: Likewise. * boot/ux.c: Likewise. * console-client/Makefile: Likewise. * console-client/console.c: Likewise. * console-client/driver.c: Likewise. * console-client/driver.h: Likewise. * console-client/generic-speaker.c: Likewise. * console-client/kbd-repeat.c: Likewise. * console-client/ncursesw.c: Likewise. * console-client/pc-kbd.c: Likewise. * console-client/pc-mouse.c: Likewise. * console-client/timer.c: Likewise. * console-client/trans.c: Likewise. * console-client/vga.c: Likewise. * console/Makefile: Likewise. * console/console.c: Likewise. * console/display.c: Likewise. * console/input.c: Likewise. * console/pager.c: Likewise. * defpager/backing.c: Likewise. * exec/Makefile: Likewise. * exec/exec.c: Likewise. * exec/hashexec.c: Likewise. * exec/priv.h: Likewise. * ext2fs/Makefile: Likewise. * ext2fs/balloc.c: Likewise. * ext2fs/dir.c: Likewise. * ext2fs/ext2fs.c: Likewise. * ext2fs/ext2fs.h: Likewise. * ext2fs/ialloc.c: Likewise. * ext2fs/inode.c: Likewise. * ext2fs/msg.c: Likewise. * ext2fs/pager.c: Likewise. * ext2fs/pokel.c: Likewise. * ext2fs/storeinfo.c: Likewise. * ext2fs/truncate.c: Likewise. * fatfs/Makefile: Likewise. * fatfs/dir.c: Likewise. * fatfs/fat.c: Likewise. * fatfs/fatfs.h: Likewise. * fatfs/inode.c: Likewise. * fatfs/main.c: Likewise. * fatfs/pager.c: Likewise. * fatfs/virt-inode.c: Likewise. * ftpfs/Makefile: Likewise. * ftpfs/ccache.c: Likewise. * ftpfs/ccache.h: Likewise. * ftpfs/conn.c: Likewise. * ftpfs/dir.c: Likewise. * ftpfs/fs.c: Likewise. * ftpfs/ftpfs.c: Likewise. * ftpfs/ftpfs.h: Likewise. * ftpfs/ncache.c: Likewise. * ftpfs/netfs.c: Likewise. * ftpfs/node.c: Likewise. * hostmux/Makefile: Likewise. * hostmux/hostmux.h: Likewise. * hostmux/mux.c: Likewise. * hostmux/node.c: Likewise. * hostmux/stubs.c: Likewise. * hurd/shared.h: Likewise. * isofs/Makefile: Likewise. * isofs/inode.c: Likewise. * isofs/lookup.c: Likewise. * isofs/main.c: Likewise. * isofs/pager.c: Likewise. * libcons/Makefile: Likewise. * libcons/cons-switch.c: Likewise. * libcons/cons.h: Likewise. * libcons/dir-changed.c: Likewise. * libcons/file-changed.c: Likewise. * libcons/init-init.c: Likewise. * libcons/vcons-close.c: Likewise. * libcons/vcons-input.c: Likewise. * libcons/vcons-move-mouse.c: Likewise. * libcons/vcons-open.c: Likewise. * libcons/vcons-scrollback.c: Likewise. * libdiskfs/Makefile: Likewise. * libdiskfs/boot-start.c: Likewise. * libdiskfs/dead-name.c: Likewise. * libdiskfs/dir-chg.c: Likewise. * libdiskfs/dir-link.c: Likewise. * libdiskfs/dir-lookup.c: Likewise. * libdiskfs/dir-mkdir.c: Likewise. * libdiskfs/dir-mkfile.c: Likewise. * libdiskfs/dir-readdir.c: Likewise. * libdiskfs/dir-rename.c: Likewise. * libdiskfs/dir-renamed.c: Likewise. * libdiskfs/dir-rmdir.c: Likewise. * libdiskfs/dir-unlink.c: Likewise. * libdiskfs/disk-pager.c: Likewise. * libdiskfs/diskfs-pager.h: Likewise. * libdiskfs/diskfs.h: Likewise. * libdiskfs/file-access.c: Likewise. * libdiskfs/file-chg.c: Likewise. * libdiskfs/file-exec.c: Likewise. * libdiskfs/file-get-fs-opts.c: Likewise. * libdiskfs/file-get-trans.c: Likewise. * libdiskfs/file-get-transcntl.c: Likewise. * libdiskfs/file-getcontrol.c: Likewise. * libdiskfs/file-getfh.c: Likewise. * libdiskfs/file-lock-stat.c: Likewise. * libdiskfs/file-lock.c: Likewise. * libdiskfs/file-reparent.c: Likewise. * libdiskfs/file-set-trans.c: Likewise. * libdiskfs/file-sync.c: Likewise. * libdiskfs/file-syncfs.c: Likewise. * libdiskfs/fsys-getroot.c: Likewise. * libdiskfs/fsys-options.c: Likewise. * libdiskfs/fsys-syncfs.c: Likewise. * libdiskfs/ifsock.c: Likewise. * libdiskfs/init-first.c: Likewise. * libdiskfs/init-init.c: Likewise. * libdiskfs/init-startup.c: Likewise. * libdiskfs/io-duplicate.c: Likewise. * libdiskfs/io-get-conch.c: Likewise. * libdiskfs/io-identity.c: Likewise. * libdiskfs/io-map-cntl.c: Likewise. * libdiskfs/io-map.c: Likewise. * libdiskfs/io-modes-get.c: Likewise. * libdiskfs/io-modes-off.c: Likewise. * libdiskfs/io-modes-on.c: Likewise. * libdiskfs/io-modes-set.c: Likewise. * libdiskfs/io-owner-get.c: Likewise. * libdiskfs/io-owner-mod.c: Likewise. * libdiskfs/io-prenotify.c: Likewise. * libdiskfs/io-read.c: Likewise. * libdiskfs/io-readable.c: Likewise. * libdiskfs/io-reauthenticate.c: Likewise. * libdiskfs/io-rel-conch.c: Likewise. * libdiskfs/io-restrict-auth.c: Likewise. * libdiskfs/io-revoke.c: Likewise. * libdiskfs/io-seek.c: Likewise. * libdiskfs/io-sigio.c: Likewise. * libdiskfs/io-stat.c: Likewise. * libdiskfs/io-write.c: Likewise. * libdiskfs/lookup.c: Likewise. * libdiskfs/name-cache.c: Likewise. * libdiskfs/node-drop.c: Likewise. * libdiskfs/node-make.c: Likewise. * libdiskfs/node-nput.c: Likewise. * libdiskfs/node-nputl.c: Likewise. * libdiskfs/node-nref.c: Likewise. * libdiskfs/node-nrefl.c: Likewise. * libdiskfs/node-nrele.c: Likewise. * libdiskfs/node-nrelel.c: Likewise. * libdiskfs/peropen-rele.c: Likewise. * libdiskfs/priv.h: Likewise. * libdiskfs/shutdown.c: Likewise. * libdiskfs/sync-interval.c: Likewise. * libfshelp/Makefile: Likewise. * libfshelp/fetch-root.c: Likewise. * libfshelp/fshelp.h: Likewise. * libfshelp/get-identity.c: Likewise. * libfshelp/lock-acquire.c: Likewise. * libfshelp/lock-init.c: Likewise. * libfshelp/locks.h: Likewise. * libfshelp/set-active.c: Likewise. * libfshelp/trans.h: Likewise. * libfshelp/transbox-init.c: Likewise. * libiohelp/Makefile: Likewise. * libiohelp/get_conch.c: Likewise. * libiohelp/handle_io_release_conch.c: Likewise. * libiohelp/initialize_conch.c: Likewise. * libiohelp/iohelp.h: Likewise. * libiohelp/verify_user_conch.c: Likewise. * libnetfs/Makefile: Likewise. * libnetfs/dir-lookup.c: Likewise. * libnetfs/dir-mkdir.c: Likewise. * libnetfs/dir-mkfile.c: Likewise. * libnetfs/dir-readdir.c: Likewise. * libnetfs/dir-rmdir.c: Likewise. * libnetfs/dir-unlink.c: Likewise. * libnetfs/drop-node.c: Likewise. * libnetfs/file-chauthor.c: Likewise. * libnetfs/file-check-access.c: Likewise. * libnetfs/file-chflags.c: Likewise. * libnetfs/file-chmod.c: Likewise. * libnetfs/file-chown.c: Likewise. * libnetfs/file-exec.c: Likewise. * libnetfs/file-get-storage-info.c: Likewise. * libnetfs/file-get-translator.c: Likewise. * libnetfs/file-lock-stat.c: Likewise. * libnetfs/file-lock.c: Likewise. * libnetfs/file-reparent.c: Likewise. * libnetfs/file-set-size.c: Likewise. * libnetfs/file-set-translator.c: Likewise. * libnetfs/file-statfs.c: Likewise. * libnetfs/file-sync.c: Likewise. * libnetfs/file-syncfs.c: Likewise. * libnetfs/file-utimes.c: Likewise. * libnetfs/fsys-getroot.c: Likewise. * libnetfs/fsys-set-options.c: Likewise. * libnetfs/init-init.c: Likewise. * libnetfs/io-clear-some-openmodes.c: Likewise. * libnetfs/io-duplicate.c: Likewise. * libnetfs/io-get-openmodes.c: Likewise. * libnetfs/io-get-owner.c: Likewise. * libnetfs/io-identity.c: Likewise. * libnetfs/io-mod-owner.c: Likewise. * libnetfs/io-read.c: Likewise. * libnetfs/io-readable.c: Likewise. * libnetfs/io-reauthenticate.c: Likewise. * libnetfs/io-restrict-auth.c: Likewise. * libnetfs/io-revoke.c: Likewise. * libnetfs/io-seek.c: Likewise. * libnetfs/io-set-all-openmodes.c: Likewise. * libnetfs/io-set-some-openmodes.c: Likewise. * libnetfs/io-stat.c: Likewise. * libnetfs/io-write.c: Likewise. * libnetfs/make-node.c: Likewise. * libnetfs/netfs.h: Likewise. * libnetfs/nput.c: Likewise. * libnetfs/nref.c: Likewise. * libnetfs/nrele.c: Likewise. * libnetfs/release-peropen.c: Likewise. * libnetfs/shutdown.c: Likewise. * libpager/Makefile: Likewise. * libpager/chg-compl.c: Likewise. * libpager/clean.c: Likewise. * libpager/data-request.c: Likewise. * libpager/data-return.c: Likewise. * libpager/data-unlock.c: Likewise. * libpager/inhibit-term.c: Likewise. * libpager/lock-completed.c: Likewise. * libpager/lock-object.c: Likewise. * libpager/mark-error.c: Likewise. * libpager/no-senders.c: Likewise. * libpager/object-init.c: Likewise. * libpager/object-terminate.c: Likewise. * libpager/offer-page.c: Likewise. * libpager/pager-attr.c: Likewise. * libpager/pager-create.c: Likewise. * libpager/pager-shutdown.c: Likewise. * libpager/priv.h: Likewise. * libpager/seqnos.c: Likewise. * libpipe/Makefile: Likewise. * libpipe/pipe.c: Likewise. * libpipe/pipe.h: Likewise. * libports/Makefile: Likewise. * libports/begin-rpc.c: Likewise. * libports/bucket-iterate.c: Likewise. * libports/claim-right.c: Likewise. * libports/class-iterate.c: Likewise. * libports/complete-deallocate.c: Likewise. * libports/count-bucket.c: Likewise. * libports/count-class.c: Likewise. * libports/create-bucket.c: Likewise. * libports/create-internal.c: Likewise. * libports/destroy-right.c: Likewise. * libports/enable-bucket.c: Likewise. * libports/enable-class.c: Likewise. * libports/end-rpc.c: Likewise. * libports/get-right.c: Likewise. * libports/import-port.c: Likewise. * libports/inhibit-all-rpcs.c: Likewise. * libports/inhibit-bucket-rpcs.c: Likewise. * libports/inhibit-class-rpcs.c: Likewise. * libports/inhibit-port-rpcs.c: Likewise. * libports/init.c: Likewise. * libports/interrupt-notified-rpcs.c: Likewise. * libports/interrupt-on-notify.c: Likewise. * libports/interrupt-operation.c: Likewise. * libports/interrupt-rpcs.c: Likewise. * libports/interrupted.c: Likewise. * libports/lookup-port.c: Likewise. * libports/manage-multithread.c: Likewise. * libports/no-senders.c: Likewise. * libports/port-deref-weak.c: Likewise. * libports/port-deref.c: Likewise. * libports/port-ref-weak.c: Likewise. * libports/port-ref.c: Likewise. * libports/ports.h: Likewise. * libports/reallocate-from-external.c: Likewise. * libports/reallocate-port.c: Likewise. * libports/resume-all-rpcs.c: Likewise. * libports/resume-bucket-rpcs.c: Likewise. * libports/resume-class-rpcs.c: Likewise. * libports/resume-port-rpcs.c: Likewise. * libports/stubs.c: Likewise. * libports/transfer-right.c: Likewise. * libstore/Makefile: Likewise. * libstore/gunzip.c: Likewise. * libstore/part.c: Likewise. * libstore/unzipstore.c: Likewise. * libthreads/Makefile: Likewise. * libtreefs/dir-lookup.c: Likewise. * libtreefs/fsys-getroot.c: Likewise. * libtreefs/fsys-hooks.c: Likewise. * libtreefs/fsys.c: Likewise. * libtreefs/trans-help.c: Likewise. * libtreefs/trans-start.c: Likewise. * libtreefs/treefs.h: Likewise. * libtrivfs/cntl-create.c: Likewise. * libtrivfs/dyn-classes.c: Likewise. * libtrivfs/io-reauthenticate.c: Likewise. * libtrivfs/io-restrict-auth.c: Likewise. * libtrivfs/protid-clean.c: Likewise. * libtrivfs/protid-dup.c: Likewise. * libtrivfs/trivfs.h: Likewise. * mach-defpager/Makefile: Likewise. * mach-defpager/default_pager.c: Likewise. * mach-defpager/kalloc.c: Likewise. * mach-defpager/main.c: Likewise. * nfs/Makefile: Likewise. * nfs/cache.c: Likewise. * nfs/main.c: Likewise. * nfs/mount.c: Likewise. * nfs/name-cache.c: Likewise. * nfs/nfs.h: Likewise. * nfs/ops.c: Likewise. * nfs/rpc.c: Likewise. * nfsd/Makefile: Likewise. * nfsd/cache.c: Likewise. * nfsd/loop.c: Likewise. * nfsd/main.c: Likewise. * nfsd/nfsd.h: Likewise. * pfinet/Makefile: Likewise. * pfinet/ethernet.c: Likewise. * pfinet/glue-include/asm/spinlock.h: Likewise. * pfinet/glue-include/linux/interrupt.h: Likewise. * pfinet/glue-include/linux/sched.h: Likewise. * pfinet/glue-include/linux/timer.h: Likewise. * pfinet/glue-include/linux/wait.h: Likewise. * pfinet/iioctl-ops.c: Likewise. * pfinet/io-ops.c: Likewise. * pfinet/kmem_cache.c: Likewise. * pfinet/main.c: Likewise. * pfinet/options.c: Likewise. * pfinet/pfinet-ops.c: Likewise. * pfinet/pfinet.h: Likewise. * pfinet/sched.c: Likewise. * pfinet/socket-ops.c: Likewise. * pfinet/socket.c: Likewise. * pfinet/timer-emul.c: Likewise. * pfinet/tunnel.c: Likewise. * pflocal/Makefile: Likewise. * pflocal/connq.c: Likewise. * pflocal/io.c: Likewise. * pflocal/sock.c: Likewise. * pflocal/sock.h: Likewise. * pflocal/socket.c: Likewise. * pflocal/sserver.c: Likewise. * proc/Makefile: Likewise. * proc/info.c: Likewise. * proc/main.c: Likewise. * proc/mgt.c: Likewise. * proc/msg.c: Likewise. * proc/proc.h: Likewise. * proc/stubs.c: Likewise. * proc/wait.c: Likewise. * storeio/Makefile: Likewise. * storeio/dev.c: Likewise. * storeio/dev.h: Likewise. * storeio/open.c: Likewise. * storeio/open.h: Likewise. * storeio/pager.c: Likewise. * storeio/storeio.c: Likewise. * term/Makefile: Likewise. * term/devio.c: Likewise. * term/hurdio.c: Likewise. * term/main.c: Likewise. * term/munge.c: Likewise. * term/ptyio.c: Likewise. * term/term.h: Likewise. * term/users.c: Likewise. * tmpfs/Makefile: Likewise. * tmpfs/dir.c: Likewise. * tmpfs/node.c: Likewise. * tmpfs/tmpfs.c: Likewise. * tmpfs/tmpfs.h: Likewise. * trans/Makefile: Likewise. * trans/fakeroot.c: Likewise. * trans/fifo.c: Likewise. * trans/hello-mt.c: Likewise. * trans/new-fifo.c: Likewise. * trans/streamio.c: Likewise. * ufs/Makefile: Likewise. * ufs/alloc.c: Likewise. * ufs/dir.c: Likewise. * ufs/hyper.c: Likewise. * ufs/inode.c: Likewise. * ufs/main.c: Likewise. * ufs/pager.c: Likewise. * ufs/pokeloc.c: Likewise. * ufs/sizes.c: Likewise. * ufs/ufs.h: Likewise. * usermux/Makefile: Likewise. * usermux/mux.c: Likewise. * usermux/node.c: Likewise. * usermux/usermux.h: Likewise. * utils/Makefile: Likewise. * utils/fakeauth.c: Likewise. * utils/rpctrace.c: Likewise.
Diffstat (limited to 'trans')
-rw-r--r--trans/Makefile9
-rw-r--r--trans/fakeroot.c58
-rw-r--r--trans/fifo.c51
-rw-r--r--trans/hello-mt.c37
-rw-r--r--trans/new-fifo.c56
-rw-r--r--trans/streamio.c124
6 files changed, 168 insertions, 167 deletions
diff --git a/trans/Makefile b/trans/Makefile
index 4e6a22dd..ff5a6a65 100644
--- a/trans/Makefile
+++ b/trans/Makefile
@@ -28,7 +28,8 @@ OBJS = $(SRCS:.c=.o) fsysServer.o ifsockServer.o passwordServer.o \
crashServer.o crash_replyUser.o msgServer.o \
default_pagerServer.o default_pagerUser.o \
device_replyServer.o elfcore.o
-HURDLIBS = threads ports netfs trivfs iohelp fshelp pipe ihash shouldbeinlibc
+HURDLIBS = ports netfs trivfs iohelp fshelp pipe ihash shouldbeinlibc
+LDLIBS += -lpthread
password-LDLIBS = $(LIBCRYPT)
include ../Makeconf
@@ -42,13 +43,13 @@ password: passwordServer.o
streamio: device_replyServer.o
proxy-defpager: default_pagerServer.o default_pagerUser.o
-proxy-defpager crash password streamio: ../libthreads/libthreads.a ../libports/libports.a ../libtrivfs/libtrivfs.a ../libthreads/libthreads.a ../libfshelp/libfshelp.a
+proxy-defpager crash password streamio: ../libports/libports.a ../libtrivfs/libtrivfs.a ../libfshelp/libfshelp.a
fifo new-fifo: ../libpipe/libpipe.a
fwd: ../libfshelp/libfshelp.a ../libports/libports.a
-hello-mt magic null ifsock fifo new-fifo firmlink: ../libtrivfs/libtrivfs.a ../libfshelp/libfshelp.a ../libthreads/libthreads.a ../libports/libports.a ../libihash/libihash.a
+hello-mt magic null ifsock fifo new-fifo firmlink: ../libtrivfs/libtrivfs.a ../libfshelp/libfshelp.a ../libports/libports.a ../libihash/libihash.a
magic: ../libiohelp/libiohelp.a
hello: ../libtrivfs/libtrivfs.a ../libfshelp/libfshelp.a ../libports/libports.a ../libihash/libihash.a
-fakeroot: ../libnetfs/libnetfs.a ../libfshelp/libfshelp.a ../libiohelp/libiohelp.a ../libthreads/libthreads.a ../libports/libports.a ../libihash/libihash.a
+fakeroot: ../libnetfs/libnetfs.a ../libfshelp/libfshelp.a ../libiohelp/libiohelp.a ../libports/libports.a ../libihash/libihash.a
$(targets): ../libshouldbeinlibc/libshouldbeinlibc.a
$(targets): %: %.o
diff --git a/trans/fakeroot.c b/trans/fakeroot.c
index c1102343..f842fc56 100644
--- a/trans/fakeroot.c
+++ b/trans/fakeroot.c
@@ -25,7 +25,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
-#include <cthreads.h>
+#include <pthread.h>
#include <hurd/ihash.h>
#include <hurd/paths.h>
@@ -55,7 +55,7 @@ struct netnode
#define FAKE_MODE (1 << 3)
#define FAKE_REFERENCE (1 << 4) /* got node_norefs with st_nlink > 0 */
-struct mutex idport_ihash_lock = MUTEX_INITIALIZER;
+pthread_mutex_t idport_ihash_lock = PTHREAD_MUTEX_INITIALIZER;
struct hurd_ihash idport_ihash
= HURD_IHASH_INITIALIZER (offsetof (struct netnode, idport_locp));
@@ -73,7 +73,7 @@ new_node (file_t file, mach_port_t idport, int locked, int openmodes,
if (idport != MACH_PORT_NULL)
mach_port_deallocate (mach_task_self (), idport);
if (locked)
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
return ENOMEM;
}
nn->file = file;
@@ -97,17 +97,17 @@ new_node (file_t file, mach_port_t idport, int locked, int openmodes,
if (*np == 0)
{
if (locked)
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
err = ENOMEM;
}
else
{
if (!locked)
- mutex_lock (&idport_ihash_lock);
+ pthread_mutex_lock (&idport_ihash_lock);
err = hurd_ihash_add (&idport_ihash, nn->idport, *np);
if (!err)
netfs_nref (*np); /* Return a reference to the caller. */
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
}
if (err)
{
@@ -138,21 +138,21 @@ netfs_node_norefs (struct node *np)
np->nn->faked |= FAKE_REFERENCE;
++np->references;
}
- mutex_unlock (&np->lock);
+ pthread_mutex_unlock (&np->lock);
return;
}
- spin_unlock (&netfs_node_refcnt_lock); /* Avoid deadlock. */
- mutex_lock (&idport_ihash_lock);
- spin_lock (&netfs_node_refcnt_lock);
+ pthread_spin_unlock (&netfs_node_refcnt_lock); /* Avoid deadlock. */
+ pthread_mutex_lock (&idport_ihash_lock);
+ pthread_spin_lock (&netfs_node_refcnt_lock);
/* Previous holder of this lock might have just got a reference. */
if (np->references > 0)
{
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
return;
}
hurd_ihash_locp_remove (&idport_ihash, np->nn->idport_locp);
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
mach_port_deallocate (mach_task_self (), np->nn->file);
mach_port_deallocate (mach_task_self (), np->nn->idport);
free (np->nn);
@@ -300,18 +300,18 @@ netfs_S_dir_lookup (struct protid *diruser,
}
else
{
- mutex_lock (&idport_ihash_lock);
+ pthread_mutex_lock (&idport_ihash_lock);
np = hurd_ihash_find (&idport_ihash, idport);
if (np != 0)
{
/* We already know about this node. */
mach_port_deallocate (mach_task_self (), idport);
- mutex_lock (&np->lock);
+ pthread_mutex_lock (&np->lock);
err = check_openmodes (np->nn, (flags & (O_RDWR|O_EXEC)), file);
if (!err)
netfs_nref (np);
- mutex_unlock (&np->lock);
- mutex_unlock (&idport_ihash_lock);
+ pthread_mutex_unlock (&np->lock);
+ pthread_mutex_unlock (&idport_ihash_lock);
}
else
err = new_node (file, idport, 1, flags, &np);
@@ -597,7 +597,7 @@ netfs_attempt_mkfile (struct iouser *user, struct node *dir,
file_t newfile;
error_t err = dir_mkfile (dir->nn->file, O_RDWR|O_EXEC,
real_from_fake_mode (mode), &newfile);
- mutex_unlock (&dir->lock);
+ pthread_mutex_unlock (&dir->lock);
if (err == 0)
err = new_node (newfile, MACH_PORT_NULL, 0, O_RDWR|O_EXEC, np);
return err;
@@ -711,13 +711,13 @@ netfs_S_file_exec (struct protid *user,
if (!user)
return EOPNOTSUPP;
- mutex_lock (&user->po->np->lock);
+ pthread_mutex_lock (&user->po->np->lock);
err = check_openmodes (user->po->np->nn, O_EXEC, MACH_PORT_NULL);
file = user->po->np->nn->file;
if (!err)
err = mach_port_mod_refs (mach_task_self (),
file, MACH_PORT_RIGHT_SEND, 1);
- mutex_unlock (&user->po->np->lock);
+ pthread_mutex_unlock (&user->po->np->lock);
if (!err)
{
@@ -754,9 +754,9 @@ netfs_S_io_map (struct protid *user,
return EOPNOTSUPP;
*rdobjtype = *wrobjtype = MACH_MSG_TYPE_MOVE_SEND;
- mutex_lock (&user->po->np->lock);
+ pthread_mutex_lock (&user->po->np->lock);
err = io_map (user->po->np->nn->file, rdobj, wrobj);
- mutex_unlock (&user->po->np->lock);
+ pthread_mutex_unlock (&user->po->np->lock);
return err;
}
@@ -771,9 +771,9 @@ netfs_S_io_map_cntl (struct protid *user,
return EOPNOTSUPP;
*objtype = MACH_MSG_TYPE_MOVE_SEND;
- mutex_lock (&user->po->np->lock);
+ pthread_mutex_lock (&user->po->np->lock);
err = io_map_cntl (user->po->np->nn->file, obj);
- mutex_unlock (&user->po->np->lock);
+ pthread_mutex_unlock (&user->po->np->lock);
return err;
}
@@ -786,9 +786,9 @@ netfs_S_##name (struct protid *user) \
if (!user) \
return EOPNOTSUPP; \
\
- mutex_lock (&user->po->np->lock); \
+ pthread_mutex_lock (&user->po->np->lock); \
err = name (user->po->np->nn->file); \
- mutex_unlock (&user->po->np->lock); \
+ pthread_mutex_unlock (&user->po->np->lock); \
return err; \
}
@@ -808,9 +808,9 @@ netfs_S_io_prenotify (struct protid *user,
if (!user)
return EOPNOTSUPP;
- mutex_lock (&user->po->np->lock);
+ pthread_mutex_lock (&user->po->np->lock);
err = io_prenotify (user->po->np->nn->file, start, stop);
- mutex_unlock (&user->po->np->lock);
+ pthread_mutex_unlock (&user->po->np->lock);
return err;
}
@@ -823,9 +823,9 @@ netfs_S_io_postnotify (struct protid *user,
if (!user)
return EOPNOTSUPP;
- mutex_lock (&user->po->np->lock);
+ pthread_mutex_lock (&user->po->np->lock);
err = io_postnotify (user->po->np->nn->file, start, stop);
- mutex_unlock (&user->po->np->lock);
+ pthread_mutex_unlock (&user->po->np->lock);
return err;
}
diff --git a/trans/fifo.c b/trans/fifo.c
index 39043acd..4fe999dd 100644
--- a/trans/fifo.c
+++ b/trans/fifo.c
@@ -26,7 +26,7 @@
#include <fcntl.h>
#include <argp.h>
-#include <cthreads.h>
+#include <pthread.h>
#include <hurd.h>
#include <hurd/ports.h>
#include <hurd/trivfs.h>
@@ -46,9 +46,9 @@ struct pipe_class *fifo_pipe_class;
struct pipe *active_fifo = NULL;
/* Lock this when changing ACTIVE_FIFO. */
-struct mutex active_fifo_lock;
+pthread_mutex_t active_fifo_lock;
/* Signal this when ACTIVE_FIFO may have changed. */
-struct condition active_fifo_changed;
+pthread_cond_t active_fifo_changed;
const char *argp_program_version = STANDARD_HURD_VERSION (fifo);
@@ -121,7 +121,7 @@ open_hook (struct trivfs_peropen *po)
if (flags & (O_READ | O_WRITE))
{
- mutex_lock (&active_fifo_lock);
+ pthread_mutex_lock (&active_fifo_lock);
/* Wait until the active fifo has changed so that CONDITION is true. */
#define WAIT(condition, noblock_err) \
@@ -132,7 +132,8 @@ open_hook (struct trivfs_peropen *po)
err = noblock_err; \
break; \
} \
- else if (hurd_condition_wait (&active_fifo_changed, &active_fifo_lock)) \
+ else if (pthread_hurd_cond_wait_np (&active_fifo_changed, \
+ &active_fifo_lock)) \
err = EINTR; \
}
@@ -160,7 +161,7 @@ open_hook (struct trivfs_peropen *po)
if (!err)
{
pipe_add_reader (active_fifo);
- condition_broadcast (&active_fifo_changed);
+ pthread_cond_broadcast (&active_fifo_changed);
/* We'll unlock ACTIVE_FIFO_LOCK below; the writer code won't
make us block because we've ensured that there's a reader
for it. */
@@ -174,7 +175,7 @@ open_hook (struct trivfs_peropen *po)
{
pipe_remove_reader (active_fifo);
active_fifo = NULL;
- condition_broadcast (&active_fifo_changed);
+ pthread_cond_broadcast (&active_fifo_changed);
}
}
}
@@ -199,13 +200,13 @@ open_hook (struct trivfs_peropen *po)
if (!err)
{
pipe_add_writer (active_fifo);
- condition_broadcast (&active_fifo_changed);
+ pthread_cond_broadcast (&active_fifo_changed);
}
}
po->hook = active_fifo;
- mutex_unlock (&active_fifo_lock);
+ pthread_mutex_unlock (&active_fifo_lock);
}
return err;
@@ -221,7 +222,7 @@ close_hook (struct trivfs_peropen *po)
if (!pipe)
return;
- mutex_lock (&active_fifo_lock);
+ pthread_mutex_lock (&active_fifo_lock);
was_active = (active_fifo == pipe);
if (was_active)
@@ -231,7 +232,7 @@ close_hook (struct trivfs_peropen *po)
|| ((flags & O_WRITE) && pipe->writers == 1);
else
/* Let others have their fun. */
- mutex_unlock (&active_fifo_lock);
+ pthread_mutex_unlock (&active_fifo_lock);
if (flags & O_READ)
pipe_remove_reader (pipe);
@@ -243,8 +244,8 @@ close_hook (struct trivfs_peropen *po)
{
if (detach)
active_fifo = NULL;
- condition_broadcast (&active_fifo_changed);
- mutex_unlock (&active_fifo_lock);
+ pthread_cond_broadcast (&active_fifo_changed);
+ pthread_mutex_unlock (&active_fifo_lock);
}
}
@@ -272,10 +273,10 @@ trivfs_modify_stat (struct trivfs_protid *cred, struct stat *st)
if (pipe)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
st->st_size = pipe_readable (pipe, 1);
st->st_blocks = st->st_size >> 9;
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
st->st_size = st->st_blocks = 0;
@@ -347,10 +348,10 @@ trivfs_S_io_read (struct trivfs_protid *cred,
else
{
struct pipe *pipe = cred->po->hook;
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
err = pipe_read (pipe, cred->po->openmodes & O_NONBLOCK, NULL,
data, data_len, amount);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
return err;
@@ -375,9 +376,9 @@ trivfs_S_io_readable (struct trivfs_protid *cred,
else
{
struct pipe *pipe = cred->po->hook;
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
*amount = pipe_readable (pipe, 1);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
err = 0;
}
@@ -422,10 +423,10 @@ trivfs_S_io_select (struct trivfs_protid *cred,
{
if (cred->po->openmodes & O_READ)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
if (pipe_wait_readable (pipe, 1, 1) != EWOULDBLOCK)
ready |= SELECT_READ; /* Data immediately readable (or error). */
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
ready |= SELECT_READ; /* Error immediately available... */
@@ -435,10 +436,10 @@ trivfs_S_io_select (struct trivfs_protid *cred,
{
if (cred->po->openmodes & O_WRITE)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
if (pipe_wait_writable (pipe, 1) != EWOULDBLOCK)
ready |= SELECT_WRITE; /* Data immediately writable (or error). */
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
ready |= SELECT_WRITE; /* Error immediately available... */
@@ -484,10 +485,10 @@ trivfs_S_io_write (struct trivfs_protid *cred,
err = EBADF;
else
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
err = pipe_write (pipe, flags & O_NONBLOCK, NULL,
data, data_len, amount);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
}
diff --git a/trans/hello-mt.c b/trans/hello-mt.c
index b933cfde..632d3730 100644
--- a/trans/hello-mt.c
+++ b/trans/hello-mt.c
@@ -26,8 +26,7 @@
#include <string.h>
#include <fcntl.h>
#include <sys/mman.h>
-#include <cthreads.h>
-#include <rwlock.h>
+#include <pthread.h>
#include <version.h>
@@ -39,7 +38,7 @@ static char *contents = (char *) hello;
static size_t contents_len = sizeof hello - 1;
/* This lock protects access to contents and contents_len. */
-static struct rwlock contents_lock;
+static pthread_rwlock_t contents_lock;
/* Trivfs hooks. */
int trivfs_fstype = FSTYPE_MISC;
@@ -72,7 +71,7 @@ int trivfs_support_exec = 0;
/* A hook for us to keep track of the file descriptor state. */
struct open
{
- struct mutex lock;
+ pthread_mutex_t lock;
off_t offs;
};
@@ -101,7 +100,7 @@ open_hook (struct trivfs_peropen *peropen)
/* Initialize the offset. */
op->offs = 0;
- mutex_init (&op->lock);
+ pthread_mutex_init (&op->lock, NULL);
peropen->hook = op;
return 0;
}
@@ -112,7 +111,7 @@ close_hook (struct trivfs_peropen *peropen)
{
struct open *op = peropen->hook;
- mutex_clear (&op->lock);
+ pthread_mutex_init (&op->lock, NULL);
free (op);
}
@@ -136,13 +135,13 @@ trivfs_S_io_read (struct trivfs_protid *cred,
op = cred->po->hook;
- mutex_lock (&op->lock);
+ pthread_mutex_lock (&op->lock);
/* Get the offset. */
if (offs == -1)
offs = op->offs;
- rwlock_reader_lock (&contents_lock);
+ pthread_rwlock_rdlock (&contents_lock);
/* Prune the amount they want to read. */
if (offs > contents_len)
@@ -157,8 +156,8 @@ trivfs_S_io_read (struct trivfs_protid *cred,
*data = mmap (0, amount, PROT_READ|PROT_WRITE, MAP_ANON, 0, 0);
if (*data == MAP_FAILED)
{
- mutex_unlock (&op->lock);
- rwlock_reader_unlock (&contents_lock);
+ pthread_mutex_unlock (&op->lock);
+ pthread_rwlock_unlock (&contents_lock);
return ENOMEM;
}
@@ -169,9 +168,9 @@ trivfs_S_io_read (struct trivfs_protid *cred,
op->offs += amount;
}
- mutex_unlock (&op->lock);
+ pthread_mutex_unlock (&op->lock);
- rwlock_reader_unlock (&contents_lock);
+ pthread_rwlock_unlock (&contents_lock);
*data_len = amount;
return 0;
@@ -191,7 +190,7 @@ trivfs_S_io_seek (struct trivfs_protid *cred,
op = cred->po->hook;
- mutex_lock (&op->lock);
+ pthread_mutex_lock (&op->lock);
switch (whence)
{
@@ -211,7 +210,7 @@ trivfs_S_io_seek (struct trivfs_protid *cred,
err = EINVAL;
}
- mutex_unlock (&op->lock);
+ pthread_mutex_unlock (&op->lock);
return err;
}
@@ -252,12 +251,12 @@ parse_opt (int opt, char *arg, struct argp_state *state)
char *new = strdup (arg);
if (new == NULL)
return ENOMEM;
- rwlock_writer_lock (&contents_lock);
+ pthread_rwlock_wrlock (&contents_lock);
if (contents != hello)
free (contents);
contents = new;
contents_len = strlen (new);
- rwlock_writer_unlock (&contents_lock);
+ pthread_rwlock_unlock (&contents_lock);
break;
}
}
@@ -273,9 +272,9 @@ trivfs_append_args (struct trivfs_control *fsys,
error_t err;
char *opt;
- rwlock_reader_lock (&contents_lock);
+ pthread_rwlock_rdlock (&contents_lock);
err = asprintf (&opt, "--contents=%s", contents) < 0 ? ENOMEM : 0;
- rwlock_reader_unlock (&contents_lock);
+ pthread_rwlock_unlock (&contents_lock);
if (!err)
{
@@ -305,7 +304,7 @@ main (int argc, char **argv)
/* Initialize the lock that will protect CONTENTS and CONTENTS_LEN.
We must do this before argp_parse, because parse_opt (above) will
use the lock. */
- rwlock_init (&contents_lock);
+ pthread_rwlock_init (&contents_lock, NULL);
/* We use the same argp for options available at startup
as for options we'll accept in an fsys_set_options RPC. */
diff --git a/trans/new-fifo.c b/trans/new-fifo.c
index 5306deed..cc16b988 100644
--- a/trans/new-fifo.c
+++ b/trans/new-fifo.c
@@ -26,7 +26,7 @@
#include <fcntl.h>
#include <assert.h>
-#include <cthreads.h>
+#include <pthread.h>
#include <hurd.h>
#include <argz.h>
#include <hurd/fshelp.h>
@@ -85,9 +85,9 @@ struct fifo_trans
/* The current fifo that new opens will see, or NULL if there is none. */
struct pipe *active_fifo;
/* Lock this when changing ACTIVE_FIFO. */
- struct mutex active_fifo_lock;
+ pthread_mutex_t active_fifo_lock;
/* Signal this when ACTIVE_FIFO may have changed. */
- struct condition active_fifo_changed;
+ pthread_cond_t active_fifo_changed;
};
/* Return a new FIFO_TRANS in TRANS, initializing it from FROM if it's
@@ -98,8 +98,8 @@ fifo_trans_create (struct fifo_trans *from, struct fifo_trans **trans)
struct fifo_trans *new = malloc (sizeof (struct fifo_trans));
new->server = 0;
- mutex_init (&new->active_fifo_lock);
- condition_init (&new->active_fifo_changed);
+ pthread_mutex_init (&new->active_fifo_lock, NULL);
+ pthread_cond_init (&new->active_fifo_changed, NULL);
new->parent = from;
@@ -245,7 +245,7 @@ fifo_trans_open (struct fifo_trans *trans, int flags, void **hook)
if (flags & (O_READ | O_WRITE))
{
- mutex_lock (&trans->active_fifo_lock);
+ pthread_mutex_lock (&trans->active_fifo_lock);
/* Wait until the active fifo has changed so that CONDITION is true. */
#define WAIT(condition, noblock_err) \
@@ -256,8 +256,8 @@ fifo_trans_open (struct fifo_trans *trans, int flags, void **hook)
err = noblock_err; \
break; \
} \
- else if (hurd_condition_wait (&trans->active_fifo_changed, \
- &trans->active_fifo_lock)) \
+ else if (pthread_hurd_cond_wait_np (&trans->active_fifo_changed, \
+ &trans->active_fifo_lock)) \
err = EINTR; \
}
@@ -281,7 +281,7 @@ fifo_trans_open (struct fifo_trans *trans, int flags, void **hook)
if (!err)
{
pipe_add_reader (trans->active_fifo);
- condition_broadcast (&trans->active_fifo_changed);
+ pthread_cond_broadcast (&trans->active_fifo_changed);
/* We'll unlock ACTIVE_FIFO_LOCK below; the writer code won't
make us block because we've ensured that there's a reader
for it. */
@@ -295,7 +295,7 @@ fifo_trans_open (struct fifo_trans *trans, int flags, void **hook)
{
pipe_remove_reader (trans->active_fifo);
trans->active_fifo = NULL;
- condition_broadcast (&trans->active_fifo_changed);
+ pthread_cond_broadcast (&trans->active_fifo_changed);
}
}
else
@@ -323,14 +323,14 @@ fifo_trans_open (struct fifo_trans *trans, int flags, void **hook)
if (!err)
{
pipe_add_writer (trans->active_fifo);
- condition_broadcast (&trans->active_fifo_changed);
+ pthread_cond_broadcast (&trans->active_fifo_changed);
}
}
*hook = trans->active_fifo;
}
- mutex_unlock (&trans->active_fifo_lock);
+ pthread_mutex_unlock (&trans->active_fifo_lock);
return err;
}
@@ -345,7 +345,7 @@ fifo_trans_close (struct fifo_trans *trans, struct trivfs_peropen *po)
if (!pipe)
return;
- mutex_lock (&trans->active_fifo_lock);
+ pthread_mutex_lock (&trans->active_fifo_lock);
was_active = (trans->active_fifo == pipe);
if (was_active)
@@ -353,7 +353,7 @@ fifo_trans_close (struct fifo_trans *trans, struct trivfs_peropen *po)
going_away = ((flags & O_READ) && pipe->readers == 1);
else
/* Let others have their fun. */
- mutex_unlock (&trans->active_fifo_lock);
+ pthread_mutex_unlock (&trans->active_fifo_lock);
if (flags & O_READ)
pipe_remove_reader (pipe);
@@ -365,8 +365,8 @@ fifo_trans_close (struct fifo_trans *trans, struct trivfs_peropen *po)
{
if (going_away)
trans->active_fifo = NULL;
- condition_broadcast (&trans->active_fifo_changed);
- mutex_unlock (&trans->active_fifo_lock);
+ pthread_cond_broadcast (&trans->active_fifo_changed);
+ pthread_mutex_unlock (&trans->active_fifo_lock);
}
}
@@ -423,10 +423,10 @@ trivfs_modify_stat (struct trivfs_protid *cred, struct stat *st)
if (pipe)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
st->st_size = pipe_readable (pipe, 1);
st->st_blocks = st->st_size >> 9;
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
st->st_size = st->st_blocks = 0;
@@ -533,10 +533,10 @@ trivfs_S_io_read (struct trivfs_protid *cred,
{
struct pipe *pipe = cred->po->hook;
assert (pipe);
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
err = pipe_read (pipe, cred->po->openmodes & O_NONBLOCK, NULL,
data, data_len, amount);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
return err;
@@ -562,9 +562,9 @@ trivfs_S_io_readable (struct trivfs_protid *cred,
{
struct pipe *pipe = cred->po->hook;
assert (pipe);
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
*amount = pipe_readable (pipe, 1);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
err = 0;
}
@@ -609,10 +609,10 @@ trivfs_S_io_select (struct trivfs_protid *cred,
{
if (cred->po->openmodes & O_READ)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
if (pipe_wait_readable (pipe, 1, 1) != EWOULDBLOCK)
ready |= SELECT_READ; /* Data immediately readable (or error). */
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
ready |= SELECT_READ; /* Error immediately available... */
@@ -622,10 +622,10 @@ trivfs_S_io_select (struct trivfs_protid *cred,
{
if (cred->po->openmodes & O_WRITE)
{
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
if (pipe_wait_writable (pipe, 1) != EWOULDBLOCK)
ready |= SELECT_WRITE; /* Data immediately writable (or error). */
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
else
ready |= SELECT_WRITE; /* Error immediately available... */
@@ -667,10 +667,10 @@ trivfs_S_io_write (struct trivfs_protid *cred,
else
{
struct pipe *pipe = cred->po->hook;
- mutex_lock (&pipe->lock);
+ pthread_mutex_lock (&pipe->lock);
err = pipe_write (pipe, cred->po->openmodes & O_NONBLOCK, NULL,
data, data_len, amount);
- mutex_unlock (&pipe->lock);
+ pthread_mutex_unlock (&pipe->lock);
}
return err;
diff --git a/trans/streamio.c b/trans/streamio.c
index 9ced28b3..60b5d59c 100644
--- a/trans/streamio.c
+++ b/trans/streamio.c
@@ -35,13 +35,13 @@
#include <version.h>
/* The global lock */
-struct mutex global_lock;
+pthread_mutex_t global_lock;
/* Wakeup when device_open is finished */
-struct condition open_alert;
+pthread_cond_t open_alert;
/* Wakeup for select */
-struct condition select_alert;
+pthread_cond_t select_alert;
/* Bucket for all out ports */
struct port_bucket *streamdev_bucket;
@@ -60,7 +60,7 @@ struct buffer
/* The buffer array size. */
size_t size;
/* Wakeup when the buffer is not empty or not full. */
- struct condition *wait;
+ pthread_cond_t *wait;
/* The buffer. */
char buf[0];
};
@@ -73,9 +73,9 @@ create_buffer (size_t size)
assert (new);
new->head = new->tail = new->buf;
new->size = size;
- new->wait = malloc (sizeof (struct condition));
+ new->wait = malloc (sizeof (pthread_cond_t));
assert (new->wait);
- condition_init (new->wait);
+ pthread_cond_init (new->wait, NULL);
return new;
}
@@ -107,8 +107,8 @@ clear_buffer (struct buffer *b)
if (b == 0)
return;
b->head = b->tail = b->buf;
- condition_broadcast (b->wait);
- condition_broadcast (&select_alert);
+ pthread_cond_broadcast (b->wait);
+ pthread_cond_broadcast (&select_alert);
}
/* Read up to LEN bytes from B to DATA, returning the amount actually read. */
@@ -132,8 +132,8 @@ buffer_read (struct buffer *b, void *data, size_t len)
b->tail = b->buf + size;
}
- condition_broadcast (b->wait);
- condition_broadcast (&select_alert);
+ pthread_cond_broadcast (b->wait);
+ pthread_cond_broadcast (&select_alert);
return len;
}
@@ -149,8 +149,8 @@ buffer_write (struct buffer *b, void *data, size_t len)
memcpy (b->tail, data, len);
b->tail += len;
- condition_broadcast (b->wait);
- condition_broadcast (&select_alert);
+ pthread_cond_broadcast (b->wait);
+ pthread_cond_broadcast (&select_alert);
return len;
}
@@ -297,10 +297,10 @@ main (int argc, char *argv[])
if (err)
error (3, err, "trivfs_startup");
- mutex_init (&global_lock);
+ pthread_mutex_init (&global_lock, NULL);
- condition_init (&open_alert);
- condition_init (&select_alert);
+ pthread_cond_init (&open_alert, NULL);
+ pthread_cond_init (&select_alert, NULL);
if (trivfs_allow_open & O_READ)
input_buffer = create_buffer (256);
@@ -342,7 +342,7 @@ open_hook (struct trivfs_control *cntl, struct iouser *user, int flags)
if (flags & O_ASYNC)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
mode = 0;
if (flags & O_READ)
@@ -355,27 +355,27 @@ open_hook (struct trivfs_control *cntl, struct iouser *user, int flags)
err = dev_open (stream_name, mode);
if (err)
{
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
if (!(flags & O_NONBLOCK))
{
- if (hurd_condition_wait (&open_alert, &global_lock))
+ if (pthread_hurd_cond_wait_np (&open_alert, &global_lock))
{
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return EINTR;
}
if (!dev_already_opened ())
{
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return ENODEV;
}
}
}
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -386,9 +386,9 @@ error_t (*trivfs_check_open_hook) (struct trivfs_control *,
static error_t
po_create_hook (struct trivfs_peropen *po)
{
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
nperopens++;
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -398,7 +398,7 @@ error_t (*trivfs_peropen_create_hook) (struct trivfs_peropen *) =
static void
po_destroy_hook (struct trivfs_peropen *po)
{
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
nperopens--;
if (!nperopens)
{
@@ -408,7 +408,7 @@ po_destroy_hook (struct trivfs_peropen *po)
dev_close ();
}
}
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
}
void (*trivfs_peropen_destroy_hook) (struct trivfs_peropen *)
@@ -437,7 +437,7 @@ trivfs_goaway (struct trivfs_control *fsys, int flags)
int nosync = (flags & FSYS_GOAWAY_NOSYNC);
struct port_class *root_port_class = fsys->protid_class;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
if (!dev_already_opened ())
exit (0);
@@ -445,7 +445,7 @@ trivfs_goaway (struct trivfs_control *fsys, int flags)
err = ports_inhibit_class_rpcs (root_port_class);
if (err == EINTR || (err && !force))
{
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -462,7 +462,7 @@ trivfs_goaway (struct trivfs_control *fsys, int flags)
busy:
ports_enable_class (root_port_class);
ports_resume_class_rpcs (root_port_class);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return EBUSY;
}
@@ -482,9 +482,9 @@ trivfs_S_io_read (struct trivfs_protid *cred,
if (!(cred->po->openmodes & O_READ))
return EBADF;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
err = dev_read (amount, (void **)data, data_len, cred->po->openmodes & O_NONBLOCK);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -501,9 +501,9 @@ trivfs_S_io_readable (struct trivfs_protid *cred,
if (!(cred->po->openmodes & O_READ))
return EBADF;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
err = dev_readable (amount);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -521,9 +521,9 @@ trivfs_S_io_write (struct trivfs_protid *cred,
if (!(cred->po->openmodes & O_WRITE))
return EBADF;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
err = dev_write ((void *)data, data_len, amount, cred->po->openmodes & O_NONBLOCK);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -560,7 +560,7 @@ trivfs_S_io_select (struct trivfs_protid *cred,
while (1)
{
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
if ((*type & SELECT_READ) && buffer_readable (input_buffer))
available |= SELECT_READ;
if (output_buffer)
@@ -572,21 +572,21 @@ trivfs_S_io_select (struct trivfs_protid *cred,
if (available)
{
*type = available;
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
if (cred->po->openmodes & O_NONBLOCK)
{
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return EWOULDBLOCK;
}
ports_interrupt_self_on_port_death (cred, reply);
- if (hurd_condition_wait (&select_alert, &global_lock))
+ if (pthread_hurd_cond_wait_np (&select_alert, &global_lock))
{
*type = 0;
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return EINTR;
}
}
@@ -665,9 +665,9 @@ trivfs_S_file_sync (struct trivfs_protid *cred,
if (!cred)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
err = dev_sync (wait);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -681,9 +681,9 @@ trivfs_S_file_syncfs (struct trivfs_protid *cred,
if (!cred)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
err = dev_sync (wait);
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return err;
}
@@ -804,15 +804,15 @@ device_open_reply (mach_port_t reply, int returncode, mach_port_t device)
if (reply != phys_reply)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
open_pending = 0;
- condition_broadcast (&open_alert);
+ pthread_cond_broadcast (&open_alert);
if (returncode != 0)
{
dev_close ();
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -840,7 +840,7 @@ device_open_reply (mach_port_t reply, int returncode, mach_port_t device)
else
{
dev_close ();
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -848,7 +848,7 @@ device_open_reply (mach_port_t reply, int returncode, mach_port_t device)
if (dev_blksize != 1)
amount = amount / dev_blksize * dev_blksize;
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -948,7 +948,7 @@ dev_read (size_t amount, void **buf, size_t *len, int nowait)
if (nowait)
return EWOULDBLOCK;
- if (hurd_condition_wait (input_buffer->wait, &global_lock))
+ if (pthread_hurd_cond_wait_np (input_buffer->wait, &global_lock))
return EINTR;
}
@@ -971,7 +971,7 @@ device_read_reply_inband (mach_port_t reply, error_t errorcode,
if (reply != phys_reply)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
input_pending = 0;
err = errorcode;
@@ -981,7 +981,7 @@ device_read_reply_inband (mach_port_t reply, error_t errorcode,
{
eof = 1;
dev_close ();
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -990,22 +990,22 @@ device_read_reply_inband (mach_port_t reply, error_t errorcode,
size_t nwritten;
while (!buffer_writable (input_buffer))
- condition_wait (input_buffer->wait, &global_lock);
+ pthread_cond_wait (input_buffer->wait, &global_lock);
nwritten = buffer_write (input_buffer, data, datalen);
data += nwritten;
datalen -= nwritten;
- condition_broadcast (input_buffer->wait);
- condition_broadcast (&select_alert);
+ pthread_cond_broadcast (input_buffer->wait);
+ pthread_cond_broadcast (&select_alert);
}
}
else
{
dev_close ();
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -1074,7 +1074,7 @@ dev_write (void *buf, size_t len, size_t *amount, int nowait)
if (nowait)
return EWOULDBLOCK;
- if (hurd_condition_wait (output_buffer->wait, &global_lock))
+ if (pthread_hurd_cond_wait_np (output_buffer->wait, &global_lock))
return EINTR;
}
@@ -1090,7 +1090,7 @@ device_write_reply_inband (mach_port_t reply, error_t returncode, int amount)
if (reply != phys_reply_writes)
return EOPNOTSUPP;
- mutex_lock (&global_lock);
+ pthread_mutex_lock (&global_lock);
output_pending = 0;
@@ -1099,8 +1099,8 @@ device_write_reply_inband (mach_port_t reply, error_t returncode, int amount)
if (amount >= npending_output)
{
npending_output = 0;
- condition_broadcast (output_buffer->wait);
- condition_broadcast (&select_alert);
+ pthread_cond_broadcast (output_buffer->wait);
+ pthread_cond_broadcast (&select_alert);
}
else
{
@@ -1111,7 +1111,7 @@ device_write_reply_inband (mach_port_t reply, error_t returncode, int amount)
else
dev_close ();
- mutex_unlock (&global_lock);
+ pthread_mutex_unlock (&global_lock);
return 0;
}
@@ -1136,7 +1136,7 @@ dev_sync (int wait)
if (!wait)
return 0;
- if (hurd_condition_wait (output_buffer->wait, &global_lock))
+ if (pthread_hurd_cond_wait_np (output_buffer->wait, &global_lock))
return EINTR;
}