Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / staging / ktap / userspace / ktapc.h
index 879cd29..76348df 100644 (file)
@@ -78,15 +78,16 @@ enum RESERVED {
        /* terminal symbols denoted by reserved words */
        TK_TRACE = FIRST_RESERVED, TK_TRACE_END,
        TK_ARGEVENT, TK_ARGNAME,
+       TK_FFI_CDEF,
        TK_ARG1, TK_ARG2, TK_ARG3, TK_ARG4, TK_ARG5, TK_ARG6, TK_ARG7, TK_ARG8,
-       TK_ARG9, TK_PROFILE, TK_TICK,
+       TK_ARG9, TK_PROFILE, TK_TICK, TK_AGGR_ASSIGN,
        TK_AND, TK_BREAK,
        TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION,
        TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT,
        TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,
        /* other terminal symbols */
        TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_INCR, TK_DBCOLON,
-       TK_EOS, TK_NUMBER, TK_NAME, TK_STRING
+       TK_EOS, TK_NUMBER, TK_NAME, TK_STRING, TK_KSYM
 };
 
 /* number of reserved words */
@@ -229,7 +230,7 @@ struct ktap_blockcnt;  /* defined in lparser.c */
 /* state needed to generate code for a given function */
 typedef struct ktap_funcstate {
        ktap_proto *f;  /* current function header */
-       ktap_table *h;  /* table to find (and reuse) elements in `k' */
+       ktap_tab *h;  /* table to find (and reuse) elements in `k' */
        struct ktap_funcstate *prev;  /* enclosing function */
        struct ktap_lexstate *ls;  /* lexical state */
        struct ktap_blockcnt *bl;  /* chain of current blocks */
@@ -302,10 +303,10 @@ ktap_string *ktapc_ts_new(const char *str);
 int ktapc_ts_eqstr(ktap_string *a, ktap_string *b);
 ktap_string *ktapc_ts_newlstr(const char *str, size_t l);
 ktap_proto *ktapc_newproto();
-ktap_table *ktapc_table_new();
-const ktap_value *ktapc_table_get(ktap_table *t, const ktap_value *key);
-void ktapc_table_setvalue(ktap_table *t, const ktap_value *key, ktap_value *val);
-ktap_closure *ktapc_newlclosure(int n);
+ktap_tab *ktapc_table_new();
+const ktap_value *ktapc_table_get(ktap_tab *t, const ktap_value *key);
+void ktapc_table_setvalue(ktap_tab *t, const ktap_value *key, ktap_value *val);
+ktap_closure *ktapc_newclosure(int n);
 char *ktapc_sprintf(const char *fmt, ...);
 
 void *ktapc_reallocv(void *block, size_t osize, size_t nsize);
@@ -315,7 +316,7 @@ void *ktapc_growaux(void *block, int *size, size_t size_elems, int limit,
 void ktapio_exit(void);
 int ktapio_create(const char *output_filename);
 
-ktap_string *ktapc_parse_eventdef(ktap_string *eventdef);
+ktap_eventdef_info *ktapc_parse_eventdef(const char *eventdef);
 void cleanup_event_resources(void);
 
 extern int verbose;
@@ -325,9 +326,6 @@ extern int verbose;
 
 #define ktapc_equalobj(t1, t2) kp_equalobjv(NULL, t1, t2)
 
-
-#include "../include/ktap_opcodes.h"
-
 int codegen_stringK(ktap_funcstate *fs, ktap_string *s);
 void codegen_indexed(ktap_funcstate *fs, ktap_expdesc *t, ktap_expdesc *k);
 void codegen_setreturns(ktap_funcstate *fs, ktap_expdesc *e, int nresults);
@@ -354,6 +352,8 @@ void codegen_posfix(ktap_funcstate *fs, BinOpr op, ktap_expdesc *e1, ktap_expdes
 void codegen_setoneret(ktap_funcstate *fs, ktap_expdesc *e);
 void codegen_storevar(ktap_funcstate *fs, ktap_expdesc *var, ktap_expdesc *ex);
 void codegen_storeincr(ktap_funcstate *fs, ktap_expdesc *var, ktap_expdesc *ex);
+void codegen_store_aggr(ktap_funcstate *fs, ktap_expdesc *var,
+                                           ktap_expdesc *ex);
 void codegen_goiftrue(ktap_funcstate *fs, ktap_expdesc *e);
 int codegen_getlabel(ktap_funcstate *fs);
 int codegen_codek(ktap_funcstate *fs, int reg, int k);
@@ -371,6 +371,23 @@ int ktapc_str2d(const char *s, size_t len, ktap_number *result);
 int ktapc_hexavalue(int c);
 ktap_number ktapc_arith(int op, ktap_number v1, ktap_number v2);
 int ktapc_int2fb(unsigned int x);
-
 bool strglobmatch(const char *str, const char *pat);
+int kallsyms_parse(void *arg,
+                  int(*process_symbol)(void *arg, const char *name,
+                  char type, unsigned long start));
+
+unsigned long find_kernel_symbol(const char *symbol);
+void list_available_events(const char *match);
+
+
+#ifdef CONFIG_KTAP_FFI
+#include "../include/ktap_ffi.h"
+
+typedef struct cp_csymbol_state {
+       int cs_nr; /* number of c symbols */
+       int cs_arr_size; /* size of current symbol arrays */
+       csymbol *cs_arr;
+} cp_csymbol_state;
 
+cp_csymbol_state *ctype_get_csym_state(void);
+#endif