event/dpaa2: remove check on epoll return
[dpdk.git] / drivers / event / octeontx / ssovf_evdev.h
index 8fe18f5..18293e9 100644 (file)
@@ -22,6 +22,7 @@
 #define ssovf_log_dbg(fmt, ...) SSOVF_LOG(DEBUG, fmt, ##__VA_ARGS__)
 #define ssovf_log_err(fmt, ...) SSOVF_LOG(ERR, fmt, ##__VA_ARGS__)
 #define ssovf_func_trace ssovf_log_dbg
+#define ssovf_log_selftest ssovf_log_info
 
 #define SSO_MAX_VHGRP                     (64)
 #define SSO_MAX_VHWS                      (32)
@@ -79,6 +80,8 @@
 #define SSO_GRP_GET_PRIORITY              0x7
 #define SSO_GRP_SET_PRIORITY              0x8
 
+#define SSOVF_SELFTEST_ARG               ("selftest")
+
 /*
  * In Cavium OcteonTX SoC, all accesses to the device registers are
  * implictly strongly ordered. So, The relaxed version of IO operation is
@@ -116,6 +119,16 @@ do {                                                       \
 } while (0)
 #endif
 
+struct ssovf_info {
+       uint16_t domain; /* Domain id */
+       uint8_t total_ssovfs; /* Total sso groups available in domain */
+       uint8_t total_ssowvfs;/* Total sso hws available in domain */
+};
+
+enum ssovf_type {
+       OCTEONTX_SSO_GROUP, /* SSO group vf */
+       OCTEONTX_SSO_HWS,  /* SSO hardware workslot vf */
+};
 
 struct ssovf_evdev {
        uint8_t max_event_queues;
@@ -161,7 +174,13 @@ uint16_t ssows_deq_timeout(void *port, struct rte_event *ev,
                uint64_t timeout_ticks);
 uint16_t ssows_deq_timeout_burst(void *port, struct rte_event ev[],
                uint16_t nb_events, uint64_t timeout_ticks);
-void ssows_flush_events(struct ssows *ws, uint8_t queue_id);
+
+typedef void (*ssows_handle_event_t)(void *arg, struct rte_event ev);
+void ssows_flush_events(struct ssows *ws, uint8_t queue_id,
+               ssows_handle_event_t fn, void *arg);
 void ssows_reset(struct ssows *ws);
+int ssovf_info(struct ssovf_info *info);
+void *ssovf_bar(enum ssovf_type, uint8_t id, uint8_t bar);
+int test_eventdev_octeontx(void);
 
 #endif /* __SSOVF_EVDEV_H__ */