connect_to_vpe (char *name)
{
vat_main_t *vam = &vat_main;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
if (vl_client_connect_to_vlib ("/vpe-api", name, 32) < 0)
return -1;
this_cmd =
(u8 *) clib_macro_eval (&vam->macro_main, (i8 *) vam->inbuf,
- 1 /* complain */ );
+ 1 /* complain */ ,
+ 0 /* level */ ,
+ 8 /* max_level */ );
if (vam->exec_mode == 0)
{
if (vam->client_index_invalid)
{
vat_main_t *vam = &vat_main;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
vam->vl_input_queue = am->shmem_hdr->vl_input_queue;
vam->my_client_index = am->my_client_index;
}
static i8 *
-eval_current_file (macro_main_t * mm, i32 complain)
+eval_current_file (clib_macro_main_t * mm, i32 complain)
{
vat_main_t *vam = &vat_main;
return ((i8 *) format (0, "%s%c", vam->current_file, 0));
}
static i8 *
-eval_current_line (macro_main_t * mm, i32 complain)
+eval_current_line (clib_macro_main_t * mm, i32 complain)
{
vat_main_t *vam = &vat_main;
return ((i8 *) format (0, "%d%c", vam->input_line_number, 0));
case SIGSTOP:
case SIGUSR1:
case SIGUSR2:
+ case SIGPROF:
continue;
/* ignore SIGPIPE, SIGCHLD */
case SIGPIPE:
case SIGCHLD:
+ case SIGWINCH:
sa.sa_sigaction = (void *) SIG_IGN;
break;
static void
vat_find_plugin_path ()
{
- extern char *vat_plugin_path;
char *p, path[PATH_MAX];
int rv;
u8 *s;
vat_plugin_path = (char *) s;
}
+static void
+load_features (void)
+{
+ vat_registered_features_t *f;
+ vat_main_t *vam = &vat_main;
+ clib_error_t *error;
+
+ f = vam->feature_function_registrations;
+
+ while (f)
+ {
+ error = f->function (vam);
+ if (error)
+ {
+ clib_warning ("INIT FAILED");
+ }
+ f = f->next;
+ }
+}
+
int
main (int argc, char **argv)
{
vec_validate (vam->inbuf, 4096);
+ load_features ();
+
vam->current_file = (u8 *) "plugin-init";
vat_plugin_init (vam);