[alsa-devel] [PATCH alsa-lib] move page helpers to common code
From: Mike Frysinger vapier@chromium.org
If you build with --disable-pcm, the rawmidi code fails to link because it uses the page_size helper declared in local.h, but the page_* funcs are in the pcm mmap module. Move these funcs into conf.c so that they are always available to the rest of the system.
Signed-off-by: Mike Frysinger vapier@gentoo.org --- src/conf.c | 36 ++++++++++++++++++++++++++++++++++++ src/pcm/pcm_mmap.c | 36 ------------------------------------ 2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/src/conf.c b/src/conf.c index 91fca25..a4f2a4f 100644 --- a/src/conf.c +++ b/src/conf.c @@ -4876,3 +4876,39 @@ static void _snd_config_end(void) files_info_count = 0; } #endif + +size_t page_size(void) +{ + long s = sysconf(_SC_PAGE_SIZE); + assert(s > 0); + return s; +} + +size_t page_align(size_t size) +{ + size_t r; + long psz = page_size(); + r = size % psz; + if (r) + return size + psz - r; + return size; +} + +size_t page_ptr(size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset) +{ + size_t r; + long psz = page_size(); + assert(offset); + assert(mmap_offset); + *mmap_offset = object_offset; + object_offset %= psz; + *mmap_offset -= object_offset; + object_size += object_offset; + r = object_size % psz; + if (r) + r = object_size + psz - r; + else + r = object_size; + *offset = object_offset; + return r; +} diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c index 83e74e5..470bd04 100644 --- a/src/pcm/pcm_mmap.c +++ b/src/pcm/pcm_mmap.c @@ -26,42 +26,6 @@ #include <sys/shm.h> #include "pcm_local.h"
-size_t page_size(void) -{ - long s = sysconf(_SC_PAGE_SIZE); - assert(s > 0); - return s; -} - -size_t page_align(size_t size) -{ - size_t r; - long psz = page_size(); - r = size % psz; - if (r) - return size + psz - r; - return size; -} - -size_t page_ptr(size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset) -{ - size_t r; - long psz = page_size(); - assert(offset); - assert(mmap_offset); - *mmap_offset = object_offset; - object_offset %= psz; - *mmap_offset -= object_offset; - object_size += object_offset; - r = object_size % psz; - if (r) - r = object_size + psz - r; - else - r = object_size; - *offset = object_offset; - return r; -} - void snd_pcm_mmap_appl_backward(snd_pcm_t *pcm, snd_pcm_uframes_t frames) { snd_pcm_sframes_t appl_ptr = *pcm->appl.ptr;
participants (1)
-
Mike Frysinger