cregit-Linux how code gets into the kernel

Release 4.8 sound/core/memory.c

Directory: sound/core
/*
 *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
 * 
 *  Misc memory accessors
 *
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 */

#include <linux/export.h>
#include <linux/io.h>
#include <linux/uaccess.h>
#include <sound/core.h>

/**
 * copy_to_user_fromio - copy data from mmio-space to user-space
 * @dst: the destination pointer on user-space
 * @src: the source pointer on mmio
 * @count: the data size to copy in bytes
 *
 * Copies the data from mmio-space to user-space.
 *
 * Return: Zero if successful, or non-zero on failure.
 */

int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count) { #if defined(__i386__) || defined(CONFIG_SPARC32) return copy_to_user(dst, (const void __force*)src, count) ? -EFAULT : 0; #else char buf[256]; while (count) { size_t c = count; if (c > sizeof(buf)) c = sizeof(buf); memcpy_fromio(buf, (void __iomem *)src, c); if (copy_to_user(dst, buf, c)) return -EFAULT; count -= c; dst += c; src += c; } return 0; #endif }

Contributors

PersonTokensPropCommitsCommitProp
jaroslav kyselajaroslav kysela12291.73%666.67%
arnaldo carvalho de meloarnaldo carvalho de melo96.77%111.11%
clemens ladischclemens ladisch10.75%111.11%
al viroal viro10.75%111.11%
Total133100.00%9100.00%

EXPORT_SYMBOL(copy_to_user_fromio); /** * copy_from_user_toio - copy data from user-space to mmio-space * @dst: the destination pointer on mmio-space * @src: the source pointer on user-space * @count: the data size to copy in bytes * * Copies the data from user-space to mmio-space. * * Return: Zero if successful, or non-zero on failure. */
int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count) { #if defined(__i386__) || defined(CONFIG_SPARC32) return copy_from_user((void __force *)dst, src, count) ? -EFAULT : 0; #else char buf[256]; while (count) { size_t c = count; if (c > sizeof(buf)) c = sizeof(buf); if (copy_from_user(buf, src, c)) return -EFAULT; memcpy_toio(dst, buf, c); count -= c; dst += c; src += c; } return 0; #endif }

Contributors

PersonTokensPropCommitsCommitProp
jaroslav kyselajaroslav kysela11691.34%457.14%
arnaldo carvalho de meloarnaldo carvalho de melo97.09%114.29%
al viroal viro10.79%114.29%
clemens ladischclemens ladisch10.79%114.29%
Total127100.00%7100.00%

EXPORT_SYMBOL(copy_from_user_toio);

Overall Contributors

PersonTokensPropCommitsCommitProp
jaroslav kyselajaroslav kysela24385.26%743.75%
arnaldo carvalho de meloarnaldo carvalho de melo186.32%16.25%
takashi iwaitakashi iwai155.26%425.00%
paul gortmakerpaul gortmaker31.05%16.25%
al viroal viro20.70%16.25%
clemens ladischclemens ladisch20.70%16.25%
yacine belkadiyacine belkadi20.70%16.25%
Total285100.00%16100.00%
Directory: sound/core
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.