Developer World
Spresense SDK Library v1.4.2-3df2e9d
types.h
Go to the documentation of this file.
1 /****************************************************************************
2  * modules/include/asmp/types.h
3  *
4  * Copyright 2018 Sony Semiconductor Solutions Corporation
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in
14  * the documentation and/or other materials provided with the
15  * distribution.
16  * 3. Neither the name of Sony Semiconductor Solutions Corporation nor
17  * the names of its contributors may be used to endorse or promote
18  * products derived from this software without specific prior written
19  * permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
28  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *
34  ****************************************************************************/
35 
43 #ifndef __INCLUDE_ASMP_TYPES_H
44 #define __INCLUDE_ASMP_TYPES_H
45 
46 #include <sys/types.h>
47 #include <queue.h>
48 
49 #define MPOBJTYPE_SHM 0x4588 /* MP shared memory object */
50 #define MPOBJTYPE_MQ 0x2dc6 /* MP message queue object */
51 #define MPOBJTYPE_MUTEX 0x0686 /* MP mutex object */
52 
53 /*
54  * MP object initializer
55  */
56 
57 #define mpobj_init(obj, t, k) do { (obj)->super.type = MPOBJTYPE_ ## t; (obj)->super.key = (k); } while (0)
58 
64 typedef int16_t cpuid_t;
65 
71 typedef int16_t mpobjtype_t;
72 
73 /* This typedef is supplemental */
74 
75 #ifndef CONFIG_SMP
76 typedef volatile uint8_t cpu_set_t;
77 #endif
78 
79 /*
80  * Super class for MP objects
81  */
82 
83 typedef struct mpobj
84 {
85  mpobjtype_t type;
86  key_t key;
87 } mpobj_t;
88 
91 #endif
int16_t cpuid_t
Definition: types.h:64
Definition: types.h:83
int16_t mpobjtype_t
Definition: types.h:71