mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-08 22:08:02 +00:00
8a6168fa4b
The API and UI functions to change intensity would update the gpu settings directly without updating the config option strings. This resulted in the intensity updates not saving in config files. This update should resolve that problem. Also added API functions to change xintensity and rawintensity.
120 lines
4.3 KiB
C
120 lines
4.3 KiB
C
#ifndef CONFIG_PARSER_H
|
|
#define CONFIG_PARSER_H
|
|
|
|
#include "config.h"
|
|
|
|
#include "miner.h"
|
|
#include "api.h"
|
|
#include "algorithm.h"
|
|
|
|
//profile structure
|
|
struct profile {
|
|
int profile_no;
|
|
char *name;
|
|
bool removed;
|
|
|
|
algorithm_t algorithm;
|
|
const char *devices;
|
|
char *intensity;
|
|
char *xintensity;
|
|
char *rawintensity;
|
|
const char *lookup_gap;
|
|
const char *gpu_engine;
|
|
const char *gpu_memclock;
|
|
const char *gpu_threads;
|
|
const char *gpu_fan;
|
|
const char *gpu_powertune;
|
|
const char *gpu_vddc;
|
|
const char *shaders;
|
|
const char *thread_concurrency;
|
|
const char *worksize;
|
|
};
|
|
|
|
/* globals needed outside */
|
|
extern char *cnfbuf;
|
|
extern int fileconf_load;
|
|
extern const char def_conf[];
|
|
extern char *default_config;
|
|
extern bool config_loaded;
|
|
|
|
extern int json_array_index;
|
|
|
|
extern struct profile default_profile;
|
|
extern struct profile **profiles;
|
|
extern int total_profiles;
|
|
|
|
/* profile helper functions */
|
|
extern struct profile *get_gpu_profile(int gpuid);
|
|
|
|
/* option parser functions */
|
|
extern char *set_default_algorithm(const char *arg);
|
|
extern char *set_default_nfactor(const char *arg);
|
|
extern char *set_default_devices(const char *arg);
|
|
extern char *set_default_kernelfile(const char *arg);
|
|
extern char *set_default_lookup_gap(const char *arg);
|
|
extern char *set_default_intensity(const char *arg);
|
|
extern char *set_default_xintensity(const char *arg);
|
|
extern char *set_default_rawintensity(const char *arg);
|
|
extern char *set_default_thread_concurrency(const char *arg);
|
|
#ifdef HAVE_ADL
|
|
extern char *set_default_gpu_engine(const char *arg);
|
|
extern char *set_default_gpu_memclock(const char *arg);
|
|
extern char *set_default_gpu_threads(const char *arg);
|
|
extern char *set_default_gpu_fan(const char *arg);
|
|
extern char *set_default_gpu_powertune(const char *arg);
|
|
extern char *set_default_gpu_vddc(const char *arg);
|
|
#endif
|
|
extern char *set_default_profile(char *arg);
|
|
extern char *set_default_shaders(const char *arg);
|
|
extern char *set_default_worksize(const char *arg);
|
|
|
|
extern char *set_profile_name(const char *arg);
|
|
extern char *set_profile_algorithm(const char *arg);
|
|
extern char *set_profile_devices(const char *arg);
|
|
extern char *set_profile_kernelfile(const char *arg);
|
|
extern char *set_profile_lookup_gap(const char *arg);
|
|
extern char *set_profile_intensity(const char *arg);
|
|
extern char *set_profile_xintensity(const char *arg);
|
|
extern char *set_profile_rawintensity(const char *arg);
|
|
extern char *set_profile_thread_concurrency(const char *arg);
|
|
#ifdef HAVE_ADL
|
|
extern char *set_profile_gpu_engine(const char *arg);
|
|
extern char *set_profile_gpu_memclock(const char *arg);
|
|
extern char *set_profile_gpu_threads(const char *arg);
|
|
extern char *set_profile_gpu_fan(const char *arg);
|
|
extern char *set_profile_gpu_powertune(const char *arg);
|
|
extern char *set_profile_gpu_vddc(const char *arg);
|
|
#endif
|
|
extern char *set_profile_nfactor(const char *arg);
|
|
extern char *set_profile_shaders(const char *arg);
|
|
extern char *set_profile_worksize(const char *arg);
|
|
|
|
/* config parser functions */
|
|
extern char *parse_config(json_t *val, const char *key, const char *parentkey, bool fileconf, int parent_iteration);
|
|
extern char *load_config(const char *arg, const char *parentkey, void __maybe_unused *unused);
|
|
extern char *set_default_config(const char *arg);
|
|
extern void load_default_config(void);
|
|
|
|
/* startup functions */
|
|
extern void init_default_profile();
|
|
extern void load_default_profile();
|
|
extern void apply_defaults();
|
|
extern void apply_pool_profiles();
|
|
extern void apply_pool_profile(struct pool *pool);
|
|
|
|
/* config writer */
|
|
extern void write_config(const char *filename);
|
|
|
|
/* API functions */
|
|
extern void api_profile_list(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group);
|
|
extern void api_profile_add(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group);
|
|
extern void api_profile_remove(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group);
|
|
extern void api_pool_profile(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group);
|
|
|
|
/* API/UI config update functions */
|
|
extern void update_config_intensity(struct profile *profile);
|
|
extern void update_config_xintensity(struct profile *profile);
|
|
extern void update_config_rawintensity(struct profile *profile);
|
|
|
|
#endif // CONFIG_PARSER_H
|