Globally visible buffers or direct memory access? kernel source code generation

Hi, I try to create a host class that would generate kernel source code for its internal computations. At the time point of generating the source code I have buffers in gpu’s global memory that are to be passed to the kernel as arguments. However its some extra programming effort to generate the arguments list and it will also impact the performance since the arguments list is pretty long.
Looking for the workarounds I would like to ask following questions:

  1. is it possible to declare a global buffer so that it would be visible to the kernel without passing a pointer on it to the kernel as an argument?
  2. is possible to have something like this in the kernel’s source: *(0x24fd452) or *((0x24fd452)[gid]) - a kind of direct access without a pointer variable?

thank you in advance