One option I see is simply to document the behavior where
accel_available() is declared in accel.h (ie do not use in fast
path), as well as in accel_find() actually, so that both accel_find()
and accel_available() are avoided in fast path and avoid being called
frequently at runtime.
Another option could be to remove the allocation completely, and use
for example accel_find(ACCEL_CLASS_NAME("tcg")), or another option
again would be to remove the allocation and use either a fixed buffer
+ snprintf, or alloca -like builtin code to use the stack, ...
Not a big deal, but with a general utility and short name like
accel_available(name) it might be tempting to use this more in the
future?