Subject: Linux-Development Digest #286
From: Digestifier <[email-masked]>
To: [email-masked]
Date: Mon, 10 Oct 94 13:13:09 EDT

Linux-Development Digest #286, Volume #2         Mon, 10 Oct 94 13:13:09 EDT

Contents:
  Not able to record sound! (Lam Hong)
  Re: NCR53c810 card and Technoland (John W. Garnett)
  Re: Any threads package ? (John W. Garnett)
  Re: Linux and streams (Matthias Urlichs)
  Re: windowing/menu and more c lib for linux? (Francesco Defilippo)
  Re: 1.1.52 bug? (Rasmus Lerdorf)
  Re: Does linux implement semaphores? (Alan Cox)
  Re: Linux Mud (Alan Cox)
  Re: SMail security hole? (Alan Cox)
  Re: Does linux implement semaphores? (Alan Cox)
  Re: I/O in Linux (Alan Cox)
  Re: SMail security hole? (Alan Cox)
  Re: 1280x1024, Term, and System Lockup! (Alan Cox)
  New set of tty/serial patches... ("Theodore Ts'o")

----------------------------------------------------------------------------

From: [email-masked] (Lam Hong)
Subject: Not able to record sound!
Date: Fri, 7 Oct 1994 15:11:45 GMT

Hi all,

I have just set up my linux system but I could not record sound with the 
sound blaster 16 ASP card. It's strange that playing sound files is perfectly
good! I have try to set mixer, but don't know how to do it!

could anyone figure out the problem(s).

Thanks a lot!
____________________________________________________________________________
 _ _  ._ _  _  _ ._                     Lam Hong
(__>__| (_)(_|(/_|                      [email-masked]  
            _|                                          

------------------------------

From: [email-masked] (John W. Garnett)
Subject: Re: NCR53c810 card and Technoland
Date: 10 Oct 1994 08:05:06 GMT

In article <[email-masked]>,
Michael J. Ashmore <[email-masked]> wrote:
|
|In a previous article, [email-masked] (Stavros J Haidos) says:
|
|>  In the scsi-howto it states that you can get a NCR56c810 card that will work
|>on the pci bus. When I called up the number given for Technoland they told me
|>that the card will only work on one type of pci mother board and that it will
|>not work on a 90 mhz 586 mother board. Is this true? Is there any way I can
|>get a board like this to work on a P90 and under linux? Please help. Thanks!
|>
|>              -Steve
|>
|Well, I'm running a Zenon P90, and I have a NCR53c810-based PCI card
|working just fine ... it seems to be a generic card; the only dox Zenon
|gave me was a techsheet (1 page, front only) identifying the chip and
|giving some basic info on termination :(
|Though the sheet is called "Quick Reference guide for PCI-SC200" -- there
|doesn't seem to be a brand attached.
|
|-Mashmore

The PCI-SC200 is made by ASUS.  SWT ([email-masked] or /pub/swt
via anonymous ftp at ftp.netcom.com) is one vendor who sells this card
(for approxmiately $75 -- at least they did as of a few weeks ago).
This card works with Linux as long as your motherboard has BIOS support
for the NCR chip (or so I'm told).  I think that both the ASUS motherboards
and the "Intel PCI Premier II" have the proper support (don't know about
others).

-John
-- 
--
John Garnett
[email-masked]
[email-masked] (NeXT Mail)

------------------------------

From: [email-masked] (John W. Garnett)
Subject: Re: Any threads package ?
Date: 10 Oct 1994 08:18:44 GMT

In article <[email-masked]>,
Bich-Cau Le <[email-masked]> wrote:
>I'm doing real-time OS simulations under Unix. Is there something
>similar to Sun's lightweight process library for Linux?
>
>Bich C. Le
>UC Davis

You might be interested in a software toolkit called QuickThreads.
QuickThreads provides primitives that can serve as a foundation
for a threads library.  Here is the README from quickthreads:

-John

--cut here--

This is a source code distribution for QuickThreads.  QuickThreads is a
toolkit for building threads packages; it is described in detail in the
University of Washington CS&E Technical report #93-05-06, available via
anonymous ftp from `ftp.cs.washington.edu' (128.95.1.4, as of Dec. '93)
in `tr/1993/05/UW-CSE-93-05-06.PS.Z'.

This distribution shows basic ideas in QuickThreads and elaborates with
example implementations for a gaggle of machines.  As of December those
machines included:

        80386 faimly
        88000 faimily
        DEC AXP (Alpha) family
        KSR
        MIPS family
        SPARC V8 family
        VAX family

Configuration, build, and installation are described in INSTALL.

Be aware: that there is no varargs code for the KSR.

Here is a brief summary:

QuickThreads is a toolkit for building threads packages.  It is my hope
that you'll find it easier to use QuickThreads normally than to take it
and modify the raw cswap code to fit your application.  The idea behind
QuickThreads is that it should make it easy for you to write & retarget
threads packages.  If you want the routine `t_create' to create threads
and `t_block' to suspend threads, you write them using the QuickThreads
`primitive' operations `QT_SP', `QT_INIT', and `QT_BLOCK', that perform
machine-dependent initialization and blocking, plus code you supply for
performing the portable operatons.  For example, you might write:

        t_create (func, arg)
        {
          stk = malloc (STKSIZE);
          stackbase = QT_SP (stk, STKSIZE);
          sp = QT_INIT (stakcbase, func, arg);
          qput (runq, sp);
        }

Threads block by doing something like:

        t_block()
        {
          sp_next = qget (runq);
          QT_BLOCK (helper, runq, sp_next);
          // wake up again here
        }

        // called by QT_BLOCK after the old thread has blocked,
        // puts the old thread on the queue `onq'.
        helper (sp_old, onq)
        {
          qput (onq, sp_old);
        }

(Of course) it's actually a bit more complex than that, but the general
idea is that you write portable code to allocate stacks and enqueue and
dequeue threads.  Than, to get your threads package up and running on a
different machine, you just reconfigure QuickThreads and recompile, and
that's it.

The QuickThreads `distribution' includes a sample threads package (look
at stp.{c,h}) that is written in terms of QuickThreads operations.  The
TR mentioned above explains the simple threads package in detail.

If you do use QuickThreads, I'd like to hear both about what worked for
you and what didn't work, problems you had, insights gleaned, etc.

Let me know what you think.

David Keppel
[i deleted his email address because i don't know if he would appreciate
being inundated.  if you need it, you can get it by ftping the software from
the site mentioned in the above README]
-- 
--
John Garnett
[email-masked]
[email-masked] (NeXT Mail)

------------------------------

From: [email-masked] (Matthias Urlichs)
Subject: Re: Linux and streams
Date: 7 Oct 1994 19:00:46 +0100

In comp.os.linux.development, article <[email-masked]>,
  [email-masked] (Alan Cox) writes:
> 
> Matthais Urlichs has some streams code going.

I love people who write my name correctly. ;-)

The stuff is available at ftp.rus.uni-stuttgart.de:/pub/systems/linux/isdn.
Patches based on 1.1.52 and libc-4.6.14 should be available sometime next
week. 

NB, the ISDN stuff currently only does German ISDN and doesn't support PPP
yet.

-- 
Cats are intended to teach us that not everything in nature has a
        function
-- 
Matthias Urlichs        \ XLink-POP Nürnberg  | EMail: [email-masked]
Schleiermacherstraße 12  \  Unix+Linux+Mac    | Phone: ...please use email.
90491 Nürnberg (Germany)  \   Consulting+Networking+Programming+etc'ing     42
          PGP: 1B 89 E2 1C 43 EA 80 44  15 D2 29 CF C6 C7 E0 DE 
      Click <A HREF="http://smurf.noris.de/~urlichs/finger">here</A>.

------------------------------

From: [email-masked] (Francesco Defilippo )
Subject: Re: windowing/menu and more c lib for linux?
Date: 10 Oct 1994 10:40:41 GMT

Dimitris Evmorfopoulos ([email-masked]) wrote:
: Hans Petter Fasteng ([email-masked]) wrote:
: : Is is made a c lib for gcc with functions for making window handling and
: : menus? if yes where can I get it?

: : -Hans

:       For terminals try ncurses, for X, ... well there are plenty of ways.

.. for X try libsx1.1 is a wonderful library. 
hplda1.unipv.it:/pub/linux/Libs/libsx-1.1.tar.gz

--
With Best Regards:

                         :sw=4,ts=4.
            +--------------------------------+
            |       Francesco Defilippo      |
            |      [email-masked]    |
            |  public-key: finger(1) e-mail  |
            +--------------------------------+ +---[Network]
                   ^ ^                        / 
                   0 0                       / 
=--------------oOO-(_)-OOo--------------------=[beware someone is watching u] 

          -- A black Hole is what happens when God divides by 0 --

------------------------------

From: [email-masked] (Rasmus Lerdorf)
Subject: Re: 1.1.52 bug?
Date: 10 Oct 1994 09:49:31 -0400

[email-masked] (Riku Saikkonen) writes:
>I can't be really sure if this is a kernel bug, because I just did a
>quite heavy upgrade of the machine (switched to a VLB motherboard +
>display adapter + IDE host adapter). That's why I'm asking...
>Hmm, now I compiled 1.1.50, and it seems to work. Except for one crash
>in X, but that is probably something else (no kernel panic or anything
>in the log). So I think it is a bug in 1.1.52...

I have been running 1.1.52 for close to a week now.  Not a single
crash yet.  VLB motherboard, 486dx2-66, Adaptec 1542 SCSI controller,
VLB Cirrus 5428 video and 16 Mb of Ram.

*Rasmus*

------------------------------

From: [email-masked] (Alan Cox)
Subject: Re: Does linux implement semaphores?
Date: Mon, 10 Oct 1994 10:10:56 GMT

In article <[email-masked]> [email-masked] writes:
>In comp.os.linux.development, Neal Patrick Howland ([email-masked]) wrote:
>> I was wondering in the standard linux develpment packages implemented
>> a semaphore synchronization call.  If not, how do you synchronize two 
>> processes to keep them from entering their critical sections at the same
>> time?
>Using named pipes is an elegant method to achieve this. 

There are also the system 5 semaphores which work rather nicely 8)

Alan

-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: [email-masked] (Alan Cox)
Subject: Re: Linux Mud
Date: Mon, 10 Oct 1994 10:14:53 GMT

In article <[email-masked]> [email-masked] (Alexander Williams) writes:
>Add to that list both MUSH and Interlude, and  the author of Interlude
>just bought  a Linux machine   so  I expect  Interlude/CodaII will  be
>natively developed on Linux.

Add AberMUD4 and AberMUD5 - AberMUD5 was originally developed on an Amiga,
ported to Unix, ported back to the Amiga with AmiTCP and then later on
developed under Linux. I've not done any AberMUD code for a long time since I
sort of ended up working on Linux networking instead 8).

Alan

-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

Crossposted-To: comp.os.linux.help
From: [email-masked] (Alan Cox)
Subject: Re: SMail security hole?
Date: Mon, 10 Oct 1994 10:17:28 GMT

In article <[email-masked]> [email-masked] (Herbert Xu) writes:
>I am using sendmail 8.6.9 and don't have this problem.  Another reason to
>switch over to sendmail I suppose.

Except for the fact the previous record on sendmail bugs like the 8.6.8 bug
that was basically hushed up until 8.6.9 is out. In my case I use smail
because I have an application sendmail can't do cleanly.

BTW: Its a 30 second recompile of src/main.c to fix the -D bug. Someone left
the argument out of the list that causes the program to unsetuid. 

Alan

-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: [email-masked] (Alan Cox)
Subject: Re: Does linux implement semaphores?
Date: Mon, 10 Oct 1994 10:22:38 GMT

In article <[email-masked]> [email-masked] (Brian Vinter) writes:
>Also there may be speed differences, I havn't tried it with Linux
>(actually my Linux is down as my st01 controller looses info and corrupts
>the fs, I'll bye a desent SCSI later - but if you have a posible solution
>please let me know) but on my HP735 (well not my own but ...) I get
>15K context switches using pipes and 26K using semaphores. If anybody would
>do the test on a desent Linux box mail me and I'll send the source 
>(_very_ small).

If you are in a real hurry shared memory, and an asm spinlock using xchg
will give you amazing context switch rates. Not portable but very fast.

Alan
-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: [email-masked] (Alan Cox)
Subject: Re: I/O in Linux
Date: Mon, 10 Oct 1994 10:26:40 GMT

In article <[email-masked]> bosse@tekla (Bo Branten) writes:
>In a C program I want to have a line like this:
>value = JoyStickPort();
>Can you tell me how the funcktion JoyStickPort should look like to
>return the value from the appropiate I/O port.

No no no no no 8) This isn't DOS. Get the joystick device and insmod it. Now
you can drive any joystick and portably 8). It gives you /dev/joy0 /dev/joy1
etc.

Alan

-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

Crossposted-To: comp.os.linux.help
From: [email-masked] (Alan Cox)
Subject: Re: SMail security hole?
Date: Mon, 10 Oct 1994 10:27:59 GMT

In article <[email-masked]> [email-masked] writes:
>What makes you believe that the last one found was the last one that exists?
>(certainly not the track record of this program...)

Quite: The best solution I've seen so far is the TIS toolkit stuff. 

Alan
-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

Crossposted-To: comp.os.linux.help
From: [email-masked] (Alan Cox)
Subject: Re: 1280x1024, Term, and System Lockup!
Date: Mon, 10 Oct 1994 10:37:14 GMT

In article <[email-masked]> [email-masked] writes:
>always figured that programs like xlock should not be able to work
>without being SUID, since ordinary users should not be able to leave
>the machine in a state that root can't restore from.  If they
>can, it is a security bug.

A decent lock program allows you to use the root password to unlock any
session. This is actually also a hazard because people then do their own
screen saver. CTRL-ALT-BACKSPACE is handy 8)

Alan
-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: "Theodore Ts'o" <[email-masked]>
Subject: New set of tty/serial patches...
Date: 10 Oct 1994 13:09:10 -0400
Reply-To: [email-masked]

There's a new set of tty/serial patches available on tsx-11.mit.edu, in
the directory /pub/linux/ALPHA/tty.  The patches are versus 1.1.52, and
fix some recent problems that some people have reported.  I *think* it
may also fix some of the kernel faults that some people have reported,
which usually happen in conjuction with using the serial driver in a
demanding dialup/callout system.  Hopefully the race condition has been
fixed and dealt with.

In any case, if those of you who have been reporting problems could give
this set of patches a try, and let me know how it works, I'd really
appreciate it.  Thanks!!!

                                                - Ted

Sun Oct  9 23:46:03 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * tty_io.c (do_tty_hangup): If the tty driver flags
                TTY_DRIVER_RESET_TERMIOS is set, then reset the termios
                settings back to the driver's initial configuration.  This
                allows the termios settings to be reset even if a process
                has hung up file descriptors keeping a pty's termios from
                being freed and reset.

        * tty_io.c (release_dev): Fix memory leak.  The pty's other
                termios structure should also be freed.

        * serial.c (rs_close, shutdown): Change how we wait for the
                transmitter to completely drain before shutting down the
                serial port.  We now do it by scheduling in another
                process instead of busy looping with the interrupts turned
                on.  This may eliminate some race condition problems that
                some people seem to be reporting.

Sun Sep 25 14:18:14 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * tty_io.c (release_dev): When freeing a tty make sure that both
                the tty and the o_tty (if present) aren't a process's
                controlling tty.  (Previously, we only checked the tty.)

        * serial.c (change_speed): Only enable the Modem Status
                Interrupt for a port if CLOCAL is not set or CRTSCTS
                is set.  If we're not checking the carrier detect and
                CTS line, there's no point in enabling the modem
                status interrupt.  This will save spurious interrupts
                from slowing down systems who have terminals that
                don't support either line.  (Of course, if you want
                only one of CD and CTS support, you will need a
                properly wired serial cable.)

Thu Sep 22 08:32:48 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * tty_io.c (do_SAK): Return if tty is null.

        * tty_io.c (_tty_name): Return "NULL tty" if the passed in tty is
                NULL.

Sat Sep 17 13:19:25 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * tty_ioctl.c (n_tty_ioctl): Fix TIOCGLCKTRMIOS and
                TIOCSLCKTRMIOS, which were totally broken.  Remove
                extra indirection from argument; it should be a struct
                termios *, not a struct termios **.
                &real_tty->termios_locked should have been
                real_tty->termios_locked.  This caused us to be
                reading and writing the termios_locked structure to
                random places in kernel memory.  

        * tty_io.c (release_dev): Oops!  Forgot to delete a critical kfree
                of the locked_termios.  This leaves the locked_termios
                structure pointed at a freed object.  

Fri Sep 16 08:13:25 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * tty_io.c (tty_open): Don't check for an exclusive open until
                after the device specific open routine has been called.
                Otherwise, the serial device ref counting will be screwed
                up.

        * serial.c (rs_open, block_til_ready): Don't set termios structure
                until after block_til_ready has returned successfully.
                Modify block_til_ready to check the normal_termios
                structure directly, so it doesn't rely on termios being
                set before its called.

Thu Sep 15 23:34:01 1994  Theodore Y. Ts'o  (tytso@rt-11)

        * serial.c (rs_close): Turn off interrupts during rs_close() to
                prevent a race condition with the hangup code (which
                runs during a software interrupt).

        * tty_io.c (release_dev): Don't free the locked_termios structure;
                its state must be retained across device opens.

        * tty_io.c (tty_unregister_driver): Added function to unregister a
                tty driver.  (For loadable device drivers.)

------------------------------

** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [email-masked]

You can send mail to the entire list (and comp.os.linux.development) via:

    Internet: [email-masked]

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Development Digest
******************************