source: trunk/src/win32k/include/elf2lx.h@ 5087

Last change on this file since 5087 was 4787, checked in by bird, 25 years ago

Changed email address... (may some dll fixes changes too.)

File size: 1.7 KB
Line 
1/* $Id: elf2lx.h,v 1.4 2000-12-11 06:53:51 bird Exp $
2 *
3 * Elf2Lx - Declaration.
4 *
5 * Copyright (c) 1999-2000 knut st. osmundsen (knut.stange.osmundsen@mynd.no)
6 *
7 * Project Odin Software License can be found in LICENSE.TXT
8 *
9 */
10
11#ifndef _ELF2LX_H_
12#define _ELF2LX_H_
13
14
15/**
16 * Elf to LX converter class.
17 * @version
18 * @verdesc
19 * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
20 * @approval
21 */
22class Elf2Lx : public ModuleBase
23{
24public:
25 /** @cat Constructor/Destructor */
26 Elf2Lx(SFN hFile);
27 ~Elf2Lx();
28
29 /** @cat Public Main methods */
30 ULONG init(PCSZ pszFilename);
31 ULONG read(ULONG offLXFile, PVOID pvBuffer, ULONG cbToRead, ULONG flFlags, PMTE pMTE);
32 ULONG applyFixups(PMTE pMTE, ULONG iObject, ULONG iPageTable, PVOID pvPage,
33 ULONG ulPageAddress, PVOID pvPTDA); /*(ldrEnum32bitRelRecs)*/
34 #ifndef RING0
35 ULONG writeFile(PCSZ pszLXFilename);
36 #endif
37
38 /** @cat public Helper methods */
39 VOID dumpVirtualLxFile();
40 BOOL queryIsModuleName(PCSZ pszFilename);
41
42 /** @cat Static helper methods */
43 static BOOL validHeader(Elf32_Ehdr *pEhdr);
44
45
46private:
47 /** @cat private data members. */
48
49 /**
50 * @cat Elf structures
51 */
52 Elf32_Ehdr * pEhdr;
53 Elf32_Phdr * paPhdrs;
54
55 /**
56 * @cat LX structures
57 */
58 struct e32_exe LXHdr; /* Lxheader */
59
60 struct o32_obj * paObjTab; /* Pointer to object table - if null check cObjects > 0 and generate it using makeObjectTable */
61 struct o32_map * paObjPageTab; /* Pointer to object page table - if null check cObjects > 0 and generate it using makeObjectPageTable */
62};
63
64
65#endif
66
Note: See TracBrowser for help on using the repository browser.