Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*******************************************************************************
*Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved. 
*
*Redistribution and use in source and binary forms, with or without modification, are permitted provided 
*that the following conditions are met: 
*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
*following disclaimer. 
*2. Redistributions in binary form must reproduce the above copyright notice, 
*this list of conditions and the following disclaimer in the documentation and/or other materials provided
*with the distribution. 
*
*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 
*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
*
* $FreeBSD$
*
********************************************************************************/
/********************************************************************************
*   tmdmapi.h 
*
*   Abstract:   This module contains function prototype of the Discovery
*               Module (DM) API callback for initiator.
*******************************************************************************/

#ifndef TDDMAPI_H

#define TDDMAPI_H

osGLOBAL void tddmCacheFlush(
				dmRoot_t 	*dmRoot,
				void 		*tdMemHandle,
				void 		*virtPtr,
				bit32 		length
				);

osGLOBAL void tddmCacheInvalidate(
				dmRoot_t 	*dmRoot,
				void 		*tdMemHandle,
				void 		*virtPtr,
				bit32 		length
				);

osGLOBAL void tddmCachePreFlush(
				dmRoot_t 	*dmRoot,
				void 		*tdMemHandle,
				void 		*virtPtr,
				bit32 		length
				);

osGLOBAL void tddmDiscoverCB(
				dmRoot_t 		*dmRoot,
				dmPortContext_t		*dmPortContext,
				bit32			eventStatus
				);

osGLOBAL void tddmQueryDiscoveryCB(
				dmRoot_t 		*dmRoot,
				dmPortContext_t		*dmPortContext,
				bit32          		discType,
				bit32			discState
				);

osGLOBAL void tddmReportDevice(
				dmRoot_t 		*dmRoot,
				dmPortContext_t		*dmPortContext,
				dmDeviceInfo_t		*dmDeviceInfo,
                                dmDeviceInfo_t		*dmExpDeviceInfo,
				bit32                   flag				
				);

osGLOBAL bit8 tddmSATADeviceTypeDecode(bit8 * pSignature);

osGLOBAL void tddmSingleThreadedEnter(
				       dmRoot_t 		*dmRoot,
				       bit32    		syncLockId
				      );
				      
osGLOBAL void tddmSingleThreadedLeave(
				       dmRoot_t 		*dmRoot,
				       bit32    		syncLockId
				      );
osGLOBAL bit32 tddmGetTransportParam(
                        dmRoot_t    *dmRoot,
                        char        *key,
                        char        *subkey1,
                        char        *subkey2,
                        char        *subkey3,
                        char        *subkey4,
                        char        *subkey5,
                        char        *valueName,
                        char        *buffer,
                        bit32       bufferLen,
                        bit32       *lenReceived
                        );
osGLOBAL bit32 
tddmRotateQnumber(
                  dmRoot_t          *dmRoot,
                  agsaDevHandle_t   *agDevHandle
                 );
#ifndef tddmLogDebugString 
GLOBAL void tddmLogDebugString(
                         dmRoot_t     *dmRoot,
                         bit32        level,
                         char         *string,
                         void         *ptr1,
                         void         *ptr2,
                         bit32        value1,
                         bit32        value2
                         );
#endif


#endif  /* TDDMAPI_H */