• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/scsi/bfa/include/cna/cee/
1/*
2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
3 * All rights reserved
4 * www.brocade.com
5 *
6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License (GPL) Version 2 as
10 * published by the Free Software Foundation
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * General Public License for more details.
16 */
17
18#ifndef __BFA_CEE_H__
19#define __BFA_CEE_H__
20
21#include <defs/bfa_defs_cee.h>
22#include <bfa_ioc.h>
23#include <cs/bfa_trc.h>
24#include <cs/bfa_log.h>
25
26typedef void (*bfa_cee_get_attr_cbfn_t) (void *dev, bfa_status_t status);
27typedef void (*bfa_cee_get_stats_cbfn_t) (void *dev, bfa_status_t status);
28typedef void (*bfa_cee_reset_stats_cbfn_t) (void *dev, bfa_status_t status);
29typedef void (*bfa_cee_hbfail_cbfn_t) (void *dev, bfa_status_t status);
30
31struct bfa_cee_cbfn_s {
32	bfa_cee_get_attr_cbfn_t    get_attr_cbfn;
33	void *get_attr_cbarg;
34	bfa_cee_get_stats_cbfn_t   get_stats_cbfn;
35	void *get_stats_cbarg;
36	bfa_cee_reset_stats_cbfn_t reset_stats_cbfn;
37	void *reset_stats_cbarg;
38};
39
40struct bfa_cee_s {
41	void *dev;
42	bfa_boolean_t get_attr_pending;
43	bfa_boolean_t get_stats_pending;
44	bfa_boolean_t reset_stats_pending;
45	bfa_status_t get_attr_status;
46	bfa_status_t get_stats_status;
47	bfa_status_t reset_stats_status;
48	struct bfa_cee_cbfn_s cbfn;
49	struct bfa_ioc_hbfail_notify_s hbfail;
50	struct bfa_trc_mod_s *trcmod;
51	struct bfa_log_mod_s *logmod;
52	struct bfa_cee_attr_s *attr;
53	struct bfa_cee_stats_s *stats;
54	struct bfa_dma_s attr_dma;
55	struct bfa_dma_s stats_dma;
56	struct bfa_ioc_s *ioc;
57	struct bfa_mbox_cmd_s get_cfg_mb;
58	struct bfa_mbox_cmd_s get_stats_mb;
59	struct bfa_mbox_cmd_s reset_stats_mb;
60};
61
62u32 bfa_cee_meminfo(void);
63void bfa_cee_mem_claim(struct bfa_cee_s *cee, u8 *dma_kva,
64			 u64 dma_pa);
65void bfa_cee_attach(struct bfa_cee_s *cee, struct bfa_ioc_s *ioc, void *dev,
66			struct bfa_trc_mod_s *trcmod,
67			struct bfa_log_mod_s *logmod);
68void bfa_cee_detach(struct bfa_cee_s *cee);
69bfa_status_t bfa_cee_get_attr(struct bfa_cee_s *cee,
70			 struct bfa_cee_attr_s *attr,
71			bfa_cee_get_attr_cbfn_t cbfn, void *cbarg);
72bfa_status_t bfa_cee_get_stats(struct bfa_cee_s *cee,
73			struct bfa_cee_stats_s *stats,
74			bfa_cee_get_stats_cbfn_t cbfn, void *cbarg);
75bfa_status_t bfa_cee_reset_stats(struct bfa_cee_s *cee,
76			bfa_cee_reset_stats_cbfn_t cbfn, void *cbarg);
77#endif /* __BFA_CEE_H__ */
78