示例#1
0
/* --------------------------------------------------------------------------
    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;
}
示例#2
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;
}
示例#3
0
文件: text.c 项目: bentley/puNES
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);
            }
        }
    }
}