summaryrefslogtreecommitdiff
path: root/osal
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2026-02-11 19:49:08 +0800
committersakumisu <[email protected]>2026-02-11 19:58:09 +0800
commit362fec943a386c8cf623108f5f9019904270156f (patch)
tree9c9258a1f0c47adf38817f0a249e2da068b7917d /osal
parent081c87206fccb374d1f1926fe47a44f75ff7d67a (diff)
refactor: move cherryrb and cherrymp into common dir, rename with usb_ringbuffer and usb_mempool
Signed-off-by: sakumisu <[email protected]>
Diffstat (limited to 'osal')
-rw-r--r--osal/idf/usb_osal_idf.c5
-rw-r--r--osal/usb_osal_freertos.c11
-rw-r--r--osal/usb_osal_liteos_m.c5
-rw-r--r--osal/usb_osal_nuttx.c5
-rw-r--r--osal/usb_osal_rtthread.c5
-rw-r--r--osal/usb_osal_threadx.c5
-rw-r--r--osal/usb_osal_zephyr.c14
7 files changed, 50 insertions, 0 deletions
diff --git a/osal/idf/usb_osal_idf.c b/osal/idf/usb_osal_idf.c
index b87db74f..69f734e8 100644
--- a/osal/idf/usb_osal_idf.c
+++ b/osal/idf/usb_osal_idf.c
@@ -43,6 +43,11 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return (usb_osal_sem_t)xSemaphoreCreateCounting(1, initial_count);
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ return (usb_osal_sem_t)xSemaphoreCreateCounting(0, max_count);
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
vSemaphoreDelete((SemaphoreHandle_t)sem);
diff --git a/osal/usb_osal_freertos.c b/osal/usb_osal_freertos.c
index 6bdd883b..b30433cb 100644
--- a/osal/usb_osal_freertos.c
+++ b/osal/usb_osal_freertos.c
@@ -53,6 +53,17 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return sem;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ usb_osal_sem_t sem = (usb_osal_sem_t)xSemaphoreCreateCounting(max_count, 0);
+ if (sem == NULL) {
+ USB_LOG_ERR("Create semaphore failed\r\n");
+ while (1) {
+ }
+ }
+ return sem;
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
vSemaphoreDelete((SemaphoreHandle_t)sem);
diff --git a/osal/usb_osal_liteos_m.c b/osal/usb_osal_liteos_m.c
index cda86665..6eaf76d9 100644
--- a/osal/usb_osal_liteos_m.c
+++ b/osal/usb_osal_liteos_m.c
@@ -81,6 +81,11 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return (usb_osal_sem_t)sem_handle;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ return usb_osal_sem_create(0);
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
UINT32 sem_handle = (UINT32)sem;
diff --git a/osal/usb_osal_nuttx.c b/osal/usb_osal_nuttx.c
index 1a44fb48..36b53fa2 100644
--- a/osal/usb_osal_nuttx.c
+++ b/osal/usb_osal_nuttx.c
@@ -106,6 +106,11 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return (usb_osal_sem_t)sem;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ return usb_osal_sem_create(0);
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
sem_t *__sem = (sem_t *)sem;
diff --git a/osal/usb_osal_rtthread.c b/osal/usb_osal_rtthread.c
index 8454283f..cf0e683e 100644
--- a/osal/usb_osal_rtthread.c
+++ b/osal/usb_osal_rtthread.c
@@ -62,6 +62,11 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return sem;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ return usb_osal_sem_create(0);
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
rt_sem_delete((rt_sem_t)sem);
diff --git a/osal/usb_osal_threadx.c b/osal/usb_osal_threadx.c
index 8d6d7c6b..2a6d0057 100644
--- a/osal/usb_osal_threadx.c
+++ b/osal/usb_osal_threadx.c
@@ -74,6 +74,11 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return (usb_osal_sem_t)sem_ptr;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ return usb_osal_sem_create(0);
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
tx_semaphore_delete((TX_SEMAPHORE *)sem);
diff --git a/osal/usb_osal_zephyr.c b/osal/usb_osal_zephyr.c
index ce214e6e..b65d7523 100644
--- a/osal/usb_osal_zephyr.c
+++ b/osal/usb_osal_zephyr.c
@@ -104,6 +104,20 @@ usb_osal_sem_t usb_osal_sem_create(uint32_t initial_count)
return (usb_osal_sem_t)sem;
}
+usb_osal_sem_t usb_osal_sem_create_counting(uint32_t max_count)
+{
+ struct k_sem *sem;
+
+ sem = k_malloc(sizeof(struct k_sem));
+ if (sem == NULL) {
+ USB_LOG_ERR("Create semaphore faild\r\n");
+ return NULL;
+ }
+ k_sem_init(sem, 0, max_count);
+
+ return (usb_osal_sem_t)sem;
+}
+
void usb_osal_sem_delete(usb_osal_sem_t sem)
{
while (k_sem_take((struct k_sem *)sem, K_NO_WAIT) != 0) {