/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved. * * @File ctresource.h * * @Brief * This file contains the definition of generic hardware resources for * resource management. * * @Author Liu Chun * @Date May 13 2008
*/
#ifndef CTRESOURCE_H #define CTRESOURCE_H
#include <linux/types.h>
enum RSCTYP {
SRC,
SRCIMP,
AMIXER,
SUM,
DAIO,
NUM_RSCTYP /* This must be the last one and less than 16 */
};
struct rsc_ops;
struct rsc {
u32 idx:12; /* The index of a resource */
u32 type:4; /* The type (RSCTYP) of a resource */
u32 conj:12; /* Current conjugate index */
u32 msr:4; /* The Master Sample Rate a resource working on */ void *ctrl_blk; /* Chip specific control info block for a resource */ struct hw *hw; /* Chip specific object for hardware access means */ conststruct rsc_ops *ops; /* Generic resource operations */
};
struct rsc_ops { void (*master)(struct rsc *rsc); /* Move to master resource */ void (*next_conj)(struct rsc *rsc); /* Move to next conjugate resource */ int (*index)(conststruct rsc *rsc); /* Return the index of resource */ /* Return the output slot number */ int (*output_slot)(conststruct rsc *rsc);
};
int
rsc_init(struct rsc *rsc, u32 idx, enum RSCTYP type, u32 msr, struct hw *hw); int rsc_uninit(struct rsc *rsc);
struct rsc_mgr { enum RSCTYP type; /* The type (RSCTYP) of resource to manage */ unsignedint amount; /* The total amount of a kind of resource */ unsignedint avail; /* The amount of currently available resources */ unsignedchar *rscs; /* The bit-map for resource allocation */ void *ctrl_blk; /* Chip specific control info block */ struct hw *hw; /* Chip specific object for hardware access */
};
/* Resource management is based on bit-map mechanism */ int rsc_mgr_init(struct rsc_mgr *mgr, enum RSCTYP type, unsignedint amount, struct hw *hw); int rsc_mgr_uninit(struct rsc_mgr *mgr); int mgr_get_resource(struct rsc_mgr *mgr, unsignedint n, unsignedint *ridx); int mgr_put_resource(struct rsc_mgr *mgr, unsignedint n, unsignedint idx);
#endif/* CTRESOURCE_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.