diff options
| author | xqyjlj <[email protected]> | 2023-10-25 20:31:25 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-25 20:31:25 +0800 |
| commit | 3283f54c7a0444b2e51ec79a4da57e7871528f05 (patch) | |
| tree | e4bcd748ad2362f16d0dea5c5da62922de466999 /components/drivers/include | |
| parent | 91fc52df3635d5dda8285616420f08efa79cea04 (diff) | |
🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)
Signed-off-by: Shell <[email protected]>
Co-authored-by: Shell <[email protected]>
Diffstat (limited to 'components/drivers/include')
| -rw-r--r-- | components/drivers/include/drivers/serial.h | 2 | ||||
| -rw-r--r-- | components/drivers/include/ipc/completion.h | 1 | ||||
| -rw-r--r-- | components/drivers/include/ipc/dataqueue.h | 1 | ||||
| -rw-r--r-- | components/drivers/include/ipc/ringblk_buf.h | 1 | ||||
| -rw-r--r-- | components/drivers/include/ipc/waitqueue.h | 2 | ||||
| -rw-r--r-- | components/drivers/include/ipc/workqueue.h | 1 |
6 files changed, 8 insertions, 0 deletions
diff --git a/components/drivers/include/drivers/serial.h b/components/drivers/include/drivers/serial.h index 09d7c2f083..9435249cd8 100644 --- a/components/drivers/include/drivers/serial.h +++ b/components/drivers/include/drivers/serial.h @@ -152,6 +152,8 @@ struct rt_serial_device void *serial_rx; void *serial_tx; + struct rt_spinlock spinlock; + struct rt_device_notify rx_notify; }; typedef struct rt_serial_device rt_serial_t; diff --git a/components/drivers/include/ipc/completion.h b/components/drivers/include/ipc/completion.h index bdddbb6d83..b8d765027e 100644 --- a/components/drivers/include/ipc/completion.h +++ b/components/drivers/include/ipc/completion.h @@ -22,6 +22,7 @@ struct rt_completion /* suspended list */ rt_list_t suspended_list; + struct rt_spinlock spinlock; }; void rt_completion_init(struct rt_completion *completion); diff --git a/components/drivers/include/ipc/dataqueue.h b/components/drivers/include/ipc/dataqueue.h index e49c6343f9..4bf848350d 100644 --- a/components/drivers/include/ipc/dataqueue.h +++ b/components/drivers/include/ipc/dataqueue.h @@ -33,6 +33,7 @@ struct rt_data_queue rt_uint16_t is_full : 1; struct rt_data_item *queue; + struct rt_spinlock spinlock; rt_list_t suspended_push_list; rt_list_t suspended_pop_list; diff --git a/components/drivers/include/ipc/ringblk_buf.h b/components/drivers/include/ipc/ringblk_buf.h index a541bdd5b0..81d1866989 100644 --- a/components/drivers/include/ipc/ringblk_buf.h +++ b/components/drivers/include/ipc/ringblk_buf.h @@ -78,6 +78,7 @@ struct rt_rbb rt_slist_t *tail; /* free node list */ rt_slist_t free_list; + struct rt_spinlock spinlock; }; typedef struct rt_rbb *rt_rbb_t; diff --git a/components/drivers/include/ipc/waitqueue.h b/components/drivers/include/ipc/waitqueue.h index 05ee5e0813..073300a72e 100644 --- a/components/drivers/include/ipc/waitqueue.h +++ b/components/drivers/include/ipc/waitqueue.h @@ -26,6 +26,7 @@ struct rt_wqueue_node rt_thread_t polling_thread; rt_list_t list; + rt_wqueue_t *wqueue; rt_wqueue_func_t wakeup; rt_uint32_t key; }; @@ -39,6 +40,7 @@ rt_inline void rt_wqueue_init(rt_wqueue_t *queue) queue->flag = RT_WQ_FLAG_CLEAN; rt_list_init(&(queue->waiting_list)); + rt_spin_lock_init(&(queue->spinlock)); } void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node); diff --git a/components/drivers/include/ipc/workqueue.h b/components/drivers/include/ipc/workqueue.h index 9d30cd3f34..e05a7ab63f 100644 --- a/components/drivers/include/ipc/workqueue.h +++ b/components/drivers/include/ipc/workqueue.h @@ -41,6 +41,7 @@ struct rt_workqueue struct rt_semaphore sem; rt_thread_t work_thread; + struct rt_spinlock spinlock; }; struct rt_work |
