xref: /freebsd/sys/dev/vnic/lmac_if.m (revision 9feff969a01044c3083b552f06f7eb6416bc0524)
1#-
2# Copyright (c) 2015 The FreeBSD Foundation
3#
4# This software was developed by Semihalf under
5# the sponsorship of the FreeBSD Foundation.
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions
9# are met:
10# 1. Redistributions of source code must retain the above copyright
11#    notice, this list of conditions and the following disclaimer.
12# 2. Redistributions in binary form must reproduce the above copyright
13#    notice, this list of conditions and the following disclaimer in the
14#    documentation and/or other materials provided with the distribution.
15#
16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26# SUCH DAMAGE.
27#
28# $FreeBSD$
29
30# LMAC (BGX controller) interface description
31#
32
33INTERFACE lmac;
34
35CODE {
36	static int null_lmac_media_status(device_t dev, int lmacid, int *link,
37	    int *duplex, int *speed)
38	{
39		return (ENXIO);
40	}
41
42	static int null_lmac_media_change(device_t dev, int lmacid, int link,
43	    int duplex, int speed)
44	{
45		return (ENXIO);
46	}
47
48	static int null_lmac_phy_connect(device_t dev, int lmacid, int phy)
49	{
50		return (ENXIO);
51	}
52
53	static int null_lmac_phy_disconnect(device_t dev, int lmacid, int phy)
54	{
55		return (ENXIO);
56	}
57};
58
59# Get link status
60#
61# 0 : Success
62#
63METHOD int media_status {
64	device_t		dev;
65	int			lmacid;
66	int *			link;
67	int *			duplex;
68	int *			speed;
69} DEFAULT null_lmac_media_status;
70
71# Change link status
72#
73# 0 : Success
74#
75METHOD int media_change {
76	device_t		dev;
77	int			lmacid;
78	int			link;
79	int			duplex;
80	int			speed;
81} DEFAULT null_lmac_media_change;
82
83# Connect PHY
84#
85# 0 : Success
86#
87METHOD int phy_connect {
88	device_t		dev;
89	int			lmacid;
90	int			phy;
91} DEFAULT null_lmac_phy_connect;
92
93# Disconnect PHY
94#
95# 0 : Success
96#
97METHOD int phy_disconnect {
98	device_t		dev;
99	int			lmacid;
100	int			phy;
101} DEFAULT null_lmac_phy_disconnect;
102