This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: serial.c, dsr_lock for read or write
- To: Phung Te Ha <phungte at yahoo dot com>
- Subject: RE: [ECOS] serial.c, dsr_lock for read or write
- From: Gary Thomas <gthomas at cambridge dot redhat dot com>
- Date: Wed, 23 May 2001 07:11:08 -0600 (MDT)
- Cc: ecos-discuss at sources dot redhat dot com
- Organization: Red Hat, Inc.
On 22-May-2001 Phung Te Ha wrote:
> Hi everyone,
>
> I'm using eCos on a custom board. The CPU is an ARM7.
> I use serial.c to buffer my USB device driver and
> realize that there's a call to
> cyg_drv_dsr_lock()/unlock() around the serial_read()
> and serial_write core. This blocks the other DSRs if I
> have a blocking read waiting for data for instance.
>
> Am I seeing it right? It seems too strong for me
> blocking all the DSRs, and possibly quite long time
> this way.
DSRs are only locked out while shared data structures are being
examined. Once it is determined that the driver needs to wait
for data to move (in or out), the lock will be dropped.
Note: this mechanism really only works for interrupt-driven devices.