1*61046927SAndroid Build Coastguard Worker /* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ 2*61046927SAndroid Build Coastguard Worker 3*61046927SAndroid Build Coastguard Worker /* 4*61046927SAndroid Build Coastguard Worker * Copyright © 2014 Rob Clark <[email protected]> 5*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 6*61046927SAndroid Build Coastguard Worker * 7*61046927SAndroid Build Coastguard Worker * Authors: 8*61046927SAndroid Build Coastguard Worker * Rob Clark <[email protected]> 9*61046927SAndroid Build Coastguard Worker */ 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Worker #ifndef RNNUTIL_H_ 12*61046927SAndroid Build Coastguard Worker #define RNNUTIL_H_ 13*61046927SAndroid Build Coastguard Worker 14*61046927SAndroid Build Coastguard Worker #include <assert.h> 15*61046927SAndroid Build Coastguard Worker #include <stdint.h> 16*61046927SAndroid Build Coastguard Worker #include <string.h> 17*61046927SAndroid Build Coastguard Worker 18*61046927SAndroid Build Coastguard Worker #include "rnn.h" 19*61046927SAndroid Build Coastguard Worker #include "rnndec.h" 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard Worker struct rnn { 22*61046927SAndroid Build Coastguard Worker struct rnndb *db; 23*61046927SAndroid Build Coastguard Worker struct rnndeccontext *vc, *vc_nocolor; 24*61046927SAndroid Build Coastguard Worker struct rnndomain *dom[2]; 25*61046927SAndroid Build Coastguard Worker const char *variant; 26*61046927SAndroid Build Coastguard Worker }; 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Worker union rnndecval { 29*61046927SAndroid Build Coastguard Worker uint64_t u; 30*61046927SAndroid Build Coastguard Worker int64_t i; 31*61046927SAndroid Build Coastguard Worker }; 32*61046927SAndroid Build Coastguard Worker 33*61046927SAndroid Build Coastguard Worker void _rnn_init(struct rnn *rnn, int nocolor); 34*61046927SAndroid Build Coastguard Worker struct rnn *rnn_new(int nocolor); 35*61046927SAndroid Build Coastguard Worker void rnn_load_file(struct rnn *rnn, char *file, char *domain); 36*61046927SAndroid Build Coastguard Worker void rnn_load(struct rnn *rnn, const char *gpuname); 37*61046927SAndroid Build Coastguard Worker uint32_t rnn_regbase(struct rnn *rnn, const char *name); 38*61046927SAndroid Build Coastguard Worker const char *rnn_regname(struct rnn *rnn, uint32_t regbase, int color); 39*61046927SAndroid Build Coastguard Worker struct rnndecaddrinfo *rnn_reginfo(struct rnn *rnn, uint32_t regbase); 40*61046927SAndroid Build Coastguard Worker void rnn_reginfo_free(struct rnndecaddrinfo *info); 41*61046927SAndroid Build Coastguard Worker const char *rnn_enumname(struct rnn *rnn, const char *name, uint32_t val); 42*61046927SAndroid Build Coastguard Worker 43*61046927SAndroid Build Coastguard Worker struct rnndelem *rnn_regelem(struct rnn *rnn, const char *name); 44*61046927SAndroid Build Coastguard Worker struct rnndelem *rnn_regoff(struct rnn *rnn, uint32_t offset); 45*61046927SAndroid Build Coastguard Worker enum rnnttype rnn_decodelem(struct rnn *rnn, struct rnntypeinfo *info, 46*61046927SAndroid Build Coastguard Worker uint64_t regval, union rnndecval *val); 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard Worker #endif /* RNNUTIL_H_ */ 49