1e66f31c5Sopenharmony_ci#include <stdio.h> 2e66f31c5Sopenharmony_ci#include <string.h> 3e66f31c5Sopenharmony_ci#include <stdlib.h> 4e66f31c5Sopenharmony_ci 5e66f31c5Sopenharmony_ci#include <uv.h> 6e66f31c5Sopenharmony_ci 7e66f31c5Sopenharmony_ci#include "plugin.h" 8e66f31c5Sopenharmony_ci 9e66f31c5Sopenharmony_citypedef void (*init_plugin_function)(); 10e66f31c5Sopenharmony_ci 11e66f31c5Sopenharmony_civoid mfp_register(const char *name) { 12e66f31c5Sopenharmony_ci fprintf(stderr, "Registered plugin \"%s\"\n", name); 13e66f31c5Sopenharmony_ci} 14e66f31c5Sopenharmony_ci 15e66f31c5Sopenharmony_ciint main(int argc, char **argv) { 16e66f31c5Sopenharmony_ci if (argc == 1) { 17e66f31c5Sopenharmony_ci fprintf(stderr, "Usage: %s [plugin1] [plugin2] ...\n", argv[0]); 18e66f31c5Sopenharmony_ci return 0; 19e66f31c5Sopenharmony_ci } 20e66f31c5Sopenharmony_ci 21e66f31c5Sopenharmony_ci uv_lib_t *lib = (uv_lib_t*) malloc(sizeof(uv_lib_t)); 22e66f31c5Sopenharmony_ci while (--argc) { 23e66f31c5Sopenharmony_ci fprintf(stderr, "Loading %s\n", argv[argc]); 24e66f31c5Sopenharmony_ci if (uv_dlopen(argv[argc], lib)) { 25e66f31c5Sopenharmony_ci fprintf(stderr, "Error: %s\n", uv_dlerror(lib)); 26e66f31c5Sopenharmony_ci continue; 27e66f31c5Sopenharmony_ci } 28e66f31c5Sopenharmony_ci 29e66f31c5Sopenharmony_ci init_plugin_function init_plugin; 30e66f31c5Sopenharmony_ci if (uv_dlsym(lib, "initialize", (void **) &init_plugin)) { 31e66f31c5Sopenharmony_ci fprintf(stderr, "dlsym error: %s\n", uv_dlerror(lib)); 32e66f31c5Sopenharmony_ci continue; 33e66f31c5Sopenharmony_ci } 34e66f31c5Sopenharmony_ci 35e66f31c5Sopenharmony_ci init_plugin(); 36e66f31c5Sopenharmony_ci } 37e66f31c5Sopenharmony_ci 38e66f31c5Sopenharmony_ci return 0; 39e66f31c5Sopenharmony_ci} 40