#ifdef _H_atmega128hardware_H
static int uart_putchar(char c, FILE *stream);
-static FILE atm128_stdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
+static FILE atm128_stdout =
+ FDEV_SETUP_STREAM(TCAST(int (*)(char c, FILE *stream), uart_putchar),
+ NULL, _FDEV_SETUP_WRITE);
#endif
-module PrintfP {
+module PrintfP @safe() {
provides {
interface Boot;
}
}
event void SerialControl.startDone(error_t error) {
+ if (state == S_STOPPED) {
#ifdef _H_atmega128hardware_H
- stdout = &atm128_stdout;
+ stdout = &atm128_stdout;
#endif
- atomic state = S_STARTED;
- signal Boot.booted();
+ atomic state = S_STARTED;
+ signal Boot.booted();
+ }
}
event void SerialControl.stopDone(error_t error) {
else post retrySend();
}
-#ifdef _H_msp430hardware_h
- int putchar(int c) __attribute__((noinline)) @C() @spontaneous() {
-#endif
#ifdef _H_atmega128hardware_H
int uart_putchar(char c, FILE *stream) __attribute__((noinline)) @C() @spontaneous() {
+#else
+#ifdef __M16C62PHARDWARE_H__
+ int lowlevel_putc(int c) __attribute__((noinline)) @C() @spontaneous() {
+#else
+ int putchar(int c) __attribute__((noinline)) @C() @spontaneous() {
+#endif
#endif
- if((state == S_STARTED) && (call Queue.size() >= 5*sizeof(printf_msg_t))) {
+ if((state == S_STARTED) && (call Queue.size() >= ((PRINTF_BUFFER_SIZE)/2))) {
state = S_FLUSHING;
sendNext();
}