vxlan: vxlan/vxlan.api API cleanup
[vpp.git] / extras / emacs / plugin-h-skel.el
index 8bf9b6f..2165510 100644 (file)
@@ -21,9 +21,10 @@ nil
 '(if (not (boundp 'plugin-name))
      (setq plugin-name (read-string "Plugin name: ")))
 '(setq PLUGIN-NAME (upcase plugin-name))
+'(setq capital-oh-en "ON")
 "
 /*
- * " plugin-name ".h - skeleton vpp engine plug-in header file 
+ * " plugin-name ".h - skeleton vpp engine plug-in header file
  *
  * Copyright (c) <current-year> <your-organization>
  * Licensed under the Apache License, Version 2.0 (the \"License\");
@@ -52,15 +53,37 @@ typedef struct {
     /* API message ID base */
     u16 msg_id_base;
 
+    /* on/off switch for the periodic function */
+    u8 periodic_timer_enabled;
+    /* Node index, non-zero if the periodic process has been created */
+    u32 periodic_node_index;
+
     /* convenience */
     vlib_main_t * vlib_main;
     vnet_main_t * vnet_main;
     ethernet_main_t * ethernet_main;
 } " plugin-name "_main_t;
 
-" plugin-name "_main_t " plugin-name "_main;
+extern " plugin-name "_main_t " plugin-name "_main;
+
+extern vlib_node_registration_t " plugin-name "_node;
+extern vlib_node_registration_t " plugin-name "_periodic_node;
 
-vlib_node_registration_t " plugin-name "_node;
+/* Periodic function events */
+#define " PLUGIN-NAME "_EVENT1 1
+#define " PLUGIN-NAME "_EVENT2 2
+#define " PLUGIN-NAME "_EVENT_PERIODIC_ENABLE_DISABLE 3
+
+void " plugin-name "_create_periodic_process (" plugin-name "_main_t *);
 
 #endif /* __included_" plugin-name "_h__ */
+
+/*
+ * fd.io coding-style-patch-verification: " capital-oh-en "
+ *
+ * Local Variables:
+ * eval: (c-set-style \"gnu\")
+ * End:
+ */
+
 ")