Thread (49 messages) 49 messages, 8 authors, 2020-12-11

RE: [PATCH 01/29] iov_iter: Switch to using a table of operations

From: David Laight <hidden>
Date: 2020-11-22 22:47:18
Also in: linux-fsdevel, lkml

From: David Howells
Sent: 21 November 2020 14:14

Switch to using a table of operations.  In a future patch the individual
methods will be split up by type.  For the moment, however, the ops tables
just jump directly to the old functions - which are now static.  Inline
wrappers are provided to jump through the hooks.
I was wondering if you could use a bit of 'cpp magic'
so the to call sites would be:
	ITER_CALL(iter, action)(arg_list);

which might expand to:
	iter->action(arg_list);
in the function-table case.
But could also be an if-chain:
	if (iter->type & foo)
		foo_action(args);
	else ...
with foo_action() being inlined.

If there is enough symmetry it might make the code easier to read.
Although I'm not sure what happens to 'iterate_all_kinds'.
OTOH that is already unreadable.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help