X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdevices%2Fintq.h;h=2312b129e1fd984240bc5813d56da9760eb9bd3b;hb=13bc50213bc87981f67ceabd7a623e05917fd09d;hp=2b3edeafea24f51c8c01ec441145ee1bc56d6347;hpb=eb718e3b5a5470b11e58dcc652f79e115272257a;p=pintos-anon diff --git a/src/devices/intq.h b/src/devices/intq.h index 2b3edea..2312b12 100644 --- a/src/devices/intq.h +++ b/src/devices/intq.h @@ -7,14 +7,14 @@ /* An "interrupt queue", a circular buffer shared between kernel threads and external interrupt handlers. - These functions can be called from kernel threads or from - external interrupt handlers. Except for intq_init(), + Interrupt queue functions can be called from kernel threads or + from external interrupt handlers. Except for intq_init(), interrupts must be off in either case. - Incidentally, this has the structure of a "monitor". Normally - we'd use locks and condition variables from threads/synch.h to - implement a monitor, but those are intended only to protect - kernel threads from one another, not from interrupt + The interrupt queue has the structure of a "monitor". Locks + and condition variables from threads/synch.h cannot be used in + this case, as they normally would, because they can only + protect kernel threads from one another, not from interrupt handlers. */ /* Queue buffer size, in bytes. */ @@ -34,7 +34,7 @@ struct intq int tail; /* Old data is read here. */ }; -void intq_init (struct intq *, const char *); +void intq_init (struct intq *); bool intq_empty (const struct intq *); bool intq_full (const struct intq *); uint8_t intq_getc (struct intq *);