| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | #ifndef SOUND_FIREWIRE_LIB_H_INCLUDED | 
 | #define SOUND_FIREWIRE_LIB_H_INCLUDED | 
 |  | 
 | #include <linux/firewire-constants.h> | 
 | #include <linux/types.h> | 
 | #include <linux/sched.h> | 
 | #include <sound/rawmidi.h> | 
 |  | 
 | struct fw_unit; | 
 |  | 
 | #define FW_GENERATION_MASK	0x00ff | 
 | #define FW_FIXED_GENERATION	0x0100 | 
 | #define FW_QUIET		0x0200 | 
 |  | 
 | int snd_fw_transaction(struct fw_unit *unit, int tcode, | 
 | 		       u64 offset, void *buffer, size_t length, | 
 | 		       unsigned int flags); | 
 |  | 
 | /* returns true if retrying the transaction would not make sense */ | 
 | static inline bool rcode_is_permanent_error(int rcode) | 
 | { | 
 | 	return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR; | 
 | } | 
 |  | 
 | void snd_fw_schedule_registration(struct fw_unit *unit, | 
 | 				  struct delayed_work *dwork); | 
 |  | 
 | #endif |