misc: Point to correct simavr include dirs
[simavr] / simavr / sim / avr_ioport.h
index 06497e2..c6f5a4b 100644 (file)
 #ifndef __AVR_IOPORT_H__
 #define __AVR_IOPORT_H__
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include "sim_avr.h"
 
 enum {
@@ -33,6 +37,8 @@ enum {
        IOPORT_IRQ_COUNT
 };
 
+#define AVR_IOPORT_OUTPUT 0x100
+
 // add port name (uppercase) to get the real IRQ
 #define AVR_IOCTL_IOPORT_GETIRQ(_name) AVR_IOCTL_DEF('i','o','g',(_name))
 
@@ -64,6 +70,15 @@ typedef struct avr_ioport_state_t {
 // add port name (uppercase) to get the port state
 #define AVR_IOCTL_IOPORT_GETSTATE(_name) AVR_IOCTL_DEF('i','o','s',(_name))
 
+/**
+ * pin structure
+ */
+typedef struct avr_iopin_t {
+       uint16_t port : 8;                      ///< port e.g. 'B'
+       uint16_t pin : 8;               ///< pin number
+} avr_iopin_t;
+#define AVR_IOPIN(_port, _pin) { .port = _port, .pin = _pin }
+
 /*
  * Definition for an IO port
  */
@@ -81,4 +96,8 @@ typedef struct avr_ioport_t {
 void avr_ioport_init(avr_t * avr, avr_ioport_t * port);
 
 
+#ifdef __cplusplus
+};
+#endif
+
 #endif /* __AVR_IOPORT_H__ */