code: def get_ctype(rtype, cfunc, *args):
      
      val_p = backend.ffi.new(rtype)
      args = args + (val_p,)
      cfunc(*args)
      return val_p[0]
docs: Call a C function that takes a pointer as its last argument and
          return the C object that it contains after the function has finished.
  
      :param rtype:   C data type is filled by the function
      :param cfunc:   C function to call
      :param args:    Arguments to call function with
      :return:        A pointer to the specified data type