Line 1: |
Line 1: |
| [[Category: Compel]] | | [[Category: Compel]] |
| + | |
| + | {{Note|[[Compel]] is already released}} |
| | | |
| ==== Check and fix non-x86 arches ==== | | ==== Check and fix non-x86 arches ==== |
Line 9: |
Line 11: |
| ==== Tune the API ==== | | ==== Tune the API ==== |
| Right now we have some stuff that just got into compel/include/uapi/ when we moved the code around and should be hidden. Naming could probably be better too. Configuring the infection context is also FIXME-able. | | Right now we have some stuff that just got into compel/include/uapi/ when we moved the code around and should be hidden. Naming could probably be better too. Configuring the infection context is also FIXME-able. |
| + | |
| + | ==== Fix the compel_main environment ==== |
| + | |
| + | Currently compel parasite code is RPC-only, but there are signs of compel_main (e.g. __export_std_compel_start). Need to clean this out. |
| | | |
| ==== Rectify parasite loading ==== | | ==== Rectify parasite loading ==== |
| For now the prepared parasite ELF should be converted into a C header file, then compiled with infection code, then libcompel can inject it into victim. Reorganizing the code so that it loads the ELF itself is tempting. | | For now the prepared parasite ELF should be converted into a C header file, then compiled with infection code, then libcompel can inject it into victim. Reorganizing the code so that it loads the ELF itself is tempting. |
| + | |
| + | : {{Done}} Made C-header loading MUCH nicer with pre-generated macros. |
| | | |
| ==== Make .so version of the library ==== | | ==== Make .so version of the library ==== |
| For now the libcompel.a is built, so only static linkage is possible. Making it .so should not be a big deal, it mostly depends on the API rectification task (API should be extendable and backward compatible). | | For now the libcompel.a is built, so only static linkage is possible. Making it .so should not be a big deal, it mostly depends on the API rectification task (API should be extendable and backward compatible). |
| + | |
| + | : {{Done}} <code>make compel/libcompel.so</code> works |
| | | |
| ==== Save/Restore SAS in standalone mode ==== | | ==== Save/Restore SAS in standalone mode ==== |
| It's currently only handled by CRIU | | It's currently only handled by CRIU |
| + | |
| + | ==== Sanitize logging ==== |
| + | Nowadays we just set FD to put logs into. |
| + | |
| + | ==== Untie task state numbers ==== |
| + | |
| + | The TASK_ALIVE and others are literally and numerically coincide between compel and criu. |
| + | |
| + | : {{Done}} <code>COMPEL_TASK_FOO</code>s are in compel and <code>TASK_BAR</code>s are in criu and correspond to each other |