linux list_head implements