1#ifndef __IXP4XX_NPE_H 2#define __IXP4XX_NPE_H 3 4#include <linux/kernel.h> 5 6extern const char *npe_names[]; 7 8struct npe_regs { 9 u32 exec_addr, exec_data, exec_status_cmd, exec_count; 10 u32 action_points[4]; 11 u32 watchpoint_fifo, watch_count; 12 u32 profile_count; 13 u32 messaging_status, messaging_control; 14 u32 mailbox_status, /*messaging_*/ in_out_fifo; 15}; 16 17struct npe { 18 struct resource *mem_res; 19 struct npe_regs __iomem *regs; 20 u32 regs_phys; 21 int id; 22 int valid; 23}; 24 25 26static inline const char *npe_name(struct npe *npe) 27{ 28 return npe_names[npe->id]; 29} 30 31int npe_running(struct npe *npe); 32int npe_send_message(struct npe *npe, const void *msg, const char *what); 33int npe_recv_message(struct npe *npe, void *msg, const char *what); 34int npe_send_recv_message(struct npe *npe, void *msg, const char *what); 35int npe_load_firmware(struct npe *npe, const char *name, struct device *dev); 36struct npe *npe_request(unsigned id); 37void npe_release(struct npe *npe); 38 39#endif /* __IXP4XX_NPE_H */ 40