The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qat/qat_api/qat_utils/src/QatUtilsAtomic.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /* Copyright(c) 2007-2022 Intel Corporation */
    3 /* $FreeBSD$ */
    4 #include "qat_utils.h"
    5 
    6 #ifdef __x86_64__
    7 __inline int64_t
    8 qatUtilsAtomicGet(QatUtilsAtomic *pAtomicVar)
    9 {
   10         return ((int64_t)atomic64_read((QatUtilsAtomic *)pAtomicVar));
   11 }
   12 
   13 __inline void
   14 qatUtilsAtomicSet(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   15 {
   16         atomic64_set((QatUtilsAtomic *)pAtomicVar, inValue);
   17 }
   18 
   19 __inline int64_t
   20 qatUtilsAtomicAdd(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   21 {
   22         return atomic64_add_return((long)inValue, (QatUtilsAtomic *)pAtomicVar);
   23 }
   24 
   25 __inline int64_t
   26 qatUtilsAtomicSub(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   27 {
   28         return atomic64_sub_return((long)inValue, (QatUtilsAtomic *)pAtomicVar);
   29 }
   30 
   31 __inline int64_t
   32 qatUtilsAtomicInc(QatUtilsAtomic *pAtomicVar)
   33 {
   34         return atomic64_inc_return((QatUtilsAtomic *)pAtomicVar);
   35 }
   36 
   37 __inline int64_t
   38 qatUtilsAtomicDec(QatUtilsAtomic *pAtomicVar)
   39 {
   40         return atomic64_dec_return((QatUtilsAtomic *)pAtomicVar);
   41 }
   42 #else
   43 __inline int64_t
   44 qatUtilsAtomicGet(QatUtilsAtomic *pAtomicVar)
   45 {
   46         return ((int64_t)atomic_read((QatUtilsAtomic *)pAtomicVar));
   47 }
   48 
   49 __inline void
   50 qatUtilsAtomicSet(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   51 {
   52         atomic_set((QatUtilsAtomic *)pAtomicVar, inValue);
   53 }
   54 
   55 __inline int64_t
   56 qatUtilsAtomicAdd(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   57 {
   58         return atomic_add_return(inValue, (QatUtilsAtomic *)pAtomicVar);
   59 }
   60 
   61 __inline int64_t
   62 qatUtilsAtomicSub(int64_t inValue, QatUtilsAtomic *pAtomicVar)
   63 {
   64         return atomic_sub_return(inValue, (QatUtilsAtomic *)pAtomicVar);
   65 }
   66 
   67 __inline int64_t
   68 qatUtilsAtomicInc(QatUtilsAtomic *pAtomicVar)
   69 {
   70         return atomic_inc_return((QatUtilsAtomic *)pAtomicVar);
   71 }
   72 
   73 __inline int64_t
   74 qatUtilsAtomicDec(QatUtilsAtomic *pAtomicVar)
   75 {
   76         return atomic_dec_return((QatUtilsAtomic *)pAtomicVar);
   77 }
   78 #endif

Cache object: cefe60981e03b2dc2d267809c5fee579


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.