view release on metacpan or search on metacpan
2627282930313233343536pod/xstat_cm_test.pod
pod/xstat_fs_test.pod
pod/afsmon_stats.pod
pod/Monitor.pod
src/Monitor.xs
src/Makefile.PL
src/ppport.h
src/t/Monitor.t
src/afsmon-labels.h
src/Monitor.pm
src/typemap
examples/cmdebug view on Meta::CPAN
190191192193194195196197198199200201202203204205206207208209
if
(
$centry
->{states} & 8) {
", mt pt valid"
;
}
if
(
$centry
->{states} & 0x10) {
", pending core"
;
}
if
(
$centry
->{states} & 0x40) {
", wait-for-store"
;
}
if
(
$centry
->{states} & 0x80) {
", mapped"
;
}
"\n"
;
}
}
}
sub
print_lock {
my
$lock
=
shift
;
examples/xstat_cm_test view on Meta::CPAN
364365366367368369370371372373374375376377378379380381382383384printf
"\t%10d afs_gn_mknod\n"
,
$data
->{afs_gn_mknod};
printf
"\t%10d afs_gn_remove\n"
,
$data
->{afs_gn_remove};
printf
"\t%10d afs_gn_rename\n"
,
$data
->{afs_gn_rename};
printf
"\t%10d afs_gn_rmdir\n"
,
$data
->{afs_gn_rmdir};
printf
"\t%10d afs_gn_fid\n"
,
$data
->{afs_gn_fid};
printf
"\t%10d afs_gn_lookup\n"
,
$data
->{afs_gn_lookup};
printf
"\t%10d afs_gn_open\n"
,
$data
->{afs_gn_open};
printf
"\t%10d afs_gn_create\n"
,
$data
->{afs_gn_create};
printf
"\t%10d afs_gn_hold\n"
,
$data
->{afs_gn_hold};
printf
"\t%10d afs_gn_rele\n"
,
$data
->{afs_gn_rele};
printf
"\t%10d afs_gn_unmap\n"
,
$data
->{afs_gn_unmap};
printf
"\t%10d afs_gn_access\n"
,
$data
->{afs_gn_access};
printf
"\t%10d afs_gn_getattr\n"
,
$data
->{afs_gn_getattr};
printf
"\t%10d afs_gn_setattr\n"
,
$data
->{afs_gn_setattr};
printf
"\t%10d afs_gn_fclear\n"
,
$data
->{afs_gn_fclear};
printf
"\t%10d afs_gn_fsync\n"
,
$data
->{afs_gn_fsync};
printf
"\t%10d phash\n"
,
$data
->{pHash};
printf
"\t%10d DInit\n"
,
$data
->{DInit};
printf
"\t%10d DRead\n"
,
$data
->{DRead};
printf
"\t%10d FixupBucket\n"
,
$data
->{FixupBucket};
printf
"\t%10d afs_newslot\n"
,
$data
->{afs_newslot};
examples/xstat_cm_test view on Meta::CPAN
476477478479480481482483484485486487488489490491492493494495496printf
"\t%10d gop_lookupname\n"
,
$data
->{gop_lookupname};
printf
"\t%10d afs_uniqtime\n"
,
$data
->{afs_uniqtime};
printf
"\t%10d gfs_vattr_null\n"
,
$data
->{gfs_vattr_null};
printf
"\t%10d afs_lock\n"
,
$data
->{afs_lock};
printf
"\t%10d afs_unlock\n"
,
$data
->{afs_unlock};
printf
"\t%10d afs_update\n"
,
$data
->{afs_update};
printf
"\t%10d afs_gclose\n"
,
$data
->{afs_gclose};
printf
"\t%10d afs_gopen\n"
,
$data
->{afs_gopen};
printf
"\t%10d afs_greadlink\n"
,
$data
->{afs_greadlink};
printf
"\t%10d afs_select\n"
,
$data
->{afs_select};
printf
"\t%10d afs_gbmap\n"
,
$data
->{afs_gbmap};
printf
"\t%10d afs_getfsdata\n"
,
$data
->{afs_getfsdata};
printf
"\t%10d afs_gsymlink\n"
,
$data
->{afs_gsymlink};
printf
"\t%10d afs_namei\n"
,
$data
->{afs_namei};
printf
"\t%10d afs_gmount\n"
,
$data
->{afs_gmount};
printf
"\t%10d afs_gget\n"
,
$data
->{afs_gget};
printf
"\t%10d afs_glink\n"
,
$data
->{afs_glink};
printf
"\t%10d afs_gmkdir\n"
,
$data
->{afs_gmkdir};
printf
"\t%10d afs_unlink\n"
,
$data
->{afs_unlink};
printf
"\t%10d afs_grmdir\n"
,
$data
->{afs_grmdir};
printf
"\t%10d afs_makenode\n"
,
$data
->{afs_makenode};
examples/xstat_cm_test view on Meta::CPAN
656657658659660661662663664665666667668669670671672673674675676printf
"\t%10d afs_FinalizeReq\n"
,
$data
->{afs_FinalizeReq};
printf
"\t%10d afs_GetVolCache\n"
,
$data
->{afs_GetVolCache};
printf
"\t%10d afs_GetVolSlot\n"
,
$data
->{afs_GetVolSlot};
printf
"\t%10d afs_UFSGetVolSlot\n"
,
$data
->{afs_UFSGetVolSlot};
printf
"\t%10d afs_MemGetVolSlot\n"
,
$data
->{afs_MemGetVolSlot};
printf
"\t%10d afs_WriteVolCache\n"
,
$data
->{afs_WriteVolCache};
printf
"\t%10d haveCallbacksfrom\n"
,
$data
->{HaveCallBacksFrom};
printf
"\t%10d afs_getpage\n"
,
$data
->{afs_getpage};
printf
"\t%10d afs_putpage\n"
,
$data
->{afs_putpage};
printf
"\t%10d afs_nfsrdwr\n"
,
$data
->{afs_nfsrdwr};
printf
"\t%10d afs_map\n"
,
$data
->{afs_map};
printf
"\t%10d afs_cmp\n"
,
$data
->{afs_cmp};
printf
"\t%10d afs_PageLeft\n"
,
$data
->{afs_PageLeft};
printf
"\t%10d afs_mount\n"
,
$data
->{afs_mount};
printf
"\t%10d afs_unmount\n"
,
$data
->{afs_unmount};
printf
"\t%10d afs_root\n"
,
$data
->{afs_root};
printf
"\t%10d afs_statfs\n"
,
$data
->{afs_statfs};
printf
"\t%10d afs_sync\n"
,
$data
->{afs_sync};
printf
"\t%10d afs_vget\n"
,
$data
->{afs_vget};
printf
"\t%10d afs_index\n"
,
$data
->{afs_index};
printf
"\t%10d afs_setpag\n"
,
$data
->{afs_setpag};
examples/xstat_cm_test view on Meta::CPAN
712713714715716717718719720721722723724725726727728729730731732printf
"\t%10d afs_MemHandleLink\n"
,
$data
->{afs_MemHandleLink};
printf
"\t%10d afs_UFSHandleLink\n"
,
$data
->{afs_UFSHandleLink};
printf
"\t%10d HandleFlock\n"
,
$data
->{HandleFlock};
printf
"\t%10d afs_readlink\n"
,
$data
->{afs_readlink};
printf
"\t%10d afs_fsync\n"
,
$data
->{afs_fsync};
printf
"\t%10d afs_inactive\n"
,
$data
->{afs_inactive};
printf
"\t%10d afs_ustrategy\n"
,
$data
->{afs_ustrategy};
printf
"\t%10d afs_strategy\n"
,
$data
->{afs_strategy};
printf
"\t%10d afs_bread\n"
,
$data
->{afs_bread};
printf
"\t%10d afs_brelse\n"
,
$data
->{afs_brelse};
printf
"\t%10d afs_bmap\n"
,
$data
->{afs_bmap};
printf
"\t%10d afs_fid\n"
,
$data
->{afs_fid};
printf
"\t%10d afs_FakeOpen\n"
,
$data
->{afs_FakeOpen};
printf
"\t%10d afs_FakeClose\n"
,
$data
->{afs_FakeClose};
printf
"\t%10d afs_StoreOnLastReference\n"
,
$data
->{afs_StoreOnLastReference};
printf
"\t%10d afs_AccessOK\n"
,
$data
->{afs_AccessOK};
printf
"\t%10d afs_GetAccessBits\n"
,
$data
->{afs_GetAccessBits};
printf
"\t%10d afsio_copy\n"
,
$data
->{afsio_copy};
printf
"\t%10d afsio_trim\n"
,
$data
->{afsio_trim};
printf
"\t%10d afsio_skip\n"
,
$data
->{afsio_skip};
printf
"\t%10d afs_page_read\n"
,
$data
->{afs_page_read};
src/Makefile.PL view on Meta::CPAN
203204205206207208209210211212213214215216217218219220221222223224225system
(
"perl -p -i.bak -e $command Makefile"
);
# change the library name of the AFS system library "libsys"
$command
=
"\'s#-lsys#$AFSPath/lib/afs/libsys.a#\'"
;
system
(
"perl -p -i.bak -e $command Makefile"
);
# change the library name of the AFS system library "libcmd"
$command
=
"\'s#-lcmd#$AFSPath/lib/afs/libcmd.a#\'"
;
system
(
"perl -p -i.bak -e $command Makefile"
);
# make changes to the typemap file if Perl < 5.6.0
$command
=
"\'s#T_UV#T_IV#\'"
;
system
(
"perl -p -i.bak -e $command typemap"
)
unless
$] >= 5.006;
sub
version {
my
(
$testver
,
$compver
) =
@_
;
$compver
=
$ENV
{VERSION}
unless
defined
$compver
;
# Remove possible package name from both strings.
$testver
=~ s/^([a-zA-Z][^-]*-)*//;
src/Monitor.xs view on Meta::CPAN
841842843844845846847848849850851852853854855856857858859860861if
((strcasecmp(arg1,
"fs"
) != 0) && (strcasecmp(arg1,
"cm"
) != 0)) {
sprintf
(buffer,
"Second argument of \"show\" directive should be \"fs\" or \"cm\""
);
return
(-1);
}
/* Each entry can either be a variable name or a section/group name. Variable
* names are listed in xx_varNames[] and section/group names in xx_categories[].
* The section/group names in xx_categiries[] also give the starting/ending
* indices of the variables belonging to that section/group. These indices
* are stored in order in xx_Display_map[] and displayed to the screen in that
* order. */
/* To handle duplicate
"show"
entries we keep track of what what we have
* already marked to show in the xx_showFlags[] */
if
(strcasecmp(arg1,
"fs"
) == 0) { /* its a File Server entry */
/* mark that we have to show only what the user wants */
*fs_showDefault
= 0;
/*
if
it is a section/group name, find it in the fs_categories[] array */
src/Monitor.xs view on Meta::CPAN
873874875876877878879880881882883884885886887888889890891892893
}
}
if
(!found) { /* typo in section/group name */
sprintf
(buffer,
"Could not find section/group name %s"
, arg2);
return
(-1);
}
}
/*
if
it is a group name,
read
its start/end indices and fill in the
* fs_Display_map[]. */
if
(strcasestr(arg2,
"_group"
) != (char *)NULL) {
if
(fromIdx < 0 || toIdx < 0 || fromIdx > NUM_FS_STAT_ENTRIES ||
toIdx > NUM_FS_STAT_ENTRIES)
return
(-2);
for
(j = fromIdx; j <= toIdx; j++) {
fs_showFlags[j] = 1;
}
}
src/Monitor.xs view on Meta::CPAN
967968969970971972973974975976977978979980981982983984985986987
if
(fromIdx < 0 || toIdx < 0 || fromIdx > NUM_CM_STAT_ENTRIES
|| toIdx > NUM_CM_STAT_ENTRIES)
return
(-10);
for
(j = fromIdx; j <= toIdx; j++) {
cm_showFlags[j] = 1;
}
}
/*
if
it is a section name, get the count of number of groups in it and
*
for
each
group fill in the start/end indices in the cm_Display_map[] */
else
if
(strcasestr(arg2,
"_section"
) != (char *)NULL) {
/* fromIdx is actually the number of groups in thi section */
numGroups = fromIdx;
/*
for
each
group in section */
while
(idx < CM_NUM_DATA_CATEGORIES && numGroups) {
sscanf(cm_categories[idx],
"%s %d %d"
, catName,
&fromIdx
,
&toIdx
);
if
(strcasestr(catName,
"_group"
) != (char *) NULL) {
if
(fromIdx < 0 || toIdx < 0 || fromIdx > NUM_CM_STAT_ENTRIES
src/Monitor.xs view on Meta::CPAN
237823792380238123822383238423852386238723882389239023912392239323942395239623972398/*
* Copy in the
socket
info
for
the current server, resolve its
* printable name
if
possible.
*/
memcpy(&(curr_conn->skt), a_socketArray + curr_srv,
sizeof(struct sockaddr_in));
hostNameFound = hostutil_GetNameByINet(curr_conn->skt.sin_addr.s_addr);
if
(hostNameFound == NULL) {
warn
(
"Can't map Internet address %lu to a string name"
,
curr_conn->skt.sin_addr.s_addr);
curr_conn->hostName[0] =
'\0'
;
}
else
{
strcpy(curr_conn->hostName, hostNameFound);
}
/*
* Make an Rx connection to the current server.
*/
src/Monitor.xs view on Meta::CPAN
345434553456345734583459346034613462346334643465346634673468346934703471347234733474/*
* Copy in the
socket
info
for
the current server, resolve its
* printable name
if
possible.
*/
memcpy(&(curr_conn->skt), a_socketArray + curr_srv,
sizeof(struct sockaddr_in));
hostNameFound = hostutil_GetNameByINet(curr_conn->skt.sin_addr.s_addr);
if
(hostNameFound == NULL) {
warn
(
"Can't map Internet address %lu to a string name"
,
curr_conn->skt.sin_addr.s_addr);
curr_conn->hostName[0] =
'\0'
;
}
else
{
strcpy(curr_conn->hostName, hostNameFound);
}
/*
* Make an Rx connection to the current server.
*/
src/Monitor.xs view on Meta::CPAN
397239733974397539763977397839793980398139823983398439853986398739883989399039913992
sprintf
(data_name,
"%s, backup"
, data_name);
if
(centry.states & 4)
sprintf
(data_name,
"%s, read-only"
, data_name);
if
(centry.states & 8)
sprintf
(data_name,
"%s, mt pt valid"
, data_name);
if
(centry.states & 0x10)
sprintf
(data_name,
"%s, pending core"
, data_name);
if
(centry.states & 0x40)
sprintf
(data_name,
"%s, wait-for-store"
, data_name);
if
(centry.states & 0x80)
sprintf
(data_name,
"%s, mapped"
, data_name);
hv_store(CENTRY,
"states"
, 6, newSVpv(data_name, strlen(data_name)), 0);
av_store(CACHE_ENTRIES, i, newRV_inc((SV *) CENTRY));
}
return
0;
}
/*
* from src/venus/cmdebug.c
src/Monitor.xs view on Meta::CPAN
455345544555455645574558455945604561456245634564456545664567456845694570457145724573
fprintf(scout_debugfd,
"[%s] IP addr 0x%lx, port %d\n"
, rn,
(a_socketArray + curr_srv)->sin_addr.s_addr,
(a_socketArray + curr_srv)->sin_port);
fflush(scout_debugfd);
}
memcpy(&(curr_conn->skt), a_socketArray + curr_srv,
sizeof(struct sockaddr_in));
hostNameFound = hostutil_GetNameByINet(curr_conn->skt.sin_addr.s_addr);
if
(hostNameFound == (char *) NULL) {
warn
(
"Can't map Internet address %lu to a string name\n"
,
curr_conn->skt.sin_addr.s_addr);
curr_conn->hostName[0] =
'\0'
;
}
else
{
strcpy(curr_conn->hostName, hostNameFound);
if
(scout_debugfd) {
fprintf(scout_debugfd,
"[%s] Host name for server index %d is %s\n"
, rn,
curr_srv, curr_conn->hostName);
fflush(scout_debugfd);
src/Monitor.xs view on Meta::CPAN
54535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475
newSViv(cmp->callInfo.C_afs_gn_open), 0);
data_name =
"afs_gn_create"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_create), 0);
data_name =
"afs_gn_hold"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_hold), 0);
data_name =
"afs_gn_rele"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_rele), 0);
data_name =
"afs_gn_unmap"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_unmap), 0);
data_name =
"afs_gn_access"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_access), 0);
data_name =
"afs_gn_getattr"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_getattr), 0);
data_name =
"afs_gn_setattr"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gn_setattr), 0);
data_name =
"afs_gn_fclear"
;
src/Monitor.xs view on Meta::CPAN
57895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811
newSViv(cmp->callInfo.C_afs_gclose), 0);
data_name =
"afs_gopen"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gopen), 0);
data_name =
"afs_greadlink"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_greadlink), 0);
data_name =
"afs_select"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_select), 0);
data_name =
"afs_gbmap"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gbmap), 0);
data_name =
"afs_getfsdata"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_getfsdata), 0);
data_name =
"afs_gsymlink"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_gsymlink), 0);
data_name =
"afs_namei"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_namei), 0);
data_name =
"afs_gmount"
;
src/Monitor.xs view on Meta::CPAN
63256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347
newSViv(cmp->callInfo.C_HaveCallBacksFrom), 0);
data_name =
"afs_getpage"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_getpage), 0);
data_name =
"afs_putpage"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_putpage), 0);
data_name =
"afs_nfsrdwr"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_nfsrdwr), 0);
data_name =
"afs_map"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_map), 0);
data_name =
"afs_cmp"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_cmp), 0);
data_name =
"afs_PageLeft"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_PageLeft), 0);
data_name =
"afs_mount"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_mount), 0);
data_name =
"afs_unmount"
;
src/Monitor.xs view on Meta::CPAN
64966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518
newSViv(cmp->callInfo.C_afs_ustrategy), 0);
data_name =
"afs_strategy"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_strategy), 0);
data_name =
"afs_bread"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_bread), 0);
data_name =
"afs_brelse"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_brelse), 0);
data_name =
"afs_bmap"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_bmap), 0);
data_name =
"afs_fid"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_fid), 0);
data_name =
"afs_FakeOpen"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_FakeOpen), 0);
data_name =
"afs_FakeClose"
;
hv_store(DATA, data_name, strlen(data_name),
newSViv(cmp->callInfo.C_afs_FakeClose), 0);
data_name =
"afs_StoreOnLastReference"
;
src/ppport.h view on Meta::CPAN
39404142434445464748495051525354555657585960616263646566676869707172737475767778/* To verify whether ppport.h is needed
for
your module, and whether any
special defines should be used, ppport.h can be run through Perl to check
your source code. Simply
say
:
perl -x ppport.h *.c *.h *.xs foo/*.c [etc]
The result will be a list of patches suggesting changes that should at
least be acceptable,
if
not necessarily the most efficient solution, or a
fix
for
all possible problems. It won't
catch
where dTHR is needed, and
doesn't attempt to account
for
global macro or function definitions,
nested includes, typemaps, etc.
In order to test
for
the need of dTHR, please
try
your module under a
recent version of Perl that
has
threading compiled-in.
*/
/*
#!/usr/bin/perl
@ARGV
= (
"*.xs"
)
if
!
@ARGV
;
%badmacros
=
%funcs
=
%macros
= ();
$replace
= 0;
foreach
(<DATA>) {
$funcs
{$1} = 1
if
/Provide:\s+(\S+)/;
$macros
{$1} = 1
if
/^
#\s*define\s+([a-zA-Z0-9_]+)/;
$replace
= $1
if
/Replace:\s+(\d+)/;
$badmacros
{$2}=$1
if
$replace
and /^
#\s*define\s+([a-zA-Z0-9_]+).*?\s+([a-zA-Z0-9_]+)/;
$badmacros
{$1}=$2
if
/Replace (\S+)
with
(\S+)/;
}
foreach
$filename
(
map
(
glob
(
$_
),
@ARGV
)) {
unless
(
open
(IN,
"<$filename"
)) {
warn
"Unable to read from $file: $!\n"
;
next
;
}
"Scanning $filename...\n"
;
$c
=
""
;
while
(<IN>) {
$c
.=
$_
; }
close
(IN);
$need_include
= 0;
%add_func
= ();
$changes
= 0;
$has_include
= (
$c
=~ /
#.*include.*ppport/m);
foreach
$func
(
keys
%funcs
) {
src/ppport.h view on Meta::CPAN
105106107108109110111112113114115116117118119120121122123124125126127128129foreach
$badmacro
(
keys
%badmacros
) {
if
(
$c
=~ /\b
$badmacro
\b/m) {
$changes
+= (
$c
=~ s/\b
$badmacro
\b/
$badmacros
{
$badmacro
}/gm);
"Uses $badmacros{$badmacro} (instead of $badmacro)\n"
;
$need_include
= 1;
}
}
if
(
scalar
(
keys
%add_func
) or
$need_include
!=
$has_include
) {
if
(!
$has_include
) {
$inc
=
join
(
''
,
map
(
"#define NEED_$_\n"
,
sort
keys
%add_func
)).
"#include \"ppport.h\"\n"
;
$c
=
"$inc$c"
unless
$c
=~ s/
#.*include.*XSUB.*\n/$&$inc/m;
}
elsif
(
keys
%add_func
) {
$inc
=
join
(
''
,
map
(
"#define NEED_$_\n"
,
sort
keys
%add_func
));
$c
=
"$inc$c"
unless
$c
=~ s/^.*
#.*include.*ppport.*$/$inc$&/m;
}
if
(!
$need_include
) {
"Doesn't seem to need ppport.h.\n"
;
$c
=~ s/^.*
#.*include.*ppport.*\n//m;
}
$changes
++;
}
if
(
$changes
) {