aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2022-05-05 11:37:24 +0900
committer坂本 貴史 <o-takashi@sakamocchi.jp>2022-05-05 16:09:50 +0900
commit8b81fc53002805815f0872dc2f35789196b06443 (patch)
tree9e5685dd5e96cd9890a4a14a977514a827c8364d
parent677906b75b3dac3480058209909873789787201e (diff)
downloadlibhinoko-8b81fc53002805815f0872dc2f35789196b06443.tar.gz
fw_iso_ctx_private: add utility macro to generate error for ioctl
For my convenience. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
-rw-r--r--src/fw_iso_ctx_private.c12
-rw-r--r--src/fw_iso_ctx_private.h3
-rw-r--r--src/fw_iso_rx_multiple.c2
3 files changed, 10 insertions, 7 deletions
diff --git a/src/fw_iso_ctx_private.c b/src/fw_iso_ctx_private.c
index b0d133e..0840c83 100644
--- a/src/fw_iso_ctx_private.c
+++ b/src/fw_iso_ctx_private.c
@@ -124,7 +124,7 @@ gboolean fw_iso_ctx_state_allocate(struct fw_iso_ctx_state *state, const char *p
// Support FW_CDEV_VERSION_AUTO_FLUSH_ISO_OVERFLOW.
info.version = 5;
if (ioctl(state->fd, FW_CDEV_IOC_GET_INFO, &info) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_GET_INFO");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_GET_INFO);
fw_iso_ctx_state_release(state);
return FALSE;
}
@@ -135,7 +135,7 @@ gboolean fw_iso_ctx_state_allocate(struct fw_iso_ctx_state *state, const char *p
create.header_size = header_size;
if (ioctl(state->fd, FW_CDEV_IOC_CREATE_ISO_CONTEXT, &create) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_CREATE_ISO_CONTEXT");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_CREATE_ISO_CONTEXT);
fw_iso_ctx_state_release(state);
return FALSE;
}
@@ -395,7 +395,7 @@ gboolean fw_iso_ctx_state_queue_chunks(struct fw_iso_ctx_state *state, GError **
arg.data = (__u64)(state->addr + buf_offset);
arg.handle = state->handle;
if (ioctl(state->fd, FW_CDEV_IOC_QUEUE_ISO, &arg) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_QUEUE_ISO");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_QUEUE_ISO);
return FALSE;
}
@@ -487,7 +487,7 @@ gboolean fw_iso_ctx_state_start(struct fw_iso_ctx_state *state, const guint16 *c
arg.tags = tags;
arg.handle = state->handle;
if (ioctl(state->fd, FW_CDEV_IOC_START_ISO, &arg) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_START_ISO");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_START_ISO);
return FALSE;
}
@@ -561,7 +561,7 @@ void fw_iso_ctx_state_read_frame(struct fw_iso_ctx_state *state, guint offset, g
gboolean fw_iso_ctx_state_flush_completions(struct fw_iso_ctx_state *state, GError **error)
{
if (ioctl(state->fd, FW_CDEV_IOC_FLUSH_ISO) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_FLUSH_ISO");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_FLUSH_ISO);
return FALSE;
}
@@ -592,7 +592,7 @@ gboolean fw_iso_ctx_state_get_cycle_timer(struct fw_iso_ctx_state *state, gint c
(*cycle_timer)->clk_id = clock_id;
if (ioctl(state->fd, FW_CDEV_IOC_GET_CYCLE_TIMER2, *cycle_timer) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_GET_CYCLE_TIMER2");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_GET_CYCLE_TIMER2);
return FALSE;
}
diff --git a/src/fw_iso_ctx_private.h b/src/fw_iso_ctx_private.h
index 3ca144c..e25648d 100644
--- a/src/fw_iso_ctx_private.h
+++ b/src/fw_iso_ctx_private.h
@@ -18,6 +18,9 @@ extern const char *const fw_iso_ctx_err_msgs[7];
HINOKO_FW_ISO_CTX_ERROR_FAILED, \
format " %d(%s)", arg, errno, strerror(errno))
+#define generate_ioctl_error(error, errno, request) \
+ generate_syscall_error(error, errno, "ioctl(%s)", #request)
+
#define generate_file_error(error, code, format, arg) \
g_set_error(error, G_FILE_ERROR, code, format, arg)
diff --git a/src/fw_iso_rx_multiple.c b/src/fw_iso_rx_multiple.c
index 8c10d1c..91e1a4e 100644
--- a/src/fw_iso_rx_multiple.c
+++ b/src/fw_iso_rx_multiple.c
@@ -378,7 +378,7 @@ void hinoko_fw_iso_rx_multiple_allocate(HinokoFwIsoRxMultiple *self,
set.handle = priv->state.handle;
if (ioctl(priv->state.fd, FW_CDEV_IOC_SET_ISO_CHANNELS, &set) < 0) {
- generate_syscall_error(error, errno, "ioctl(%s)", "FW_CDEV_IOC_SET_ISO_CHANNELS");
+ generate_ioctl_error(error, errno, FW_CDEV_IOC_SET_ISO_CHANNELS);
hinoko_fw_iso_ctx_release(HINOKO_FW_ISO_CTX(self));
return;
} else if (set.channels == 0) {