tlk: 6/19 update
[3rdparty/ote_partner/tlk.git] / include / kernel / task_load.h
index e39d5a3..d2e18a7 100644 (file)
@@ -24,6 +24,7 @@
 #define __KERNEL_TASK_LOAD_H
 
 #include <kernel/task.h>
+#include <kernel/task_unload.h>
 
 /*!
  * Privileged "installer TA" starting the task may request
@@ -41,7 +42,7 @@ typedef struct {
        /* currently supported overrides; all-zero values ignored */
        uint32_t min_stack_size;
        uint32_t min_heap_size;
-       char     task_name[ OTE_TASK_NAME_MAX_LENGTH ];
+       char     task_name[OTE_TASK_NAME_MAX_LENGTH];
 } task_restrictions_t;
 
 /*!
@@ -58,19 +59,19 @@ typedef struct {
        u_int    min_heap_size;
        u_int    map_io_mem_cnt;
        u_int    restrict_access;
-       u_int    install_priv;
-       u_int    immutable;
-       char     task_name[ OTE_TASK_NAME_MAX_LENGTH ];
-       unsigned char task_private_data[ OTE_TASK_PRIVATE_DATA_LENGTH ];
+       u_int    authorizations;
+       u_int    initial_state;
+       char     task_name[OTE_TASK_NAME_MAX_LENGTH];
+       unsigned char task_private_data[OTE_TASK_PRIVATE_DATA_LENGTH];
 } task_info_t;
 
-void task_load_config (vaddr_t vaddr_begin, vaddr_t *vaddr_end_p);
+void task_load_config(vaddr_t vaddr_begin, vaddr_t *vaddr_end_p);
 
-void task_load_init (void);
+void task_load_init(void);
 
 void task_set_name(task_t *task, const char *name);
 
-u_int task_allowed_to_load_tasks (task_t *taskp);
+u_int task_allowed_to_load_tasks(task_t *taskp);
 
 /*!
  * Called from syscall ioctl handler to perform task loading and
@@ -78,6 +79,13 @@ u_int task_allowed_to_load_tasks (task_t *taskp);
  */
 struct te_task_request_args_s;
 
-int task_request_handler (struct te_task_request_args_s *args);
+int task_request_handler(struct te_task_request_args_s *args);
+
+/*! Free the memory allocated from TLK heap for task image when it was
+ * loaded to the system.
+ *
+ * VADDR is the TLK virtual address of the allocated TASK_BYTE_SIZE size object.
+ */
+void task_dealloc_memory(vaddr_t vaddr, u_int task_byte_size);
 
 #endif /* __KERNEL_TASK_LOAD_H */