@@ -37,6 +37,7 @@ int odp_shm_init_local(void);
int odp_buffer_pool_init_global(void);
int odp_buffer_pool_term_global(void);
+int odp_buffer_pool_term_local(void);
int odp_pktio_init_global(void);
int odp_pktio_term_global(void);
@@ -54,6 +55,7 @@ int odp_crypto_term_global(void);
int odp_schedule_init_global(void);
int odp_schedule_term_global(void);
int odp_schedule_init_local(void);
+int odp_schedule_term_local(void);
int odp_timer_init_global(void);
int odp_timer_disarm_all(void);
@@ -124,6 +124,12 @@ int odp_buffer_pool_term_global(void)
return ret;
}
+int odp_buffer_pool_term_local(void)
+{
+ _odp_flush_caches();
+ return 0;
+}
+
/**
* Pool creation
*/
@@ -141,5 +141,15 @@ int odp_init_local(void)
int odp_term_local(void)
{
+ if (odp_schedule_term_local()) {
+ ODP_ERR("ODP schedule local term failed.\n");
+ return -1;
+ }
+
+ if (odp_buffer_pool_term_local()) {
+ ODP_ERR("ODP buffer pool local term failed.\n");
+ return -1;
+ }
+
return (odp_thread_term_local() > 0) ? 1 : 0;
}
@@ -20,7 +20,8 @@
#include <odp_hints.h>
#include <odp_queue_internal.h>
-
+#include <string.h>
+#include <stdio.h>
/* Limits to number of scheduled queues */
#define SCHED_POOL_SIZE (256*1024)
@@ -188,6 +189,11 @@ int odp_schedule_init_local(void)
return 0;
}
+int odp_schedule_term_local(void)
+{
+ memset(&sched_local, 0, sizeof(sched_local_t));
+ return 0;
+}
void odp_schedule_mask_set(odp_queue_t queue, int prio)
{