mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 00:10:15 +00:00
cmdebug-getce64-support-20030304
make cmdebug support getce64
This commit is contained in:
parent
c240e56bc6
commit
94d83a9941
@ -206,13 +206,13 @@ static char *GetCellName(struct rx_connection *aconn, afs_int32 cellnum)
|
|||||||
return cellname;
|
return cellname;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PrintCacheEntries(struct rx_connection *aconn, int aint32)
|
static int PrintCacheEntries32(struct rx_connection *aconn, int aint32)
|
||||||
{
|
{
|
||||||
register int i;
|
register int i;
|
||||||
register afs_int32 code;
|
register afs_int32 code;
|
||||||
struct AFSDBCacheEntry centry;
|
struct AFSDBCacheEntry centry;
|
||||||
char *cellname;
|
char *cellname;
|
||||||
|
|
||||||
for(i=0;i<10000;i++) {
|
for(i=0;i<10000;i++) {
|
||||||
code = RXAFSCB_GetCE(aconn, i, ¢ry);
|
code = RXAFSCB_GetCE(aconn, i, ¢ry);
|
||||||
if (code) {
|
if (code) {
|
||||||
@ -270,6 +270,87 @@ static PrintCacheEntries(struct rx_connection *aconn, int aint32)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int PrintCacheEntries64(struct rx_connection *aconn, int aint32)
|
||||||
|
{
|
||||||
|
register int i;
|
||||||
|
register afs_int32 code;
|
||||||
|
struct AFSDBCacheEntry64 centry;
|
||||||
|
char *cellname;
|
||||||
|
int ce64 = 0;
|
||||||
|
|
||||||
|
for(i=0;i<10000;i++) {
|
||||||
|
code = RXAFSCB_GetCE64(aconn, i, ¢ry);
|
||||||
|
if (code) {
|
||||||
|
if (code == 1) break;
|
||||||
|
printf("cmdebug: failed to get cache entry %d (%s)\n", i,
|
||||||
|
error_message(code));
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (centry.addr == 0) {
|
||||||
|
/* PS output */
|
||||||
|
printf("Proc %4d sleeping at %08x, pri %3d\n",
|
||||||
|
centry.netFid.Vnode, centry.netFid.Volume, centry.netFid.Unique-25);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!aint32 && !IsLocked(¢ry.lock)) continue;
|
||||||
|
|
||||||
|
/* otherwise print this entry */
|
||||||
|
printf("** Cache entry @ 0x%08x for %d.%d.%d.%d", centry.addr,
|
||||||
|
centry.cell, centry.netFid.Volume, centry.netFid.Vnode,
|
||||||
|
centry.netFid.Unique);
|
||||||
|
|
||||||
|
cellname = GetCellName(aconn, centry.cell);
|
||||||
|
if (cellname)
|
||||||
|
printf(" [%s]\n", cellname);
|
||||||
|
else
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
if (IsLocked(¢ry.lock)) {
|
||||||
|
printf(" locks: ");
|
||||||
|
PrintLock(¢ry.lock);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
#ifdef AFS_64BIT_ENV
|
||||||
|
printf(" %lld bytes\tDV %d refcnt %d\n", centry.Length, centry.DataVersion, centry.refCount);
|
||||||
|
#else
|
||||||
|
printf(" %d bytes\tDV %d refcnt %d\n", centry.Length, centry.DataVersion, centry.refCount);
|
||||||
|
#endif
|
||||||
|
printf(" callback %08x\texpires %u\n", centry.callback, centry.cbExpires);
|
||||||
|
printf(" %d opens\t%d writers\n", centry.opens, centry.writers);
|
||||||
|
|
||||||
|
/* now display states */
|
||||||
|
printf(" ");
|
||||||
|
if (centry.mvstat == 0) printf("normal file");
|
||||||
|
else if (centry.mvstat == 1) printf("mount point");
|
||||||
|
else if (centry.mvstat == 2) printf("volume root");
|
||||||
|
else printf("bogus mvstat %d", centry.mvstat);
|
||||||
|
printf("\n states (0x%x)", centry.states);
|
||||||
|
if (centry.states & 1) printf(", stat'd");
|
||||||
|
if (centry.states & 2) printf(", backup");
|
||||||
|
if (centry.states & 4) printf(", read-only");
|
||||||
|
if (centry.states & 8) printf(", mt pt valid");
|
||||||
|
if (centry.states & 0x10) printf(", pending core");
|
||||||
|
if (centry.states & 0x40) printf(", wait-for-store");
|
||||||
|
if (centry.states & 0x80) printf(", mapped");
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int PrintCacheEntries(struct rx_connection *aconn, int aint32)
|
||||||
|
{
|
||||||
|
register afs_int32 code;
|
||||||
|
struct AFSDBCacheEntry64 centry64;
|
||||||
|
|
||||||
|
code = RXAFSCB_GetCE64(aconn, 0, ¢ry64);
|
||||||
|
if (code != RXGEN_OPCODE)
|
||||||
|
return PrintCacheEntries64(aconn, aint32);
|
||||||
|
else
|
||||||
|
return PrintCacheEntries32(aconn, aint32);
|
||||||
|
}
|
||||||
|
|
||||||
static CommandProc(as)
|
static CommandProc(as)
|
||||||
struct cmd_syndesc *as; {
|
struct cmd_syndesc *as; {
|
||||||
struct rx_connection *conn;
|
struct rx_connection *conn;
|
||||||
|
Loading…
Reference in New Issue
Block a user