home *** CD-ROM | disk | FTP | other *** search
- /*********
- *
- * 90-01-10 Hue
- *
- * Set channel pointer:
- * 2 CW_ACK q->top := q->ahead
- * 3 CW_NAK q->ahead := q->top
- *
- **********/
-
- #include <ts.h>
-
- short cwset( CHAN *cn , short status)
- {
- int cpuflags;
-
- cpuflags = cli() ; /* disable interrupts */
- if ( cn->wf && cn->wf != curproc ) { /* reserved for someone else*/
- putf( cpuflags ) ;
- return 0 ;
- }
-
- switch (status)
- {
- case CW_FLUSH : cn->q.bot = cn->q.top;
- break;
- case CW_ACK : cn->q.top = cn->q.ahead;
- break;
- case CW_NAK : cn->q.ahead = cn->q.top;
- break;
- }
-
- cn->q.empty = ( cn->q.top == cn->q.bot);
- cn->q.full = 0;
-
- putf(cpuflags);
- return 1;
- }
-