Changeset 7a0359b in mainline for kernel/generic/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/generic/include
Files:
1 added
15 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/adt/avl.h

    re3ee9b9 r7a0359b  
    3434
    3535#ifndef KERN_AVLTREE_H_
    36 #define KERN_AVLTREE_H_ 
     36#define KERN_AVLTREE_H_
    3737
    3838#include <typedefs.h>
     39#include <trace.h>
    3940
    4041/**
     
    110111 * @param t AVL tree.
    111112 */
    112 static inline void avltree_create(avltree_t *t)
     113NO_TRACE static inline void avltree_create(avltree_t *t)
    113114{
    114115        t->root = NULL;
     
    120121 * @param node Node which is initialized.
    121122 */
    122 static inline void avltree_node_initialize(avltree_node_t *node)
     123NO_TRACE static inline void avltree_node_initialize(avltree_node_t *node)
    123124{
    124125        node->key = 0;
  • kernel/generic/include/adt/list.h

    re3ee9b9 r7a0359b  
    3737
    3838#include <typedefs.h>
     39#include <trace.h>
    3940
    4041/** Doubly linked list head and link type. */
     
    5758 * @param link Pointer to link_t structure to be initialized.
    5859 */
    59 static inline void link_initialize(link_t *link)
     60NO_TRACE static inline void link_initialize(link_t *link)
    6061{
    6162        link->prev = NULL;
     
    6970 * @param head Pointer to link_t structure representing head of the list.
    7071 */
    71 static inline void list_initialize(link_t *head)
     72NO_TRACE static inline void list_initialize(link_t *head)
    7273{
    7374        head->prev = head;
     
    8283 * @param head Pointer to link_t structure representing head of the list.
    8384 */
    84 static inline void list_prepend(link_t *link, link_t *head)
     85NO_TRACE static inline void list_prepend(link_t *link, link_t *head)
    8586{
    8687        link->next = head->next;
     
    9798 * @param head Pointer to link_t structure representing head of the list.
    9899 */
    99 static inline void list_append(link_t *link, link_t *head)
     100NO_TRACE static inline void list_append(link_t *link, link_t *head)
    100101{
    101102        link->prev = head->prev;
     
    112113 *              contained in.
    113114 */
    114 static inline void list_remove(link_t *link)
     115NO_TRACE static inline void list_remove(link_t *link)
    115116{
    116117        link->next->prev = link->prev;
     
    125126 * @param head Pointer to link_t structure representing head of the list.
    126127 */
    127 static inline bool list_empty(link_t *head)
     128NO_TRACE static inline bool list_empty(link_t *head)
    128129{
    129130        return head->next == head ? true : false;
     
    143144 *              headless) list.
    144145 */
    145 static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
     146NO_TRACE static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
    146147{
    147148        link_t *hlp;
     
    164165 *              headless list.
    165166 */
    166 static inline void headless_list_split(link_t *part1, link_t *part2)
     167NO_TRACE static inline void headless_list_split(link_t *part1, link_t *part2)
    167168{
    168169        headless_list_split_or_concat(part1, part2);
     
    176177 * @param part2 Pointer to link_t structure leading the second headless list.
    177178 */
    178 static inline void headless_list_concat(link_t *part1, link_t *part2)
     179NO_TRACE static inline void headless_list_concat(link_t *part1, link_t *part2)
    179180{
    180181        headless_list_split_or_concat(part1, part2);
  • kernel/generic/include/atomic.h

    re3ee9b9 r7a0359b  
    4040#include <verify.h>
    4141
    42 ATOMIC static inline void atomic_set(atomic_t *val, atomic_count_t i)
     42NO_TRACE ATOMIC static inline void atomic_set(atomic_t *val, atomic_count_t i)
    4343    WRITES(&val->count)
    4444    REQUIRES_EXTENT_MUTABLE(val)
     
    4747}
    4848
    49 ATOMIC static inline atomic_count_t atomic_get(atomic_t *val)
     49NO_TRACE ATOMIC static inline atomic_count_t atomic_get(atomic_t *val)
    5050    REQUIRES_EXTENT_MUTABLE(val)
    5151{
  • kernel/generic/include/bitops.h

    re3ee9b9 r7a0359b  
    3636#define KERN_BITOPS_H_
    3737
     38#include <trace.h>
     39
    3840#ifdef __32_BITS__
    3941        #define fnzb(arg)  fnzb32(arg)
     
    4951 *
    5052 */
    51 static inline uint8_t fnzb32(uint32_t arg)
     53NO_TRACE static inline uint8_t fnzb32(uint32_t arg)
    5254{
    5355        uint8_t n = 0;
     
    8486 *
    8587 */
    86 static inline uint8_t fnzb64(uint64_t arg)
     88NO_TRACE static inline uint8_t fnzb64(uint64_t arg)
    8789{
    8890        uint8_t n = 0;
  • kernel/generic/include/context.h

    re3ee9b9 r7a0359b  
    3737
    3838#include <typedefs.h>
     39#include <trace.h>
    3940#include <arch/context.h>
    4041
     
    8990 *
    9091 */
    91 static inline void __attribute__((no_instrument_function))
    92     context_restore(context_t *ctx)
     92NO_TRACE static inline void context_restore(context_t *ctx)
    9393{
    9494        context_restore_arch(ctx);
  • kernel/generic/include/macros.h

    re3ee9b9 r7a0359b  
    3939
    4040#include <typedefs.h>
     41#include <trace.h>
    4142
    4243/** Return true if the intervals overlap.
     
    4748 * @param sz2 Size of the second interval.
    4849 */
    49 static inline int __attribute__((no_instrument_function))
    50     overlaps(uintptr_t s1, size_t sz1, uintptr_t s2, size_t sz2)
     50NO_TRACE static inline int overlaps(uintptr_t s1, size_t sz1, uintptr_t s2,
     51    size_t sz2)
    5152{
    5253        uintptr_t e1 = s1 + sz1;
  • kernel/generic/include/main/main.h

    re3ee9b9 r7a0359b  
    3232/** @file
    3333 */
    34  
     34
    3535#ifndef KERN_MAIN_H_
    3636#define KERN_MAIN_H_
  • kernel/generic/include/main/version.h

    re3ee9b9 r7a0359b  
    4242/** @}
    4343 */
    44 
  • kernel/generic/include/mm/frame.h

    re3ee9b9 r7a0359b  
    3838
    3939#include <typedefs.h>
     40#include <trace.h>
    4041#include <adt/list.h>
    4142#include <mm/buddy.h>
     
    115116extern zones_t zones;
    116117
    117 static inline uintptr_t PFN2ADDR(pfn_t frame)
     118NO_TRACE static inline uintptr_t PFN2ADDR(pfn_t frame)
    118119{
    119120        return (uintptr_t) (frame << FRAME_WIDTH);
    120121}
    121122
    122 static inline pfn_t ADDR2PFN(uintptr_t addr)
     123NO_TRACE static inline pfn_t ADDR2PFN(uintptr_t addr)
    123124{
    124125        return (pfn_t) (addr >> FRAME_WIDTH);
    125126}
    126127
    127 static inline size_t SIZE2FRAMES(size_t size)
     128NO_TRACE static inline size_t SIZE2FRAMES(size_t size)
    128129{
    129130        if (!size)
     
    132133}
    133134
    134 static inline size_t FRAMES2SIZE(size_t frames)
     135NO_TRACE static inline size_t FRAMES2SIZE(size_t frames)
    135136{
    136137        return (size_t) (frames << FRAME_WIDTH);
    137138}
    138139
    139 static inline bool zone_flags_available(zone_flags_t flags)
     140NO_TRACE static inline bool zone_flags_available(zone_flags_t flags)
    140141{
    141142        return ((flags & (ZONE_RESERVED | ZONE_FIRMWARE)) == 0);
  • kernel/generic/include/security/cap.h

    re3ee9b9 r7a0359b  
    2727 */
    2828
    29 /** @addtogroup generic 
     29/** @addtogroup generic
    3030 * @{
    3131 */
     
    3535/**
    3636 * @file
    37  * @brief       Capabilities definitions.
     37 * @brief Capabilities definitions.
    3838 *
    3939 * Capabilities represent virtual rights that entitle their
  • kernel/generic/include/smp/smp.h

    re3ee9b9 r7a0359b  
    2727 */
    2828
    29 /** @addtogroup generic 
     29/** @addtogroup generic
    3030 * @{
    3131 */
     
    4141
    4242#ifdef CONFIG_SMP
     43
    4344extern void smp_init(void);
    4445extern void kmp(void *arg);
    45 #else
     46
     47#else /* CONFIG_SMP */
     48
    4649#define smp_init()
     50
    4751#endif /* CONFIG_SMP */
    4852
  • kernel/generic/include/synch/spinlock.h

    re3ee9b9 r7a0359b  
    124124 *
    125125 */
    126 static inline void spinlock_unlock_nondebug(spinlock_t *lock)
     126NO_TRACE static inline void spinlock_unlock_nondebug(spinlock_t *lock)
    127127{
    128128        /*
  • kernel/generic/include/syscall/sysarg64.h

    re3ee9b9 r7a0359b  
    3333/**
    3434 * @file
    35  * @brief       Wrapper for explicit 64-bit arguments passed to syscalls.
     35 * @brief Wrapper for explicit 64-bit arguments passed to syscalls.
    3636 */
    3737
  • kernel/generic/include/udebug/udebug_ipc.h

    re3ee9b9 r7a0359b  
    2727 */
    2828
    29 /** @addtogroup generic 
     29/** @addtogroup generic
    3030 * @{
    3131 */
     
    4141void udebug_call_receive(call_t *call);
    4242
    43 
    4443#endif
    4544
  • kernel/generic/include/udebug/udebug_ops.h

    re3ee9b9 r7a0359b  
    2727 */
    2828
    29 /** @addtogroup generic 
     29/** @addtogroup generic
    3030 * @{
    3131 */
Note: See TracChangeset for help on using the changeset viewer.