This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: serial.c, dsr_lock for read or write



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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]