blob: c4b32bb98a2683609c8715434132ffbf7b6dfee0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
/* $Id$
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (C) 1992-1997,2000-2002 Silicon Graphics, Inc. All Rights Reserved.
*/
#ifndef _ASM_SN_XTALK_XBOW_INFO_H
#define _ASM_SN_XTALK_XBOW_INFO_H
#include <linux/types.h>
#include <linux/devfs_fs_kernel.h>
#define XBOW_PERF_MODES 0x03
#define XBOW_PERF_COUNTERS 0x02
#define XBOW_MONITOR_NONE 0x00
#define XBOW_MONITOR_SRC_LINK 0x01
#define XBOW_MONITOR_DEST_LINK 0x02
#define XBOW_MONITOR_INP_PKT 0x03
#define XBOW_MONITOR_MULTIPLEX 0x04
#define XBOW_LINK_MULTIPLEX 0x20
#define XBOW_PERF_TIMEOUT 4
#define XBOW_STATS_TIMEOUT HZ
typedef struct xbow_perf_link {
uint64_t xlp_cumulative[XBOW_PERF_MODES];
unsigned char xlp_link_alive;
} xbow_perf_link_t;
typedef struct xbow_link_status {
uint64_t rx_err_count;
uint64_t tx_retry_count;
} xbow_link_status_t;
typedef struct xbow_perf {
uint32_t xp_current;
unsigned char xp_link;
unsigned char xp_mode;
unsigned char xp_curlink;
unsigned char xp_curmode;
volatile uint32_t *xp_perf_reg;
} xbow_perf_t;
extern void xbow_update_perf_counters(devfs_handle_t);
extern xbow_perf_link_t *xbow_get_perf_counters(devfs_handle_t);
extern int xbow_enable_perf_counter(devfs_handle_t, int, int, int);
#define XBOWIOC_PERF_ENABLE 1
#define XBOWIOC_PERF_DISABLE 2
#define XBOWIOC_PERF_GET 3
#define XBOWIOC_LLP_ERROR_ENABLE 4
#define XBOWIOC_LLP_ERROR_DISABLE 5
#define XBOWIOC_LLP_ERROR_GET 6
struct xbow_perfarg_t {
int link;
int mode;
int counter;
};
#endif /* _ASM_SN_XTALK_XBOW_INFO_H */
|