Changeset 1af372a in rtems-libbsd


Ignore:
Timestamp:
Sep 14, 2018, 12:04:09 PM (8 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
b5f8d4831d66364b7391e3660560cb9bbecada2e, 31b5c87357cee83d6a3419c5d801a9bf16912714
Children:
be6515d
Parents:
3489e3b
git-author:
Sebastian Huber <sebastian.huber@…> (09/14/18 12:04:09)
git-committer:
Sebastian Huber <sebastian.huber@…> (09/21/18 08:29:42)
Message:

ck: No hardware barriers in uniprocessor configs

Update #3472.

Location:
freebsd/sys/contrib/ck/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/contrib/ck/include/ck_cc.h

    r3489e3b r1af372a  
    2929#define CK_CC_H
    3030
     31#ifdef __rtems__
     32#include <rtems/score/cpuopts.h>
     33#endif /* __rtems__ */
    3134#if defined(__GNUC__) || defined(__SUNPRO_C)
    3235#include "gcc/ck_cc.h"
  • freebsd/sys/contrib/ck/include/gcc/arm/ck_pr.h

    r3489e3b r1af372a  
    5555}
    5656
    57 #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__)
     57#if __ARM_ARCH >= 7 || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__)
     58#ifdef RTEMS_SMP
    5859#define CK_ISB __asm __volatile("isb" : : "r" (0) : "memory")
    5960#define CK_DMB __asm __volatile("dmb" : : "r" (0) : "memory")
     
    6566#define CK_DMB_ST __asm __volatile("dmb st" : : "r" (0) : "memory")
    6667#endif /* __FreeBSD__ */
     68#else /* !RTEMS_SMP */
     69#define CK_ISB __asm __volatile("" : : "r" (0) : "memory")
     70#define CK_DMB __asm __volatile("" : : "r" (0) : "memory")
     71#define CK_DSB __asm __volatile("" : : "r" (0) : "memory")
     72#define CK_DMB_ST __asm __volatile("" : : "r" (0) : "memory")
     73#endif /* RTEMS_SMP */
    6774#else
    6875/* armv6 doesn't have dsb/dmb/isb, and no way to wait only for stores */
  • freebsd/sys/contrib/ck/include/gcc/ppc/ck_pr.h

    r3489e3b r1af372a  
    6868        }
    6969
     70#ifdef RTEMS_SMP
    7071#ifdef CK_MD_PPC32_LWSYNC
    7172#define CK_PR_LWSYNCOP "lwsync"
     
    7374#define CK_PR_LWSYNCOP "sync"
    7475#endif
     76#define CK_PR_SYNCOP "sync"
     77#else /* !RTEMS_SMP */
     78#define CK_PR_LWSYNCOP ""
     79#define CK_PR_SYNCOP ""
     80#endif /* RTEMS_SMP */
    7581
    7682CK_PR_FENCE(atomic, CK_PR_LWSYNCOP)
    7783CK_PR_FENCE(atomic_store, CK_PR_LWSYNCOP)
    78 CK_PR_FENCE(atomic_load, "sync")
     84CK_PR_FENCE(atomic_load, CK_PR_SYNCOP)
    7985CK_PR_FENCE(store_atomic, CK_PR_LWSYNCOP)
    8086CK_PR_FENCE(load_atomic, CK_PR_LWSYNCOP)
    8187CK_PR_FENCE(store, CK_PR_LWSYNCOP)
    82 CK_PR_FENCE(store_load, "sync")
     88CK_PR_FENCE(store_load, CK_PR_SYNCOP)
    8389CK_PR_FENCE(load, CK_PR_LWSYNCOP)
    8490CK_PR_FENCE(load_store, CK_PR_LWSYNCOP)
    85 CK_PR_FENCE(memory, "sync")
     91CK_PR_FENCE(memory, CK_PR_SYNCOP)
    8692CK_PR_FENCE(acquire, CK_PR_LWSYNCOP)
    8793CK_PR_FENCE(release, CK_PR_LWSYNCOP)
     
    9197
    9298#undef CK_PR_LWSYNCOP
     99#undef CK_PR_SYNCOP
    93100
    94101#undef CK_PR_FENCE
Note: See TracChangeset for help on using the changeset viewer.