First of all, thank you for your effort! You basically do what should be Xilinx's/AMD's job.
I'd like to ask, why do you use pread and pwrite instead of simple read and write in the AXI-Stream example?
It doesn't seem to make sense since AXI Stream doesn't require an address.