X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fser.h;h=ba8eab97573ad1f3a5db17fc666f8300434e0d10;hb=7c03b1e47ddefae9577cfe0d2dd3f6fff83b57ec;hp=27f022cd947b6ab532a8c57922e6e7b0a7edfc7f;hpb=e40b7f1ecfc7be6267192d54b0650960dda84d6d;p=bertos.git diff --git a/drv/ser.h b/drv/ser.h index 27f022cd..ba8eab97 100755 --- a/drv/ser.h +++ b/drv/ser.h @@ -14,6 +14,24 @@ /*#* *#* $Log$ + *#* Revision 1.36 2007/01/29 11:30:30 batt + *#* Reimplement ser_clearstatus as a macro. + *#* + *#* Revision 1.35 2007/01/27 20:47:12 batt + *#* Add clear status. + *#* + *#* Revision 1.34 2006/11/20 15:07:40 batt + *#* Revert unneeded locked functions. + *#* + *#* Revision 1.33 2006/11/17 17:03:58 batt + *#* Implement ser_setstatus and ser_getstatus as functions to avoid race conditions. + *#* + *#* Revision 1.32 2006/11/17 16:01:12 batt + *#* Serial status MUST be volatile. + *#* + *#* Revision 1.31 2006/09/13 18:22:48 bernie + *#* Typo. + *#* *#* Revision 1.30 2006/09/13 18:21:23 bernie *#* Add configurable SPI pin mapping. *#* @@ -178,7 +196,7 @@ #define SERRF_TX (SERRF_TXTIMEOUT) /*\}*/ -/** LSB or MSB first data order, used with SPI AVR serial */ +/** * \name LSB or MSB first data order, used with SPI AVR serial * \{ */ @@ -206,7 +224,7 @@ */ enum { -#if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 +#if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 SER_UART0, SER_UART1, SER_SPI, @@ -263,7 +281,7 @@ typedef struct Serial #endif /** Holds the flags defined above. Will be 0 when no errors have occurred. */ - serstatus_t status; + volatile serstatus_t status; /** Low-level interface to hardware. */ struct SerialHardware* hw; @@ -301,6 +319,7 @@ extern void ser_close(struct Serial *port); */ #define ser_getstatus(h) ((h)->status) #define ser_setstatus(h, x) ((h)->status = (x)) +#define ser_clearstatus(h) ser_setstatus(h, 0) /* \} */ #endif /* DRV_SER_H */