From 24f7fb797b7afbb93d973ef7530e6f473210cb45 Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Thu, 1 Apr 2021 09:32:29 +0300 Subject: [PATCH] refactoring --- python/ustreamer.c | 14 +------------- src/libs/memsink.c | 9 +-------- src/libs/memsinksh.h | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/python/ustreamer.c b/python/ustreamer.c index 33eda69..0d5520b 100644 --- a/python/ustreamer.c +++ b/python/ustreamer.c @@ -85,20 +85,8 @@ static int MemsinkObject_init(MemsinkObject *self, PyObject *args, PyObject *kwa goto error; } - if ((self->mem = mmap( - NULL, - sizeof(memsink_shared_s), - PROT_READ | PROT_WRITE, - MAP_SHARED, - self->fd, - 0 - )) == MAP_FAILED) { + if ((self->mem = memsink_shared_map(self->fd)) == NULL) { PyErr_SetFromErrno(PyExc_OSError); - self->mem = NULL; - goto error; - } - if (self->mem == NULL) { - PyErr_SetString(PyExc_RuntimeError, "Memory mapping is NULL"); \ goto error; } diff --git a/src/libs/memsink.c b/src/libs/memsink.c index bddf2a0..3b6a5d2 100644 --- a/src/libs/memsink.c +++ b/src/libs/memsink.c @@ -54,14 +54,7 @@ memsink_s *memsink_init( goto error; } - if ((sink->mem = mmap( - NULL, - sizeof(memsink_shared_s), - PROT_READ | PROT_WRITE, - MAP_SHARED, - sink->fd, - 0 - )) == MAP_FAILED) { + if ((sink->mem = memsink_shared_map(sink->fd)) == NULL) { LOG_PERROR("%s-sink: Can't mmap shared memory", name); goto error; } diff --git a/src/libs/memsinksh.h b/src/libs/memsinksh.h index 4465698..44b9f78 100644 --- a/src/libs/memsinksh.h +++ b/src/libs/memsinksh.h @@ -26,6 +26,7 @@ #include #include +#include #define MEMSINK_MAGIC ((uint64_t)0xCAFEBABECAFEBABE) @@ -59,3 +60,20 @@ typedef struct { uint8_t data[MEMSINK_MAX_DATA]; } memsink_shared_s; + + +INLINE memsink_shared_s *memsink_shared_map(int fd) { + memsink_shared_s *mem = mmap( + NULL, + sizeof(memsink_shared_s), + PROT_READ | PROT_WRITE, + MAP_SHARED, + fd, + 0 + ); + if (mem == MAP_FAILED) { + return NULL; + } + assert(mem != NULL); + return mem; +}