diff options
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 |
