NVIDIA DRIVE OS Linux API Reference

5.1.0.2 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ote_manifest.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining
5  * a copy of this software and associated documentation files
6  * (the "Software"), to deal in the Software without restriction,
7  * including without limitation the rights to use, copy, modify, merge,
8  * publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be
13  * included in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22  */
23 
41 #ifndef __OTE_MANIFEST_H
42 #define __OTE_MANIFEST_H
43 
44 #include <stdint.h>
45 #include <common/ote_common.h>
46 
61 typedef struct {
63  char private_data[OTE_TASK_PRIVATE_DATA_LENGTH];
65  uint32_t config_options[];
66 } OTE_MANIFEST;
67 
68 typedef enum {
76 
83 #define OTE_CONFIG_MIN_STACK_SIZE(sz) \
84  OTE_CONFIG_KEY_MIN_STACK_SIZE, sz
85 
92 #define OTE_CONFIG_MIN_HEAP_SIZE(sz) \
93  OTE_CONFIG_KEY_MIN_HEAP_SIZE, sz
94 
104 #define OTE_CONFIG_MAP_MEM(id,off,sz) \
105  OTE_CONFIG_KEY_MAP_MEM, id, off, sz
106 
112 enum {
115 };
116 
121 #define OTE_CONFIG_RESTRICT_ACCESS(clients) \
122  OTE_CONFIG_KEY_RESTRICT_ACCESS, clients
123 
135 enum {
137 };
138 
145 #define OTE_CONFIG_AUTHORIZE(perm) \
146  OTE_CONFIG_KEY_AUTHORIZE, perm
147 
158 enum {
162 };
163 
172 #define OTE_CONFIG_TASK_INITIAL_STATE(state) \
173  OTE_CONFIG_KEY_TASK_ISTATE, state
174 
175 /* manifest section attributes */
176 #define OTE_MANIFEST_ATTRS \
177  __attribute((aligned(4))) __attribute((section(".ote.manifest")))
178 
181 #endif //__OTE_MANIFEST_H
Task cannot be unloaded.
Definition: ote_manifest.h:160
Task installed in BLOCKED state.
Definition: ote_manifest.h:161
#define OTE_TASK_NAME_MAX_LENGTH
Defines the maximum length of a zero-terminated informative task name.
Definition: ote_common.h:68
NVIDIA Trusted Little Kernel Interface: Common Declarations
ote_config_key_t
Definition: ote_manifest.h:68
te_service_id_t uuid
Definition: ote_manifest.h:64
Defines a unique 16-byte ID for each TLK service.
Definition: ote_common.h:102
Task manifest cannot be modified by the installer.
Definition: ote_manifest.h:159
Task is an installer.
Definition: ote_manifest.h:136
Holds the manifest structure.
Definition: ote_manifest.h:61
#define OTE_TASK_PRIVATE_DATA_LENGTH
Defines the length of private data for the Trusted Application (TA).
Definition: ote_common.h:82