0
|
1 Library Design
|
|
2
|
|
3 Overview:
|
|
4 1. Call Kernel
|
|
5 2. Utilities (memory and static sized vectors)
|
|
6 3. Call State Machine
|
|
7 4. Application Programming Interface
|
|
8 5. extension: high-level formatted C API (ellipsis style)
|
|
9
|
|
10
|
|
11 1. Call Kernel
|
|
12
|
|
13 Assembly Implementation:
|
|
14
|
|
15 gcc front-end: dyncall_call.S
|
|
16 uses the C preprocessor
|
|
17 will include the apropriate assembly source
|
|
18
|
|
19 architecture/tool specific sources:
|
|
20 dyncall_call_<ARCH>_<ASMTOOL>.[s|asm]
|
|
21
|
|
22
|
|
23 2. Utilities (memory and static sized vectors)
|
|
24
|
|
25 2.1 Memory Management
|
|
26
|
|
27 C Interface: dyncall_alloc.h
|
|
28
|
|
29
|
|
30 2.2 Static-sized Vector
|
|
31
|
|
32 C Interface: dyncall_vector.h
|
|
33
|
|
34 C Implementation: dyncall_vector.c
|
|
35
|
|
36
|
|
37 3. Call State Machine
|
|
38
|
|
39 C Implementation:
|
|
40 Top-level: dynall_callvm.c
|
|
41 Sub-levels:
|
|
42 dyncall_callvm_<ARCH>.c
|
|
43
|
|
44
|
|
45 4. Application Programming Interface
|
|
46
|
|
47 C Header:
|
|
48 Top-level: dyncall.h
|
|
49 Sub-level headers:
|
|
50 dyncall_macros.h
|
|
51 dyncall_config.h
|
|
52 dyncall_types.h
|
|
53 C Implementation: dyncall_api.c
|
|
54
|
|
55
|
|
56 5. Extension: High-level C API (ellipsis style)
|
|
57
|
|
58 C Header:
|
|
59 Top-level: dyncall_callf.h
|
|
60 Sub-level headers:
|
|
61 dyncall_value.h
|
|
62 dyncall_signature.h
|
|
63 C Implementation: dyncall_callf.c
|
|
64
|
|
65
|