Changeset 7a0359b in mainline for kernel/arch/ppc32/include


Ignore:
Timestamp:
2010-07-02T15:42:19Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bbfdf62
Parents:
e3ee9b9
Message:

improve kernel function tracing

  • add support for more generic kernel sources
  • replace attribute((no_instrument_function)) with NO_TRACE macro (shorter and for future compatibility with different compilers)
  • to be on the safe side, do not instrument most of the inline and static functions (plus some specific non-static functions)

collateral code cleanup (no change in functionality)

Location:
kernel/arch/ppc32/include
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/include/asm.h

    re3ee9b9 r7a0359b  
    4040#include <arch/cpu.h>
    4141#include <arch/mm/asid.h>
    42 
    43 static inline uint32_t msr_read(void)
     42#include <trace.h>
     43
     44NO_TRACE static inline uint32_t msr_read(void)
    4445{
    4546        uint32_t msr;
     
    5354}
    5455
    55 static inline void msr_write(uint32_t msr)
     56NO_TRACE static inline void msr_write(uint32_t msr)
    5657{
    5758        asm volatile (
     
    6162}
    6263
    63 static inline void sr_set(uint32_t flags, asid_t asid, uint32_t sr)
     64NO_TRACE static inline void sr_set(uint32_t flags, asid_t asid, uint32_t sr)
    6465{
    6566        asm volatile (
     
    7071}
    7172
    72 static inline uint32_t sr_get(uint32_t vaddr)
     73NO_TRACE static inline uint32_t sr_get(uint32_t vaddr)
    7374{
    7475        uint32_t vsid;
     
    8384}
    8485
    85 static inline uint32_t sdr1_get(void)
     86NO_TRACE static inline uint32_t sdr1_get(void)
    8687{
    8788        uint32_t sdr1;
     
    103104 *
    104105 */
    105 static inline ipl_t interrupts_enable(void)
     106NO_TRACE static inline ipl_t interrupts_enable(void)
    106107{
    107108        ipl_t ipl = msr_read();
     
    118119 *
    119120 */
    120 static inline ipl_t interrupts_disable(void)
     121NO_TRACE static inline ipl_t interrupts_disable(void)
    121122{
    122123        ipl_t ipl = msr_read();
     
    132133 *
    133134 */
    134 static inline void interrupts_restore(ipl_t ipl)
     135NO_TRACE static inline void interrupts_restore(ipl_t ipl)
    135136{
    136137        msr_write((msr_read() & (~MSR_EE)) | (ipl & MSR_EE));
     
    144145 *
    145146 */
    146 static inline ipl_t interrupts_read(void)
     147NO_TRACE static inline ipl_t interrupts_read(void)
    147148{
    148149        return msr_read();
     
    154155 *
    155156 */
    156 static inline bool interrupts_disabled(void)
     157NO_TRACE static inline bool interrupts_disabled(void)
    157158{
    158159        return ((msr_read() & MSR_EE) == 0);
     
    166167 *
    167168 */
    168 static inline uintptr_t get_stack_base(void)
     169NO_TRACE static inline uintptr_t get_stack_base(void)
    169170{
    170171        uintptr_t base;
     
    179180}
    180181
    181 static inline void cpu_sleep(void)
    182 {
     182NO_TRACE static inline void cpu_sleep(void)
     183{
     184}
     185
     186NO_TRACE static inline void pio_write_8(ioport8_t *port, uint8_t v)
     187{
     188        *port = v;
     189}
     190
     191NO_TRACE static inline void pio_write_16(ioport16_t *port, uint16_t v)
     192{
     193        *port = v;
     194}
     195
     196NO_TRACE static inline void pio_write_32(ioport32_t *port, uint32_t v)
     197{
     198        *port = v;
     199}
     200
     201NO_TRACE static inline uint8_t pio_read_8(ioport8_t *port)
     202{
     203        return *port;
     204}
     205
     206NO_TRACE static inline uint16_t pio_read_16(ioport16_t *port)
     207{
     208        return *port;
     209}
     210
     211NO_TRACE static inline uint32_t pio_read_32(ioport32_t *port)
     212{
     213        return *port;
    183214}
    184215
     
    187218extern void userspace_asm(uintptr_t uspace_uarg, uintptr_t stack, uintptr_t entry);
    188219
    189 static inline void pio_write_8(ioport8_t *port, uint8_t v)
    190 {
    191         *port = v;
    192 }
    193 
    194 static inline void pio_write_16(ioport16_t *port, uint16_t v)
    195 {
    196         *port = v;
    197 }
    198 
    199 static inline void pio_write_32(ioport32_t *port, uint32_t v)
    200 {
    201         *port = v;
    202 }
    203 
    204 static inline uint8_t pio_read_8(ioport8_t *port)
    205 {
    206         return *port;
    207 }
    208 
    209 static inline uint16_t pio_read_16(ioport16_t *port)
    210 {
    211         return *port;
    212 }
    213 
    214 static inline uint32_t pio_read_32(ioport32_t *port)
    215 {
    216         return *port;
    217 }
    218 
    219220#endif
    220221
  • kernel/arch/ppc32/include/atomic.h

    re3ee9b9 r7a0359b  
    3636#define KERN_ppc32_ATOMIC_H_
    3737
    38 static inline void atomic_inc(atomic_t *val)
     38#include <trace.h>
     39
     40NO_TRACE static inline void atomic_inc(atomic_t *val)
    3941{
    4042        atomic_count_t tmp;
     
    5456}
    5557
    56 static inline void atomic_dec(atomic_t *val)
     58NO_TRACE static inline void atomic_dec(atomic_t *val)
    5759{
    5860        atomic_count_t tmp;
     
    7274}
    7375
    74 static inline atomic_count_t atomic_postinc(atomic_t *val)
     76NO_TRACE static inline atomic_count_t atomic_postinc(atomic_t *val)
    7577{
    7678        atomic_inc(val);
     
    7880}
    7981
    80 static inline atomic_count_t atomic_postdec(atomic_t *val)
     82NO_TRACE static inline atomic_count_t atomic_postdec(atomic_t *val)
    8183{
    8284        atomic_dec(val);
     
    8486}
    8587
    86 static inline atomic_count_t atomic_preinc(atomic_t *val)
     88NO_TRACE static inline atomic_count_t atomic_preinc(atomic_t *val)
    8789{
    8890        atomic_inc(val);
     
    9092}
    9193
    92 static inline atomic_count_t atomic_predec(atomic_t *val)
     94NO_TRACE static inline atomic_count_t atomic_predec(atomic_t *val)
    9395{
    9496        atomic_dec(val);
  • kernel/arch/ppc32/include/barrier.h

    re3ee9b9 r7a0359b  
    3636#define KERN_ppc32_BARRIER_H_
    3737
     38#include <trace.h>
     39
    3840#define CS_ENTER_BARRIER()  asm volatile ("" ::: "memory")
    3941#define CS_LEAVE_BARRIER()  asm volatile ("" ::: "memory")
     
    5860 */
    5961
    60 static inline void smc_coherence(void *addr)
     62NO_TRACE static inline void smc_coherence(void *addr)
    6163{
    6264        asm volatile (
     
    7072}
    7173
    72 static inline void smc_coherence_block(void *addr, unsigned int len)
     74NO_TRACE static inline void smc_coherence_block(void *addr, unsigned int len)
    7375{
    7476        unsigned int i;
  • kernel/arch/ppc32/include/cpu.h

    re3ee9b9 r7a0359b  
    5252
    5353#include <typedefs.h>
     54#include <trace.h>
    5455
    5556typedef struct {
     
    5859} __attribute__ ((packed)) cpu_arch_t;
    5960
    60 static inline void cpu_version(cpu_arch_t *info)
     61NO_TRACE static inline void cpu_version(cpu_arch_t *info)
    6162{
    6263        asm volatile (
  • kernel/arch/ppc32/include/cycle.h

    re3ee9b9 r7a0359b  
    3636#define KERN_ppc32_CYCLE_H_
    3737
    38 static inline uint64_t get_cycle(void)
     38#include <trace.h>
     39
     40NO_TRACE static inline uint64_t get_cycle(void)
    3941{
    4042        uint32_t lower;
  • kernel/arch/ppc32/include/exception.h

    re3ee9b9 r7a0359b  
    3838#include <typedefs.h>
    3939#include <arch/cpu.h>
     40#include <trace.h>
    4041
    4142typedef struct istate {
     
    8182} istate_t;
    8283
    83 static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr)
     84NO_TRACE static inline void istate_set_retaddr(istate_t *istate,
     85    uintptr_t retaddr)
    8486{
    8587        istate->pc = retaddr;
     
    9193 *
    9294 */
    93 static inline int istate_from_uspace(istate_t *istate)
     95NO_TRACE static inline int istate_from_uspace(istate_t *istate)
    9496{
    9597        return (istate->srr1 & MSR_PR) != 0;
    9698}
    9799
    98 static inline unative_t istate_get_pc(istate_t *istate)
     100NO_TRACE static inline unative_t istate_get_pc(istate_t *istate)
    99101{
    100102        return istate->pc;
    101103}
    102104
    103 static inline unative_t istate_get_fp(istate_t *istate)
     105NO_TRACE static inline unative_t istate_get_fp(istate_t *istate)
    104106{
    105107        return istate->sp;
  • kernel/arch/ppc32/include/mm/frame.h

    re3ee9b9 r7a0359b  
    4343
    4444#include <typedefs.h>
     45#include <trace.h>
    4546
    4647extern uintptr_t last_frame;
    4748
    48 static inline uint32_t physmem_top(void)
     49NO_TRACE static inline uint32_t physmem_top(void)
    4950{
    5051        uint32_t physmem;
  • kernel/arch/ppc32/include/mm/page.h

    re3ee9b9 r7a0359b  
    3737
    3838#include <arch/mm/frame.h>
     39#include <trace.h>
    3940
    4041#define PAGE_WIDTH  FRAME_WIDTH
     
    153154} pte_t;
    154155
    155 static inline unsigned int get_pt_flags(pte_t *pt, size_t i)
     156NO_TRACE static inline unsigned int get_pt_flags(pte_t *pt, size_t i)
    156157{
    157158        pte_t *entry = &pt[i];
     
    166167}
    167168
    168 static inline void set_pt_flags(pte_t *pt, size_t i, int flags)
     169NO_TRACE static inline void set_pt_flags(pte_t *pt, size_t i, int flags)
    169170{
    170171        pte_t *entry = &pt[i];
Note: See TracChangeset for help on using the changeset viewer.