vita-toolchain

git clone https://git.neptards.moe/neptards/vita-toolchain.git
Log | Files | Refs | README | LICENSE

vita-import.h (2160B)


      1 #ifndef VITA_IMPORT_H
      2 #define VITA_IMPORT_H
      3 
      4 #include <vita-toolchain-public.h>
      5 #include <stdbool.h>
      6 #include <stdint.h>
      7 #include <stdio.h>
      8 
      9 /* These fields must always come at the beginning of the NID-bearing structs */
     10 typedef struct {
     11 	char *name;
     12 	uint32_t NID;
     13 } vita_imports_common_fields;
     14 
     15 typedef struct {
     16 	char *name;
     17 	uint32_t NID;
     18 } vita_imports_stub_t;
     19 
     20 typedef struct {
     21 	char *name;
     22 	uint32_t NID;
     23 	bool is_kernel;
     24 	vita_imports_stub_t **functions;
     25 	vita_imports_stub_t **variables;
     26 	int n_functions;
     27 	int n_variables;
     28 	uint32_t flags;
     29 } vita_imports_module_t;
     30 
     31 typedef struct {
     32 	char *name;
     33 	uint32_t NID;
     34 	vita_imports_module_t **modules;
     35 	int n_modules;
     36 } vita_imports_lib_t;
     37 
     38 typedef struct {
     39 	char *firmware;
     40 	char *postfix;
     41 	vita_imports_lib_t **libs;
     42 	int n_libs;
     43 } vita_imports_t;
     44 
     45 
     46 VITA_TOOLCHAIN_PUBLIC vita_imports_t *vita_imports_load(const char *filename, int verbose);
     47 VITA_TOOLCHAIN_PUBLIC vita_imports_t *vita_imports_loads(FILE *text, int verbose);
     48 
     49 VITA_TOOLCHAIN_PUBLIC vita_imports_t *vita_imports_new(int n_libs);
     50 VITA_TOOLCHAIN_PUBLIC void vita_imports_free(vita_imports_t *imp);
     51 
     52 VITA_TOOLCHAIN_PUBLIC vita_imports_lib_t *vita_imports_find_lib(vita_imports_t *imp, uint32_t NID);
     53 
     54 
     55 VITA_TOOLCHAIN_PUBLIC vita_imports_lib_t *vita_imports_lib_new(const char *name, uint32_t NID, int n_modules);
     56 VITA_TOOLCHAIN_PUBLIC void vita_imports_lib_free(vita_imports_lib_t *lib);
     57 
     58 VITA_TOOLCHAIN_PUBLIC vita_imports_module_t *vita_imports_find_module(vita_imports_lib_t *lib, uint32_t NID);
     59 
     60 
     61 VITA_TOOLCHAIN_PUBLIC vita_imports_module_t *vita_imports_module_new(const char *name, bool kernel, uint32_t NID, int n_functions, int n_variables);
     62 VITA_TOOLCHAIN_PUBLIC void vita_imports_module_free(vita_imports_module_t *mod);
     63 
     64 VITA_TOOLCHAIN_PUBLIC vita_imports_stub_t *vita_imports_find_function(vita_imports_module_t *mod, uint32_t NID);
     65 VITA_TOOLCHAIN_PUBLIC vita_imports_stub_t *vita_imports_find_variable(vita_imports_module_t *mod, uint32_t NID);
     66 
     67 
     68 VITA_TOOLCHAIN_PUBLIC vita_imports_stub_t *vita_imports_stub_new(const char *name, uint32_t NID);
     69 VITA_TOOLCHAIN_PUBLIC void vita_imports_stub_free(vita_imports_stub_t *stub);
     70 
     71 #endif