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/powerpc/include/pmc_mdep.h

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 /*-
    2  * This file is in the public domain.
    3  *
    4  * $FreeBSD$
    5  */
    6 
    7 #ifndef _MACHINE_PMC_MDEP_H_
    8 #define _MACHINE_PMC_MDEP_H_
    9 
   10 #define PMC_MDEP_CLASS_INDEX_POWERPC    1
   11 
   12 union pmc_md_op_pmcallocate {
   13         uint32_t                pm_event;
   14         uint64_t                __pad[4];
   15 };
   16 
   17 /* Logging */
   18 #ifdef __powerpc64__
   19 #define PMCLOG_READADDR         PMCLOG_READ64
   20 #define PMCLOG_EMITADDR         PMCLOG_EMIT64
   21 #else
   22 #define PMCLOG_READADDR         PMCLOG_READ32
   23 #define PMCLOG_EMITADDR         PMCLOG_EMIT32
   24 #endif
   25 
   26 #define mtpmr(reg, val)                                                 \
   27         __asm __volatile("mtpmr %0,%1" : : "K"(reg), "r"(val))
   28 #define mfpmr(reg)                                                      \
   29         ( { register_t val;                                             \
   30           __asm __volatile("mfpmr %0,%1" : "=r"(val) : "K"(reg));       \
   31           val; } )
   32 
   33 #define PMR_PMC0        16
   34 #define PMR_PMC1        17
   35 #define PMR_PMC2        18
   36 #define PMR_PMC3        19
   37 #define PMR_PMLCa0      144
   38 #define   PMLCax_FC       0x80000000
   39 #define   PMLCax_FCS      0x40000000
   40 #define   PMLCax_FCU      0x20000000
   41 #define   PMLCax_FCM1     0x10000000
   42 #define   PMLCax_FCM0     0x08000000
   43 #define   PMLCax_CE       0x04000000
   44 #define   PMLCax_EVENT(x) ((x) << 16)
   45 #define   PMLCax_FCGS1    0x00000002
   46 #define   PMLCax_FCGS0    0x00000001
   47 #define PMR_PMLCa1      145
   48 #define PMR_PMLCa2      146
   49 #define PMR_PMLCa3      147
   50 #define PMR_PMLCb0      272
   51 #define   PMLCbx_TRIGONCTL(x)     ((x) << 28)
   52 #define   PMLCbx_TRIGOFFCTL(x)    ((x) << 24)
   53 #define   PMLCbx_PMCC             0x00800000
   54 #define   PMLCbx_PMP(x)           ((x) << 13)
   55 #define   PMLCbx_TREHMUL(x)       ((x) << 8)
   56 #define   PMLCbx_TRESHOLD(x)      ((x) << 0)
   57 #define PMR_PMLCb1      273
   58 #define PMR_PMLCb2      274
   59 #define PMR_PMLCb3      275
   60 #define PMR_PMGC0       400
   61 #define   PMGC_FAC        0x80000000
   62 #define   PMGC_PMIE       0x40000000
   63 #define   PMGC_FCECE      0x20000000
   64 #define   PMGC_TBSEL(x)   ((x) << 11)
   65 #define   PMGC_TBEE       0x00000100
   66 #define PMR_UPMC0       0
   67 #define PMR_UPMC1       1
   68 #define PMR_UPMC2       2
   69 #define PMR_UPMC3       3
   70 #define PMR_UPMLCa0     128
   71 #define PMR_UPMLCa1     129
   72 #define PMR_UPMLCa2     130
   73 #define PMR_UPMLCa3     131
   74 #define PMR_UPMLCb0     256
   75 #define PMR_UPMLCb1     257
   76 #define PMR_UPMLCb2     258
   77 #define PMR_UPMLCb3     259
   78 #define PMR_UPMGC0      384
   79 
   80 #if     _KERNEL
   81 
   82 struct pmc_md_powerpc_pmc {
   83         uint64_t        pm_powerpc_overflowcnt;
   84         uint32_t        pm_powerpc_evsel;
   85 };
   86 
   87 union pmc_md_pmc {
   88         struct pmc_md_powerpc_pmc       pm_powerpc;
   89 };
   90 
   91 #define PMC_TRAPFRAME_TO_PC(TF) ((TF)->srr0)
   92 #define PMC_TRAPFRAME_TO_FP(TF) ((TF)->fixreg[1])
   93 #define PMC_TRAPFRAME_TO_SP(TF) (0)
   94 
   95 #endif
   96 
   97 #endif /* !_MACHINE_PMC_MDEP_H_ */

Cache object: f0d5535dbe2880318cb30767ad1a27b9


[ 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.