void update_list(GEM_WINDOW *wnd, int flag_aff) { WEXTENSION_ALBUM *wext = wnd->DlgData->UserData ; OBJECT *adr_album = wnd->DlgData->BaseObject ; int i ; if (catalog_filter.nb_visibles > 0) adr_album[ALBUM_SLIDER].ob_height = (int) ((float)adr_album[ALBUM_BOX].ob_height*(float)(1+ALBUM_ITEM10-ALBUM_ITEM1)/(float)catalog_filter.nb_visibles) ; else adr_album[ALBUM_SLIDER].ob_height = adr_album[ALBUM_BOX].ob_height ; if (adr_album[ALBUM_SLIDER].ob_height > adr_album[ALBUM_BOX].ob_height) adr_album[ALBUM_SLIDER].ob_height = adr_album[ALBUM_BOX].ob_height ; if (adr_album[ALBUM_SLIDER].ob_height < 10) adr_album[ALBUM_SLIDER].ob_height = 10 ; adr_album[ALBUM_SLIDER].ob_y = (int) ((float)(wext->first)*(float)(adr_album[ALBUM_BOX].ob_height-adr_album[ALBUM_SLIDER].ob_height)/(float)(catalog_filter.nb_visibles-1-ALBUM_ITEM10+ALBUM_ITEM1)) ; if (flag_aff) xobjc_draw( wnd->window_handle, adr_album, ALBUM_BOX ) ; for (i = ALBUM_ITEM1; i <= ALBUM_ITEM10; i++) { fmt_line( adr_album, i, wext->first ) ; if (flag_aff) xobjc_draw( wnd->window_handle, adr_album, i ) ; } }
/*-------------------------------------------------------------------*/ int locate_regs(int argc, char *argv[], char *cmdline) { int rc = 0; int cpu = sysblk.pcpu; char msgbuf[256]; int start = 0; int start_adj = 0; int length = 512; REGS *regs = sysblk.regs[cpu]; u_char *tbl = (u_char *)regs; UNREFERENCED(cmdline); if ( argc == 2 ) { int ok = TRUE; U64 loc; char hdr[32]; char tlr[32]; char blknam[32]; if(!regs) { WRMSG( HHC90000, "D", "REGS not assigned" ); return -1; } loc = swap_byte_U64(regs->blkloc); MSGBUF( blknam, "%-4.4s_%2.2s%2.2X", HDL_NAME_REGS, PTYPSTR( cpu ), cpu ); MSGBUF( hdr, "%-16.16s", blknam ); MSGBUF( tlr, "END%13.13s", blknam ); /* verify head, tail, length and address */ if ( loc != (U64)((uintptr_t)regs) ) { MSGBUF( msgbuf, "REGS[%2.2X] moved; was 0x"I64_FMTX", is 0x%p", cpu, loc, regs ); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } if ( swap_byte_U32(regs->blksiz) != (U32)sizeof(REGS) ) { MSGBUF( msgbuf, "REGS[%2.2X] size wrong; is %u, should be %u", cpu, swap_byte_U32(regs->blksiz), (U32)sizeof(REGS)); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } { /* verify header */ if ( memcmp( regs->blknam, hdr, sizeof(regs->blknam) ) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, regs->blknam, sizeof(regs->blknam) ); MSGBUF( msgbuf, "REGS[%2.2X] header wrong; is %s, should be %s", cpu, sstr, hdr); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } { /* verify version */ char str[32]; memset( str, SPACE, sizeof(str) ); memcpy( str, HDL_VERS_REGS, strlen(HDL_VERS_REGS) ); if ( memcmp( regs->blkver, str, sizeof(regs->blkver) ) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, regs->blkver, sizeof(regs->blkver) ); MSGBUF( msgbuf, "REGS[%2.2X] version wrong; is %s, should be %s", cpu, sstr, str); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } { /* verify trailer */ if ( memcmp(regs->blkend, tlr, sizeof(regs->blkend)) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, regs->blkend, sizeof(regs->blkend) ); MSGBUF( msgbuf, "REGS[%2.2X] trailer wrong; is %s, should be %s", cpu, sstr, tlr); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } MSGBUF( msgbuf, "REGS[%2.2X] @ 0x%p - %sVerified", cpu, regs, ok ? "" : "Not " ); WRMSG( HHC90000, "D", msgbuf ); } if ( argc > 2 ) { /* start offset */ int x; BYTE c; if ( sscanf(argv[2], "%x%c", &x, &c) != 1 ) { return -1; } if ( x > (int)sizeof(REGS) ) { return -1; } start_adj = x % 16; start = x - ( x % 16 ); /* round to a 16 byte boundry */ if ( start + length + start_adj > (int)sizeof(REGS) ) length = (int)sizeof(REGS) - start; } if ( argc > 3 ) { /* length */ int x; BYTE c; if ( sscanf(argv[3], "%x%c", &x, &c) != 1 ) { return -1; } if ( x > 4096 ) { return -1; } length = x; } length += start_adj; if ( start + length > (int)sizeof(REGS) ) length = (int)sizeof(REGS) - start; fmt_line( tbl, "regs", start, length); return rc; }
/*-------------------------------------------------------------------*/ int locate_sysblk(int argc, char *argv[], char *cmdline) { int rc = 0; char msgbuf[256]; int start = 0; int start_adj = 0; int length = 512; u_char *tbl = (u_char *)&sysblk; UNREFERENCED(cmdline); if ( argc == 2 ) { int ok = TRUE; U64 loc = swap_byte_U64(sysblk.blkloc); /* verify head, tail, length and address */ if ( loc != (U64)((uintptr_t)&sysblk) ) { MSGBUF( msgbuf, "SYSBLK moved; was 0x"I64_FMTX", is 0x%p", loc, &sysblk ); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } if ( swap_byte_U32(sysblk.blksiz) != (U32)sizeof(SYSBLK) ) { MSGBUF( msgbuf, "SYSBLK size wrong; is %u, should be %u", swap_byte_U32(sysblk.blksiz), (U32)sizeof(SYSBLK)); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } { /* verify header */ char str[32]; memset( str, SPACE, sizeof(str) ); memcpy( str, HDL_NAME_SYSBLK, strlen(HDL_NAME_SYSBLK) ); if ( memcmp( sysblk.blknam, str, sizeof(sysblk.blknam) ) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, sysblk.blknam, sizeof(sysblk.blknam) ); MSGBUF( msgbuf, "SYSBLK header wrong; is %s, should be %s", sstr, str); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } { /* verify version */ char str[32]; memset( str, SPACE, sizeof(str) ); memcpy( str, HDL_VERS_SYSBLK, strlen(HDL_VERS_SYSBLK) ); if ( memcmp( sysblk.blkver, str, sizeof(sysblk.blkver) ) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, sysblk.blkver, sizeof(sysblk.blkver) ); MSGBUF( msgbuf, "SYSBLK version wrong; is %s, should be %s", sstr, str); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } { /* verify trailer */ char str[32]; char trailer[32]; MSGBUF( trailer, "END%13.13s", HDL_NAME_SYSBLK ); memset( str, SPACE, sizeof(str) ); memcpy( str, trailer, strlen(trailer) ); if ( memcmp(sysblk.blkend, str, sizeof(sysblk.blkend)) != 0 ) { char sstr[32]; memset( sstr, 0, sizeof(sstr) ); memcpy( sstr, sysblk.blkend, sizeof(sysblk.blkend) ); MSGBUF( msgbuf, "SYSBLK trailer wrong; is %s, should be %s", sstr, trailer); WRMSG( HHC90000, "D", msgbuf ); ok = FALSE; } } MSGBUF( msgbuf, "SYSBLK @ 0x%p - %sVerified", &sysblk, ok ? "" : "Not " ); WRMSG( HHC90000, "D", msgbuf ); } if ( argc > 2 ) { /* start offset */ int x; BYTE c; if ( sscanf(argv[2], "%x%c", &x, &c) != 1 ) { return -1; } if ( x > (int)sizeof(SYSBLK) ) { return -1; } start_adj = x % 16; start = x - ( x % 16 ); /* round to a 16 byte boundry */ if ( start + length + start_adj > (int)sizeof(SYSBLK) ) length = (int)sizeof(SYSBLK) - start; } if ( argc > 3 ) { /* length */ int x; BYTE c; if ( sscanf(argv[3], "%x%c", &x, &c) != 1 ) { return -1; } if ( x > 4096 ) { return -1; } length = x; } length += start_adj; if ( start + length > (int)sizeof(SYSBLK) ) length = (int)sizeof(SYSBLK) - start; fmt_line( tbl, "sysblk", start, length); return rc; }