<?xml version="1.0" encoding="iso-8859-15" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wiki="http://purl.org/rss/1.0/modules/wiki/" ><channel rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore">
  <title>TWiki's AFSLore web</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore</link>
  <description>The AFSLore web of TWiki. TWiki is a Web-Based Collaboration Platform for the Corporate World.</description>
<image rdf:resource="http://www.dementia.org/twiki/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif" />
  <dc:language>en-us</dc:language>
  <dc:rights>Copyright 2008 by contributing authors</dc:rights>
  <dc:publisher>TWiki Administrator [shadow@dementia.org]</dc:publisher>
  <dc:creator>TWiki Administrator [shadow@dementia.org]</dc:creator>
  <dc:source>TWiki</dc:source>
  <wiki:interwiki>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view/AFSLore/">
		<rdf:value>TWiki.AFSLore</rdf:value>
	 </rdf:Description>
  </wiki:interwiki>
  <items>
	 <rdf:Seq>
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/AddOnsToolsAndUtilities" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/WebHome" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFSPioctlInterfaceDoc" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/AsyncRXProposal" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/WindowsAFSServers" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/NewProjects" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/AdminFAQ" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/UsageFAQ" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/HowToBuildOpenAFSFromSource" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/DemandAttach" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/MaemoPort" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/IPAccessControl" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/ResourcesFAQ" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/GateKeeping" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/GettingStarted" />
		<rdf:li rdf:resource="http://www.dementia.org/twiki/bin/view/AFSLore/WhereToGetHelp" />
	 </rdf:Seq>
  </items>
</channel>
<image rdf:about="http://www.dementia.org/twiki/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif">
  <title>Powered by TWiki.AFSLore</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore</link>
  <url>http://www.dementia.org/twiki/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif</url>
</image>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/AddOnsToolsAndUtilities">
  <title>AddOnsToolsAndUtilities</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/AddOnsToolsAndUtilities?t=2008-08-03T16:29Z</link>
  <description>&#38;#37;TOC&#38;#37;
&#60;p /&#62;
&#60;nop&#62;&#60;h1&#62;&#60;a name=&#34;UNIX&#34;&#62;&#60;/a&#62; UNIX &#60;/h1&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;AFS_Backend&#34;&#62;&#60;/a&#62; AFS Backend &#60;/h2&#62;
&#60;p /&#62;
Delegated administration of certain volumes.
&#60;p /&#62;
Available at &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/afs-backend/&#34;&#62;http://www.eyrie.org/~eagle/software/afs-backend/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;BackupPC4AFS&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;BackupPC4AFS&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/BackupPC4AFS?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;
&#60;p /&#62;
Backup &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFS&#34;&#62;OpenAFS&#60;/a&#62; volumes to a backup server's local disk or attached RAID. Supports full and multi-level incremental dumps, exponential expiry, and configuration via conf files or a web interface.
&#60;p /&#62;
Available at  &#60;a target=&#34;_top&#34; href=&#34;http://backuppc4afs.sourceforge.net/&#34;&#62;http://backuppc4afs.sourceforge.net/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Balancing&#34;&#62;&#60;/a&#62; Balancing &#60;/h2&#62;
&#60;p /&#62;
Balance volumes, usage, and accesses among servers.
&#60;p /&#62;
Available at &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/afs-balance/&#34;&#62;http://www.eyrie.org/~eagle/software/afs-balance/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Frak&#34;&#62;&#60;/a&#62; Frak &#60;/h2&#62;
&#60;p /&#62;
Show differences between AFS file trees or volumes
&#60;p /&#62;
Available at &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/frak/&#34;&#62;http://www.eyrie.org/~eagle/software/frak/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;FSR&#34;&#62;&#60;/a&#62; FSR &#60;/h2&#62;
&#60;p /&#62;
Recursive wrapper around fs directory commands
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/fsr/&#34;&#62;http://www.eyrie.org/~eagle/software/fsr/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;LSMounts&#34;&#62;&#60;/a&#62; LSMounts &#60;/h2&#62;
&#60;p /&#62;
Search through a directory for mount points
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/lsmounts/&#34;&#62;http://www.eyrie.org/~eagle/software/lsmounts/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Nagios_Monitoring&#34;&#62;&#60;/a&#62; Nagios Monitoring &#60;/h2&#62;
&#60;p /&#62;
Nagios-compatible probes to monitor AFS
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/afs-monitor/&#34;&#62;http://www.eyrie.org/~eagle/software/afs-monitor/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Mount_Points&#34;&#62;&#60;/a&#62; Mount Points &#60;/h2&#62;
&#60;p /&#62;
Maintain a database of volume mount points
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/afs-mount/&#34;&#62;http://www.eyrie.org/~eagle/software/afs-mount/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;MVTO&#34;&#62;&#60;/a&#62; MVTO &#60;/h2&#62;
&#60;p /&#62;
Smart vos move with usage balancing
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/mvto/&#34;&#62;http://www.eyrie.org/~eagle/software/mvto/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Pam_AFS_Session&#34;&#62;&#60;/a&#62; Pam-AFS-Session &#60;/h2&#62;
&#60;p /&#62;
AFS &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAG&#34;&#62;PAG&#60;/a&#62; and token &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAM&#34;&#62;PAM&#60;/a&#62; session module
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/pam-afs-session/&#34;&#62;http://www.eyrie.org/~eagle/software/pam-afs-session/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Pam_KRB5&#34;&#62;&#60;/a&#62; Pam-KRB5 &#60;/h2&#62;
&#60;p /&#62;
Kerberos v5 &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAM&#34;&#62;PAM&#60;/a&#62; module
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/pam-krb5/&#34;&#62;http://www.eyrie.org/~eagle/software/pam-krb5/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Partinfo&#34;&#62;&#60;/a&#62; Partinfo &#60;/h2&#62;
&#60;p /&#62;
Nicely formatted partition usage report
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/partinfo/&#34;&#62;http://www.eyrie.org/~eagle/software/partinfo/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PHPafsfree&#34;&#62;&#60;/a&#62; PHPafsfree &#60;/h2&#62;
&#60;p /&#62;
A PHP/GD AFS fileserver disk utilization grapher inspired by the original tcl/tk afsfree script.
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.physics.unc.edu/~stephen/phpafsfree/&#34;&#62;http://www.physics.unc.edu/~stephen/phpafsfree/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Reporting_DB&#34;&#62;&#60;/a&#62; Reporting DB &#60;/h2&#62;
&#60;p /&#62;
Load AFS metadata into a SQL database for reporting
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/afsdb/&#34;&#62;http://www.eyrie.org/~eagle/software/afsdb/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;VolCreate&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;VolCreate&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/VolCreate?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;
&#60;p /&#62;
Smart vos create with automatic volume placement
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/volcreate/&#34;&#62;http://www.eyrie.org/~eagle/software/volcreate/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;VolNuke&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;VolNuke&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/VolNuke?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;
&#60;p /&#62;
Smart vos remove that finds volume location
&#60;p /&#62;
Available at: &#60;a target=&#34;_top&#34; href=&#34;http://www.eyrie.org/~eagle/software/volnuke/&#34;&#62;http://www.eyrie.org/~eagle/software/volnuke/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h1&#62;&#60;a name=&#34;Linux&#34;&#62;&#60;/a&#62; Linux &#60;/h1&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;AFS_Tokens_GUI&#34;&#62;&#60;/a&#62; AFS Tokens GUI &#60;/h2&#62;
&#60;p /&#62;
Obtain and delete your AFS tokens via Kerberos 5 login. Manage your group membership and owned groups.
&#60;p /&#62;
Source and binaries available at &#60;a target=&#34;_top&#34; href=&#34;https://forge.cornell.edu/sf/frs/do/viewSummary/projects.afs_tokens/frs&#34;&#62;https://forge.cornell.edu/sf/frs/do/viewSummary/projects.afs_tokens/frs&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Kvibille_Nautilus_Plugin&#34;&#62;&#60;/a&#62; Kvibille Nautilus Plugin &#60;/h2&#62;
&#60;p /&#62;
Graphical editor for AFS access control lists (ACL). Works as a Nautilus plugin and as a standalone application.
&#60;p /&#62;
RHEL4 rpms (standalone app only), source and binary, available at /afs/cnf.cornell.edu/shares/public/outside_users/openafs/kvibille
&#60;p /&#62;
RHEL5 rpms available at &#60;a target=&#34;_top&#34; href=&#34;http://ayo.sys.kth.se/kth/linux/5/i386/misc/&#34;&#62;http://ayo.sys.kth.se/kth/linux/5/i386/misc/&#60;/a&#62; and &#60;a target=&#34;_top&#34; href=&#34;http://ayo.sys.kth.se/kth/linux/5/x86_64/misc/&#34;&#62;http://ayo.sys.kth.se/kth/linux/5/x86_64/misc/&#60;/a&#62;
&#60;p /&#62;
Main source tree available at &#60;a target=&#34;_top&#34; href=&#34;ftp://ftp.nada.kth.se/pub/hacks/kvibille/&#34;&#62;ftp://ftp.nada.kth.se/pub/hacks/kvibille/&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Nautilus_for_RHEL4&#34;&#62;&#60;/a&#62; Nautilus for RHEL4 &#60;/h2&#62;
&#60;p /&#62;
The stock Nautilus with RHEL4, like the Mac OS X finder, attempts to &#34;help&#34; you by pre-determining access to AFS files and folders based on the unix permissions. This version has a small hack which will always return access allowed such that the access decision is made by AFS itself.
&#60;p /&#62;
Prior to 2.8.1-5.EL4, an additional hack was necessary for nautilus to respect the user's umask settings.
&#60;p /&#62;
RPMS available at /afs/cnf.cornell.edu/shares/public/outside_users/openafs/nautilus
&#60;p /&#62;
&#60;nop&#62;&#60;h1&#62;&#60;a name=&#34;Macintosh&#34;&#62;&#60;/a&#62; Macintosh &#60;/h1&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;AFS_Tokens_GUI&#34;&#62;&#60;/a&#62; AFS Tokens GUI &#60;/h2&#62;
&#60;p /&#62;
Obtain and delete your AFS tokens via Kerberos 5 login. Manage your group membership and owned groups.
&#60;p /&#62;
Source and binaries available at &#60;a target=&#34;_top&#34; href=&#34;https://forge.cornell.edu/sf/frs/do/viewSummary/projects.afs_tokens/frs&#34;&#62;https://forge.cornell.edu/sf/frs/do/viewSummary/projects.afs_tokens/frs&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;AFS_Commander&#34;&#62;&#60;/a&#62; AFS Commander &#60;/h2&#62;
&#60;p /&#62;
Afs Commander is the development version Apple OSX AFS Preference Pane, made for simplify the afs client administration and usability.
&#60;p /&#62;
Available at &#60;a target=&#34;_top&#34; href=&#34;http://www.lnf.infn.it/~bisegni/Main/Afs_Commander.html&#34;&#62;http://www.lnf.infn.it/~bisegni/Main/Afs_Commander.html&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Contextual_Menu_Plug_in_for_Find&#34;&#62;&#60;/a&#62; Contextual Menu Plug-in for Finder &#60;/h2&#62;
&#60;p /&#62;
Provides access list and volume quota information. AFS access control lists can be added, modified, and deleted. Volume information on user quota and disk space usage are available.
&#60;p /&#62;
Available at &#60;a target=&#34;_top&#34; href=&#34;http://www.ncsu.edu/mac/pn/index.php?name=UpDownload&#38;amp;req=viewdownloaddetails&#38;amp;lid=10&#34;&#62;http://www.ncsu.edu/mac/pn/index.php?name=UpDownload&#38;amp;req=viewdownloaddetails&#38;amp;lid=10&#60;/a&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;p /&#62;
-- &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/RedFyre&#34;&#62;RedFyre&#60;/a&#62; - 01 Aug 2008 (last changed by StephenJ)</description>
  <dc:date>2008-08-03T16:29Z</dc:date>
  <dc:contributor>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view?topic=Main.StephenJ">
		<rdf:value>StephenJ</rdf:value>
	 </rdf:Description>
  </dc:contributor>
  <wiki:version>3</wiki:version>
  <wiki:status>updated</wiki:status>
  <wiki:importance>major</wiki:importance>
  <wiki:diff>http://www.dementia.org/twiki/bin/rdiff/AFSLore/AddOnsToolsAndUtilities</wiki:diff>
  <wiki:history>http://www.dementia.org/twiki/bin/rdiff/AFSLore/AddOnsToolsAndUtilities</wiki:history>
</item>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/WebHome">
  <title>WebHome</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/WebHome?t=2008-08-01T16:06Z</link>
  <description>Welcome to the home of &#60;b&#62;&#38;#37;WIKITOOLNAME&#38;#37;.AFSLore&#60;/b&#62;.  This is a web-based collaboration area for collecting, maintaining, and distributing information about the AFS distributed filesystem and related topics.  Some of the things you'll find here (now or in the future)...
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WhatIsAFS&#34;&#62;What is &#60;nop&#62;AFS?&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/GettingStarted&#34;&#62;GettingStarted&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/CreatingANewCell&#34;&#62;CreatingANewCell&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/AddOnsToolsAndUtilities&#34;&#62;AddOnsToolsAndUtilities&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/AFSFrequentlyAskedQuestions&#34;&#62;AFSFrequentlyAskedQuestions&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WhereToGetHelp&#34;&#62;WhereToGetHelp&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;nop&#62;AFS3 &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/ProtocolInfo&#34;&#62;ProtocolInfo&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/NewProjects&#34;&#62;NewProjects&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/AncientHistory&#34;&#62;AncientHistory&#60;/a&#62; (once upon a time...)&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/CodeArchitecture&#34;&#62;CodeArchitecture&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/GateKeeping&#34;&#62;GateKeeping&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/HowToBuildOpenAFSFromSource&#34;&#62;How &#60;nop&#62;To &#60;nop&#62;Build &#60;nop&#62;OpenAFS from &#60;nop&#62;Source&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/DemandAttach&#34;&#62;DemandAttach&#60;/a&#62;&#60;/li&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;Best &#60;nop&#62;Practices &#60;nop&#62;Workshop 2008 &#60;nop&#62;Notes&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/BestPracticesWorkshop2008Notes?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFSPioctlInterfaceDoc&#34;&#62;OpenAFSPioctlInterfaceDoc&#60;/a&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
Note: This area is about AFS, whose name is properly spelled in all uppercase.  Unfortunately, this creates interesting challenges in coming up with appropriate &#60;span class=&#34;twikiNewLink&#34;&#62;WikiWords&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/TWIKIWEBWikiWord?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; for naming topics.  Please bear with us -- or come up with better names!
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Maintenance_of_the_AFSLore_web&#34;&#62;&#60;/a&#62; Maintenance of the AFSLore web &#60;/h2&#62;
&#60;form action=&#34;&#38;#37;SCRIPTURLPATH&#38;#37;/search&#38;#37;SCRIPTSUFFIX&#38;#37;/AFSLore/SearchResult&#34;&#62;&#60;ul&#62;&#60;li&#62; &#60;input type=&#34;text&#34; name=&#34;search&#34; size=&#34;32&#34; /&#62; &#60;input type=&#34;submit&#34; value=&#34;Search&#34; /&#62; &#38;nbsp;&#38;nbsp; (More options in &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WebSearch&#34;&#62;WebSearch&#60;/a&#62;)&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WebChanges&#34;&#62;WebChanges&#60;/a&#62;: Find out recent modifications to the &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore web.&#60;/li&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WebTopicList&#34;&#62;WebTopicList&#60;/a&#62;: Display all &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore topics in alphabetical order.   &#60;/li&#62;&#60;li&#62; &#38;#37;NOTIFYTOPIC&#38;#37;: Subscribe to be automatically notified when something changes in the &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore web.&#60;/li&#62;&#60;li&#62; &#38;#37;STATISTICSTOPIC&#38;#37;: View access statistics of the &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore web.&#60;/li&#62;&#60;li&#62; &#38;#37;WEBPREFSTOPIC&#38;#37;: Preferences of the &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore web.&#60;/li&#62;&#60;/ul&#62;
&#60;/form&#62;
&#60;p /&#62;
&#60;strong&#62;Notes:&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; You are currently in the &#38;#37;WIKITOOLNAME&#38;#37;.AFSLore web. The color code for this web is a blue background, so you know where you are.&#60;/li&#62;&#60;li&#62; If you are not familiar with the &#38;#37;WIKITOOLNAME&#38;#37; collaboration tool, please visit &#38;#37;TWIKIWEB&#38;#37;.WelcomeGuest in the &#38;#37;WIKITOOLNAME&#38;#37;.&#38;#37;TWIKIWEB&#38;#37; web first.&#60;/li&#62;&#60;li&#62; If you are going to edit pages, please &#60;span class=&#34;twikiNewLink&#34;&#62;Register&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/TWIKIWEBTWikiRegistration?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; and &#60;a href=&#34;https://&#38;#37;HTTP_HOST&#38;#37;&#38;#37;SCRIPTURLPATH&#38;#37;/view&#38;#37;SCRIPTSUFFIX&#38;#37;/&#38;#37;TWIKIWEB&#38;#37;/TWikiLogin?fromweb=AFSLore&#38;amp;fromtopic=WebHome&#34; target=&#34;_top&#34;&#62;Login&#60;/a&#62; first.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#38;#37;INCLUDE{&#34;&#38;#37;TWIKIWEB&#38;#37;.SiteMap&#34;}&#38;#37; (last changed by RedFyre)</description>
  <dc:date>2008-08-01T16:06Z</dc:date>
  <dc:contributor>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view?topic=Main.RedFyre">
		<rdf:value>RedFyre</rdf:value>
	 </rdf:Description>
  </dc:contributor>
  <wiki:version>34</wiki:version>
  <wiki:status>updated</wiki:status>
  <wiki:importance>major</wiki:importance>
  <wiki:diff>http://www.dementia.org/twiki/bin/rdiff/AFSLore/WebHome</wiki:diff>
  <wiki:history>http://www.dementia.org/twiki/bin/rdiff/AFSLore/WebHome</wiki:history>
</item>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFSPioctlInterfaceDoc">
  <title>OpenAFSPioctlInterfaceDoc</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFSPioctlInterfaceDoc?t=2008-06-20T16:54Z</link>
  <description>&#38;#37;TOC&#38;#37;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetACL&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetACL&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetACL?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCSETAL (1) - Set access control list&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the ACL being set&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Changed ACL, via direct writing to the wire&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the standard arguments aren't set&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetACL&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetACL&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetACL?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETAL (2) - Get access control list&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Obtain the ACL, based on file ID&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the standard arguments aren't set&#60;/li&#62;&#60;li&#62; ERANGE - if the vnode of the file id is too large&#60;/li&#62;&#60;li&#62; return -1 - if getting the ACL failed&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed, although there is a hack to tell which type of ACL is being returned, checks the top 2-bytes to judge what type of ACL is it, only for dfs xlator ACLs&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetTokens&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetTokens&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetTokens?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCSETTOK (3) - Set authentication tokens&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the krb tickets from which to set the afs tokens&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Set the Tokens for a specific cell name, unless there is none set, then default to primary&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if the ticket is either too long or too short&#60;/li&#62;&#60;li&#62; EIO - if the AFS initState is below 101&#60;/li&#62;&#60;li&#62; ESRCH - if the cell for which the Token is being set can't be found&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetVolumeStatus&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetVolumeStatus&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetVolumeStatus?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETVOLSTAT (4) - Get volume status&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The staus of a volume(based on the FID of the volume), or an offline message/motd&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL: if some of the default arguments don't exist&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetVolumeStatus&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetVolumeStatus&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetVolumeStatus?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCSETVOLSTAT (5) - Set volume status&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; values to set the status at, offline message, message of the day, volume name, minimum quota, maximum quota&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Set the status of a volume, including any offline messages, a minimum quota, and a maximum quota&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the default arguments don't exist&#60;/li&#62;&#60;li&#62; EROFS - if the volume is read only, or a backup volume&#60;/li&#62;&#60;li&#62; ENODEV - if the volume can't be accessed&#60;/li&#62;&#60;li&#62; E2BIG - if the volume name, offline message, and motd are too big&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PFlush&#34;&#62;&#60;/a&#62; PFlush &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCFLUSH (6) - Invalidate cache entry&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Flush any information the cache manager has on an entry&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the initial arguments don't exist&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PBogus_PNoop&#34;&#62;&#60;/a&#62; PBogus &#38;amp; PNoop &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCSTAT (7) - Get file status&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETTIME (13) - Make gettime call (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCPREFETCH (15) - Pre-fetch a file&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCNOP (16) - No-op (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCENGROUP (17) - Enable group access (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCDISGROUP (18) - Disable group access (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCLISTGROUPS (19) - List enabled and disabled groups (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_FPRIOSTATUS (57) - arla: set file 'prio'&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_FHGET (58) - arla: fallback getfh&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_FHOPEN (59) - arla: fallback fhopen&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_XFSDEBUG (60) - arla: controls xfsdebug&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_ARLADEBUG (61) - arla: controls arla debug&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AVIATOR (62) - arla: debug interfac&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_XFSDEBUG_PRINT (63) - arla: print xfs status&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_CALCULATE_CACHE (64) - arla: force cache check&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_BREAKCELLBACK (65) - arla: break callback&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCWAITFOREVER (23) - Wait for dead servers forever (historic)&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetTokens&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetTokens&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetTokens?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETTOK (8) - Get authentication tokens&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; An integer that corresponds to a user id, which in turn corresponds to a token&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; If the the input parameter exists, get the token that corresponds to the parameter value, if there is no token at this value, get the token for the first cell&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EDOM - if the input parameter is out of the bounds of the available tokens&#60;/li&#62;&#60;li&#62; ENOTCONN - if there aren't tokens for this cell&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed, although it's a weird interface (from comments in code)&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PUnlog&#34;&#62;&#60;/a&#62; PUnlog &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCUNLOG (9) - Invalidate tokens&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; remove tokens from a user, specified by a user id&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62; &#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62;    $ &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set's the token's time to 0, which then causes it to be removed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
//////////////////////////////////////////&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCUNPAG (21) - Invalidate &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAG&#34;&#62;PAG&#60;/a&#62;&#60;/dd&#62;&#60;/dl&#62;
/////////////////////////////////////////
Unlog is the same as un-pag in &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFS&#34;&#62;OpenAFS&#60;/a&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PCheckServers&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PCheckServers&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PCheckServers?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCCKSERV (10) - Check that servers are up&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The name of the cell that the servers will be a part of.&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Either a fast check (where it doesn't contact servers) or a local check (checks local cell only)&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; ENOENT - if we are unable to obtain the cell&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PCheckVolNames&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PCheckVolNames&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PCheckVolNames?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCCKBACK (11) - Check backup volume mappings&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Check the root volume, and then check the names if the volume check variable is set to force, has expired, is busy, or if the mount points variable is set&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PCheckAuth&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PCheckAuth&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PCheckAuth?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCCKCONN (12) - Check connections for a user&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; check to see if a user has the correct authentication. If so, allow access&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if no user is specified&#60;/li&#62;&#60;li&#62; EACCES - if the user has no tokens set&#60;/li&#62;&#60;li&#62; EACCES - if the users tokens are bad&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; check the connections to all the servers specified&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PFindVolume&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PFindVolume&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PFindVolume?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCWHEREIS (14) - Find out where a volume is located&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; find a volume, based on a volume file id&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the default arguments don't exist&#60;/li&#62;&#60;li&#62; ENODEV - if there is no such volume&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; check each of the servers specified&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PViceAccess&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PViceAccess&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PViceAccess?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCACCESS (20) - Access using PRS_FS bits&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; check to make sure access is allowed&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the initial arguments aren't set&#60;/li&#62;&#60;li&#62; EACCES - if access is denied&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetFID&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetFID&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetFID?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCETFID (22) - Get file ID quickly&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get the file id of some file&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some fo the initial arguments aren't set&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetCacheSize&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetCacheSize&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetCacheSize?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCSETCACHESIZE (24) - Set venus cache size in 1000 units&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The size the venus cache should be set to&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Set the cache size based on user intput. If no size is given, set it to the &#9;default &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFS&#34;&#62;OpenAFS&#60;/a&#62; cache size&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doen't have super-user credentials&#60;/li&#62;&#60;li&#62; EROFS - if the cache is set to be in memory&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; recompute the general cache parameters for every single block allocated&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PRemoveCallback&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PRemoveCallback&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PRemoveCallback?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCFLUSHCB (25) - Flush callback only&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Flushes callbacks, by setting the length of callbacks to one, setting the &#9;next callback to be sent to the CB_DROPPED value, and then dequeue's everything else&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the initial default arguments aren't set&#60;/li&#62;&#60;/ul&#62;
&#9;return's 0 - if the volume is set to read-only&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PNewCell&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PNewCell&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PNewCell?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCNEWCELL (26) - Configure new cell&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the name of the cell, the hosts that will be a part of the cell, whether or not it's linked with another cell, the other cel it's linked with, the file server port, and the volume server port&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; creates a new cell&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EINVAL - if some 'magic' var doesn't have a certain bit set&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PListCells&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PListCells&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PListCells?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETCELL (27) - Get cell info&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The cell index of a specific cell&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Lists the cells server names and addresses&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EDOM - if there is no cell asked about&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PRemoveMount&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PRemoveMount&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PRemoveMount?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AFS_DELETE_MT_PT (28) - Delete mount point&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none // I DON'T THINK&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Ensure that everything is ok, before deleting the mountpoint. If not, don't delete. Delete a mount point based on a file id&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of default arguments don't exist&#60;/li&#62;&#60;li&#62; ENOTDIR - if the argument to remove is not a directory&#60;/li&#62;&#60;li&#62; ENOENT - if there is no cache to remove the mount point from&#60;/li&#62;&#60;li&#62; ENOENT - if a vcache doesn't exist&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PNewStatMount&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PNewStatMount&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PNewStatMount?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AFS_STAT_MT_PT (29) - Stat mount point&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the last component in a path, related to mountpoint that we're looking for information about&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get the volume, and cell, as well as the link data for a mount point&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the default initial arguments aren't set&#60;/li&#62;&#60;li&#62; ENOTDIR - if the 'mount point' argument isn't a directory&#60;/li&#62;&#60;li&#62; EIO - if the link data can't be accessed&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetFileCell&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetFileCell&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetFileCell?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_FILE_CELL_NAME (30) - Get cell in which file lives&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Get a cell based on a passed in on a passed in file id&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if someo f the default initial arguments aren't set&#60;/li&#62;&#60;li&#62; ESRCH - if the file isn't part of a cell&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetWSCell&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetWSCell&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetWSCell?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GET_WS_CELL (31) - Get cell in which workstation lives&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Get the primary cell that the machine is a part of&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; ESRCH - if the machine isn't part of a cell, for whatever reason&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PMariner&#34;&#62;&#60;/a&#62; PMariner &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AFS_MARINER_HOST (32) - Get/set mariner (cache manager monitor) &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;host&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; depending on what whether or not a variable is set, either get the host for &#9;the cache manager monitor, or set the old address, and give it a new address&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62; turn off mariner&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetUserCell&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetUserCell&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetUserCell?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GET_PRIMARY_CELL (33) - Get primary cell for caller&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get the primary cell for a certain user, based on the user's uid&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; ESRCH - if the user corresponding to the uid doesn't have a primary cell &#9;&#9;&#9;&#9;specified&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PVenusLogging&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PVenusLogging&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PVenusLogging?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_VENUSLOG (34) - Enable/Disable venus logging&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; obsoleted, perhaps should be PBogus&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - this is all the function does, perhaps this pioctl should be PBogus&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; always throws an error&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetCellStatus&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetCellStatus&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetCellStatus?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GETCELLSTATUS (35) - Get cell status info&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the cell you want status information on&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; returns the state of the cell as defined in a struct cell&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; ENOENT - the cell doesn't exist&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetCellStatus&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetCellStatus&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetCellStatus?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SETCELLSTATUS (36) - Set corresponding info&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The cell you want to set information about, and the values you want to set&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Set the state of the cell in a defined struct cell, based on whether or not &#60;span class=&#34;twikiNewLink&#34;&#62;SetUID&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/SetUID?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; is allowed&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EACCES - the user does not have super-user credentials&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PFlushVolumeData&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PFlushVolumeData&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PFlushVolumeData?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_FLUSHVOLUME (37) - Flush whole volume's data&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none //ALTHOUGH MAYBE A VCACHE CONTAINING WHICH VOLUME&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Wipe everything on the volume. Dependent on which platform this is is for, as to how it's done&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - some of the initial default arguments aren't set&#60;/li&#62;&#60;li&#62; EIO - the afs daemon hasn't started yet&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Does not flush a file that a user has open and is using, because it will be re-created on next write. Also purges the dnlc, because things are screwed up&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetSysName&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetSysName&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetSysName?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AFS_SYSNAME (38) - Change @sys value&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; a new value for @sys&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Set the value of @sys if these things work: if the input isn't too long or if input doesn't start with .0 or ..0&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if afsd isn't runing&#60;/li&#62;&#60;li&#62; EINVAL - if the new sysname is too large&#60;/li&#62;&#60;li&#62; EINVAL - if the new sysname causes issues(starts with a .0 or a ..0&#9;&#60;/li&#62;&#60;li&#62; EINVAL - if there is no &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAG&#34;&#62;PAG&#60;/a&#62; set in the credentials&#60;/li&#62;&#60;li&#62; EINVAL - if the user of a &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAG&#34;&#62;PAG&#60;/a&#62; can't be found&#60;/li&#62;&#60;li&#62; EINVAL - if (!(exporter = au-&#38;gt;exporter)) // NOT SURE ON THIS&#60;/li&#62;&#60;li&#62; ENODEV - if there isn't already a system named that //I THINK&#60;/li&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; local user needs root, remote user does not (because remote user ids aren't trusted)&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PExportAfs&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PExportAfs&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PExportAfs?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_EXPORTAFS (39) - Export afs to nfs clients&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; A struct Vic   * EIOctl containing export values needed to change between nfs and afs&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; //REALLY NOT SURE ON THIS... INPUT WOULD BE NICE&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; ENODEV - if the exporter doesn't exist&#60;/li&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;/ul&#62;
   $ &#60;strong&#62;Side Effects&#60;/strong&#62;:none listed
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetCacheSize&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetCacheSize&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetCacheSize?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETCACHEPARMS (40)  - Get cache stats&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Get the cache blocks, and how many of the cache blocks there are&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;   &#60;ul&#62;&#60;li&#62; none, seemingly&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetVnodeXStatus&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetVnodeXStatus&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetVnodeXStatus?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOCGETVCXSTATUS (41) - ???&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get's the fid, the data version, any lock, the parent vnode, the parent unique identifier, the truncation position, the callback, cbExpires(probably &#9;when the callback expires), if any access is being made, if any files are open, any users executing or writing, the 'flock' count, the states, and the move statistic&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the initial default arguments aren't set&#60;/li&#62;&#60;li&#62; EACCES - if access to check the mode bits is denied&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetSPrefs33&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetSPrefs33&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetSPrefs33?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SETPREFS33 (42) - Set server ranks (deprecated)&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the server preferences to be set&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set the server preferences, calling a function&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;   &#60;ul&#62;&#60;li&#62; none&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetSPrefs&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetSPrefs&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetSPrefs?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GETSPREFS (43) - Get server ranks&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Get the sprefs&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; ENOENT - is the sprefrequest is too large&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGag&#34;&#62;&#60;/a&#62; PGag &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GAG (44) - Silence Cache Manager&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The flags to either gag or de-gag the cache manager&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set the gag flags, then show these flags&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PTwiddleRx&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PTwiddleRx&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PTwiddleRx?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_TWIDDLE (45) - Adjust RX knobs&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the previous settings of the 'knobs'&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; build out the struct rxp, from a struct rx&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetSPrefs&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetSPrefs&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetSPrefs?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SETPREFS (46) - Set server ranks&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the sprefs value to want the sprefs set to&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set the sprefs using the afs_setsprefs() function&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - if the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EINVAL - if the struct setsprefs is too large&#60;/li&#62;&#60;li&#62; EINVAL - if the struct setsprefs multiplied by the number of servers is too large&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PStoreBehind&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PStoreBehind&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PStoreBehind?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_STORBEHIND (47) Adjust store asynchrony&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; sets the sbstruct&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set asynchrony based on a file, from a struct sbstruct //I THINK&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EPERM - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EACCES - if there isn't enough access to not check the mode bits&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGCPAGs&#34;&#62;&#60;/a&#62; PGCPAGs &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GCPAGS (48) - Disable automatic &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/PAG&#34;&#62;PAG&#60;/a&#62; gc'ing&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set the gcpags to GCPAGS_USERDISABLED&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetInitParams&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetInitParams&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetInitParams?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GETINITPARAMS (49) - Get initial cache manager parameters&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; return the initial cache manager parameters&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; E2BIG - if the initial parameters are bigger than some PIGGYSIZE&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetCPrefs&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetCPrefs&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetCPrefs?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GETCPREFS (50) - Get client interface&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get the information about the client interface&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62;&#60;ul&#62;&#60;li&#62; EIO - the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EINVAL - if the request is too large for the struct that will be holding it&#60;/li&#62;&#60;/ul&#62;&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetCPrefs&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetCPrefs&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetCPrefs?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SETCPREFS (51) - Set client interface&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The interfaces you want set&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set the callback interfaces addresses to those of the hosts&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EIO - the afs daemon hasn't started yet&#60;/li&#62;&#60;li&#62; EINVAL - the input is too large for the struct&#60;/li&#62;&#60;li&#62; ENOMEM - if there are too many servers&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PFlushMount&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PFlushMount&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PFlushMount?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_AFS_FLUSHMOUNT (52) - Flush mount symlink data&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The last part of a path to a mount point, which tells us what to flush&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; remove all of the mount data from the dcache regarding a certain mount point&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EINVAL - if some of the initial arguments aren't set&#60;/li&#62;&#60;li&#62; ENOTDIR - if the initial argument for the mount point isn't a directory&#60;/li&#62;&#60;li&#62; ENOENT - if the dcache entry isn't  set&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PRxStatProc&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PRxStatProc&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PRxStatProc?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_RXSTAT_PROC (53) - Control process RX statistics&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The flags that control which statistics to use&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; either enable process RPCStats, disable process RPCStats, or clear the process RPCStats&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EINVAL - if the flag input is too long&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PRxStatPeer&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PRxStatPeer&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PRxStatPeer?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_RXSTAT_PEER (54) - Control peer RX statistics&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; The flags that control which statistics to use&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; either enable peer RPCStats, disable peer RPCStats, or clear the peer &#9;RPCStats&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EACCES - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EINVAL - if the flag input is too long&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PGetRxkcrypt&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PGetRxkcrypt&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PGetRxkcrypt?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_GETRXKCRYPT (55) - Get rxkad encryption flag&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; get the value of cryptall(presumably whether or not things should be encrypted&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;   &#60;ul&#62;&#60;li&#62; none&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetRxkcrypt&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetRxkcrypt&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetRxkcrypt?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SETRXKCRYPT (56) - Set rxkad encryption flag&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; the argument whether or not things should be encrypted&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; set whether or not things should be encrypted&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; EPERM - if the user doesn't have super-user credentials&#60;/li&#62;&#60;li&#62; EINVAL - if the input is too big, or if the input is outside the bounds of what it can be set to&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none really, but may need to be modified at a later date to take into account &#9;other values for cryptall(beyond true and false)&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;PSetClientContext&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PSetClientContext&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PSetClientContext?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; &#60;/h2&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;PsetClientContext&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/PsetClientContext?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; (99) - NFS-PAG pioctl (for knfs/rmtsysd)&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Arguments&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Outcome&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; Setup caller's credentials, dependent on an AIX 64-bit kernel, HPUX, SUN57 64-bit kernel, SGI 64-mips, or a need for a 32-bit ioctl&#60;/dd&#62;&#60;/dl&#62;
&#60;strong&#62;Errors&#60;/strong&#62;&#60;ul&#62;&#60;li&#62; none&#60;/li&#62;&#60;/ul&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Side Effects&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; none listed&#60;/dd&#62;&#60;/dl&#62;
&#60;p /&#62;
//WASN'T SURE WHAT TO DO ABOUT THESE, ALSO NOTE THAT THE ABOVE ARE JUST THE V GROUP PIOCTL()s, I CAN DOCUMENT THE C GROUP, MOST OF WHICH ARE PBogus
&#60;p /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V &#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; &#60;strong&#62;*reserved*&#60;/strong&#62; (239)  - Reserved for code expansion&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE1 (240) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_STIE2 (241) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE3 (242) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE4 (243) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE5 (244) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE6 (245) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;   &#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE7 (246) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_SITE8 (247) - Reserved for site-specific extensions&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE1 (248) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE2 (249) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE3 (250) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE4 (251) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE5 (252) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE6 (253) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE7 (254) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62;
&#60;hr /&#62;&#60;dl&#62;&#60;dt&#62; &#60;strong&#62;Group&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; V&#60;/dd&#62;&#60;dt&#62; &#60;strong&#62;Function&#60;/strong&#62; &#60;/dt&#62;&#60;dd&#62; VIOC_PRIVATE8 (255) - Reserved for implementation use&#60;/dd&#62;&#60;/dl&#62; (last changed by JacobThebaultSpieker)</description>
  <dc:date>2008-06-20T16:54Z</dc:date>
  <dc:contributor>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view?topic=Main.JacobThebaultSpieker">
		<rdf:value>JacobThebaultSpieker</rdf:value>
	 </rdf:Description>
  </dc:contributor>
  <wiki:version>1</wiki:version>
  <wiki:status>updated</wiki:status>
  <wiki:importance>major</wiki:importance>
  <wiki:diff>http://www.dementia.org/twiki/bin/rdiff/AFSLore/OpenAFSPioctlInterfaceDoc</wiki:diff>
  <wiki:history>http://www.dementia.org/twiki/bin/rdiff/AFSLore/OpenAFSPioctlInterfaceDoc</wiki:history>
</item>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/AsyncRXProposal">
  <title>AsyncRXProposal</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/AsyncRXProposal?t=2008-06-16T13:09Z</link>
  <description>&#60;p /&#62;
-- &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/JeffreyAltman&#34;&#62;JeffreyAltman&#60;/a&#62; - 16 Jun 2008
&#60;p /&#62;
The AFS File Server request throughput is limited by its current architecture which dedicates one thread per request for the lifetime of the request.  Due to the fact that threads may become blocked on disk I/O and (more importantly) on Rx RPCs (VL_*, PR_*, RXAFSCB_*) the dedicated threads are frequently idle when they could be performing real work.  The AFS File Server is therefore incapable of taking advantage of the CPU, disk I/O, and network I/O resources available to it.  
&#60;p /&#62;
A more effective architecture is one that is event-driven (or work-flow based).  In such an architecture, the File Server would queue requests that are likely to block on I/O or Rx RPCs.   The processing thread would then be free to begin processing a new incoming Rx request or continue processing an existing Rx request that has returned to the ready state.
&#60;p /&#62;
This design is not currently possible because the Rx RPC application programming interfaces only provide for synchronous operations.  The following is a proposal to add support for asynchronous requests.   This proposal was developed in conjunction with Tom Keiser.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Provide_an_infrastructure_for_ma&#34;&#62;&#60;/a&#62; Provide an infrastructure for making Rx event-driven. &#60;/h2&#62;
&#60;p /&#62;
Most of Rx is geared towards a procedural paradigm.  Extend Rx to provide several new primitives to allow for operations to be performed in an event-driven manner.  Rx has a notion of events presently, but it is designed specifically to provide timeout-based event firing.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Generalize the existing rxevent data structure to support asynchronous events in addition to timeout events.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Provide a new API to create non-epoch event queues&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Provide a new API to release events blocked on a queue&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Provide a new API to block a call object on an Rx event queue&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Presently, Rx worker threads dispatch &#60;span class=&#34;twikiNewLink&#34;&#62;RxRPC&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/RxRPC?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; call objects as they arrive.  Generalize the worker thread dispatch interface to dispatch any arbitrary event when it becomes ready for processing.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; The rx_call object will now contain a pointer to an event object.  This will be used by asynchronous calls to permit rescheduling of long-lived RPCs.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62;  When designing the new APIs, consider the work that was performed by SNA for the instrumentation framework so that future consolidation efforts require minimal effort.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; New form event objects will have two methods of being processed.  First, via a callback function pointer.  Secondly, via a synchronous waiter interface.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Add_Asynchronous_RX_RPC_server_i&#34;&#62;&#60;/a&#62; Add Asynchronous RX RPC server interface. &#60;/h2&#62;
&#60;p /&#62;
The present design is completely procedural.  When an RPC call is ready to be serviced, a server stub is called.  This stub unmarshals the incoming call parameters.  Once the parameters are ready, the actual function which services the RPC is called.  Upon return of this function, out parameters are marshalled,
and the response is sent to the caller.  This mode of operation is not generic enough to deal with cases where an in-progress RPC must be suspended pending
the result of a long-lived operation (such as an RPC call to the ptserver).  This project phase will attempt to decouple these operations so that a server thread may be freed up during the execution of the latent operation.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; When calls are ready to be serviced, an event object will be enqueued.  This event object can be dispatched when a worker thread becomes available.  Worker threads will use the synchronous waiter interface to block awaiting calls to service.  This change in behavior will, in effect, unify the SQE and rxevent mechanisms.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; A new &#34;async&#34; keyword will be added to Rxgen.  When present, this will emit a special server-side RPC stub.  The asynchronous server stub will not automatically marshal output upon return of the user-provided servicing routine. Instead, it will check the state of the event object bound to the Rx call &#60;/li&#62;&#60;/ul&#62;
object.  If the event object is in the blocked state, then the subroutine will return immediately with no action.  Otherwise, the the output arguments will be 
marshalled, and a response packet sent back to the caller.
&#60;p /&#62;
To do:&#60;ul&#62;&#60;li&#62; add an async_done flag and a async_state integer to rx_call object; provide getter/setter interfaces&#60;/li&#62;&#60;li&#62; modify rxi_ServerProc() to check call-&#38;gt;done before running after proc and ending call (otherwise assume call has been placed on a blocked queue by user)&#60;/li&#62;&#60;li&#62; add new rx interface to allow user to move an unblocked, partially finished call back onto the head of the sqe list&#60;/li&#62;&#60;li&#62; modify rxi_ReceivePacket() to initialize async_state to zero and async_done flag to 1 for new server call case (so that legacy synchronous calls continue to work without modification)&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Add_Asynchronous_RX_RPC_client_i&#34;&#62;&#60;/a&#62; Add Asynchronous RX RPC client interface. &#60;/h2&#62;
&#60;p /&#62;
The rxgen procedure generator would be modified to optionally produce Asynchronous versions of the existing Synchronous procedure calls. Starting with the RXAFS_xxxx calls used for file server operations.  The asynchronous calls would behave similar to the existing calls with the following changes:
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Provide a non-blocking version of rx_NewCall() which returns an error code when all channels in a Rx connection object are in use.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; After a message is XDR encoded, instead of calling rxi_EndCall() an asynchronous rxi_EndCallAsync() would be called.  rxi_EndCallAsync() would send the message and either immediately return an error or would return a handle to the outstanding call.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; A new rx_AsyncCallWait() function would be added to the RX library. This function would be passed an existing handle returned by&#60;/li&#62;&#60;/ul&#62;
rxi_EndCallAsync() and would permit the caller to check the return status and if desired to block on the response.  On the backend, this will use the synchronous event waiter interface from Section 1.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; A new rx_FetchCompletedCall() function  would be added to the RX library.  This function would be used to retrieve the next completed asynchronous call.  This function will be used to feed a task to an idle worker thread.  This function can include parameters that can be used to filter the responses based upon the type of call to permit specialized worker threads.  A parameter determines whether or not the call should block or not.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Instead of waking up blocked threads when a response is received from a peer as is done for the existing synchronous call model, RX will queue completed asynchronous calls for later querying by rx_FetchCompletedCall().&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Implement asynchronous versions of multi_RXAFS_xxx calls.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Develop asynchronous version of pr_GetCPS() and pr_GetHostCPS().&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
To do:&#60;ul&#62;&#60;li&#62; define an async event handler object and associated getter/setters &#91;1&#93;&#60;/li&#62;&#60;li&#62; add async event handler pointer to rx_call object; provide getter/setter interfaces&#60;/li&#62;&#60;li&#62; non-blocking version of rx_NewCall() and associated changes to rxi_NewCall()&#60;/li&#62;&#60;li&#62; modify rxi_ServerProc() to run callback function for client call types&#60;/li&#62;&#60;li&#62; run a server thread pool, even if we're just a client (as a convenient way to service async event callback functions)&#60;/li&#62;&#60;li&#62; make rx_NewCall take an rs_async_event object pointer (NULL value implying synchronous call)&#60;/li&#62;&#60;li&#62; modify rxgen to optionally emit async client stubs -- the async start stub will XDR encode and then calls rx_FlushWrite() &#91;i &#60;em&#62;think&#60;/em&#62; we can safely ignore blocking related to TQ_BUSY&#93;; the async finish stub will XDR decode and &#60;span class=&#34;twikiNewLink&#34;&#62;EndCall&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/EndCall?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;.&#60;/li&#62;&#60;li&#62; modify call timeout event handler to call async event handler, if there is one&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#91;1&#93; async event:
&#60;p /&#62;
rationale: make it future-proof, but only give one generalized option for now.
&#60;p /&#62;
typedef enum {
    RX_ASYNC_EVENT_DO_CALLBACK,
    RX_ASYNC_EVENT_DO_NIL,
} rx_async_event_action_t;
&#60;p /&#62;
typedef enum {
    RX_ASYNC_EVENT_TYPE_DONE,
    RX_ASYNC_EVENT_TYPE_ERROR,
    RX_ASYNC_EVENT_TYPE_TIMEOUT
} rx_async_event_type_t;
&#60;p /&#62;
typedef int rx_async_event_callback_func_t(struct rx_call *,
&#9;&#9;&#9;&#9;&#9;   rx_async_event_type_t,
&#9;&#9;&#9;&#9;&#9;   void *);
&#60;p /&#62;
typedef struct {
    rx_async_event_callback_func_t * fp;
    void * rock;
} rx_async_event_callback_t;
&#60;p /&#62;
typedef struct {
    rx_async_event_action_t action;
    union {
        rx_async_event_callback_t callback;
        afs_uint32 pad&#91;15&#93;; /* simultaneously pad it on a typical
cache line size,
&#9;&#9;&#9;       and make the struct large so we could extend in
&#9;&#9;&#9;       future without abi breakage */
    } u;
} rx_async_event_t;
&#60;p /&#62;
#define rx_async_event_SetupNil(event)     (event)-&#38;gt;action = RX_ASYNC_EVENT_DO_NIL
&#60;p /&#62;
#define rx_async_event_SetupCallback(event, func, rock)     do {         (event)-&#38;gt;action = RX_ASYNC_EVENT_DO_CALLBACK;         (event)-&#38;gt;u.callback.fp = (func);         (event)-&#38;gt;u.callback.rock = (rock);     while (0)
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Modify_the_File_Server_to_use_as&#34;&#62;&#60;/a&#62; Modify the File Server to use asynchronous RPCs. &#60;/h2&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Replace h_GetHost_r() &#60;span class=&#34;twikiNewLink&#34;&#62;WhoAreYou&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/WhoAreYou?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; probes with asynchronous version. This requires breaking up h_GetHost_r() into pieces that are compatible with the new state machine.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Re-write &#60;span class=&#34;twikiNewLink&#34;&#62;MultiBreakCallBackAlternateAddress&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/MultiBreakCallBackAlternateAddress?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;_r() to use asynchronous version of multi_RXAFSCB_CallBack()&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Re-write &#60;span class=&#34;twikiNewLink&#34;&#62;MultiProbeAlternateAddress&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/MultiProbeAlternateAddress?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;_r() to use asynchronous version of multi_RXAFSCB_ProbeUuid()&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Re-write calls to &#60;span class=&#34;twikiNewLink&#34;&#62;GetCPS&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/GetCPS?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; and &#60;span class=&#34;twikiNewLink&#34;&#62;GetHostCPS&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/GetHostCPS?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; to use asynchronous versions.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Construct daemon thread that calls rx_FetchCompletedCall() and thread pool of worker threads to which the tasks can be handed off for completion.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
To do:&#60;ul&#62;&#60;li&#62; rework host holds as an integer refcount&#60;/li&#62;&#60;li&#62; decouple ubik client structs from threads; provide a global pool of them&#60;/li&#62;&#60;li&#62; modify call stack from service routine through &#60;span class=&#34;twikiNewLink&#34;&#62;CallPreamble&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/CallPreamble?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; down to h_GetHost_r to allow returning a flag which signifies call should be blocked pending &#60;span class=&#34;twikiNewLink&#34;&#62;TellMeAboutYourself&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/TellMeAboutYourself?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;/WhoAreYou completion&#60;/li&#62;&#60;li&#62; modify call stack from service routine through &#60;span class=&#34;twikiNewLink&#34;&#62;CallPreamble&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/CallPreamble?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; down to hpr_GetCPS to allow returning a flag which signifies call should be blocked pending ubik_pr_GetCPS completion&#60;/li&#62;&#60;li&#62; modify server stubs to deal with &#60;span class=&#34;twikiNewLink&#34;&#62;CallPreamble&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/CallPreamble?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; returning a special &#34;not done&#34; error code, which results in the routine returning immediately with call-&#38;gt;async_done set to zero&#60;/li&#62;&#60;li&#62; modify server stubs, callpreamable, and relevant parts of host package to check async state value, and potentially jump to a specific line in function (probably with a select case type of construct)&#60;/li&#62;&#60;li&#62; rework &#60;span class=&#34;twikiNewLink&#34;&#62;MultiBreakCallBack&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/MultiBreakCallBack?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;_r use async client. initiate calls as quickly as possible; multi_error case and putconn can be handled by callback function&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Modify_host_callback_package_loc&#34;&#62;&#60;/a&#62; Modify host/callback package locking/threading model. &#60;/h2&#62;
&#60;p /&#62;
The existing host/callback package design assumes that a given RPC call will be serviced on the same thread from start to finish.  This assumption will no longer be true with asynchronous Rx.  We must modify the design to accommodate this new dynamic.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Replace host holds bit vector with a reference count&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; per-thread ubik client object is no longer a feasible solution.  Instead, we will provide a pool of ubik client objects.  Threads will allocate a new object from the pool whenever a call needs to be made.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Provide_a_high_level_Rx_session&#34;&#62;&#60;/a&#62;&#60;a name=&#34;Provide_a_high_level_Rx_session_&#34;&#62;&#60;/a&#62; Provide a high level Rx session object. &#60;/h2&#62;
&#60;p /&#62;
Many parts of AFS are constrained by the lack of call parallelism provided with the Rx connection object (4 simultaneous calls).  This proposal will provide a new generalized high-level connection handle (which will be called an Rx session for the purposes of this discussion).  A session will be a container which contains: one Rx security object; one UUID to identify the peer; an arbitrary number of protocol addresses for the peer; and an arbitrary number of Rx connection objects.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; design an Rx session data structure&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Write an Rx session object allocator, deallocator, initializer, and finalizer routines&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Use Rx session objects in the host/callback package to allow&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Provide_asynchronous_versions_of&#34;&#62;&#60;/a&#62; Provide asynchronous versions of rx_Read/rx_Write/rx_Readv/rx_Writev. &#60;/h2&#62;
&#60;p /&#62;
At present, Rx data streaming operations are synchronous.  This means that data read and write RPCs will block a thread from start to finish.  Over highly latent links, this could become a performance issue.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Add_asynchronous_support_to_Ubik&#34;&#62;&#60;/a&#62; Add asynchronous support to Ubik Client: &#60;/h2&#62;
&#60;p /&#62;
To do: 
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; add async event handler object pointer to ubik_client structure&#60;/li&#62;&#60;li&#62; rework rxgen ubik_client code to use async client stubs&#60;/li&#62;&#60;li&#62; create background thread(s) which handle ubik call timeouts&#60;/li&#62;&#60;li&#62; callback func checks return code; success can be processed inline; failures get pushed to ubik client background threads &#91;i'm specifying background threads here in order to remove any danger of deadlock due to the fact that rx would be in the call stack twice&#93;&#60;/li&#62;&#60;li&#62; background threads schedule new async calls against a different site, or against sync site depending on diagnosis of last call&#60;/li&#62;&#60;/ul&#62; (last changed by JeffreyAltman)</description>
  <dc:date>2008-06-16T13:09Z</dc:date>
  <dc:contributor>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view?topic=Main.JeffreyAltman">
		<rdf:value>JeffreyAltman</rdf:value>
	 </rdf:Description>
  </dc:contributor>
  <wiki:version>1</wiki:version>
  <wiki:status>updated</wiki:status>
  <wiki:importance>major</wiki:importance>
  <wiki:diff>http://www.dementia.org/twiki/bin/rdiff/AFSLore/AsyncRXProposal</wiki:diff>
  <wiki:history>http://www.dementia.org/twiki/bin/rdiff/AFSLore/AsyncRXProposal</wiki:history>
</item>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/WindowsAFSServers">
  <title>WindowsAFSServers</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/WindowsAFSServers?t=2008-06-16T03:11Z</link>
  <description>-- &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/JeffreyAltman&#34;&#62;JeffreyAltman&#60;/a&#62; - 14 Jun 2008
&#60;p /&#62;
This page provides a partial list of the work that must be done to update the AFS Servers on the Microsoft Windows platform.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;NetRestrict_and_NetInfo_configur&#34;&#62;&#60;/a&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;NetRestrict&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NetRestrict?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; and &#60;span class=&#34;twikiNewLink&#34;&#62;NetInfo&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NetInfo?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; configuration files &#60;/h2&#62;
&#60;p /&#62;
The Windows AFS Servers (nor the client) has no support for the AFS &#60;span class=&#34;twikiNewLink&#34;&#62;NetRestrict&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NetRestrict?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; and &#60;span class=&#34;twikiNewLink&#34;&#62;NetInfo&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NetInfo?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; files.  This makes it very difficult to deploy servers on Windows systems which often include a variety of network adapters beyond just the physical adapter.   The location of AFSDIR_SERVER_NETRESTRICT_FILEPATH and AFSDIR_SERVER_NETINFO_FILEPATH have already been defined in src/util/dirpath_nt.h and src/util/dirpath.c.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;The_NT_vol_back_end&#34;&#62;&#60;/a&#62; The NT vol back end &#60;/h2&#62;
&#60;p /&#62;
The NT vol back end (ntops.c) is based upon the &#60;span class=&#34;twikiNewLink&#34;&#62;NameI&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NameI?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; back end for UNIX but is designed to work with NTFS.  Over the years the UNIX &#60;span class=&#34;twikiNewLink&#34;&#62;NameI&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NameI?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; back end has received a number of bug fixes and improvements.   We need to verify that none of these changes must also be implemented for the NT back end.  &#60;a href=&#34;http://www.openafs.org/cgi-bin/cvsweb.cgi/openafs/src/vol/namei_ops.c?only_with_tag=MAIN&#34; target=&#34;_top&#34;&#62;link to namei_ops.c cvs history&#60;/a&#62;
&#60;p /&#62;
Need to modify the mappings of vice partitions to NTFS disk locations.  Would prefer to permit arbitrary paths to the current drive letter mapping.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Missing_command_line_parameters&#34;&#62;&#60;/a&#62; Missing command line parameters &#60;/h2&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Enable --syslog option for Windows servers.  Consider using a project like &#60;a href=&#34;http://syslog-win32.sourceforge.net/&#34; target=&#34;_top&#34;&#62;http://syslog-win32.sourceforge.net/&#60;/a&#62; for linking to the AFS Services.   A syslog daemon product such as &#60;a href=&#34;http://www.codeproject.com/KB/IP/Syslogd.aspx&#34; target=&#34;_top&#34;&#62;http://www.codeproject.com/KB/IP/Syslogd.aspx&#60;/a&#62; can be used to collect the events.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Enable --auditlog option.  Must add support for Windows named pipes instead of files.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; Enable rx configuration options.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Miscellaneous&#34;&#62;&#60;/a&#62; Miscellaneous &#60;/h2&#62;
&#60;p /&#62;
There are a number of random comments in the code choosing arbitrary values for Windows.  Must replace arbitrary decisions with values based upon the actual capabilities of the system.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Ignore_kaserver&#34;&#62;&#60;/a&#62; Ignore kaserver &#60;/h2&#62;
&#60;p /&#62;
Assume that kaserver does not exist.  Instead, we will count on the presence of either Active Directory or some external krb5 kdc.
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Viced&#34;&#62;&#60;/a&#62; Viced &#60;/h2&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;ProcessSize&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/ProcessSize?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; and STATS64_PROCESSSIZE should be set to the Private Bytes allocation for the current process.  Use &#60;span class=&#34;twikiNewLink&#34;&#62;GetProcessMemoryInfo&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/GetProcessMemoryInfo?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;().&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; The arbitrary definiton of NT_OPEN_MAX should be replaced by an attempt to read the value of HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota which has a default value of 10,000 if the registry value is not present.&#60;/li&#62;&#60;/ul&#62; (last changed by JeffreyAltman)</description>
  <dc:date>2008-06-16T03:11Z</dc:date>
  <dc:contributor>
	 <rdf:Description link="http://www.dementia.org/twiki/bin/view?topic=Main.JeffreyAltman">
		<rdf:value>JeffreyAltman</rdf:value>
	 </rdf:Description>
  </dc:contributor>
  <wiki:version>3</wiki:version>
  <wiki:status>updated</wiki:status>
  <wiki:importance>major</wiki:importance>
  <wiki:diff>http://www.dementia.org/twiki/bin/rdiff/AFSLore/WindowsAFSServers</wiki:diff>
  <wiki:history>http://www.dementia.org/twiki/bin/rdiff/AFSLore/WindowsAFSServers</wiki:history>
</item>
<item rdf:about="http://www.dementia.org/twiki/bin/view/AFSLore/NewProjects">
  <title>NewProjects</title>
  <link>http://www.dementia.org/twiki/bin/view/AFSLore/NewProjects?t=2008-06-13T23:24Z</link>
  <description>&#60;nop&#62;&#60;h1&#62;&#60;a name=&#34;Pending_and_Desired_OpenAFS_Proj&#34;&#62;&#60;/a&#62; Pending and Desired &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/OpenAFS&#34;&#62;OpenAFS&#60;/a&#62; Projects &#60;/h1&#62;
&#60;p /&#62;
&#38;#37;TOC&#38;#37;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Pending_Projects&#34;&#62;&#60;/a&#62; Pending Projects &#60;/h2&#62;
&#60;p /&#62;
The following are items known to be in progress, and, where available, a
point of contact.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;WindowsIFS&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/WindowsIFS?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- Implement AFS as a Windows installable file system&#9;  instead of as a virtual SMB server.  In Progress.   Contact &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/JeffreyAltman&#34;&#62;JeffreyAltman&#60;/a&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/WindowsAFSServers&#34;&#62;WindowsAFSServers&#60;/a&#62; - Stabilize the AFS Servers running on Microsoft Windows.  Contact &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/JeffreyAltman&#34;&#62;JeffreyAltman&#60;/a&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/DisconnectedOperation&#34;&#62;DisconnectedOperation&#60;/a&#62; provides the ability to use AFS while not&#9;  connected to a network.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/FreeBSDPort&#34;&#62;FreeBSDPort&#60;/a&#62; -- Server ported. Cache manager available, not stable yet.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;HPUX11Port&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/HP-UX11Port?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- Missing RX code reconstructed.&#9;  Header needed, available from HP.  Available in 1.2.10. &#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;NetBSDPort&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/NetBSDPort?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- No timeline available.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;OpenBSDPort&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/OpenBSDPort?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- In progress.  Cache manager available, not stable yet.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;AutoConf&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/AutoConf?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; with automake too.  In progress. Contact&#9;  &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/DerrickBrashear&#34;&#62;DerrickBrashear&#60;/a&#62;.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;AmandaBackup&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/AmandaBackup?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- Support for backup using &#60;a href=&#34;http://www.amanda.org&#34; target=&#34;_top&#34;&#62;Amanda&#60;/a&#62;.  In progress.  Contact &#60;span class=&#34;twikiNewLink&#34;&#62;MitchCollinsworth&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/Main/MitchCollinsworth?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/BetterDocumentation&#34;&#62;BetterDocumentation&#60;/a&#62; -- Contact &#60;span class=&#34;twikiNewLink&#34;&#62;RussAllbery&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/Main/RussAllbery?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/MaemoPort&#34;&#62;MaemoPort&#60;/a&#62; -- Porting to the Nokia  N8x0 Internet Tablet. Contact &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/DerrickBrashear&#34;&#62;DerrickBrashear&#60;/a&#62; or &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/Main/JasonEdgecombe&#34;&#62;JasonEdgecombe&#60;/a&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;
&#60;nop&#62;&#60;h2&#62;&#60;a name=&#34;Proposed_Projects&#34;&#62;&#60;/a&#62; Proposed Projects &#60;/h2&#62;
&#60;p /&#62;
The following are items which have been proposed, but which are not yet
in progress.  A point of contact is included where appropriate.
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;SupportIPv6&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/SupportIPv6?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62;&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;MultipleClones&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/MultipleClones?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; provides support for more than one backup and&#9;  read-only volume for a single read/write.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;a class=&#34;twikiLink&#34; href=&#34;http://www.dementia.org/twiki/bin/view/AFSLore/SelectableUbikTieBreaker&#34;&#62;SelectableUbikTieBreaker&#60;/a&#62; -- proposes to change lowest IP metric to&#9;  something administrator-selectable.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;VolumeDumpEditor&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/VolumeDumpEditor?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; -- Need tool to allow editing volume dumps.&#60;/li&#62;&#60;/ul&#62;
&#60;p /&#62;&#60;ul&#62;&#60;li&#62; &#60;span class=&#34;twikiNewLink&#34;&#62;BetterServerPreferences&#60;a rel=&#34;nofollow&#34; href=&#34;http://www.dementia.org/twiki/bin/edit/AFSLore/BetterServerPreferences?topicparent=AFSLore.WebRss&#34; title=&#34;Create this topic&#34;&#62;&#60;sup&#62;?&#60;/sup&#62;&#60;/a&#62;&#60;/span&#62; allow selectable continuous or on-demand&#