lkml.org 
[lkml]   [2017]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 24/31] nds32: Miscellaneous header files
    Date
    From: Greentime Hu <greentime@andestech.com>

    Signed-off-by: Vincent Chen <vincentc@andestech.com>
    Signed-off-by: Greentime Hu <greentime@andestech.com>
    ---
    arch/nds32/include/asm/delay.h | 51 +++++++++++++++++++++++++++++
    arch/nds32/include/asm/linkage.h | 24 ++++++++++++++
    arch/nds32/include/uapi/asm/byteorder.h | 26 +++++++++++++++
    arch/nds32/include/uapi/asm/posix_types.h | 41 +++++++++++++++++++++++
    4 files changed, 142 insertions(+)
    create mode 100644 arch/nds32/include/asm/delay.h
    create mode 100644 arch/nds32/include/asm/linkage.h
    create mode 100644 arch/nds32/include/uapi/asm/byteorder.h
    create mode 100644 arch/nds32/include/uapi/asm/posix_types.h

    diff --git a/arch/nds32/include/asm/delay.h b/arch/nds32/include/asm/delay.h
    new file mode 100644
    index 0000000..bdeeb76
    --- /dev/null
    +++ b/arch/nds32/include/asm/delay.h
    @@ -0,0 +1,51 @@
    +/*
    + * Copyright (C) 2005-2017 Andes Technology Corporation
    + *
    + * This program is free software; you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License version 2 as
    + * published by the Free Software Foundation.
    + *
    + * 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, see <http://www.gnu.org/licenses/>.
    + */
    +
    +#ifndef __NDS32_DELAY_H__
    +#define __NDS32_DELAY_H__
    +
    +#include <asm/param.h>
    +
    +static inline void __delay(unsigned long loops)
    +{
    + __asm__ __volatile__(".align 2\n"
    + "1:\n"
    + "\taddi\t%0, %0, -1\n"
    + "\tbgtz\t%0, 1b\n"
    + :"=r"(loops)
    + :"0"(loops));
    +}
    +
    +static inline void __udelay(unsigned long usecs, unsigned long lpj)
    +{
    + usecs *= (unsigned long)(((0x8000000000000000ULL / (500000 / HZ)) +
    + 0x80000000ULL) >> 32);
    + usecs = (unsigned long)(((unsigned long long)usecs * lpj) >> 32);
    + __delay(usecs);
    +}
    +
    +#define udelay(usecs) __udelay((usecs), loops_per_jiffy)
    +
    +/* make sure "usecs *= ..." in udelay do not overflow. */
    +#if HZ >= 1000
    +#define MAX_UDELAY_MS 1
    +#elif HZ <= 200
    +#define MAX_UDELAY_MS 5
    +#else
    +#define MAX_UDELAY_MS (1000 / HZ)
    +#endif
    +
    +#endif
    diff --git a/arch/nds32/include/asm/linkage.h b/arch/nds32/include/asm/linkage.h
    new file mode 100644
    index 0000000..d17abd8
    --- /dev/null
    +++ b/arch/nds32/include/asm/linkage.h
    @@ -0,0 +1,24 @@
    +/*
    + * Copyright (C) 2005-2017 Andes Technology Corporation
    + *
    + * This program is free software; you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License version 2 as
    + * published by the Free Software Foundation.
    + *
    + * 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, see <http://www.gnu.org/licenses/>.
    + */
    +
    +#ifndef __ASM_LINKAGE_H
    +#define __ASM_LINKAGE_H
    +
    +/* This file is required by include/linux/linkage.h */
    +#define __ALIGN .align 2
    +#define __ALIGN_STR ".align 2"
    +
    +#endif
    diff --git a/arch/nds32/include/uapi/asm/byteorder.h b/arch/nds32/include/uapi/asm/byteorder.h
    new file mode 100644
    index 0000000..198e8dd
    --- /dev/null
    +++ b/arch/nds32/include/uapi/asm/byteorder.h
    @@ -0,0 +1,26 @@
    +/*
    + * Copyright (C) 2005-2017 Andes Technology Corporation
    + *
    + * This program is free software; you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License version 2 as
    + * published by the Free Software Foundation.
    + *
    + * 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, see <http://www.gnu.org/licenses/>.
    + */
    +
    +#ifndef __NDS32_BYTEORDER_H__
    +#define __NDS32_BYTEORDER_H__
    +
    +#ifdef __NDS32_EB__
    +#include <linux/byteorder/big_endian.h>
    +#else
    +#include <linux/byteorder/little_endian.h>
    +#endif
    +
    +#endif /* __NDS32_BYTEORDER_H__ */
    diff --git a/arch/nds32/include/uapi/asm/posix_types.h b/arch/nds32/include/uapi/asm/posix_types.h
    new file mode 100644
    index 0000000..d0aca66
    --- /dev/null
    +++ b/arch/nds32/include/uapi/asm/posix_types.h
    @@ -0,0 +1,41 @@
    +/*
    + * Copyright (C) 2005-2017 Andes Technology Corporation
    + *
    + * This program is free software; you can redistribute it and/or modify
    + * it under the terms of the GNU General Public License version 2 as
    + * published by the Free Software Foundation.
    + *
    + * 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, see <http://www.gnu.org/licenses/>.
    + */
    +
    +#ifndef __ARCH_NDS32_POSIX_TYPES_H
    +#define __ARCH_NDS32_POSIX_TYPES_H
    +
    +/*
    + * This file is generally used by user-level software, so you need to
    + * be a little careful about namespace pollution etc. Also, we cannot
    + * assume GCC is being used.
    + */
    +
    +typedef unsigned short __kernel_mode_t;
    +#define __kernel_mode_t __kernel_mode_t
    +
    +typedef unsigned short __kernel_ipc_pid_t;
    +#define __kernel_ipc_pid_t __kernel_ipc_pid_t
    +
    +typedef unsigned short __kernel_uid_t;
    +typedef unsigned short __kernel_gid_t;
    +#define __kernel_uid_t __kernel_uid_t
    +
    +typedef unsigned short __kernel_old_dev_t;
    +#define __kernel_old_dev_t __kernel_old_dev_t
    +
    +#include <asm-generic/posix_types.h>
    +
    +#endif
    --
    1.7.9.5
    \
     
     \ /
      Last update: 2017-11-08 21:10    [W:4.080 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site