master/ioctl.h
changeset 1259 5f9d1abbee71
parent 1258 900f1124e8f8
child 1264 e7882f246d7a
--- a/master/ioctl.h	Fri Oct 10 08:34:15 2008 +0000
+++ b/master/ioctl.h	Fri Oct 10 09:37:06 2008 +0000
@@ -56,6 +56,7 @@
 #define EC_IOW(nr, type)   _IOW(EC_IOCTL_TYPE, nr, type)
 #define EC_IOWR(nr, type) _IOWR(EC_IOCTL_TYPE, nr, type)
 
+// Command-line tool
 #define EC_IOCTL_MASTER                EC_IOR(0x00, ec_ioctl_master_t)
 #define EC_IOCTL_SLAVE                EC_IOWR(0x01, ec_ioctl_slave_t)
 #define EC_IOCTL_SLAVE_SYNC           EC_IOWR(0x02, ec_ioctl_slave_sync_t)
@@ -79,22 +80,28 @@
 #define EC_IOCTL_CONFIG_PDO_ENTRY     EC_IOWR(0x14, ec_ioctl_config_pdo_entry_t)
 #define EC_IOCTL_CONFIG_SDO           EC_IOWR(0x15, ec_ioctl_config_sdo_t)
 
+// Application interface
 #define EC_IOCTL_REQUEST                EC_IO(0x16)
 #define EC_IOCTL_CREATE_DOMAIN          EC_IO(0x17)
 #define EC_IOCTL_CREATE_SLAVE_CONFIG  EC_IOWR(0x18, ec_ioctl_config_t)
 #define EC_IOCTL_ACTIVATE              EC_IOR(0x19, size_t)
 #define EC_IOCTL_SEND                   EC_IO(0x1a)
 #define EC_IOCTL_RECEIVE                EC_IO(0x1b)
-#define EC_IOCTL_SC_SYNC               EC_IOW(0x1c, ec_ioctl_config_t)
-#define EC_IOCTL_SC_ADD_PDO            EC_IOW(0x1c, ec_ioctl_config_pdo_t)
-#define EC_IOCTL_SC_CLEAR_PDOS         EC_IOW(0x1d, ec_ioctl_config_pdo_t)
-#define EC_IOCTL_SC_ADD_ENTRY          EC_IOW(0x1e, ec_ioctl_add_pdo_entry_t)
-#define EC_IOCTL_SC_CLEAR_ENTRIES      EC_IOW(0x1f, ec_ioctl_config_pdo_t)
-#define EC_IOCTL_SC_REG_PDO_ENTRY     EC_IOWR(0x20, ec_ioctl_reg_pdo_entry_t)
-#define EC_IOCTL_SC_SDO                EC_IOW(0x21, ec_ioctl_sc_sdo_t)
-#define EC_IOCTL_DOMAIN_OFFSET          EC_IO(0x22)
-#define EC_IOCTL_DOMAIN_PROCESS         EC_IO(0x23)
-#define EC_IOCTL_DOMAIN_QUEUE           EC_IO(0x24)
+#define EC_IOCTL_MASTER_STATE          EC_IOR(0x1c, ec_master_state_t)
+#define EC_IOCTL_SC_SYNC               EC_IOW(0x1d, ec_ioctl_config_t)
+#define EC_IOCTL_SC_ADD_PDO            EC_IOW(0x1e, ec_ioctl_config_pdo_t)
+#define EC_IOCTL_SC_CLEAR_PDOS         EC_IOW(0x1f, ec_ioctl_config_pdo_t)
+#define EC_IOCTL_SC_ADD_ENTRY          EC_IOW(0x20, ec_ioctl_add_pdo_entry_t)
+#define EC_IOCTL_SC_CLEAR_ENTRIES      EC_IOW(0x21, ec_ioctl_config_pdo_t)
+#define EC_IOCTL_SC_REG_PDO_ENTRY     EC_IOWR(0x22, ec_ioctl_reg_pdo_entry_t)
+#define EC_IOCTL_SC_SDO                EC_IOW(0x23, ec_ioctl_sc_sdo_t)
+#define EC_IOCTL_SC_STATE             EC_IOWR(0x24, ec_ioctl_sc_state_t)
+#define EC_IOCTL_DOMAIN_OFFSET          EC_IO(0x25)
+#define EC_IOCTL_DOMAIN_PROCESS         EC_IO(0x26)
+#define EC_IOCTL_DOMAIN_QUEUE           EC_IO(0x27)
+#define EC_IOCTL_DOMAIN_STATE         EC_IOWR(0x28, ec_ioctl_domain_state_t)
+
+/*****************************************************************************/
 
 #define EC_IOCTL_STRING_SIZE 64
 
@@ -413,6 +420,26 @@
 
 /*****************************************************************************/
 
+typedef struct {
+    // inputs
+    uint32_t config_index;
+
+    // outputs
+    ec_slave_config_state_t *state;
+} ec_ioctl_sc_state_t;
+
+/*****************************************************************************/
+
+typedef struct {
+    // inputs
+    uint32_t domain_index;
+
+    // outputs
+    ec_domain_state_t *state;
+} ec_ioctl_domain_state_t;
+
+/*****************************************************************************/
+
 /** \endcond */
 
 #endif