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