How to generate a function-pointer in codegen?

how to insert a function-pointer arg in codegen? the target pseudo-code is below

typedef  void (MyFunc*)(int, int);

__device__ void kernel_func( MyFunc* myfunc,  fp16 dst, fp16 src ){
}

notice that there are various type function-point-definations, such as

typedef  int (MyFunc1*)(float, int); // various input-type and output type
typedef  void (MyFunc2*)(int, int, float*); //  support 1,2,3 and more nargs
typedef  void (MyFunc3*)(Struct B) ; // maybe support user-designed struct
typedef  void (MyFunc4*)(const struct B & ) ; // maybe support attribute  const,&