In this example, the ARM interrupts the PRU by generating a system event that the PRU is polling. The PRU polls for interrupts by writing into its SRSR2 registers. Once the PRU completes the event handling, it informs the ARM through DDR memory that the interrupt was handled.
See the PRU Software examples project in the SDK under example-applications. The source code for both the ARM and the PRU can be found there.