beb44a0271ec4eb25ec83046f89f2b6c3467b3da
[linux-flexiantxendom0-3.2.10.git] / include / asm-ia64 / sn / xtalk / xswitch.h
1 /* $Id$
2  *
3  * This file is subject to the terms and conditions of the GNU General Public
4  * License.  See the file "COPYING" in the main directory of this archive
5  * for more details.
6  *
7  * Copyright (C) 1992-1997,2000-2002 Silicon Graphics, Inc.  All Rights Reserved.
8  */
9 #ifndef _ASM_SN_XTALK_XSWITCH_H
10 #define _ASM_SN_XTALK_XSWITCH_H
11
12 /*
13  * xswitch.h - controls the format of the data
14  * provided by xswitch verticies back to the
15  * xtalk bus providers.
16  */
17
18 #ifndef __ASSEMBLY__
19
20 #include <linux/devfs_fs_kernel.h>
21 #include <asm/sn/xtalk/xtalk.h>
22
23 typedef struct xswitch_info_s *xswitch_info_t;
24
25 typedef int
26                         xswitch_reset_link_f(devfs_handle_t xconn);
27
28 typedef struct xswitch_provider_s {
29     xswitch_reset_link_f   *reset_link;
30 } xswitch_provider_t;
31
32 extern void             xswitch_provider_register(devfs_handle_t sw_vhdl, xswitch_provider_t * xsw_fns);
33
34 xswitch_reset_link_f    xswitch_reset_link;
35
36 extern xswitch_info_t   xswitch_info_new(devfs_handle_t vhdl);
37
38 extern void             xswitch_info_link_is_ok(xswitch_info_t xswitch_info,
39                                                 xwidgetnum_t port);
40 extern void             xswitch_info_vhdl_set(xswitch_info_t xswitch_info,
41                                               xwidgetnum_t port,
42                                               devfs_handle_t xwidget);
43 extern void             xswitch_info_master_assignment_set(xswitch_info_t xswitch_info,
44                                                        xwidgetnum_t port,
45                                                devfs_handle_t master_vhdl);
46
47 extern xswitch_info_t   xswitch_info_get(devfs_handle_t vhdl);
48
49 extern int              xswitch_info_link_ok(xswitch_info_t xswitch_info,
50                                              xwidgetnum_t port);
51 extern devfs_handle_t     xswitch_info_vhdl_get(xswitch_info_t xswitch_info,
52                                               xwidgetnum_t port);
53 extern devfs_handle_t     xswitch_info_master_assignment_get(xswitch_info_t xswitch_info,
54                                                       xwidgetnum_t port);
55
56 extern int              xswitch_id_get(devfs_handle_t vhdl);
57 extern void             xswitch_id_set(devfs_handle_t vhdl,int xbow_num);
58
59 #endif                          /* __ASSEMBLY__ */
60
61 #endif                          /* _ASM_SN_XTALK_XSWITCH_H */