Subversion Repositories shark

Rev

Rev 1051 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1051 tullio 1
////////////////////////////////////////////////////////////////////////
2
//      dynalink.h
3
//
4
//  DynaLink for S.H.A.R.K
5
//  Dynamic ELF object linker.
6
//  
7
//  Original code written by Luca Abeni.
8
//  Adapted by Lex Nahumury 19-7-2006.
9
//  
10
//  This is free software; see GPL.txt
11
//////////////////////////////////////////////////////////////////////// 
12
#ifndef _DYNALINK_H_
13
#define _DYNALINK_H_
14
 
15
#define MAX_DYNA_MOD    64
16
 
17
struct mods_struct
18
{
19
  void *mod_start;
20
  void *mod_end;
21
  char *string;
22
  DWORD reserved;
23
};
24
 
25
 
26
struct app_module_info
27
{
28
        unsigned int start;             // the memory used goes from bytes 'mod_start'
29
        unsigned int end;               // to 'mod_end-1' inclusive
30
        unsigned int size;              // size in bytes
31
        unsigned int dyn_entry; // main_module_entry() start address
32
        char* name;                             // file name
33
};
34
 
35
struct dat_module_info
36
{
37
        unsigned int start;             // the memory used goes from bytes 'mod_start'
38
        unsigned int end;               // to 'mod_end-1' inclusive.
39
        unsigned int size;              // in bytes
40
        char *name;                             // file name
41
};
42
 
43
struct dynalink_module_list
44
{
45
        int num_apps;                                                           // number of loaded ELF objects
46
        int num_dats;                                                           // number of loaded Data object
47
        struct app_module_info  app[MAX_DYNA_MOD];      // aplications in mem
48
        struct dat_module_info  dat[MAX_DYNA_MOD];      // data file in mem
49
};
50
 
51
 
52
int dynalink_modules(   struct multiboot_info* mb,
53
                                                struct dynalink_module_list* dml,
54
                                                char* search_string);
55
 
56
 
57
 
58
#endif //_DYNALINK_H_
59
 
60
 
61