• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Bestechnic (Shanghai) Co., Ltd. All rights reserved.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef LOCKCQUEUE_H
16 #define LOCKCQUEUE_H
17 
18 #if defined(__cplusplus)
19 extern "C" {
20 #endif
21 
22 #include "cqueue.h"
23 
24 struct lockcqueue {
25     CQueue cqueue;
26     osMutexId queue_mutex_id;
27     uint32_t os_mutex_cb_name[3];
28     osMutexDef_t os_mutex_def_name;
29 };
30 
31 int lockcqueue_init(struct lockcqueue *q, uint32_t size, uint8_t *buf);
32 int lockcqueue_enqueue(struct lockcqueue *q, uint8_t *buf, uint32_t size);
33 int lockcqueue_dequeue(struct lockcqueue *q, uint8_t *buf, uint32_t size);
34 
35 #if defined(__cplusplus)
36 }
37 #endif
38 
39 #endif /* LOCKCQUEUE_H */
40