static inline int onenand_load_spare(OneNANDState *s, int sec, int secn,

                void *dest)

{

    uint8_t buf[512];



    if (s->bdrv_cur) {

        if (bdrv_read(s->bdrv_cur, s->secs_cur + (sec >> 5), buf, 1) < 0)

            return 1;

        memcpy(dest, buf + ((sec & 31) << 4), secn << 4);

    } else if (sec + secn > s->secs_cur)

        return 1;

    else

        memcpy(dest, s->current + (s->secs_cur << 9) + (sec << 4), secn << 4);

 

    return 0;

}

static inline int onenand_load_spare(OneNANDState *s, int sec, int secn,

                void *dest)

{

    uint8_t buf[512];



    if (s->bdrv_cur) {

        if (bdrv_read(s->bdrv_cur, s->secs_cur + (sec >> 5), buf, 1) < 0)

            return 1;

        memcpy(dest, buf + ((sec & 31) << 4), secn << 4);

    } else if (sec + secn > s->secs_cur)

        return 1;

    else

        memcpy(dest, s->current + (s->secs_cur << 9) + (sec << 4), secn << 4);

 

    return 0;

}

static inline int FUNC_0(OneNANDState *VAR_0, int VAR_1, int VAR_2,

                void *VAR_3)

{

    uint8_t buf[512];



    if (VAR_0->bdrv_cur) {

        if (bdrv_read(VAR_0->bdrv_cur, VAR_0->secs_cur + (VAR_1 >> 5), buf, 1) < 0)

            return 1;

        memcpy(VAR_3, buf + ((VAR_1 & 31) << 4), VAR_2 << 4);

    } else if (VAR_1 + VAR_2 > VAR_0->secs_cur)

        return 1;

    else

        memcpy(VAR_3, VAR_0->current + (VAR_0->secs_cur << 9) + (VAR_1 << 4), VAR_2 << 4);

 

    return 0;

}

static inline int FUNC_0(OneNANDState *VAR_0, int VAR_1, int VAR_2,
void *VAR_3)
{ uint8_t buf[512]; if (VAR_0->bdrv_cur) { if (bdrv_read(VAR_0->bdrv_cur, VAR_0->secs_cur + (VAR_1 >> 5), buf, 1) < 0)
return 1; memcpy(VAR_3, buf + ((VAR_1 & 31) << 4), VAR_2 << 4); } else if (VAR_1 + VAR_2 > VAR_0->secs_cur) return 1; else
memcpy(VAR_3, VAR_0->current + (VAR_0->secs_cur << 9) + (VAR_1 << 4), VAR_2 << 4); return 0; }