void riot1_setup_context(drive_context_t *ctxptr) { riot_context_t *riot; ctxptr->riot1 = lib_malloc(sizeof(riot_context_t)); riot = ctxptr->riot1; riot->prv = NULL; riot->context = (void *)ctxptr; riot->rmw_flag = &(ctxptr->cpu->rmw_flag); riot->clk_ptr = ctxptr->clk_ptr; riotcore_setup_context(riot); riot->myname = lib_msprintf("RIOT1D%d", ctxptr->mynumber); riot->undump_pra = undump_pra; riot->undump_prb = undump_prb; riot->store_pra = store_pra; riot->store_prb = store_prb; riot->read_pra = read_pra; riot->read_prb = read_prb; riot->reset = reset; riot->set_irq = set_irq; riot->restore_irq = restore_irq; }
void riot2_setup_context(drive_context_t *ctxptr) { riot_context_t *riot; driveriot2_context_t *riot2p; ctxptr->riot2 = lib_malloc(sizeof(riot_context_t)); riot = ctxptr->riot2; riot->prv = lib_malloc(sizeof(driveriot2_context_t)); riot2p = (driveriot2_context_t *)(riot->prv); riot2p->number = ctxptr->mynumber; riot2p->drivenumberjumper = ctxptr->mynumber & 0x07; /* 3 bits */ riot->context = (void *)ctxptr; riot->rmw_flag = &(ctxptr->cpu->rmw_flag); riot->clk_ptr = ctxptr->clk_ptr; riotcore_setup_context(riot); riot->myname = lib_msprintf("RIOT2D%d", ctxptr->mynumber); riot2p->drive = ctxptr->drive; riot2p->r_atn_active = 0; riot2p->int_num = interrupt_cpu_status_int_new(ctxptr->cpu->int_status, ctxptr->riot2->myname); riot->undump_pra = undump_pra; riot->undump_prb = undump_prb; riot->store_pra = store_pra; riot->store_prb = store_prb; riot->read_pra = read_pra; riot->read_prb = read_prb; riot->reset = reset; riot->set_irq = set_irq; riot->restore_irq = restore_irq; }