VirtualBox

Ignore:
Timestamp:
Jan 2, 2015 12:17:02 PM (10 years ago)
Author:
vboxsync
Message:

VBoxDTrace: no unresolved dtrace_*. (r15)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ExtPacks/VBoxDTrace/onnv/uts/common/dtrace/dtrace.c

    r53644 r53645  
    104104# include <limits.h>
    105105
     106/*
     107 * Use asm.h to implemente some of the simple stuff in dtrace_asm.s.
     108 */
     109# include <iprt/asm.h>
     110# include <iprt/asm-amd64-x86.h>
     111# define dtrace_casptr(a_ppvDst, a_pvOld, a_pvNew) \
     112        VBoxDtCompareAndSwapPtr(a_ppvDst, a_pvOld, a_pvNew)
     113DECLINLINE(void *) VBoxDtCompareAndSwapPtr(void * volatile *ppvDst, void *pvOld, void *pvNew)
     114{
     115        void *pvRet;
     116        ASMAtomicCmpXchgExPtrVoid(ppvDst, pvNew, pvOld, &pvRet);
     117        return pvRet;
     118}
     119
     120# define dtrace_cas32(a_pu32Dst, a_pu32Old, a_pu32New) \
     121        VBoxDtCompareAndSwapU32(a_pu32Dst, a_pu32Old, a_pu32New)
     122DECLINLINE(uint32_t) VBoxDtCompareAndSwapU32(uint32_t volatile *pu32Dst, uint32_t u32Old, uint32_t u32New)
     123{
     124        uint32_t u32Ret;
     125        ASMAtomicCmpXchgExU32(pu32Dst, u32New, u32Old, &u32Ret);
     126        return u32Ret;
     127}
     128
     129#define dtrace_membar_consumer()                ASMReadFence()
     130#define dtrace_membar_producer()                ASMWriteFence()
     131#define dtrace_interrupt_disable()              ASMIntDisableFlags()
     132#define dtrace_interrupt_enable(a_EFL)  ASMSetFlags(a_EFL)
     133
     134/*
     135 * NULL must be set to 0 or we'll end up with a billion warnings(=errors).
     136 */
    106137# undef NULL
    107138# define NULL (0)
     
    18501881        }
    18511882
     1883#ifndef VBOX
    18521884        ASSERT(0);
     1885#else
     1886        AssertFatalFailed();
     1887#endif
    18531888}
    18541889
     
    27062741                                return (val);
    27072742
     2743#ifndef VBOX
    27082744                        ASSERT(0);
     2745#else
     2746                        AssertFatalFailed();
     2747#endif
    27092748                }
    27102749
     
    27482787
    27492788        case DIF_VAR_VTIMESTAMP:
     2789#ifndef VBOX
    27502790                ASSERT(dtrace_vtime_references != 0);
    27512791                return (curthread->t_dtrace_vtime);
     2792#else
     2793                cpu_core[VBDT_GET_CPUID()].cpuc_dtrace_flags |= CPU_DTRACE_ILLOP;
     2794                return (0);
     2795#endif
    27522796
    27532797        case DIF_VAR_WALLTIMESTAMP:
     
    57005744}
    57015745
     5746#ifdef VBOX
     5747extern void dtrace_probe6(dtrace_id_t, uintptr_t arg0, uintptr_t arg1,
     5748                                                  uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5);
     5749# define dtrace_probe_error(a1, a2, a3, a4, a5, a6) \
     5750        dtrace_probe6(dtrace_probeid_error, (uintptr_t)a1, a2, a3, a4, a5, a6)
     5751#endif
     5752
    57025753/*
    57035754 * If you're looking for the epicenter of DTrace, you just found it.  This
     
    62196270
    62206271                        default:
     6272#ifndef VBOX
    62216273                                ASSERT(0);
     6274#else
     6275                                AssertFatalMsgFailed(("%d\n", act->dta_kind));
     6276#endif
    62226277                        }
    62236278
     
    62836338                                 * reference, not by value.
    62846339                                 */
     6340#ifndef VBOX
    62856341                                ASSERT(0);
     6342#else
     6343                                AssertFatalMsgFailed(("%zu\n", size));
     6344#endif
    62866345                                break;
    62876346                        }
     
    86858744dtrace_difo_hold(dtrace_difo_t *dp)
    86868745{
     8746#ifndef VBOX
    86878747        VBDTTYPE(uint_t,int) i;
     8748#endif
    86888749
    86898750        ASSERT(MUTEX_HELD(&dtrace_lock));
     
    86928753        ASSERT(dp->dtdo_refcnt != 0);
    86938754
     8755#ifndef VBOX
    86948756        /*
    86958757         * We need to check this DIF object for references to the variable
     
    87058767                        dtrace_vtime_enable();
    87068768        }
     8769#endif
    87078770}
    87088771
     
    89248987
    89258988                default:
     8989#ifndef VBOX
    89268990                        ASSERT(0);
     8991#else
     8992                        AssertFatalMsgFailed(("%d\n", scope));
     8993#endif
    89278994                }
    89288995
     
    90409107
    90419108                default:
     9109#ifndef VBOX
    90429110                        ASSERT(0);
    9043 #ifdef VBOX
    9044                         continue;
     9111#else
     9112                        AssertFatalMsgFailed(("%d\n", scope));
    90459113#endif
    90469114                }
     
    90809148dtrace_difo_release(dtrace_difo_t *dp, dtrace_vstate_t *vstate)
    90819149{
     9150#ifndef VBOX
    90829151        VBDTTYPE(uint_t,int)  i;
     9152#endif
    90839153
    90849154        ASSERT(MUTEX_HELD(&dtrace_lock));
    90859155        ASSERT(dp->dtdo_refcnt != 0);
    90869156
     9157#ifndef VBOX
    90879158        for (i = 0; i < dp->dtdo_varlen; i++) {
    90889159                dtrace_difv_t *v = &dp->dtdo_vartab[i];
     
    90959166                        dtrace_vtime_disable();
    90969167        }
     9168#endif
    90979169
    90989170        if (--dp->dtdo_refcnt == 0)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette