162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * @File ctimap.h 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * @Brief 862306a36Sopenharmony_ci * This file contains the definition of generic input mapper operations 962306a36Sopenharmony_ci * for input mapper management. 1062306a36Sopenharmony_ci * 1162306a36Sopenharmony_ci * @Author Liu Chun 1262306a36Sopenharmony_ci * @Date May 23 2008 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#ifndef CTIMAP_H 1662306a36Sopenharmony_ci#define CTIMAP_H 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#include <linux/list.h> 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct imapper { 2162306a36Sopenharmony_ci unsigned short slot; /* the id of the slot containing input data */ 2262306a36Sopenharmony_ci unsigned short user; /* the id of the user resource consuming data */ 2362306a36Sopenharmony_ci unsigned short addr; /* the input mapper ram id */ 2462306a36Sopenharmony_ci unsigned short next; /* the next input mapper ram id */ 2562306a36Sopenharmony_ci struct list_head list; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciint input_mapper_add(struct list_head *mappers, struct imapper *entry, 2962306a36Sopenharmony_ci int (*map_op)(void *, struct imapper *), void *data); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciint input_mapper_delete(struct list_head *mappers, struct imapper *entry, 3262306a36Sopenharmony_ci int (*map_op)(void *, struct imapper *), void *data); 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_civoid free_input_mapper_list(struct list_head *mappers); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#endif /* CTIMAP_H */ 37