/* -------------------------------------------------------------------------- Name: bcm6352_enet_open Purpose: CFE driver open entry point. -------------------------------------------------------------------------- */ static int bcm6352_enet_open(cfe_devctx_t *ctx) { bcm6352enet_softc *softc = (bcm6352enet_softc *) ctx->dev_softc; if ((softc->chipId == 0x6352) && (softc->chipRev == 0xa1)) ext_mii_check(); if (test_bit(0, &softc->dualMacMode)) port_control(0, 1); return 0; }
/* -------------------------------------------------------------------------- Name: bcm6352_enet_close Purpose: Uninitialize. -------------------------------------------------------------------------- */ static int bcm6352_enet_close(cfe_devctx_t *ctx) { bcm6352enet_softc *softc = (bcm6352enet_softc *) ctx->dev_softc; unsigned long sts; printf( "Closing Ethernet.\n" ); if (test_bit(0, &softc->dualMacMode)) port_control(0, 0); sts = softc->rxDma->intStat; softc->rxDma->intStat = sts; softc->rxDma->intMask = 0; softc->rxDma->cfg = 0; sts = softc->txDma->intStat; softc->txDma->intStat = sts; softc->txDma->intMask = 0; softc->txDma->cfg = 0; return 0; }
void text_rendering(BYTE render) { _txt_element *ele; text.on_screen = FALSE; if (text.info.count) { int pos_x = 8, pos_y = text.h - 8; uint8_t i; for (i = 0; i < TXT_MAX_LINES; i++) { ele = text.info.lines[text.info.index][i]; if (ele->enabled == TRUE) { if (!ele->surface) { gfx_text_create_surface(ele); } fade_ele(ele, 3); pos_y -= font_size[ele->font][1] * ele->factor; ele->start_x = 0; ele->start_y = 0; ele->x = pos_x; ele->y = pos_y; if ((cfg->scale != X1) && render) { rendering(ele); } if (!ele->enabled) { text_clear(ele); gfx_text_release_surface(ele); text.single.count--; } } } } if (text.single.count) { uint8_t i; for (i = 0; i < TXT_MAX_LINES; i++) { ele = text.single.lines[i]; if (ele != NULL) { if (ele->enabled == TRUE) { if (!ele->surface) { gfx_text_create_surface(ele); } fade_ele(ele, 3); if ((cfg->scale != X1) && render) { rendering(ele); } } else { text_clear(ele); gfx_text_release_surface(ele); free(text.single.lines[i]); text.single.lines[i] = NULL; text.single.count--; } } } } if (tas.type) { ele = &text.tas.counter_frames; /* counter frames */ { int old_w = ele->w; int length; if (tas.lag_frame) { sprintf(ele->text, "%d/%d [red]%d[normal]", tas.frame, tas.total, tas.total_lag_frames); length = strlen(ele->text) - 13; } else { sprintf(ele->text, "%d/%d [green]%d[normal]", tas.frame, tas.total, tas.total_lag_frames); length = strlen(ele->text) - 15; } ele->w = length * font_size[ele->font][0]; ele->h = font_size[ele->font][1]; if ((old_w != ele->w) && ele->surface) { gfx_text_release_surface(ele); } if (!ele->surface) { gfx_text_create_surface(ele); } if (render) { rendering(ele); } } { ele = &text.tas.controllers[0]; ele->text[0] = 0; port_control(port[PORT1], UP, "[up]"); port_control(port[PORT1], DOWN, "[down]"); port_control(port[PORT1], LEFT, "[left]"); port_control(port[PORT1], RIGHT, "[right]"); port_control(port[PORT1], SELECT, "[select]"); port_control(port[PORT1], START, "[start]"); port_control(port[PORT1], BUT_A, "[a]"); port_control(port[PORT1], BUT_B, "[b]"); if (!ele->surface) { gfx_text_create_surface(ele); } if (render) { rendering(ele); } } } if (fds.info.enabled) { ele = &text.fds.floppy; if ((fds.info.last_operation | fds.drive.disk_ejected)) { ele->enabled = TRUE; ele->bck = FALSE; ele->font = FONT_12X10; ele->factor = 1; ele->start_x = TXT_RIGHT; ele->start_y = TXT_DOWN; ele->x = 0; ele->y = 0; ele->w = font_size[ele->font][0]; ele->h = font_size[ele->font][1]; ele->alpha[0] = 180; ele->alpha[2] = 0; ele->text[0] = 0; if (fds.drive.disk_ejected) { ele->bck = TRUE; ele->bck_color = TXT_RED; ele->alpha[0] = 220; ele->alpha[2] = 220; strcpy(ele->text, "[normal]"); } else { if (fds.info.last_operation == FDS_OP_READ) { strcpy(ele->text, "[green]"); } else { strcpy(ele->text, "[red]"); } fds.info.last_operation = FDS_OP_NONE; } strcat(ele->text, "[floppy]"); if (!ele->surface) { gfx_text_create_surface(ele); } if (render) { rendering(ele); } } } // save slot { ele = &text.save_slot.slot; char number[5]; int i; if (ele->enabled == TRUE) { ele->text[0] = 0; fade_ele(ele, 2); for (i = 0; i < SAVE_SLOTS; i++) { if (save_slot.slot == i) { if (text.save_slot.operation == SAVE_SLOT_SAVE) { strcat(ele->text, "[red]"); } else if (text.save_slot.operation == SAVE_SLOT_READ) { strcat(ele->text, "[green]"); } else { strcat(ele->text, "[normal]"); } } else { if (save_slot.state[i]) { strcat(ele->text, "[cyan]"); } else { strcat(ele->text, "[gray]"); } } snprintf(number, sizeof(number), "%d", i); strcat(ele->text, number); } if (!ele->surface) { gfx_text_create_surface(ele); } if ((cfg->fullscreen == FULLSCR) && render) { rendering(ele); } } } }