}
#endif
+static int
+tdm_vblank_is_valide(tdm_vblank *vblank)
+{
+ tdm_private_vblank *v = NULL;
+
+ if (vblank && vblank_list_inited) {
+ pthread_mutex_lock(&valid_list_lock);
+ LIST_FOR_EACH_ENTRY(v, &valid_vblank_list, valid_link) {
+ if (v == (tdm_private_vblank *)vblank) {
+ pthread_mutex_unlock(&valid_list_lock);
+ return 1;
+ }
+ }
+ pthread_mutex_unlock(&valid_list_lock);
+
+ }
+ return 0;
+}
+
static void
_tdm_vblank_valid_list_add(struct list_head *valid_link, struct list_head *valid_list)
{
{
tdm_private_vblank *private_vblank = user_data;
- TDM_RETURN_IF_FAIL(private_vblank != NULL);
+ TDM_RETURN_IF_FAIL(tdm_vblank_is_valide(private_vblank));
switch (type) {
case TDM_OUTPUT_CHANGE_DPMS:
tdm_private_vblank *private_vblank = vblank;
tdm_vblank_wait_info *w = NULL, *ww = NULL;
- if (!private_vblank)
- return;
+ TDM_RETURN_IF_FAIL(tdm_vblank_is_valide(vblank));
_tdm_vblank_valid_list_del(&private_vblank->valid_link);
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
if (!name)
name = TDM_VBLANK_DEFAULT_NAME;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(name != NULL, TDM_ERROR_INVALID_PARAMETER);
*name = (const char*)private_vblank->name;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(fps > 0, TDM_ERROR_INVALID_PARAMETER);
if (private_vblank->fps != fps || private_vblank->fps_changeable)
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(fps != NULL, TDM_ERROR_INVALID_PARAMETER);
*fps = private_vblank->fps;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
if (private_vblank->ignore_global_fps == ignore)
return TDM_ERROR_NONE;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
if (private_vblank->offset == offset)
return TDM_ERROR_NONE;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(offset != NULL, TDM_ERROR_INVALID_PARAMETER);
*offset = private_vblank->offset;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
if (private_vblank->enable_fake == enable_fake)
return TDM_ERROR_NONE;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(enable_fake != NULL, TDM_ERROR_INVALID_PARAMETER);
*enable_fake = private_vblank->enable_fake;
}
private_vblank = wait_info->private_vblank;
- TDM_RETURN_IF_FAIL(private_vblank != NULL);
+ TDM_RETURN_IF_FAIL(tdm_vblank_is_valide(private_vblank));
if (!_tdm_vblank_find_wait(wait_info, &private_vblank->HW_wait_list)) {
VDB("can't find wait(%p)", wait_info);
{
tdm_private_vblank *private_vblank = user_data;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_OPERATION_FAILED);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(private_vblank), TDM_ERROR_OPERATION_FAILED);
return tdm_vblank_cb_vblank_SW(private_vblank, 0);
}
unsigned int fps;
tdm_error ret;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER);
if (private_vblank->owner_tid != syscall(SYS_gettid)) {
tdm_private_vblank *private_vblank = vblank;
unsigned int interval;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER);
/* if the sequence of vblank reaches the max value, sequence can be 0. */
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED);
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(private_vblank->resource == NULL, TDM_ERROR_OPERATION_FAILED);
private_vblank->resource = resource;
{
tdm_private_vblank *private_vblank = vblank;
- TDM_RETURN_VAL_IF_FAIL(private_vblank != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valide(vblank), TDM_ERROR_INVALID_PARAMETER);
return private_vblank->stamp;
}