[alsa-devel] [PATCH 16/39] firewire-lib: Add some AV/C general commands
Takashi Sakamoto
o-takashi at sakamocchi.jp
Fri Mar 14 15:10:56 CET 2014
Clemens,
(2014年03月10日 06:32), Clemens Ladisch wrote:
> All these functions return errors with two different mechanisms, the AV/C
> response code or a negative Linux error code. This forces the caller to
> add a second error check that duplicates the one inside the function:
I realize a need to simplify these return value and decide to work for
deferred transaction defined in 'AV/C Digital Interface Command Set
General Specification'. If firewire-lib can handle deferred transaction,
it's OK that AV/C functions in firewire-lib returns Linux error codes
instead of combination error codes and response codes.
Well, can I request your comments about corresponding between response
codes and Linux error codes?
Current my idea is below.
Return codes of CONTROL command:
if (err != 8) /* length of response is out of specification */
err = -EIO;
else if (buf[0] == 0x08) /* NOT IMPLEMENTED */
err = -ENOSYS;
else if (buf[0] == 0x0a) /* REJECTED */
err = -EINVAL;
Return codes of STATUS command:
if (err != 8) /* length of response is not our expectation */
err = -EIO;
else if (buf[0] == 0x08) /* NOT IMPLEMENTED */
err = -ENOSYS;
else if (buf[0] == 0x0a) /* REJECTED */
err = -EINVAL;
else if (buf[0] == 0x0b) /* IN TRANSITION */
err = -EAGAIN;
Are these better?
Regards
Takashi Sakamoto
o-takashi at sakamocchi.jp
More information about the Alsa-devel
mailing list