2017-08-24 12:51:26 +05:30
/*
* Copyright ( c ) 2016 - 2017 , Linaro Ltd
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*/
# ifndef __QCOM_GLINK_NATIVE_H__
# define __QCOM_GLINK_NATIVE_H__
2017-08-24 12:51:32 +05:30
# define GLINK_FEATURE_INTENT_REUSE BIT(0)
# define GLINK_FEATURE_MIGRATION BIT(1)
# define GLINK_FEATURE_TRACER_PKT BIT(2)
2017-08-24 12:51:26 +05:30
struct qcom_glink_pipe {
size_t length ;
size_t ( * avail ) ( struct qcom_glink_pipe * glink_pipe ) ;
void ( * peak ) ( struct qcom_glink_pipe * glink_pipe , void * data ,
2017-08-24 12:51:36 +05:30
unsigned int offset , size_t count ) ;
2017-08-24 12:51:26 +05:30
void ( * advance ) ( struct qcom_glink_pipe * glink_pipe , size_t count ) ;
void ( * write ) ( struct qcom_glink_pipe * glink_pipe ,
const void * hdr , size_t hlen ,
const void * data , size_t dlen ) ;
} ;
struct qcom_glink ;
struct qcom_glink * qcom_glink_native_probe ( struct device * dev ,
2017-08-24 12:51:32 +05:30
unsigned long features ,
2017-08-24 12:51:26 +05:30
struct qcom_glink_pipe * rx ,
2017-08-24 12:51:34 +05:30
struct qcom_glink_pipe * tx ,
bool intentless ) ;
2017-08-24 12:51:26 +05:30
void qcom_glink_native_remove ( struct qcom_glink * glink ) ;
2017-08-24 12:51:30 +05:30
void qcom_glink_native_unregister ( struct qcom_glink * glink ) ;
2017-08-24 12:51:26 +05:30
# endif