//interupt waits for a read from the port ISR OCOIsr(void) { OS_ISR_ENTER(); ReceiveVar = sci_read(); OSSemPost(ReceiveFlag); OSIntExit(); }
void LineReader::nextChunk () { int reminder = buf_end_ - cur_line_beg_; if (reminder) { if (!cur_line_beg_) ers << "line in file being read too ling to fit in buffer" << Throw; memmove (buffer_, buffer_ + cur_line_beg_, reminder); } cur_line_end_ -= cur_line_beg_; cur_line_beg_ = 0; buf_end_ = reminder; int rd = sci_read (fhandle_, buffer_ + buf_end_, LR_BUF_SIZE - buf_end_); buf_end_ += rd; }