#ifndef __UNWIND_H #define __UNWIND_H #include #include "event.h" #include "symbol.h" #include "thread.h" struct unwind_entry { struct map *map; struct symbol *sym; u64 ip; }; typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg); struct unwind_libunwind_ops { int (*prepare_access)(struct thread *thread); void (*flush_access)(struct thread *thread); void (*finish_access)(struct thread *thread); int (*get_entries)(unwind_entry_cb_t cb, void *arg, struct thread *thread, struct perf_sample *data, int max_stack); }; #ifdef HAVE_DWARF_UNWIND_SUPPORT int unwind__get_entries(unwind_entry_cb_t cb, void *arg, struct thread *thread, struct perf_sample *data, int max_stack); /* libunwind specific */ #ifdef HAVE_LIBUNWIND_SUPPORT #ifndef LIBUNWIND__ARCH_REG_ID #define LIBUNWIND__ARCH_REG_ID(regnum) libunwind__arch_reg_id(regnum) #endif #ifndef LIBUNWIND__ARCH_REG_SP #define LIBUNWIND__ARCH_REG_SP PERF_REG_SP #endif #ifndef LIBUNWIND__ARCH_REG_IP #define LIBUNWIND__ARCH_REG_IP PERF_REG_IP #endif int LIBUNWIND__ARCH_REG_ID(int regnum); int unwind__prepare_access(struct thread *thread, struct map *map, bool *initialized); void unwind__flush_access(struct thread *thread); void unwind__finish_access(struct thread *thread); #else static inline int unwind__prepare_access(struct thread *thread __maybe_unused, struct map *map __maybe_unused, bool *initialized __maybe_unused) { return 0; } static inline void unwind__flush_access(struct thread *thread __maybe_unused) {} static inline void unwind__finish_access(struct thread *thread __maybe_unused) {} #endif #else static inline int unwind__get_entries(unwind_entry_cb_t cb __maybe_unused, void *arg __maybe_unused, struct thread *thread __maybe_unused, struct perf_sample *data __maybe_unused, int max_stack __maybe_unused) { return 0; } static inline int unwind__prepare_access(struct thread *thread __maybe_unused, struct map *map __maybe_unused, bool *initialized __maybe_unused) { return 0; } static inline void unwind__flush_access(struct thread *thread __maybe_unused) {} static inline void unwind__finish_access(struct thread *thread __maybe_unused) {} #endif /* HAVE_DWARF_UNWIND_SUPPORT */ #endif /* __UNWIND_H */ de'>
path: root/include
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2017-02-04 13:02:44 -0800
committerDavid S. Miller <davem@davemloft.net>2017-02-07 10:51:46 -0500
commit648ea0134069cda7d4940f397bcc6901fb88752a (patch)
tree2e898d9c56777f31708c0292170eae5d76c13882 /include
parent71e0bbde0d88047f66b25721f69a441d46083748 (diff)
net: phy: Allow pre-declaration of MDIO devices
Allow board support code to collect pre-declarations for MDIO devices by registering them with mdiobus_register_board_info(). SPI and I2C buses have a similar feature, we were missing this for MDIO devices, but this is particularly useful for e.g: MDIO-connected switches which need to provide their port layout (often board-specific) to a MDIO Ethernet switch driver. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mdio.h3
-rw-r--r--include/linux/mod_devicetable.h1
-rw-r--r--include/linux/phy.h19
3 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/mdio.h b/include/linux/mdio.h