I have a question regarding the serial driver devc-ser8250. When two applications say App1 & App2 are trying to write onto two different ports /dev/ser1 & /dev/ser2 respectively, at the same time, How the _IO_WRITE Message of both this two processes are handled?
How the data is sent to the driver by the IO-CHAR Library?
Both messages will cause a thread to execute in the driver. Since they are dealing with different ports there is no contention. If you have multiple processors, both threads could execute simultaneously.
Data is sent to the driver using message passing. The IO-CHAR Library has cover functions that send the messages using the MsgSend() kernel call. The first few bytes of the message are a code telling the driver what the messages is requesting.