int hpsb_get_tlabel (struct hpsb_packet * packet);
Every asynchronous transaction on the 1394 bus needs a transaction label to match the response to the request. This label has to be different from any other transaction label in an outstanding request to the same node to make matching possible without ambiguity.
There are 64 different tlabels, so an allocated tlabel has to be freed with hpsb_free_tlabel after the transaction is complete (unless it's reused again for the same target node).
Zero on success, otherwise non-zero. A non-zero return generally means there are no available tlabels. If this is called out of interrupt or atomic context, then it will sleep until can return a tlabel.