Chris BAYLEY
/
SPI-2-USB
Dump SPI from input to pc.serial
tinyQ.c@0:1ca47c273d0f, 2012-01-30 (annotated)
- Committer:
- cbayley
- Date:
- Mon Jan 30 23:08:52 2012 +0000
- Revision:
- 0:1ca47c273d0f
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cbayley | 0:1ca47c273d0f | 1 | #include "string.h" |
cbayley | 0:1ca47c273d0f | 2 | #include "tinyQ.h" |
cbayley | 0:1ca47c273d0f | 3 | |
cbayley | 0:1ca47c273d0f | 4 | |
cbayley | 0:1ca47c273d0f | 5 | |
cbayley | 0:1ca47c273d0f | 6 | /** |
cbayley | 0:1ca47c273d0f | 7 | * \brief Push an Accessibility Event onto our queue for sending to the iphone |
cbayley | 0:1ca47c273d0f | 8 | * \param q pointer to our tinyQ_t |
cbayley | 0:1ca47c273d0f | 9 | * \param c the Event to send to the iphone |
cbayley | 0:1ca47c273d0f | 10 | * \return null if Q full, 1 on success |
cbayley | 0:1ca47c273d0f | 11 | * \sa Qpop(), Qjump() |
cbayley | 0:1ca47c273d0f | 12 | * \ingroup tinyQ |
cbayley | 0:1ca47c273d0f | 13 | */ |
cbayley | 0:1ca47c273d0f | 14 | int Qpush( tinyQ_t* q, char c ) |
cbayley | 0:1ca47c273d0f | 15 | { |
cbayley | 0:1ca47c273d0f | 16 | if ( q->fill == Q_SIZE ) |
cbayley | 0:1ca47c273d0f | 17 | return 0; |
cbayley | 0:1ca47c273d0f | 18 | |
cbayley | 0:1ca47c273d0f | 19 | __disable_irq(); |
cbayley | 0:1ca47c273d0f | 20 | q->fill++; |
cbayley | 0:1ca47c273d0f | 21 | q->data[q->head++] = c; |
cbayley | 0:1ca47c273d0f | 22 | __enable_irq(); |
cbayley | 0:1ca47c273d0f | 23 | |
cbayley | 0:1ca47c273d0f | 24 | return 1; |
cbayley | 0:1ca47c273d0f | 25 | } |
cbayley | 0:1ca47c273d0f | 26 | |
cbayley | 0:1ca47c273d0f | 27 | |
cbayley | 0:1ca47c273d0f | 28 | /** |
cbayley | 0:1ca47c273d0f | 29 | * \brief Pop an Accessibility Event off our queue for sending to the iphone |
cbayley | 0:1ca47c273d0f | 30 | * \param q pointer to our tinyQ_t |
cbayley | 0:1ca47c273d0f | 31 | * \param c pointer to receive the Event |
cbayley | 0:1ca47c273d0f | 32 | * \return null if Q empty, 1 on success |
cbayley | 0:1ca47c273d0f | 33 | * \sa Qpop(), Qjump() |
cbayley | 0:1ca47c273d0f | 34 | * \ingroup tinyQ |
cbayley | 0:1ca47c273d0f | 35 | */ |
cbayley | 0:1ca47c273d0f | 36 | int Qpop( tinyQ_t* q, char * c) |
cbayley | 0:1ca47c273d0f | 37 | { |
cbayley | 0:1ca47c273d0f | 38 | if (! q->fill ) |
cbayley | 0:1ca47c273d0f | 39 | return 0; |
cbayley | 0:1ca47c273d0f | 40 | |
cbayley | 0:1ca47c273d0f | 41 | __disable_irq(); |
cbayley | 0:1ca47c273d0f | 42 | q->fill--; |
cbayley | 0:1ca47c273d0f | 43 | *c = q->data[q->tail++]; |
cbayley | 0:1ca47c273d0f | 44 | __enable_irq(); |
cbayley | 0:1ca47c273d0f | 45 | |
cbayley | 0:1ca47c273d0f | 46 | return 1; |
cbayley | 0:1ca47c273d0f | 47 | } |
cbayley | 0:1ca47c273d0f | 48 | |
cbayley | 0:1ca47c273d0f | 49 | int Qfree( tinyQ_t* q ) |
cbayley | 0:1ca47c273d0f | 50 | { |
cbayley | 0:1ca47c273d0f | 51 | return (Q_SIZE - q->fill); |
cbayley | 0:1ca47c273d0f | 52 | } |
cbayley | 0:1ca47c273d0f | 53 | |
cbayley | 0:1ca47c273d0f | 54 | void Qinit( tinyQ_t * q ) |
cbayley | 0:1ca47c273d0f | 55 | { |
cbayley | 0:1ca47c273d0f | 56 | memset( q, 0, sizeof(q) ); |
cbayley | 0:1ca47c273d0f | 57 | } |