152d2369aSRobert Mustacchi.\" 252d2369aSRobert Mustacchi.\" This file and its contents are supplied under the terms of the 352d2369aSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 452d2369aSRobert Mustacchi.\" You may only use this file in accordance with the terms of version 552d2369aSRobert Mustacchi.\" 1.0 of the CDDL. 652d2369aSRobert Mustacchi.\" 752d2369aSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 852d2369aSRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 952d2369aSRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 1052d2369aSRobert Mustacchi.\" 1152d2369aSRobert Mustacchi.\" 1252d2369aSRobert Mustacchi.\" Copyright 2016 Joyent, Inc. 1352d2369aSRobert Mustacchi.\" 1452d2369aSRobert Mustacchi.Dd May 31, 2016 1552d2369aSRobert Mustacchi.Dt MC_START 9E 1652d2369aSRobert Mustacchi.Os 1752d2369aSRobert Mustacchi.Sh NAME 1852d2369aSRobert Mustacchi.Nm mc_start , 1952d2369aSRobert Mustacchi.Nm mc_stop 2052d2369aSRobert Mustacchi.Nd start and stop device entry points 2152d2369aSRobert Mustacchi.Sh SYNOPSIS 2252d2369aSRobert Mustacchi.In sys/mac_provider.h 2352d2369aSRobert Mustacchi.Ft int 2452d2369aSRobert Mustacchi.Fo prefix_m_start 2552d2369aSRobert Mustacchi.Fa "void *driver" 2652d2369aSRobert Mustacchi.Fc 2752d2369aSRobert Mustacchi.Ft void 2852d2369aSRobert Mustacchi.Fo prefix_m_stop 2952d2369aSRobert Mustacchi.Fa "void *driver" 3052d2369aSRobert Mustacchi.Fc 3152d2369aSRobert Mustacchi.Sh INTERFACE LEVEL 3252d2369aSRobert Mustacchiillumos DDI specific 3352d2369aSRobert Mustacchi.Sh PARAMETERS 3452d2369aSRobert Mustacchi.Bl -tag -width Ds 3552d2369aSRobert Mustacchi.It Fa driver 3652d2369aSRobert MustacchiA pointer to the driver's private data that was passed in via the 3752d2369aSRobert Mustacchi.Sy m_pdata 3852d2369aSRobert Mustacchimember of the 3952d2369aSRobert Mustacchi.Xr mac_register 9S 4052d2369aSRobert Mustacchistructure to the 4152d2369aSRobert Mustacchi.Xr mac_register 9F 4252d2369aSRobert Mustacchifunction. 4352d2369aSRobert Mustacchi.El 4452d2369aSRobert Mustacchi.Sh DESCRIPTION 4552d2369aSRobert MustacchiThe 4652d2369aSRobert Mustacchi.Fn mc_start 4752d2369aSRobert Mustacchientry point for a driver indicates that it should initialize the chip 48*72d3dbb9SYuri Pankovto be ready to send or receive data. 49*72d3dbb9SYuri PankovThis entry point is guaranteed to be called before any entry points that are 50*72d3dbb9SYuri Pankovexpected to be able to send and receive data. 51*72d3dbb9SYuri PankovDuring this entry point, most devices will allocate DMA resources, enable the 52*72d3dbb9SYuri Pankovlink, and finish performing any necessary device programming. 5352d2369aSRobert Mustacchi.Pp 5452d2369aSRobert MustacchiThe 5552d2369aSRobert Mustacchi.Fn mc_stop 5652d2369aSRobert Mustacchientry point for a driver indicates that it should tear down any 5752d2369aSRobert Mustacchiallocated resources for the driver and, after the function returns, it is 5852d2369aSRobert Mustacchinot expected to perform any additional I/O. 5952d2369aSRobert Mustacchi.Pp 6052d2369aSRobert MustacchiThe driver has access to its private data in the 6152d2369aSRobert Mustacchi.Fa driver 6252d2369aSRobert Mustacchiargument to either function, which it should cast to the 63*72d3dbb9SYuri Pankovappropriate structure. 64*72d3dbb9SYuri PankovThe system guarantees that only one of the 6552d2369aSRobert Mustacchi.Fn mc_start 6652d2369aSRobert Mustacchiand 6752d2369aSRobert Mustacchi.Fn mc_stop 6852d2369aSRobert Mustacchifunctions will be called at any given time for a given instance. 6952d2369aSRobert MustacchiSimilarly, these should not be called at the same time as a device's 7052d2369aSRobert Mustacchi.Xr attach 9E 7152d2369aSRobert Mustacchior 7252d2369aSRobert Mustacchi.Xr detach 9E 73*72d3dbb9SYuri Pankovroutine. 74*72d3dbb9SYuri PankovHowever, the driver may have other ongoing routines that it needs to protect 75*72d3dbb9SYuri Pankovagainst. 76*72d3dbb9SYuri PankovThe device driver should always apply the appropriate locking techniques needed 77*72d3dbb9SYuri Pankovto ensure that access to the data in its soft state is protected. 7852d2369aSRobert Mustacchi.Sh RETURN VALUES 7952d2369aSRobert MustacchiUpon successful completion, device drivers should return 8052d2369aSRobert Mustacchi.Sy 0 8152d2369aSRobert Mustacchifor the 8252d2369aSRobert Mustacchi.Fn mc_start 83*72d3dbb9SYuri Pankoventry point. 84*72d3dbb9SYuri PankovOtherwise, they should return a non-zero positive error number to indicate the 85*72d3dbb9SYuri Pankoverror that occurred. 8652d2369aSRobert Mustacchi.Sh SEE ALSO 8752d2369aSRobert Mustacchi.Xr mac 9E , 8852d2369aSRobert Mustacchi.Xr mac_register 9F , 8952d2369aSRobert Mustacchi.Xr mac_register 9S 90