I do not have an example, but the mechanism is quite easy to implement.
Each TD contains a pointer to the next TD to execute when finished.
So TD points to TD which points to TD. which points to TD again and now the circle is made.
Look at the description for
CyDmaTdSetConfiguration(uint8 tdHandle, uint16 transferCount, uint8 nextTd,uint8 configuration)
where the next TDs are specified.