forked from pkujhd/goloader
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlink.go
More file actions
75 lines (57 loc) · 1.92 KB
/
Copy pathlink.go
File metadata and controls
75 lines (57 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package goloader
import (
"io"
"github.com/pkujhd/goloader/link"
"github.com/pkujhd/goloader/mmap"
)
type Linker link.Linker
type CodeModule link.CodeModule
func ReadObj(file, pkgPath string) (*Linker, error) {
linker, err := link.ReadObj(file, pkgPath)
return (*Linker)(linker), err
}
func ReadObjs(files []string, pkgPaths []string) (*Linker, error) {
linker, err := link.ReadObjs(files, pkgPaths)
return (*Linker)(linker), err
}
func Load(linker *Linker, symPtr map[string]uintptr) (codeModule *CodeModule, err error) {
module, err := link.Load((*link.Linker)(linker), symPtr)
return (*CodeModule)(module), err
}
func (codeModule *CodeModule) Unload() {
(*link.CodeModule)(codeModule).Unload()
}
func UnresolvedSymbols(linker *Linker, symPtr map[string]uintptr) []string {
return link.UnresolvedSymbols((*link.Linker)(linker), symPtr)
}
func ReadDependPackages(linker *Linker, files, pkgPaths []string, symbolNames []string, symPtr map[string]uintptr) error {
return link.ReadDependPackages((*link.Linker)(linker), files, pkgPaths, symbolNames, symPtr)
}
func Mmap(size int) ([]byte, error) {
return mmap.Mmap(size)
}
func Munmap(b []byte) (err error) {
return mmap.Munmap(b)
}
func Parse(file, pkgPath string) ([]string, error) {
return link.Parse(file, pkgPath)
}
func RegSymbolWithSo(symPtr map[string]uintptr, path string) error {
return link.RegSymbolWithSo(symPtr, path)
}
func RegSymbol(symPtr map[string]uintptr) error {
return link.RegSymbol(symPtr)
}
func RegSymbolWithPath(symPtr map[string]uintptr, path string) error {
return link.RegSymbolWithPath(symPtr, path)
}
func RegTypes(symPtr map[string]uintptr, interfaces ...interface{}) {
link.RegTypes(symPtr, interfaces)
}
func Serialize(linker *Linker, writer io.Writer) error {
return link.Serialize((*link.Linker)(linker), writer)
}
func UnSerialize(reader io.Reader) (*Linker, error) {
linker, err := link.UnSerialize(reader)
return (*Linker)(linker), err
}