Move kfile interface to the io/ directory.
[bertos.git] / bertos / net / afsk.h
index 020b2f9618a5f0f02f7bf89a0166f67d0f108a58..d5eb272db1dc16e903c4f7d2ce433a06a15297df 100644 (file)
@@ -32,7 +32,6 @@
  *
  * \brief AFSK1200 modem.
  *
- * \version $Id$
  * \author Francesco Sacchi <asterix@develer.com>
  *
  * $WIZ$ module_name = "afsk"
  * $WIZ$ module_hw = "bertos/hw/hw_afsk.h"
  */
 
-#ifndef DRV_AFSK_H
-#define DRV_AFSK_H
+#ifndef NET_AFSK_H
+#define NET_AFSK_H
 
 #include "cfg/cfg_afsk.h"
 #include "hw/hw_afsk.h"
 
-#include <kern/kfile.h>
+#include <io/kfile.h>
 #include <cfg/compiler.h>
 #include <struct/fifobuf.h>
 
@@ -81,6 +80,10 @@ typedef struct Hdlc
        bool rxstart;       ///< True if an HDLC_FLAG char has been found in the bitstream.
 } Hdlc;
 
+/**
+ * RX FIFO buffer full error.
+ */
+#define AFSK_RXFIFO_OVERRUN BV(0)
 
 /**
  * AFSK1200 modem context.
@@ -165,6 +168,12 @@ typedef struct Afsk
        /** True while modem sends data */
        volatile bool sending;
 
+       /**
+        * AFSK modem status.
+        * If 0 all is ok, otherwise errors are present.
+        */
+       volatile int status;
+
        /** Hdlc context */
        Hdlc hdlc;
 
@@ -177,7 +186,7 @@ typedef struct Afsk
        uint16_t preamble_len;
 
        /**
-        * Preamble length.
+        * Trailer length.
         * After sending the actual data, the AFSK shifts out
         * trailer_len HDLC_FLAG characters.
         * This helps to synchronize the demodulator filters on the receiver side.
@@ -195,12 +204,12 @@ INLINE Afsk *AFSK_CAST(KFile *fd)
 
 
 void afsk_adc_isr(Afsk *af, int8_t sample);
-void afsk_dac_isr(Afsk *af);
+uint8_t afsk_dac_isr(Afsk *af);
 void afsk_init(Afsk *af, int adc_ch, int dac_ch);
 
 
 /**
- * \name afsk filter type
+ * \name Afsk filter types.
  * $WIZ$ afsk_filter_list = "AFSK_BUTTERWORTH", "AFSK_CHEBYSHEV"
  * \{
  */
@@ -212,4 +221,4 @@ int afsk_testSetup(void);
 int afsk_testRun(void);
 int afsk_testTearDown(void);
 
-#endif
+#endif /* NET_AFSK_H */