aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Reduce starvation among libports threadsRichard Braun2012-09-231-0/+56
| | | | | | | | | | * libports/manage-multithread.c: Include <mach/thread_info.h> and <mach/thread_switch.h> (THREAD_PRI): New macro. (adjust_priority): New function. (ports_manage_port_operations_multithread): Set higher priority to privileged translators's threads. Reduce priority of newly-created threads, to give originators a chance to finish what they were doing.
* Fix pager deadlockSamuel Thibault2012-09-231-0/+2
| | | | | | | http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00127.html * libpager/lock-object.c (_pager_lock_object): Release interlock before calling memory_object_lock_request, to let the callbacks take it.
* Check that runsystem script exists before trying it.Samuel Thibault2012-09-222-4/+26
| | | | | | | * init/init.c (launch_something): Check with file_name_lookup that runsystem script exists before calling start_child. * daemons/console-run.c (main): Check with file_name_lookup that runsystem script exists before opening a console for it.
* Set diskfs stores as readonly on shutdown before enabling RPCs again.Samuel Thibault2012-09-221-0/+7
| | | | | * libdiskfs/init-startup.c (diskfs_S_startup_dosync): Set diskfs as read-only on shutdown.
* Fix spurious destroy during RPC to self with rendez-vousSamuel Thibault2012-09-222-2/+2
| | | | | | | | | | | | In that case we have two receive right references, which we should consume one per one, instead of destroying them all at once (and thus fail on second destroy) http://lists.gnu.org/archive/html/bug-hurd/2011-03/msg00045.html * libfshelp/fetch-root.c (fshelp_fetch_root): Unreference rendez-vous port receive right instead of destroying the port. * libshouldbeinlibc/exec-reauth.c (exec_reauth): Likewise.
* Install .msgids files to datadir.Alfred M. Szmidt2012-09-221-2/+7
| | | | | | | * Makefile (MSGIDS): New variable. (all, install-msgids, $(datadir)/msgids): New targets. (install): Specify install-header and install-msgids as prerequisites.
* Avoid waiting for disk I/O completionSamuel Thibault2012-09-229-12/+13
| | | | | | | | | | | | | | | | This improves performance quite a bit, and is not less safe. * ext2fs/dir.c (diskfs_direnter_hard, diskfs_dirremove_hard, diskfs_dirrewrite_hard): Pass diskfs_synchronous instead of 1 as wait parameter to diskfs_file_update. * ext2fs/truncate.c (diskfs_truncate): Likewise. * libdiskfs/dir-init.c (diskfs_init_dir): Likewise. * libdiskfs/dir-link.c (diskfs_S_dir_link): Likewise. * libdiskfs/dir-rename.c (diskfs_S_dir_rename): Likewise. * libdiskfs/dir-renamed.c (diskfs_rename_dir): Likewise. * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Likewise. * libdiskfs/node-create.c (diskfs_create_node): Likewise. * libdiskfs/node-drop.c (diskfs_drop_node): Likewise.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2012-08-024-221/+251
|\
| * pflocal: Handle non-blocking connect with no pending acceptors.Neal H. Walfield2012-07-264-221/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pflocal/connq.h (struct connq_request): Remove forward. (connq_listen): Wait for a request to be queued not until there is a connection attempt. Remove REQ parameter. Update callers. (connq_request_complete): Remove declaration. (connq_connect): Wait for a slot to queue a request not until there is an acceptor. Remove SOCK parameter. Update callers. (connq_connect_complete): New declaration. (connq_connect_cancel): New declaration. * pflocal/connq.c (struct connq): Remove fields noqueue, queue, length, head and tail. Add fields head, tail, count, max, connectors and num_connectors. That is, replace the circular buffer with a singly linked list. (qnext): Remove function. (struct connq_request): Remove field signal, lock, completed and err. Add field next. (connq_request_init): Rewrite according to new semantics. (connq_request_enqueue): New function. (connq_request_dequeue): New function. (connq_create): Update according to new semantics. (connq_destroy): Likewise. (connq_listen): Rewrite to not block until there is a connector but until there is a request in the queue. (connq_request_complete): Remove function. (connq_connect): Rewrite to not block until there is an acceptor but until there is space for a request. (connq_connect_complete): New function. (connq_connect_cancel): New function. (connq_compress): Remove dead code. (connq_set_length): Rewrite. * pflocal/socket.c (S_socket_connect): Create the server socket here... (S_socket_accept): ... not here.
* | Use ext2fs instead of ufs in hurd.bootSamuel Thibault2012-08-021-1/+1
|/ | | | * hurd.boot: Use /hurd/ext2fs instead of /hurd/ufs.
* Fix default XKB_BASE directorySamuel Thibault2012-07-101-1/+1
| | | | * configure.in (XKB_BASE): Default to $datadir/share/X11/xkb.
* Fix out-of-tree buildSamuel Thibault2012-07-101-1/+2
| | | | | | * console-client/Makefile (xkb/kstoucs_map.c): Make xkb directory in build tree. (CPPFLAGS): Add -I$(CURDIR)/xkb
* Always enable stack red zoneSamuel Thibault2012-07-081-4/+4
| | | | | * libthreads/stack.c (setup_stack): Always enable disabling access to end of stack. Add support for stacks growing up.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2012-07-033-5/+21
|\
| * Check for rendezvous port death in auth serverCarl Fredrik Hammar2012-07-021-2/+10
| | | | | | | | | | * auth/auth.c (S_auth_user_authenticate, S_auth_server_authenticate): Return EINVAL if rendezvous port dies during transaction.
| * Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2012-07-012-2/+3
| |\
| * | Use path to x11 locales from x11.pc instead of our prefixSamuel Thibault2012-07-012-3/+11
| | | | | | | | | | | | | | | | | | * configure.in (X11_PREFIX): Define from x11.pc's prefix variable. * console-client/xkb/compose.c (get_compile_file_for_locale): Use X11_PREFIX "/share" instead of DATADIR.
* | | Fix stack corruption in ext2fs serverRichard Braun2012-07-031-1/+11
| |/ |/| | | | | | | * ext2fs/inode.c (diskfs_node_iterate): allocate the temporary node table from the heap instead of the stack.
* | Check for null ports in auth serverCarl Fredrik Hammar2012-07-011-2/+2
| | | | | | | | | | * auth/auth.c (S_auth_user_authenticate, S_auth_server_authenticate): Fail with EINVAL if RENDEZVOUS is MACH_PORT_NULL.
* | TODO: make xkb use rulesSamuel Thibault2012-07-011-0/+1
|/
* Import pkg.m4Samuel Thibault2012-07-011-0/+159
|
* Fix kstoucs generation dependencySamuel Thibault2012-07-011-3/+3
| | | | | * console-client/Makefile: Make kstoucs.o and kstoucs_pic.o depend on kstoucs_map.c, not kstoucs_map.c
* Merge branch 'master' into xkbSamuel Thibault2012-07-0180-8663/+1162
|\ | | | | | | | | Conflicts: console-client/Makefile
| * Rework rpctrace into handling multitask programsDa Zheng2012-07-011-275/+787
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rpctrace.c (UNKNOWN_NAME): New variable. (task_info): New structure. (traced_task): Removed. (task_ihash): New variable. (unknown_task): Likewise. (add_task): New function. (remove_task): Likewise. (traced_info): Modified. (receiver_info): New structure. (sender_info): Likewise. (send_once_info): Likewise. (TRACED_INFO): New macro. (SEND_INFO): Likewise. (SEND_ONCE_INFO): Likewise. (req_info): New structure. (req_head): New variable. (add_request): New function. (remove_request): Likewise. (freelist): Different type. (notify_pi): New variable. (receive_right_list): Likewise. (dummy_wrapper): Likewise. (traced_names): Different initial value. (other_class): New variable. (print_request_header): Different parameter. (print_reply_header): Likewise. (new_receiver_info): New function. (destroy_receiver_info): Likewise. (new_send_wrapper): Redefined. (new_send_once_wrapper): Modified. (unlink_sender_info): New function. (traced_dropweak): Removed. (traced_clean): New function. (seen_receive_right): Likewise. (discover_receive_right): Likewise. (get_send_wrapper): Likewise. (rewrite_right): Redefined. (print_contents): Don't treat mach_port_insert_right specially. (wrap_all_threads): Use new structuress. (wrap_new_thread): Likewise. (wrap_new_task): New function. (trace_and_forward): Redefined. (expected_reply_port): Removed. (print_request_header): Use new structures. (print_reply_header): Likewise. (unfinished_line): Removed. (traced_spawn): Use new structures. (main): Initialize some global variables.
| * Make rpctrace handle terminate/suspend signals correctlyDa Zheng2012-07-011-2/+86
| | | | | | | | | | | | | | | | | | Fixes bug #3939 * rpctrace.c (traced_task): Relocate. (wrap_all_threads): New function. (wrap_new_thread): Likewise. (trace_and_forward): Wrap all thread ports.
| * Address gcc warningsBob Ham2012-06-308-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * exec-reauth.c (exec_reauth): Change type of temp var i to unsigned int to address gcc warning. * idvec-impgids.c (idvec_merge_implied_gids) Change type of temp var i to unsigned int to address gcc warning. * idvec-impgids.c (idvec_merge_implied_gids): Change type of temp var i to unsigned int to address gcc warning. * idvec-rep.c (idvec_rep): Change type of temp var i to unsigned int to address gcc warning. * idvec-verify (idvec_verify): Change type of temp var i to unsigned int to address gcc warning. * idvec.c (idvec_merge_ids, idvec_remove): Change type of temp var i to unsigned int to address gcc warning. * portxlate.c (port_name_xlator_create, port_name_xlator_free): Change type of temp var i to unsigned int to address gcc warning. * timefmt.c (fmt_seconds): Cast width to int in test to modify frac_places to address gcc warning. * (ugids_verify_make_auth): Change type of temp var i to unsigned int to address gcc warning.
| * Address gcc warningsBob Ham2012-06-301-2/+2
| | | | | | | | | | | | | | * iouser-restrict.c (listmember): Change type of query into uid_t to address gcc warning. (iohelp_restrict_iouser): Change type of temp var i to unsigned int to address gcc warning.
| * Address gcc warningBob Ham2012-06-301-1/+1
| | | | | | | | | | * ihash.c (ihash_add): Change type of i to unsigned int to address gcc warning.
| * Fix operation prioritySamuel Thibault2012-06-051-1/+1
| | | | | | | | * balloc.c (ext2_new_block): Fix operation priority.
| * Add header inclusion guardsSamuel Thibault2012-06-053-0/+12
| | | | | | | | | | | | * console/priv.h [!_CONSOLE_PRIV_H]: Define _CONSOLE_PRIV_H. * libnetfs/priv.h [!_LIBNETFS_PRIV_H]: Define _LIBNETFS_PRIV_H. * libpager/priv.h [!_LIBPAGER_PRIV_H]: Define _LIBPAGER_PRIV_H.
| * Fix bit shift validitySamuel Thibault2012-05-231-2/+5
| | | | | | | | | | * ext2fs/balloc.c (ext2_new_block): When J & 31 is 31, replace 32bit right shift with 0;
| * Fix find_next_zero_bit when no bit is availableSamuel Thibault2012-05-231-0/+2
| | | | | | | | | | * ext2fs/bitmap.c (find_next_zero_bit): Check whether TMP has a bit set before calling ffz.
| * Add /dev/netdde and /dev/eth* targetsSamuel Thibault2012-05-191-0/+5
| | | | | | | | * sutils/MAKEDEV.sh (netdde, eth*): Add targets.
| * Fix link(directory,whatever) POSIX compliancySamuel Thibault2012-05-131-1/+1
| | | | | | | | | | * libdiskfs/dir-link.c (diskfs_S_dir_link): When source node is a directory, fail with EPERM instead of EISDIR.
| * Add MSG_PEEK support to pflocalSamuel Thibault2012-04-276-14/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * libpipe/pq.h (packet_peek): Declare new function. * libpipe/pq.c (packet_read): Move code to new `packet_fetch' function, call it with `remove' set to 1. (packet_fetch): New function with code from `packet_read', but do not remove data if `remove' is 0. (packet_peek): New function, calls `packet_fetch' with `remove' set to 0. * libpipe/dgram.c (dgram_read): When MSG_PEEK is in *flags, do not dequeue and only peek data. * libpipe/seqpack.c (seqpack_read): Likewise. * libpipe/stream.c (stream_read): Likewise. * pflocal/socket.c (S_socket_recv): Pass MSG_PEEK flag to libpipe.
| * dist: Remove redundant "./" for top-level $(DISTFILES)Ludovic Courtès2012-04-101-1/+2
| | | | | | | | | | * Makeconf (dist.tar): When $(dir) is ".", avoid adding "./" to the resulting file name.
| * dist: Set the owner/group of $(DISTFILES) to UID/GID 0.Ludovic Courtès2012-04-101-1/+1
| | | | | | | | * Makeconf (dist.tar): Invoke `tar' with `--owner=0 --group=0'.
| * Add `doc/version.texi' to the distribution.Ludovic Courtès2012-04-101-1/+1
| | | | | | | | * doc/Makefile (targets): Add `version.texi'.
| * Replace fragile manual »make dist« system with one based on »git archive«.Thomas Schwinge2012-04-0849-272/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makeconf (lndist): Remove target. (dist-hook, dist.tar): New targets. * Makefile (dist): Rewrite this target's as well as accompanying rules. (%-lndist, cp-linked-files, $(lf-inst)): Remove targets. (%.bz2, %.gz, %/dist-hook): New targets. (DISTFILES): Set. * doc/Makefile (DISTFILES): Set. * doc/Makefile (lndist, lndist-info-targets): Remove targets. * include/Makefile (lndist): Remove target. * libthreads/Makefile (lndist, lndist-i386-files, lndist-map-file): Remove targets. * pfinet/Makefile (lndist, lndist-linux-src-net-core-files) (lndist-linux-src-net-ethernet-files, lndist-linux-src-net-ipv4-files) (lndist-linux-src-net-ipv6-files, lndist-linux-src-asm-files) (lndist-linux-src-include-linux-files, lndist-linux-src-include-net-files) (lndist-linux-src-include-asm-files, lndist-glue-include-linux-files) (lndist-glue-include-asm-files): Remove targets. * auth/Makefile (LCLHDRS): Don't set. * boot/Makefile (LCLHDRS, DIST_FILES): Likewise. * bsdfsck/Makefile (LCLHDRS): Likewise. * config/Makefile (DIST_FILES): Likewise. * console-client/Makefile (LCLHDRS): Likewise. * console/Makefile (LCLHDRS, DIST_FILES): Likewise. * doc/Makefile (DIST_FILES): Likewise. * exec/Makefile (LCLHDRS, DIST_FILES): Likewise. * ext2fs/Makefile (LCLHDRS): Likewise. * fatfs/Makefile (LCLHDRS): Likewise. * ftpfs/Makefile (LCLHDRS): Likewise. * hostmux/Makefile (LCLHDRS): Likewise. * hurd/Makefile (DIST_FILES): Likewise. * include/Makefile (LCLHDRS): Likewise. * isofs/Makefile (LCLHDRS, DIST_FILES): Likewise. * libcons/Makefile (LCLHDRS): Likewise. * libdirmgt/Makefile (LCLHDRS): Likewise. * libdiskfs/Makefile (LCLHDRS): Likewise. * libfshelp/Makefile (LCLHDRS): Likewise. * libftpconn/Makefile (LCLHDRS): Likewise. * libihash/Makefile (LCLHDRS): Likewise. * libiohelp/Makefile (LCLHDRS): Likewise. * libnetfs/Makefile (LCLHDRS): Likewise. * libpager/Makefile (LCLHDRS): Likewise. * libpipe/Makefile (LCLHDRS): Likewise. * libports/Makefile (LCLHDRS): Likewise. * libps/Makefile (LCLHDRS): Likewise. * libshouldbeinlibc/Makefile (LCLHDRS): Likewise. * libstore/Makefile (LCLHDRS, DIST_FILES): Likewise. * libthreads/Makefile (LCLHDRS): Likewise. * libtreefs/Makefile (LCLHDRS): Likewise. * libtrivfs/Makefile (LCLHDRS): Likewise. * mach-defpager/Makefile (LCLHDRS): Likewise. * nfs/Makefile (LCLHDRS): Likewise. * nfsd/Makefile (LCLHDRS): Likewise. * pfinet/Makefile (LCLHDRS): Likewise. * pflocal/Makefile (LCLHDRS): Likewise. * proc/Makefile (LCLHDRS, DIST_FILES): Likewise. * release/Makefile (DIST_FILES): Likewise. * storeio/Makefile (LCLHDRS): Likewise. * sutils/Makefile (LCLHDRS): Likewise. * term/Makefile (LCLHDRS, DIST_FILES): Likewise. * tmpfs/Makefile (LCLHDRS): Likewise. * ufs-fsck/Makefile (LCLHDRS): Likewise. * ufs/Makefile (LCLHDRS): Likewise. * usermux/Makefile (LCLHDRS): Likewise. * utils/Makefile (LCLHDRS): Likewise.
| * Remove generated files.Thomas Schwinge2012-04-084-5869/+2
| | | | | | | | | | | | | | * configure: Remove file. * .gitignore: Update. * doc/version.texi: Remove file. * doc/.gitignore: Update.
| * Rules for build system targets.Thomas Schwinge2012-04-081-7/+25
| | | | | | | | * Makefile (configure, config.status, config.make): New targets.
| * * Makefile (clean): Recurse into all subdirs.Thomas Schwinge2012-04-081-1/+1
| |
| * Automatically regenerate files that depend on $(hurd-version).Thomas Schwinge2012-04-085-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | Follow-up to 05f5cc229323a61799388fbb52da84ca8cb502c9 (»configure: Use modern `AC_INIT' invocation.«). * Makeconf (%: %.sh): Depend on config.make. * Makefile (version.h): Use a stamp file. (stamp-version): Depend on config.make. * doc/Makefile (stamp-version): Likewise. * Makeconf (make-deps): Take additional target-specific dependencies, $*-DEPS. * console-client/Makefile (driver-DEPS): Depend on config.make. * libstore/Makefile (module-DEPS): Likewise.
| * Remove hurd/install-headers.Thomas Schwinge2012-04-083-2215/+0
| | | | | | | | | | | | * hurd/configure: Remove file. * hurd/configure.ac: Likewise. * hurd/install-headers.in: Likewise.
| * Avoid recreating the include/* files needlessly.Thomas Schwinge2012-04-081-1/+1
| | | | | | | | | | | | | | | | * Makeconf ($(INSTALLED_LOCAL_HEADERS)): Just depend on the Makefile. The include/ hierarchy does not depend on anything but the local Makefile; especially it does not depend on how the package has been configured, which is what config.make records.
| * * Makeconf: Add copyright/licensing header.Thomas Schwinge2012-04-081-0/+17
| |
| * .gitignore: New file.Thomas Schwinge2012-04-082-0/+16
| |
* | Merge branch 'master' into xkbSamuel Thibault2012-07-01257-7704/+1635
|\| | | | | | | | | | | Conflicts: config.make.in configure.in
| * Update '..' link for directory when moving it.Maksym Planeta2012-04-081-1/+9
| | | | | | | | | | | | | | | | * tmpfs/dir.c (struct dirstat): New field. (diskfs_lookup_hard): Record whether type is SPEC_DOTDOT in dotdot field of ds. (diskfs_dirrewrite_hard): If ds->dotdot is true, set dp->dn->u.dir.dotdot insteead of (ds->prevp)->dn.
| * Allocate pager's map on demand.Maksym Planeta2012-04-081-30/+46
| | | | | | | | | | | | | | * mach-defpager/default_pager.c (pager_get_direct_map): New function. (pager_alloc): Initialize map field to NULL. (pager_allocated, pager_pages, pager_extend, pager_write_offset): Use pager_get_direct_map to access to pager's map.