ESP-Miner/main/global_state.h

55 lines
1.2 KiB
C

#ifndef GLOBAL_STATE_H_
#define GLOBAL_STATE_H_
#include "asic_task.h"
#include "bm1368.h"
#include "bm1366.h"
#include "bm1397.h"
#include "common.h"
#include "power_management_task.h"
#include "serial.h"
#include "stratum_api.h"
#include "system.h"
#include "work_queue.h"
#define STRATUM_USER CONFIG_STRATUM_USER
typedef struct
{
uint8_t (*init_fn)(uint64_t);
task_result * (*receive_result_fn)(void * GLOBAL_STATE);
int (*set_max_baud_fn)(void);
void (*set_difficulty_mask_fn)(int);
void (*send_work_fn)(void * GLOBAL_STATE, bm_job * next_bm_job);
} AsicFunctions;
typedef struct
{
char * asic_model;
AsicFunctions ASIC_functions;
double asic_job_frequency_ms;
uint32_t initial_ASIC_difficulty;
work_queue stratum_queue;
work_queue ASIC_jobs_queue;
bm1397Module BM1397_MODULE;
SystemModule SYSTEM_MODULE;
AsicTaskModule ASIC_TASK_MODULE;
PowerManagementModule POWER_MANAGEMENT_MODULE;
char * extranonce_str;
int extranonce_2_len;
int abandon_work;
uint8_t * valid_jobs;
pthread_mutex_t valid_jobs_lock;
uint32_t stratum_difficulty;
uint32_t version_mask;
int sock;
} GlobalState;
#endif /* GLOBAL_STATE_H_ */