VSF Documented
vsf_peloader.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
29#ifndef __VSF_PELOADER_H__
30#define __VSF_PELOADER_H__
31
32/*============================ INCLUDES ======================================*/
33
35
36#if VSF_USE_LOADER == ENABLED && VSF_LOADER_USE_PE == ENABLED
37
38#include <stdint.h>
39
40#if defined(__VSF_PELOADER_CLASS_IMPLEMENT)
41# undef __VSF_EPLOADER_CLASS_IMPLEMENT
42# define __VSF_CLASS_IMPLEMENT__
43#elif defined(__VSF_PELOADER_CLASS_INHERIT__)
44# undef __VSF_EPLOADER_CLASS_INHERIT__
45# define __VSF_CLASS_INHERIT__
46#endif
47
48#include "utilities/ooc_class.h"
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/*============================ MACROS ========================================*/
55/*============================ MACROFIED FUNCTIONS ===========================*/
56/*============================ TYPES =========================================*/
57
59 public_member(
60 implement(vsf_loader_t)
61 )
62
63 private_member(
64 void *ram_base;
65 )
66};
67
68/*============================ GLOBAL VARIABLES ==============================*/
69
70extern const struct vsf_loader_op_t vsf_peloader_op;
71
72/*============================ PROTOTYPES ====================================*/
73
74extern int vsf_peloader_load(vsf_peloader_t *peloader, vsf_loader_target_t *target);
75extern void vsf_peloader_cleanup(vsf_peloader_t *peloader);
77extern void vsf_peloader_call_fini_array(vsf_peloader_t *peloader);
78
79#ifdef __cplusplus
80}
81#endif
82
// vsf_peloader
84
85#endif // VSF_USE_ELFLOADER
86#endif // __VSF_ELFLOADER_H__
Definition vsf_loader.h:176
Definition vsf_peloader.h:58
#define vsf_class(__name)
Definition ooc_class.h:48
Definition vsf_loader.h:167
Definition vsf_loader.h:132
int vsf_peloader_call_init_array(vsf_peloader_t *peloader)
Definition vsf_peloader.c:252
const struct vsf_loader_op_t vsf_peloader_op
Definition vsf_peloader.c:55
int vsf_peloader_load(vsf_peloader_t *peloader, vsf_loader_target_t *target)
Definition vsf_peloader.c:64
void vsf_peloader_cleanup(vsf_peloader_t *peloader)
Definition vsf_peloader.c:240
void vsf_peloader_call_fini_array(vsf_peloader_t *peloader)
Definition vsf_peloader.c:257