All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cocci] Adding argument to a function
@ 2016-11-02 21:09 Daniel Lezcano
  2016-11-02 21:40 ` Julia Lawall
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-02 21:09 UTC (permalink / raw)
  To: cocci

Hi all,

I'm very new to coccinelle, so sorry if the question is irrelevant or was already asked.

I'm trying to add a new argument to a function which has a couple of callbacks.

The original function is:

static inline int cpuhp_setup_state(enum cpuhp_state state,
				    int (*startup)(unsigned int cpu),
				    int (*teardown)(unsigned int cpu));

I would like to pass a private pointer when setting the state and then pass
this pointer to the 'startup' / 'teardown' callbacks where there signature will be
different and all call sites must change their callbacks signature also.

I tried to first add the new argument to the function, in order to have:

static inline int cpuhp_setup_state(enum cpuhp_state state,
				    int (*startup)(unsigned int cpu),
				    int (*teardown)(unsigned int cpu),
				    void *data);

... with the rule:

@rule@
identifier cpuhp_setup_state;
identifier state, name, startup, teardown, data;
@@

static inline int cpuhp_setup_state(enum cpuhp_state state,
                                    const char *name,
                                    int (*startup)(unsigned int cpu),
                                    int (*teardown)(unsigned int cpu),
				    void *data)
{
	...
}

@@
identifier rule.cpuhp_setup_state;
expression E1, E2, E3, E4;
@@

cpuhp_setup_state(E1, E2, E3, E4
+                 , NULL
		 )

But the parsing gives:

...

cpuhp_setup_state(E1, E2, E3, E4
                    >>> , NULL
                  )


grep tokens
cpuhp_state || cpu
No query
warning: line 8: should cpu be a metavariable?
warning: line 9: should cpu be a metavariable?

And I don't have the expected result, well actually I have no output.

Can someone give me some hints or help to implement this change ?

Thanks in advance

  -- Daniel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-11-04 21:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-02 21:09 [Cocci] Adding argument to a function Daniel Lezcano
2016-11-02 21:40 ` Julia Lawall
2016-11-03  0:56   ` Daniel Lezcano
2016-11-03  6:17     ` Julia Lawall
2016-11-04 17:22       ` Daniel Lezcano
2016-11-04 21:07         ` Julia Lawall
2016-11-04 21:29           ` Daniel Lezcano
2016-11-04 21:32             ` Julia Lawall
2016-11-04 17:26       ` Daniel Lezcano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.