Esempio n. 1
0
uint8_t mp_free_run_buffer()					// EMPTY current run buf & adv to next
{
	mp_clear_buffer(mb.r);						// clear it out (& reset replannable)
//	mb.r->buffer_state = MP_BUFFER_EMPTY;		// redundant after the clear, above
	mb.r = mb.r->nx;							// advance to next run buffer
	if (mb.r->buffer_state == MP_BUFFER_QUEUED) {// only if queued...
		mb.r->buffer_state = MP_BUFFER_PENDING;	// pend next buffer
	}
	mb.buffers_available++;
	qr_request_queue_report(-1);				// request a QR and add to the "removed buffers" count
	return ((mb.w == mb.r) ? true : false); 	// return true if the queue emptied
}
Esempio n. 2
0
File: planner.c Progetto: ADTL/TinyG
void mp_free_run_buffer()						// EMPTY current run buf & adv to next
{
	mp_clear_buffer(mb.r);						// clear it out (& reset replannable)
//	mb.r->buffer_state = MP_BUFFER_EMPTY;		// redundant after the clear, above
	mb.r = mb.r->nx;							 // advance to next run buffer
	if (mb.r->buffer_state == MP_BUFFER_QUEUED) {// only if queued...
		mb.r->buffer_state = MP_BUFFER_PENDING;  // pend next buffer
	}
	if (mb.w == mb.r) cm_cycle_end();			// end the cycle if the queue empties
	mb.buffers_available++;
	rpt_request_queue_report(-1);				// add to the "removed buffers" count
}