Under certain arches (ARM) function pointers cannot be used naively. Specifically, for thumb functions, their 0 bit is set, but they are contained on a word aligned address. Add a fncpy macro to perform function copies correctly along with two helpers, fnptr_to_address, and fnptr_translate. Signed-off-by: Russ Dill <Russ.Dill@ti.com>