History log of /haiku-fatelf/src/add-ons/kernel/drivers/tty/tty.cpp
Revision Date Author Comments
# 700c8d30 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support building images for x86_64.

Added a temporary Haiku64Image file that gets included instead of
HaikuImage when building for x86_64, which I will add to as I port
stuff. Images currently only include the boot loader, kernel and
a bunch of add-ons.


# af3b61f0 28-Sep-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a copy&paste typo in trace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38835 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1590c699 10-Apr-2010 Jérôme Duval <korli@users.berlios.de>

* added forkpty() and login_tty() to bsd compatibility, a test for forkpty().
* added a TODO questioning the closing master and slave in openpty() when applying window size fails.
* added TIOCSCTTY as a TTY ioctl code, the caller become controlling TTY. Review comments are welcome.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36105 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61fb53dd 29-Mar-2010 Axel Dörfler <axeld@pinc-software.de>

* The usual cleanup behind mmu_man ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35999 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f69c35f 28-Mar-2010 François Revol <revol@free.fr>

Fix tracing code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35989 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baaa0348 26-Mar-2010 François Revol <revol@free.fr>

Implemented ioctl(FIONREAD) on tty devices. Untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84853079 04-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Reverted unnecessary part of r35433.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35758 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28eaa574 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35586 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42620550 22-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Always reset the requests in WriterLocker::AcquireWriter() and
ReaderLocker::AcquireReader() before starting to wait. This could lead to
busy waiting in loops in certain situations.
* Got rid of the ReaderLocker::AcquireReader(bool) version to avoid confusion.
* Cleaned up and fixed the code introduced in r25408 (VMIN, VTIME support):
- Gave the second ReaderLocker::AcquireReader() parameter the same name as
the corresponding one of WriterLocker::AcquireWriter() and fixed its weird
semantics (one less than the desired number of bytes -- huh?). Since it was
not set on the request, it didn't work correctly anyway.
- tty_input_read(): The O_NONBLOCK return code was broken. It returned B_OK
instead of B_WOULD_BLOCK. The O_NONBLOCK mode overrides VMIN/VTIME now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8a0f658 22-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

RequestOwner::Wait(): No need to publish the condition variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cee04e80 08-Feb-2010 Artur Wyszynski <aljen-mlists@o2.pl>

Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8b34062 19-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34142 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce3bb4fb 06-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't perform input processing when writing to the slave end (output written to
terminal was interpreted like input). Fixes #2409.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 578dac0c 18-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* tty_select() did not check for ICANON and therefore notified the select
listeners immediately if there was already something in the queue. Factored
out a tty_readable() out of tty_notify_if_available() that tty_select()
now uses.
* This fixes bug #3148.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6730553a 14-Nov-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Already set tty::lock() in init_driver(). This makes it always safe to
be used.
* Added tty::ref_count. Each cookie keeps a reference. Only when a
cookie is freed the reference is surrendered. A tty is considered used
as long as it is still referenced. This allows to access a tty through
the cookie, even if it already has been closed.
* Fixed tty_deselect(). It was keeping registered select events when
called after the cookie has been closed. The referenced select_sync
structure would become invalid and later attempts to send select
notifications for the tty could crash. Fixes #3126.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28651 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b89d754 21-Oct-2008 François Revol <revol@free.fr>

shut up complaining for something not even Linux supports.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0387fe2 15-Jul-2008 Oliver Tappe <zooey@hirschkaefer.de>

Fix problem with openssh failing to connect to OpenSolaris and Zeta servers:
* we need to initialize c_ospeed and c_ispeed, as a value of 0 means
'hangup' - which is not a good default, I suppose


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26426 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66b9ba2a 26-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* The VERASE char (the one generated by backspace) is 0x7f.
* With output processing enabled, replace the VERASE char by
BS SPACE BS instead of VERASE SPACE VERASE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26135 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fbe0c27a 17-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Changed condition variables so that it is allowed to block (e.g. lock
mutexes etc.) between Add() and Wait(). This fixes #2059, since the
block writer used them this way and could thusly fail to wait for a
condition variable, causing a temporary stack object to be used past its
lifetime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac7f526d 09-May-2008 François Revol <revol@free.fr>

- dump termios struct for ttys
- implement VMIN & VTIME, at least it seems to work but it's 4am and it's overly weird, so please review.
See http://man.cx/termios and http://www.unixwiz.net/techtips/termios-vmin-vtime.html .


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25408 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b48c06f 09-May-2008 François Revol <revol@free.fr>

- dump winsize info too.
- prepare for VTIME and VMIN handling: allow waiting with timeout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02917e5c 09-May-2008 François Revol <revol@free.fr>

- mark BeOS-specific ioctls we support for legacy apps,
- add 'wsiz' which is a private alias for TIOCSWINSZ,
- add some we might want to implement (or not) as reminder,
- add hw signal ioctls with a note for later (call driver service func),
- implement 'ichr' undocumented ioctl that waits on N chars on input, this fixes behaviour of rhapsody IRC client and many other curses apps. Oddly it seems even our own curses still uses it, that should likely be fixed as we support select(). But we must keep this one in to support apps that have their own curses lib.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25400 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2e55dcc 07-May-2008 François Revol <revol@free.fr>

Fix a warning, print the pointer to the mutex instead of implying a cast of the address of the pointer to an int.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0c615a01 01-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
spinlock being held. The spinlock is released while waiting, of
course. This function is useful in cases where the existence of the
mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
another team needs to be locked to use mutex_lock_threads_locked().
Before it required a semaphore-based mutex implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25283 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 06b7c7ff 24-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Set reasonable terminal flag defaults. This makes telnetd fully usable
again.
* Publish /dev/ptmx. Opening it will open a fresh pty master. In
principle /dev/pt/ is obsolete now, but I guess we keep it around for
compatibility with BeOS. Though there shouldn't be many applications
opening a pty, that we might be interested in...
* New ioctls B_IOCTL_GET_TTY_INDEX (returns the tty index) and
B_IOCTL_GRANT_TTY (grants tty slave access rights).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cef245e 22-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Detemplatized ConditionVariable{Entry}. Merged them with their
respective Private* base class.
* Changed sigwait() and sigsuspend() to use thread_block() instead of a
condition variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25100 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b95f6d47 22-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced a set of functions (thread_prepare_to_block(),
thread_block(), thread_unblock(),...) that allow a thread to wait for
something without needing a semaphore or condition variable. It can
simply block and another thread can unblock it. Supports timeouts and
interrupting. Both semaphores and condition variables use this
common mechanism, now.
* Semaphores:
- Some simplifications due to the thread blocking mechanism.
- Changed locking order to sem -> thread. It was the other way around
before and when introducing the wait_for_objects() support I had
also introduced a situation where the locking was reverse, which
could potentially cause a dead lock on SMP systems.
- Instead of queueing thread structures, a semaphore queues
queued_thread entries now, which are created on the stack. The
thread::sem structure could thus be removed.
- Added sem_entry::net_count, which is sem_entry::count plus the
acquisition count of all waiting threads. This number is needed in
remove_thread_from_sem() and instead of computing it there we
maintain it.
- Fixed remove_thread_from_sem(). It would not unblock threads, if
the sem count was <= 0.
- Made sem::last_acquirer unconditional. It is actually needed for
sem_info::latest_holder. Fixed fill_sem_info() accordingly.
- Added some optional tracing output, though only via ktrace_printf().
* Condition variables:
- Could be simplified significantly through the use of the thread
blocking mechanism. Removed a good deal of unnecessary code.
- Moved the ConditionVariableEntry "flags" parameter from Wait() to
Add(), and adjusted all places where condition variables are used
accordingly.
* snooze() uses thread_block_with_timeout() instead of a semaphore.
* Simplified thread interrupting in the signal and user debugger code.
Instead of separate functions for threads waiting on a semaphore or
condititon variable, we only have a single thread_interrupt(), now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eebd3f7d 18-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Don't check the open count of the other tty anymore when acquiring a
reference. The places where that is of relevance do that anyway, and
tty_ioctl(), where it isn't, failed before, although that was not
necessary. This prevented for instance ioctls() on the master tty
before any slave had been opened.
* If the tty has no process group set, don't check for background reads.
This was a problem with telnetd, respectively the executed login,
which couldn't access the tty, since telnetd makes sure neither itself
nor login has a controlling tty.
telnet still doesn't work, exactly because it has no controlling tty
and cannot set the tty process group. Not sure how that is supposed to
work. Furthermore the tty doesn't have the usual flags set, which is
apparrently the reason for the workaround (read_string()) in login.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e8429ec9 03-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added debugger command "tty", which dumps some info about a tty.
* RequestOwner was removing the wrong request from the second queue,
which could cause the list structure to become invalid and result in
bug #1526.
* In the writer loops we do now call tty_notify_if_available() when
we're potentially going to wait and had written something before, so
that a waiting reader will be woken up also when we write more bytes
than fit into the ring buffer.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22421 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 636bfc08 02-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of
vfs_select.h, respectively moved most of it into the new kernel
private header wait_for_objects.h.
* Added new experimental API functions wait_for_objects[_etc](). They
work pretty much like poll(), but also for semaphores, ports, and
threads.
* Removed the "ref" parameter from notify_select_events() and the
select_sync_pool functions as well as from fd_ops::fd_[de]select(). It
is no longer needed. The FS interface select() hook still has it,
though -- the VFS will always pass 0.
* de]select_fd() take a select_info* instead of a select_sync* + ref
pair, now. Added respective functions for semaphores, ports, and
threads.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb138dc9 30-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the select_sync_pool from tty_cookie to tty. No need to have one
per cookie.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0c668a8 29-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Notifying readers and select() takes canonical input processing into
account when checking for the number of readable bytes. For readers
it doesn't make a difference, since they were looping anyway, but
select() would report read-availability incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22379 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f6b4f3e 28-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* When canonical input processing is enabled reads should only return
anything, if a line is available. Fixes bug #1483.
* Replaced the request owner waiting semaphore by a condition variable
and removed the now no longer needed SemaphorePool.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22357 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 923efaa8 05-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* We store the ID of the controlling terminal and the foreground process
group ID with the session and let the terminal update them.
* Added an "orphaned" flag to the process_group structure and code to
maintain it.
* Handle the death of a controlling process correctly: The
foreground process group gets a SIGHUP and all newly-orphaned process
groups containing at least one stopped processes are sent
SIGHUP+SIGCONT.
* The tty handles the O_NOCTTY flag correctly, now.
* The tty handles reads/writes from processes from other sessions
correctly, now.
* Handle tcsetpgrp() from background processes correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22187 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b637ab84 26-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Send SIGTTIN/SIGTTOU when a background process tries to read
from/write to a tty.
* Send SIGTSTP when the suspend character is typed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22064 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 696c54d0 28-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved members pgrp_id, termios, window_size from the tty structure to
the new structure tty_settings of which there's only one instance per
master/slave tty pair. Previously the existence of two instances of those
members caused several kinds of problems, e.g. the Terminal setting
the window size on the master and CLI programs readings the unchanged
values from the slave. E.g. less correctly adjusts the display when the
Terminal size changes, now.
* Reorganized writing to a TTY. We do no longer handle writes to master
and slave the same way. Writes to the master are "input" and need to
be processed differently from writes to the slave ("output"). Before,
both were processed first as output then as input, which caused incorrect
behavior. E.g. CRs were not echoed correctly.
* Added canonical ERASE (backspace) and KILL (clear line) processing.
Couldn't really see it work. glibc's fgets() seems to read single
chars, so that we never have anything in the line buffer.
* Added handling for EOF. Works well with Be's Terminal, ours seems to
write an ESC sequence instead of the EOF char (Ctrl-D), though.
* Extended output processing support (ECHOE, ECHOK, ECHONL, OCRNL,
ONLRET, OLCUC).
* Writes use user_memcpy() now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e70f1aa 25-Sep-2006 Jérôme Duval <korli@users.berlios.de>

adding default value for suspend key : CTRL(Z)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6632e1f4 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Changed type of "bytesNeeded" to size_t whereever it's used.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 467a2ae6 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

AcquireWriter() could succeed without fulfilling the bytesNeeded acquirement.
This fixes bug #477.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94f687f9 16-May-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed an endless loop in tty_write_to_tty() that happened if there was not enough
space left to write a '\r\n'. This fixes bug #80 and probably bug #477, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94f8d3fc 01-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

A TTY now refuses read/write requests while the other end is dead; it also
notified the other end when it has been closed. This fixes bug #388.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67e33e3e 06-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

get_tty_index() did not work correctly, this fixes bug #265 (included the fixed
version, thanks barber).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16624 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a55239 20-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Dealt with (hopefully) all open/close race conditions.
* Implemented unblocking of pending operations when closing a cookie.
Needed to change the simple one reader semaphore, one writer
semaphore strategy for blocking to a request queue based approach
(otherwise unblocking would have been really hairy).
* Implemented select() support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11931 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9bd14d4 11-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

Turned off debugging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8df8bac 30-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Added a temporary work-around for the doubled shell prompt.
Added some missing return values.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26fbfbaa 01-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Added some more debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f8f97f5 31-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

tty_write_to_tty() used the wrong TTY to look at the ECHO flag; also added
a comment that explains why the other TTY has to be chosen there.
Improved debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87df3fda 01-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

WriterLocker mixed up source and target and always locked the wrong one.
tty_write_to_tty() now takes the extra character into account that may be
inserted with OPOST and ONLCR and don't write more characters as there is
space.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9151 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ff1ba0d 28-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

tty_input_read() was blocking until the whole buffer could be filled - that's
not really standard behaviour...
tty_input_putc() now also releases the reader semaphore if that hasn't been
done before.
tty_input_putc_locked() now does character processing and sends some signals -
not yet complete, though, especially VERASE and VKILL do nothing right now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa42f1c2 27-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Work in progress. Basic data exchange seems to work.
Only slightly tested (moved data to and from pty <-> tty).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b306033 23-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Added the beginnings of our TTY layer.
After having had a look at our own Terminal code (former MuTerm), I even
copied the original mess in /dev/tt/ and /dev/pt/.
The /dev/tt/ entries could be created and removed on demand, though, but
that can't be done yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9041 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 700c8d3078c1caf65667b7cbb955527d524ff07c 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Support building images for x86_64.

Added a temporary Haiku64Image file that gets included instead of
HaikuImage when building for x86_64, which I will add to as I port
stuff. Images currently only include the boot loader, kernel and
a bunch of add-ons.


# af3b61f013760c1c555c95b406e63c0efe56116b 28-Sep-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed a copy&paste typo in trace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38835 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1590c699330ebe8ff8811502a82b5c6d8595dd04 10-Apr-2010 Jérôme Duval <korli@users.berlios.de>

* added forkpty() and login_tty() to bsd compatibility, a test for forkpty().
* added a TODO questioning the closing master and slave in openpty() when applying window size fails.
* added TIOCSCTTY as a TTY ioctl code, the caller become controlling TTY. Review comments are welcome.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36105 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61fb53ddc5c6019a695ff0ead47f964d6b6e18e1 29-Mar-2010 Axel Dörfler <axeld@pinc-software.de>

* The usual cleanup behind mmu_man ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35999 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f69c35f32a5dcc1ebb226f8d34f41c5b76c1a12 28-Mar-2010 François Revol <revol@free.fr>

Fix tracing code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35989 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baaa0348a9627634699c34af6f285cdf910c6958 26-Mar-2010 François Revol <revol@free.fr>

Implemented ioctl(FIONREAD) on tty devices. Untested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84853079489b039efef4a0896536e154e668a6af 04-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Reverted unnecessary part of r35433.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35758 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28eaa574fddae4d5eb0f6af2b7a69fea72ef8044 23-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35586 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 426205507439ee542f6cd06feb26773656a268ba 22-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Always reset the requests in WriterLocker::AcquireWriter() and
ReaderLocker::AcquireReader() before starting to wait. This could lead to
busy waiting in loops in certain situations.
* Got rid of the ReaderLocker::AcquireReader(bool) version to avoid confusion.
* Cleaned up and fixed the code introduced in r25408 (VMIN, VTIME support):
- Gave the second ReaderLocker::AcquireReader() parameter the same name as
the corresponding one of WriterLocker::AcquireWriter() and fixed its weird
semantics (one less than the desired number of bytes -- huh?). Since it was
not set on the request, it didn't work correctly anyway.
- tty_input_read(): The O_NONBLOCK return code was broken. It returned B_OK
instead of B_WOULD_BLOCK. The O_NONBLOCK mode overrides VMIN/VTIME now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8a0f6587d8e32879a07b7adba1bb38e35b9fe78 22-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

RequestOwner::Wait(): No need to publish the condition variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cee04e8074ec61fd8c6dac3539c5b821c3618888 08-Feb-2010 Artur Wyszynski <aljen-mlists@o2.pl>

Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8b3406203829f58bb111ba894320438f24db4bd 19-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34142 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce3bb4fb88399d3846bc2dbd4f02fd69c2d12b2c 06-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't perform input processing when writing to the slave end (output written to
terminal was interpreted like input). Fixes #2409.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 578dac0cf362b7f6012dd09a68b8306fffe6611c 18-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* tty_select() did not check for ICANON and therefore notified the select
listeners immediately if there was already something in the queue. Factored
out a tty_readable() out of tty_notify_if_available() that tty_select()
now uses.
* This fixes bug #3148.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6730553ae018003356b03f2d8500520671470bc7 14-Nov-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Already set tty::lock() in init_driver(). This makes it always safe to
be used.
* Added tty::ref_count. Each cookie keeps a reference. Only when a
cookie is freed the reference is surrendered. A tty is considered used
as long as it is still referenced. This allows to access a tty through
the cookie, even if it already has been closed.
* Fixed tty_deselect(). It was keeping registered select events when
called after the cookie has been closed. The referenced select_sync
structure would become invalid and later attempts to send select
notifications for the tty could crash. Fixes #3126.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28651 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b89d754a514cf14e9f675dab6d3aad8aa5d24f6 21-Oct-2008 François Revol <revol@free.fr>

shut up complaining for something not even Linux supports.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0387fe2bb97f76dea665375f78909b6c5a114cd 15-Jul-2008 Oliver Tappe <zooey@hirschkaefer.de>

Fix problem with openssh failing to connect to OpenSolaris and Zeta servers:
* we need to initialize c_ospeed and c_ispeed, as a value of 0 means
'hangup' - which is not a good default, I suppose


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26426 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66b9ba2a0b7d2bd5100a01b6fedbb0da3b15ac2e 26-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* The VERASE char (the one generated by backspace) is 0x7f.
* With output processing enabled, replace the VERASE char by
BS SPACE BS instead of VERASE SPACE VERASE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26135 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fbe0c27a94fff9dff7c42e12ee96f789b314c746 17-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Changed condition variables so that it is allowed to block (e.g. lock
mutexes etc.) between Add() and Wait(). This fixes #2059, since the
block writer used them this way and could thusly fail to wait for a
condition variable, causing a temporary stack object to be used past its
lifetime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac7f526d3cb3242e199de5c86a262b6c901feae8 09-May-2008 François Revol <revol@free.fr>

- dump termios struct for ttys
- implement VMIN & VTIME, at least it seems to work but it's 4am and it's overly weird, so please review.
See http://man.cx/termios and http://www.unixwiz.net/techtips/termios-vmin-vtime.html .


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25408 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b48c06f261b637e3374693974b0565a73e0b225 09-May-2008 François Revol <revol@free.fr>

- dump winsize info too.
- prepare for VTIME and VMIN handling: allow waiting with timeout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02917e5cbf7f6c27812b64fd6dc068201f6a110f 09-May-2008 François Revol <revol@free.fr>

- mark BeOS-specific ioctls we support for legacy apps,
- add 'wsiz' which is a private alias for TIOCSWINSZ,
- add some we might want to implement (or not) as reminder,
- add hw signal ioctls with a note for later (call driver service func),
- implement 'ichr' undocumented ioctl that waits on N chars on input, this fixes behaviour of rhapsody IRC client and many other curses apps. Oddly it seems even our own curses still uses it, that should likely be fixed as we support select(). But we must keep this one in to support apps that have their own curses lib.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25400 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2e55dcc0cadef01b59de9e99cc2f449c8ce8d84 07-May-2008 François Revol <revol@free.fr>

Fix a warning, print the pointer to the mutex instead of implying a cast of the address of the pointer to an int.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0c615a01ae49634aaf59fbe35b3d55b3bb8890df 01-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
spinlock being held. The spinlock is released while waiting, of
course. This function is useful in cases where the existence of the
mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
another team needs to be locked to use mutex_lock_threads_locked().
Before it required a semaphore-based mutex implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25283 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 06b7c7ffe2bb0b87dc3afb9f0296b048807957ee 24-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Set reasonable terminal flag defaults. This makes telnetd fully usable
again.
* Publish /dev/ptmx. Opening it will open a fresh pty master. In
principle /dev/pt/ is obsolete now, but I guess we keep it around for
compatibility with BeOS. Though there shouldn't be many applications
opening a pty, that we might be interested in...
* New ioctls B_IOCTL_GET_TTY_INDEX (returns the tty index) and
B_IOCTL_GRANT_TTY (grants tty slave access rights).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6cef245eca821584f07f5a13558f51ec586852e8 22-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Detemplatized ConditionVariable{Entry}. Merged them with their
respective Private* base class.
* Changed sigwait() and sigsuspend() to use thread_block() instead of a
condition variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25100 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b95f6d4710855a27bec41b6fae2b064347780173 22-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced a set of functions (thread_prepare_to_block(),
thread_block(), thread_unblock(),...) that allow a thread to wait for
something without needing a semaphore or condition variable. It can
simply block and another thread can unblock it. Supports timeouts and
interrupting. Both semaphores and condition variables use this
common mechanism, now.
* Semaphores:
- Some simplifications due to the thread blocking mechanism.
- Changed locking order to sem -> thread. It was the other way around
before and when introducing the wait_for_objects() support I had
also introduced a situation where the locking was reverse, which
could potentially cause a dead lock on SMP systems.
- Instead of queueing thread structures, a semaphore queues
queued_thread entries now, which are created on the stack. The
thread::sem structure could thus be removed.
- Added sem_entry::net_count, which is sem_entry::count plus the
acquisition count of all waiting threads. This number is needed in
remove_thread_from_sem() and instead of computing it there we
maintain it.
- Fixed remove_thread_from_sem(). It would not unblock threads, if
the sem count was <= 0.
- Made sem::last_acquirer unconditional. It is actually needed for
sem_info::latest_holder. Fixed fill_sem_info() accordingly.
- Added some optional tracing output, though only via ktrace_printf().
* Condition variables:
- Could be simplified significantly through the use of the thread
blocking mechanism. Removed a good deal of unnecessary code.
- Moved the ConditionVariableEntry "flags" parameter from Wait() to
Add(), and adjusted all places where condition variables are used
accordingly.
* snooze() uses thread_block_with_timeout() instead of a semaphore.
* Simplified thread interrupting in the signal and user debugger code.
Instead of separate functions for threads waiting on a semaphore or
condititon variable, we only have a single thread_interrupt(), now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eebd3f7d4732bd2e1b13041b5d0253f532865a11 18-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Don't check the open count of the other tty anymore when acquiring a
reference. The places where that is of relevance do that anyway, and
tty_ioctl(), where it isn't, failed before, although that was not
necessary. This prevented for instance ioctls() on the master tty
before any slave had been opened.
* If the tty has no process group set, don't check for background reads.
This was a problem with telnetd, respectively the executed login,
which couldn't access the tty, since telnetd makes sure neither itself
nor login has a controlling tty.
telnet still doesn't work, exactly because it has no controlling tty
and cannot set the tty process group. Not sure how that is supposed to
work. Furthermore the tty doesn't have the usual flags set, which is
apparrently the reason for the workaround (read_string()) in login.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e8429ec9e65e68871a6aa998b07cce5c3cdb9c9e 03-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added debugger command "tty", which dumps some info about a tty.
* RequestOwner was removing the wrong request from the second queue,
which could cause the list structure to become invalid and result in
bug #1526.
* In the writer loops we do now call tty_notify_if_available() when
we're potentially going to wait and had written something before, so
that a waiting reader will be woken up also when we write more bytes
than fit into the ring buffer.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22421 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 636bfc08aeaaa7f1bab813c5aa2e8e666b40ec64 02-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of
vfs_select.h, respectively moved most of it into the new kernel
private header wait_for_objects.h.
* Added new experimental API functions wait_for_objects[_etc](). They
work pretty much like poll(), but also for semaphores, ports, and
threads.
* Removed the "ref" parameter from notify_select_events() and the
select_sync_pool functions as well as from fd_ops::fd_[de]select(). It
is no longer needed. The FS interface select() hook still has it,
though -- the VFS will always pass 0.
* de]select_fd() take a select_info* instead of a select_sync* + ref
pair, now. Added respective functions for semaphores, ports, and
threads.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb138dc9c4eb8ff406eb375bdb2ca7551afe1694 30-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the select_sync_pool from tty_cookie to tty. No need to have one
per cookie.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0c668a83a8666e835e61f037647778264374d23 29-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Notifying readers and select() takes canonical input processing into
account when checking for the number of readable bytes. For readers
it doesn't make a difference, since they were looping anyway, but
select() would report read-availability incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22379 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f6b4f3e1a392bc9dd18659bbd57d61a2eb84fd0 28-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* When canonical input processing is enabled reads should only return
anything, if a line is available. Fixes bug #1483.
* Replaced the request owner waiting semaphore by a condition variable
and removed the now no longer needed SemaphorePool.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22357 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 923efaa872b9fe4e9e9cae87effe2af5c338b98a 05-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* We store the ID of the controlling terminal and the foreground process
group ID with the session and let the terminal update them.
* Added an "orphaned" flag to the process_group structure and code to
maintain it.
* Handle the death of a controlling process correctly: The
foreground process group gets a SIGHUP and all newly-orphaned process
groups containing at least one stopped processes are sent
SIGHUP+SIGCONT.
* The tty handles the O_NOCTTY flag correctly, now.
* The tty handles reads/writes from processes from other sessions
correctly, now.
* Handle tcsetpgrp() from background processes correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22187 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b637ab846f6d632df4702de9d155c56684aed77a 26-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Send SIGTTIN/SIGTTOU when a background process tries to read
from/write to a tty.
* Send SIGTSTP when the suspend character is typed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22064 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 696c54d0673fe190dbbae4323b48bf1b8d9c2beb 28-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved members pgrp_id, termios, window_size from the tty structure to
the new structure tty_settings of which there's only one instance per
master/slave tty pair. Previously the existence of two instances of those
members caused several kinds of problems, e.g. the Terminal setting
the window size on the master and CLI programs readings the unchanged
values from the slave. E.g. less correctly adjusts the display when the
Terminal size changes, now.
* Reorganized writing to a TTY. We do no longer handle writes to master
and slave the same way. Writes to the master are "input" and need to
be processed differently from writes to the slave ("output"). Before,
both were processed first as output then as input, which caused incorrect
behavior. E.g. CRs were not echoed correctly.
* Added canonical ERASE (backspace) and KILL (clear line) processing.
Couldn't really see it work. glibc's fgets() seems to read single
chars, so that we never have anything in the line buffer.
* Added handling for EOF. Works well with Be's Terminal, ours seems to
write an ESC sequence instead of the EOF char (Ctrl-D), though.
* Extended output processing support (ECHOE, ECHOK, ECHONL, OCRNL,
ONLRET, OLCUC).
* Writes use user_memcpy() now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8e70f1aa5bff8dbebf728044b7d865db692f1ae8 25-Sep-2006 Jérôme Duval <korli@users.berlios.de>

adding default value for suspend key : CTRL(Z)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6632e1f4826020d79c367405b99ad642fd3d1e45 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Changed type of "bytesNeeded" to size_t whereever it's used.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 467a2ae6f82afa1df356804217965f6bda7d2f1c 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

AcquireWriter() could succeed without fulfilling the bytesNeeded acquirement.
This fixes bug #477.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94f687f9e36d52176289c7a51a66da8b3b5a13ef 16-May-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed an endless loop in tty_write_to_tty() that happened if there was not enough
space left to write a '\r\n'. This fixes bug #80 and probably bug #477, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17479 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94f8d3fceed31e6b6f99b50c6c120811f2746f4d 01-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

A TTY now refuses read/write requests while the other end is dead; it also
notified the other end when it has been closed. This fixes bug #388.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67e33e3e706360b1734d44587491f54433259129 06-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

get_tty_index() did not work correctly, this fixes bug #265 (included the fixed
version, thanks barber).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16624 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a5523990f922ce4cb423b63ef26d4379049423 20-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Dealt with (hopefully) all open/close race conditions.
* Implemented unblocking of pending operations when closing a cookie.
Needed to change the simple one reader semaphore, one writer
semaphore strategy for blocking to a request queue based approach
(otherwise unblocking would have been really hairy).
* Implemented select() support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11931 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9bd14d444cf4e29f102dddceb77895346e718da 11-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

Turned off debugging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8df8bac3e8ec2e95d3e2b759670f147dc1b111a 30-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Added a temporary work-around for the doubled shell prompt.
Added some missing return values.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26fbfbaa641e73594a2de3637e60207ee799d08a 01-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Added some more debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f8f97f528313ef58315bbd7a81faa44a8e07cd2 31-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

tty_write_to_tty() used the wrong TTY to look at the ECHO flag; also added
a comment that explains why the other TTY has to be chosen there.
Improved debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87df3fdab8c2bd33c9a7f0ebe8e69abff4d593f5 01-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

WriterLocker mixed up source and target and always locked the wrong one.
tty_write_to_tty() now takes the extra character into account that may be
inserted with OPOST and ONLCR and don't write more characters as there is
space.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9151 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ff1ba0dc7c0586f0c136c14b938cd63cfa4dbd4 28-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

tty_input_read() was blocking until the whole buffer could be filled - that's
not really standard behaviour...
tty_input_putc() now also releases the reader semaphore if that hasn't been
done before.
tty_input_putc_locked() now does character processing and sends some signals -
not yet complete, though, especially VERASE and VKILL do nothing right now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa42f1c2b9d66c327979c903b3881b6d53e9dc12 27-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Work in progress. Basic data exchange seems to work.
Only slightly tested (moved data to and from pty <-> tty).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b3060331448d3873bdd60566ff977cf2aaee798 23-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Added the beginnings of our TTY layer.
After having had a look at our own Terminal code (former MuTerm), I even
copied the original mess in /dev/tt/ and /dev/pt/.
The /dev/tt/ entries could be created and removed on demand, though, but
that can't be done yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9041 a95241bf-73f2-0310-859d-f6bbb57e9c96