From patchwork Tue Oct 27 21:27:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 7503191 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 206AF9F6CD for ; Tue, 27 Oct 2015 21:28:24 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3266420988 for ; Tue, 27 Oct 2015 21:28:23 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id CEB9E2062B for ; Tue, 27 Oct 2015 21:28:21 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 3C5DC265892; Tue, 27 Oct 2015 22:28:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 79646260663; Tue, 27 Oct 2015 22:28:12 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 7D19B26067B; Tue, 27 Oct 2015 22:28:11 +0100 (CET) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by alsa0.perex.cz (Postfix) with ESMTP id 6F16C260636 for ; Tue, 27 Oct 2015 22:28:04 +0100 (CET) Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 77AAF340845 for ; Tue, 27 Oct 2015 21:28:02 +0000 (UTC) From: Mike Frysinger To: alsa-devel@alsa-project.org Date: Tue, 27 Oct 2015 17:27:55 -0400 Message-Id: <1445981275-2132-1-git-send-email-vapier@gentoo.org> X-Mailer: git-send-email 2.5.2 Subject: [alsa-devel] [PATCH alsa-lib] move page helpers to common code X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Mike Frysinger 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 --- 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 #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;